:root{font-family:Tahoma,"Segoe UI",sans-serif;color:#182c40;background:#f5f7fa;font-synthesis:none;--navy:#142f43;--green:#22986a;--orange:#ef9627;--red:#d94b58;--border:#e4eaf0;--muted:#6c7c8d}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;line-height:1.8}
a{color:#127565;text-decoration:none}
button,input,select{font:inherit}
button,.button-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;background:#147d69;color:#fff;padding:12px 22px;font-weight:700;cursor:pointer;transition:background .15s,box-shadow .15s;min-height:46px}
button:hover,.button-link:hover{background:#0b6757}
button:disabled{opacity:.45;cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #9ad8ce;outline-offset:3px}
.wrap{width:min(1450px,calc(100% - 64px));margin:auto}
.site-header,body>header{background:var(--navy);color:#fff;padding:20px 0}
.top{display:flex;align-items:center;justify-content:space-between;gap:20px}
.top a{color:#fff}
.top nav{display:flex;gap:20px}
.brand{display:flex;align-items:center;gap:12px;font-size:1.12rem;font-weight:700;line-height:1.7}
.brand small{display:block;font-size:.7rem;font-weight:400;color:#b7c8d5}
.brand-mark{width:42px;height:42px;background:#26485f;color:#9cdfcc;display:grid;place-items:center;border-radius:12px;font-size:1.8rem}
.logout-form{margin:0}
.logout-form button{background:#ffffff15;color:#e7f0f5;border:1px solid #ffffff22;min-height:40px;font-size:.8rem;padding:8px 15px}
h1,h2,h3,p{margin:0}
h1{font-size:2rem;font-weight:700;line-height:1.65}
h2{font-size:1.12rem;font-weight:700}
h3{font-size:1rem}
.card{background:#fff;border:1px solid var(--border);border-radius:22px;padding:28px;margin:24px 0;box-shadow:0 8px 25px #223d5505}
.muted{color:var(--muted);font-size:.86rem}
.eyebrow{display:block;color:#14816d;font-size:.78rem;font-weight:700;margin-bottom:8px}
.notice{padding:16px 20px;background:#e4f4ed;border:1px solid #cee9df;border-radius:14px;color:#285a49;margin:20px 0;overflow-wrap:anywhere}
form{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}
label{display:flex;flex-direction:column;gap:6px;font-size:.84rem}
input,select{border:1px solid #d9e1e9;border-radius:10px;background:#fff;color:#20374b;padding:11px 14px;min-height:45px;max-width:100%;width:100%}
input::placeholder{color:#99a6b4;font-size:.8rem}
.secondary{background:#eef2f6;color:#3a4d60}
.secondary:hover{background:#dfe7ee}
.text-button{background:none!important;color:#147d69;padding:3px 0;font-size:.79rem;min-height:30px;border-radius:3px}
.login-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center;max-width:1020px;margin:75px auto 65px}
.login-intro h1{font-size:2.8rem;margin-bottom:22px;line-height:1.7}
.login-intro>p{color:var(--muted);font-size:.95rem;max-width:400px}
.intro-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}
.intro-tags span{background:#e9eef3;color:#496276;border-radius:30px;padding:7px 12px;font-size:.73rem}
.login-card{padding:35px;margin:0;box-shadow:0 20px 60px #192f4210}
.login-card h2{font-size:1.65rem;margin-bottom:9px}
.login-card .muted{margin-bottom:25px}
.stack-form{display:flex;flex-direction:column;align-items:stretch;gap:18px}
.stack-form label{width:100%}
.stack-form button{margin-top:5px;width:100%}
.resend-form{justify-content:center;margin-top:15px}
.member-bar{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 24px;margin:28px 0 0}
.member-avatar{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;background:#e3f1ec;color:#198268;border-radius:14px;font-size:1.3rem;font-weight:700}
.member-name{margin-inline-end:auto}
.member-name strong{display:block;font-size:1rem}
.member-bar small{display:block;color:var(--muted);font-size:.73rem;line-height:1.7}
.member-detail{border-inline-start:1px solid var(--border);padding-inline-start:24px;margin-inline-start:14px}
.member-detail b{display:block;font-size:.89rem;letter-spacing:.5px;font-weight:400}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:34px 0 24px}
.page-heading .eyebrow{margin-bottom:2px}
.page-heading .muted{margin-top:7px}
.one-seat-badge{background:#eaf0f5;color:#4d6274;border:1px solid #dee6ec;border-radius:30px;padding:8px 15px;font-size:.76rem;white-space:nowrap}
.booking-card{margin-top:0;padding:28px 32px}
.step-heading{display:flex;align-items:center;gap:13px}
.step-number,.ticket-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e6f3ef;color:#17816b;font-size:.95rem;font-weight:700;flex:0 0 34px}
.step-heading .muted{font-size:.77rem}
.hall-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}
.hall-option{background:#fff;color:#21374b;border:1.5px solid #dfe6ed;border-radius:14px;padding:20px;display:flex;align-items:center;gap:18px;text-align:right;font-weight:400}
.hall-option:hover{background:#f5faf8;border-color:#84baac}
.hall-option[aria-pressed=true]{background:#eff9f5;border:1.5px solid #278d75;box-shadow:0 0 0 3px #278d7509}
.hall-option strong{display:block;font-size:1.05rem}
.hall-option small{display:block;font-size:.77rem;color:#7a8a98;margin-top:4px}
.hall-icon{background:#edf2f6;color:#536d82;display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:13px;font-size:1.65rem;line-height:1}
.hall-option[aria-pressed=true] .hall-icon{background:#d9eee4;color:#14816b}
.hall-check{margin-inline-start:auto;font-size:1.3rem;color:#7a8b98}
.hall-option[aria-pressed=true] .hall-check{color:#168268}
#seatArea{border-top:1px solid var(--border);margin-top:28px;padding-top:28px}
.seat-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:.75rem;white-space:nowrap;color:#5f7181}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend span:before{content:'';display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--green)}
.legend .selected-dot:before{background:var(--orange)}
.legend .taken-dot:before{background:var(--red)}
.map-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:space-between;background:#f7f9fb;border:1px solid #e9eef3;border-radius:13px;padding:9px 12px;margin-bottom:15px}
.view-options{display:flex;gap:3px;flex-wrap:wrap}
.view-options button{background:transparent;color:#617388;font-weight:400;font-size:.75rem;padding:7px 12px;min-height:35px;border-radius:8px}
.view-options button.active{background:#fff;color:#127761;box-shadow:0 2px 7px #1b354e12;font-weight:700}
.row-filter{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:.72rem;color:#697d90}
.row-filter select{width:auto;min-height:35px;padding:5px 10px;font-size:.75rem}
.zoom-controls{display:flex;gap:6px}
.zoom-controls button{background:#fff;border:1px solid #dfe7ed;color:#37556b;width:35px;min-height:35px;padding:0;font-size:1.4rem;line-height:1;border-radius:8px}
.map-surface{border:1px solid var(--border);background:#fff;border-radius:16px;overflow:hidden;padding:24px 14px 10px;text-align:center}
.stage-label{width:32%;max-width:340px;margin:auto;padding:6px 0;background:linear-gradient(180deg,#e6ecf1,#f5f8fa);color:#7a8b99;font-size:.75rem;border-radius:0 0 60% 60%;border-top:2px solid #c9d7e1;letter-spacing:2px}
#seatMap{display:block;width:100%;height:clamp(230px,32vw,420px);overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;direction:ltr}
.map-seat{cursor:pointer;outline:none}
.chair-shape{fill:var(--green);stroke:#fff;stroke-width:.7}
.chair-number{fill:#fff;font-family:Tahoma,sans-serif;font-size:13px;font-weight:700;pointer-events:none;direction:ltr}
.map-seat.taken .chair-shape{fill:var(--red)}
.map-seat.selected .chair-shape{fill:var(--orange);stroke:#9a570d;stroke-width:2}
.map-seat[aria-disabled=true]{cursor:not-allowed}
.map-seat:focus-visible .chair-shape,.map-seat:hover:not(.taken) .chair-shape{stroke:#183f54;stroke-width:2.4}
.map-row-number{font-size:13px;font-family:Tahoma,sans-serif;fill:#708496;font-weight:700}
.map-caption{font-size:.69rem;color:#8998a6;margin:8px 0 0}
.seat-status{font-size:.79rem;padding:12px 0;color:#6d7e8e}
.seat-status.loading{color:#a57816}
.seat-status.error{color:#b13644}
.seat-status.success{color:#29816a}
.quick-pick{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid var(--border);padding:16px 0}
.quick-pick>span{font-size:.8rem;font-weight:700;margin-inline-end:auto}
.quick-pick label{display:flex;flex-direction:row;align-items:center;font-size:.75rem;color:#697c8b;gap:8px}
.quick-pick select{width:auto;min-width:145px;min-height:38px;padding:7px 10px;font-size:.8rem}
.selection-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#f2f7f5;border:1px solid #dfeee7;border-radius:14px;padding:18px 20px;margin-top:8px}
.selection-bar small{color:#7b8e83;font-size:.74rem;display:block}
.selection-bar strong{display:inline-block;font-size:.92rem;margin-top:4px}
.selection-bar .text-button{margin-inline-start:12px}
.reserve-dialog{border:1px solid var(--border);border-radius:22px;padding:30px;width:min(510px,calc(100% - 32px));color:#24394a;box-shadow:0 30px 90px #122b4450}
.reserve-dialog::backdrop{background:#142c43a8;backdrop-filter:blur(4px)}
.reserve-dialog form{display:block}
.reserve-dialog h2{font-size:1.2rem;margin:10px 0 16px}
#reviewSeat{padding:15px;background:#eaf5ef;color:#1c7660;border-radius:10px;font-size:1rem;font-weight:700;margin-bottom:15px}
.dialog-actions{display:flex;gap:10px;margin-top:24px}
.dialog-actions button{flex:1}
.empty-state{padding:24px 0 4px;font-size:.85rem;color:#8796a4}
.reservation-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;padding:20px;background:#f8fafb;border:1px solid var(--border);border-radius:14px}
.reservation-card h3{margin:9px 0}
.valid-stamp{display:inline-block;background:#dff1e7;color:#207854;border-radius:30px;padding:2px 12px;font-size:.72rem;font-weight:700}
.booking-code{font-size:.76rem;display:inline-block;overflow-wrap:anywhere;font-weight:400}
.ticket-card{max-width:650px;margin:35px auto;text-align:center;border:1.5px solid #d9e8e1;position:relative}
.ticket-card h1{color:#183d51;margin:20px 0 15px;font-size:2rem}
.ticket-card p{margin:12px 0}
.ticket-location{font-size:1.15rem;color:#14745f;padding:16px 8px;background:#eaf5ef;border-radius:13px}
.ticket-code{font-size:.84rem;overflow-wrap:anywhere;color:#5d7588}
.ticket-qr{display:flex;justify-content:center;margin:22px}
.ticket-qr img{width:220px;height:220px;image-rendering:pixelated;max-width:100%}
.ticket-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.ticket-note{text-align:center;color:#728292;font-size:.8rem;margin:18px}
.tablewrap{overflow-x:auto;border-radius:12px;margin-top:20px}
table{border-collapse:collapse;width:100%;font-size:.82rem}
td,th{padding:14px 10px;border-bottom:1px solid #e6ebf1;text-align:right;vertical-align:middle}
th{font-weight:700;background:#f4f7fa;color:#526b7e}
td{overflow-wrap:anywhere}
td form button{font-size:.76rem;padding:7px 12px;min-height:35px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}
.stats div{padding:20px;border-radius:14px;background:#f2f6f8;color:#658091;font-size:.8rem}
.stats b{display:block;font-size:2rem;color:#22485b;font-weight:700}
.admin-search{margin-top:16px}
.admin-search label{flex:1;min-width:220px}
.danger{background:#fff0f0;color:#b23443;border:1px solid #f1d4d9}
.danger:hover{background:#ffe2e6}
footer{text-align:center;padding:32px 15px;color:#92a1af;font-size:.76rem}
@media(max-width:1000px){.wrap{width:calc(100% - 40px)}.login-layout{gap:40px}.login-intro h1{font-size:2.3rem}.booking-card{padding:24px}.seat-head{align-items:flex-start}.seat-head .legend{max-width:240px;gap:10px}.member-detail{padding-inline-start:16px;margin-inline-start:0}}
@media(max-width:700px){.wrap{width:calc(100% - 24px)}.site-header,body>header{padding:14px 0}.brand{font-size:.95rem}.brand small{font-size:.6rem}.brand-mark{width:36px;height:36px;border-radius:10px}.logout-form button{font-size:.69rem;padding:5px 10px}.login-layout{display:block;margin:30px 0}.login-intro h1{font-size:2rem}.login-intro h1 br{display:none}.login-intro>p{font-size:.84rem}.intro-tags{margin-top:18px}.login-card{margin-top:25px;padding:25px}.member-bar{gap:10px;flex-wrap:wrap;padding:15px;margin-top:18px}.member-avatar{width:40px;height:40px;flex-basis:40px;border-radius:10px}.member-name{flex-basis:calc(100% - 60px);margin:0}.member-detail{width:calc(50% - 5px);border:0;padding:10px 0 0;margin:0;border-top:1px solid var(--border)}.member-detail b{font-size:.84rem}.page-heading{margin:24px 0 18px;align-items:flex-start}.page-heading h1{font-size:1.55rem}.page-heading .muted{font-size:.75rem}.one-seat-badge{font-size:.65rem;padding:5px 9px;margin-top:23px}.card{border-radius:17px;padding:18px;margin:18px 0}.booking-card{padding:18px 12px}.hall-options{gap:9px;margin:18px 0}.hall-option{padding:13px 10px;gap:9px;border-radius:11px}.hall-option strong{font-size:.89rem}.hall-option small{font-size:.62rem}.hall-icon{width:34px;height:34px;flex-basis:34px;font-size:1.3rem;border-radius:8px}.hall-check{display:none}.step-heading{gap:9px}.step-heading h2{font-size:.95rem}.step-number,.ticket-icon{width:29px;height:29px;flex-basis:29px;border-radius:8px;font-size:.82rem}#seatArea{margin-top:20px;padding-top:20px}.seat-head{display:block}.legend{margin-top:15px;font-size:.7rem;gap:18px}.map-toolbar{padding:8px;gap:10px}.view-options{width:100%;justify-content:space-between;gap:0}.view-options button{font-size:.67rem;padding:6px 9px}.row-filter{flex:1;font-size:.65rem}.row-filter select{font-size:.7rem;min-width:100px}.map-surface{border-radius:12px;padding:18px 3px 8px}.stage-label{width:42%;font-size:.65rem}#seatMap{height:245px}.map-caption{font-size:.62rem;padding:0 8px}.seat-status{font-size:.73rem;padding:10px 2px}.quick-pick{gap:9px;padding:14px 2px}.quick-pick>span{width:100%;font-size:.76rem}.quick-pick label{width:calc(50% - 5px);gap:5px;font-size:.7rem}.quick-pick select{width:100%;min-width:0;font-size:.72rem;padding:7px 6px}.selection-bar{display:block;padding:14px;border-radius:11px}.selection-bar strong{font-size:.86rem}.selection-bar>button{width:100%;margin-top:13px;font-size:.82rem;min-height:44px}.reservation-card{display:block;padding:16px}.reservation-card h3{font-size:.93rem}.reservation-card .button-link{width:100%;margin-top:15px;font-size:.83rem}.reserve-dialog{padding:22px}.reserve-dialog h2{font-size:1.03rem}.dialog-actions{flex-direction:column}.ticket-card{padding:25px 15px}.ticket-location{font-size:1rem}.ticket-actions{flex-direction:column;align-items:center}.ticket-actions button{width:min(320px,100%)}.stats{grid-template-columns:1fr 1fr;gap:10px}.stats div{padding:13px;font-size:.7rem}.stats b{font-size:1.7rem}.admin-search{display:block}.admin-search button,.admin-search .button-link{width:100%;margin-top:10px}.responsive-table thead{display:none}.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block}.responsive-table tr{border:1px solid var(--border);border-radius:12px;margin-bottom:14px;padding:10px;background:#fff}.responsive-table td{display:flex;gap:10px;justify-content:space-between;text-align:left;padding:8px;font-size:.77rem}.responsive-table td:before{content:attr(data-label);font-weight:700;color:#6c7f90;white-space:nowrap;flex-shrink:0}.responsive-table td:last-child{border:0}.responsive-table td form{width:100%;justify-content:flex-end}.tablewrap{overflow:visible}.top nav{gap:12px;font-size:.75rem}}
@media(max-width:380px){.hall-option small{font-size:.58rem}.hall-icon{display:none}.brand small{display:none}.page-heading .one-seat-badge{display:none}.view-options button{padding:6px 7px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{header,footer,.ticket-actions,.ticket-note{display:none!important}body{background:#fff}.ticket-card{box-shadow:none;margin:0 auto;border:1px solid #d9e8e1}.wrap{width:100%}}
.otp-fieldset{border:0;padding:0;margin:0;min-width:0}.otp-fieldset legend{font-size:.84rem;margin-bottom:12px}.otp-entry{position:relative;width:100%;height:58px;margin-bottom:10px}.otp-input{position:absolute;inset:0;z-index:2;width:100%;height:100%;opacity:0;cursor:text;caret-color:transparent;font-family:Arial,sans-serif;font-size:24px}.otp-boxes{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr);gap:9px;pointer-events:none}.otp-boxes span{display:grid;place-items:center;border:1.5px solid #d9e3eb;border-radius:12px;background:#f7f9fb;font-family:Arial,sans-serif;font-size:26px;font-weight:600;color:#193b50;line-height:1;direction:ltr}.otp-boxes .filled{border-color:#93c5b6;background:#f0f8f4}.otp-boxes .current{border-color:#147d69;box-shadow:0 0 0 3px #147d6914}.otp-entry:focus-within .otp-boxes{filter:none}.otp-fieldset small{font-size:.72rem}.ticket-page .ticket-card{width:min(620px,100%);padding:25px 30px;margin:25px auto;border:1.5px solid #d9e8e1;break-inside:avoid;page-break-inside:avoid}.ticket-page .ticket-card h1{font-size:1.8rem;margin:12px 0 10px}.ticket-page .ticket-card p{margin:9px 0}.ticket-page .ticket-location{padding:12px 8px;font-size:1.04rem}.ticket-page .ticket-qr{margin:14px auto;width:236px;height:236px;padding:8px;background:#fff;break-inside:avoid;page-break-inside:avoid}.ticket-page .ticket-qr img{width:220px;height:220px}.ticket-page .ticket-code{font-size:.77rem;overflow-wrap:anywhere}.ticket-page .ticket-date{font-size:.8rem;color:#6b7d8e}.ticket-advice{background:#f1f5f8;color:#364f60;border-radius:10px;padding:10px 14px;font-size:.8rem;font-weight:700;line-height:1.9}.ticket-verify-note{font-size:.72rem}.pdf-render-host{position:fixed;left:-10000px;top:0;width:620px;background:#fff;pointer-events:none;direction:rtl}.ticket-page .ticket-card.ticket-export{width:620px!important;max-width:620px!important;margin:0!important;padding:24px 30px!important;border-radius:16px;font-size:14px;box-shadow:none}.ticket-export .ticket-code{font-size:12px!important}.ticket-export .ticket-location{font-size:17px!important}.ticket-export .ticket-qr{width:236px!important;height:236px!important}.ticket-export .ticket-qr img{width:220px!important;height:220px!important}.ticket-export .ticket-advice{font-size:13px!important}.ticket-export .ticket-verify-note{font-size:12px!important}.ticket-export .ticket-date{font-size:12px!important}
.gate-wrap{max-width:900px}.gate-login{max-width:450px;margin:45px auto}.gate-login h1{font-size:1.45rem}.gate-page .top>button{min-height:38px;padding:7px 16px;font-size:.78rem}.scanner-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.scanner-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.scanner-actions button,.scanner-actions label{font-size:.83rem}.qr-upload{position:relative;overflow:hidden;cursor:pointer}.qr-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.scanner-card #cameraArea{position:relative;overflow:hidden;border-radius:16px;background:#122737;aspect-ratio:4/3;max-height:400px;margin:auto}.scanner-card video{width:100%;height:100%;object-fit:cover}.scan-guide{position:absolute;inset:18% 20%;border:3px solid #80e6bc;border-radius:18px;box-shadow:0 0 0 200px #10233266;pointer-events:none}.qr-paste{margin-top:15px;padding-top:12px;border-top:1px solid var(--border)}.qr-paste summary{font-size:.82rem;color:#577386;cursor:pointer}.qr-paste form{margin-top:15px}.gate-manual{margin-top:15px;align-items:flex-end}.gate-manual label{flex:1;min-width:110px}.gate-status{padding:12px 16px;border-radius:12px;font-size:.88rem;line-height:1.9;margin:15px 0}.gate-status:empty{display:none}.gate-status.success{background:#e5f4ed;color:#1c765a;border:1px solid #c5e7d6}.gate-status.error{background:#fff0f1;color:#a83445;border:1px solid #efcdd4}.gate-result h2{font-size:1.3rem;margin:15px 0}.entry-details{margin:20px 0;display:grid;grid-template-columns:1fr 1fr;gap:14px}.entry-details div{background:#f6f8fa;padding:12px 16px;border-radius:10px}.entry-details dt{font-size:.74rem;color:#7a8c9a}.entry-details dd{margin:5px 0 0;font-size:.94rem;color:#20465b;overflow-wrap:anywhere}.gate-result>button{margin:5px}.gate-result #confirmEntry{background:#168466}.gate-result #confirmEntry:disabled{background:#719085}.attendance-stats{margin-bottom:18px}.attendance-panel .map-toolbar{margin-top:18px}.attendance-panel .map-toolbar>label{min-width:110px;font-size:.72rem}.occupancy-legend{display:flex;gap:14px;flex-wrap:wrap;margin:13px 0;font-size:.75rem;color:#62778a}.occupancy-legend span:before{content:'';display:inline-block;width:11px;height:11px;border-radius:3px;margin-inline-end:6px;background:#d7e1e8}.occupancy-legend .inside:before{background:#22986a}.occupancy-legend .reserved:before{background:#ef9627}.occupancy-legend .outside:before{background:#448cc4}#occupancyMap{display:block;width:100%;height:clamp(210px,28vw,350px);direction:ltr}.occupancy-seat .chair-shape{fill:#c7d3dc}.occupancy-seat.inside .chair-shape{fill:#22986a}.occupancy-seat.reserved .chair-shape{fill:#ef9627}.occupancy-seat.outside .chair-shape{fill:#448cc4}.attendance-filters{display:flex;align-items:end;gap:15px;margin-top:20px;flex-wrap:wrap}.attendance-filters label{flex:1;min-width:180px}.attendance-panel .stats b{font-size:1.85rem}.attendance-panel .tablewrap{margin-top:12px}.attendance-panel td{font-size:.76rem}.page-heading>div{min-width:0}.brand{min-width:0}.site-header .top{min-width:0}.page-heading .muted{overflow-wrap:break-word}
@media(max-width:700px){.otp-entry{height:54px}.otp-boxes{gap:7px}.otp-boxes span{border-radius:9px;font-size:24px}.ticket-page .ticket-card{padding:22px 15px}.ticket-page .ticket-card h1{font-size:1.6rem}.ticket-page .ticket-location{font-size:.92rem}.ticket-advice{font-size:.76rem;padding:10px}.gate-wrap .page-heading{display:block}.gate-wrap .page-heading h1{font-size:1.5rem}.gate-wrap .page-heading>button{margin-top:12px}.gate-login{margin:35px 0}.scanner-actions{gap:8px}.scanner-actions button,.scanner-actions label{flex:1;font-size:.76rem;padding:10px 12px;min-width:125px}.gate-manual{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gate-manual label:first-child{grid-column:1/-1}.gate-manual button{grid-column:1/-1;width:100%;font-size:.83rem}.gate-manual label{min-width:0}.entry-details{gap:9px}.entry-details div{padding:10px}.entry-details div:nth-child(3){grid-column:1/-1}.entry-details dd{font-size:.88rem}.gate-result>button{width:100%;margin:6px 0;font-size:.81rem}.gate-wrap .ticket-note{margin-inline:5px;font-size:.73rem}.attendance-stats div{padding:12px 9px}.attendance-panel .map-toolbar .view-options{order:1}.attendance-panel .map-toolbar>label{flex:1;min-width:90px}.occupancy-legend{gap:10px;font-size:.67rem}#occupancyMap{height:245px}.attendance-filters{gap:10px}.attendance-filters label{min-width:0;flex-basis:100%;font-size:.77rem}.attendance-panel .seat-head{display:flex;gap:8px}.attendance-panel .seat-head button{padding:7px 12px;min-height:38px;font-size:.71rem}.page-heading{position:relative;display:block}.page-heading .one-seat-badge{position:absolute;left:0;top:0;margin-top:0}.page-heading .eyebrow{padding-inline-end:100px}.brand{font-size:.85rem;gap:8px}.brand small{font-size:.56rem}.brand-mark{width:30px;height:30px;font-size:1.5rem;flex:0 0 30px}.logout-form button{font-size:.66rem;padding:5px 8px}.card{overflow-wrap:break-word}.scanner-heading h2{font-size:.95rem}}
@media print{.ticket-page .ticket-card{width:128mm;max-width:128mm;margin:0 auto;padding:6mm;break-inside:avoid;page-break-inside:avoid}.ticket-page .ticket-card p{margin:2mm 0}.ticket-page .ticket-qr{margin:3mm auto}.ticket-page .ticket-advice{font-size:10pt}.ticket-page main{padding:0}.ticket-page .ticket-card h1{margin:3mm 0;font-size:22pt}}
.occupancy-legend .guest:before{background:#8e44ad}.occupancy-seat.guest .chair-shape{fill:#8e44ad;stroke:#5e2d73;stroke-width:1.4}
