:root{--ink:#171916;--paper:#e9e2d5;--paper-raised:#f3eee4;--paper-deep:#ddd5c6;--line:#b8b1a4;--line-strong:#77786f;--muted:#686961;--signal:#b92f27;--acid:#d6ff4b;--screen:#10120f;--green:#42765a;--yellow:#9d7515;--orange:#ae6131;--red:#b92f27;--blue:#3e668f;--mono:"IBM Plex Mono","D2Coding","Noto Sans Mono CJK KR",ui-monospace,SFMono-Regular,Menlo,monospace;--sans:"Pretendard Variable","Pretendard","Noto Sans KR","Apple SD Gothic Neo",system-ui,sans-serif;--shadow:0 18px 45px rgba(43,38,27,.13)}
*{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:var(--screen);color:var(--ink);font-family:var(--sans);line-height:1.55;word-break:keep-all}a{color:inherit;text-decoration:none}button,input{font:inherit}button{word-break:keep-all}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh;background:var(--paper)}.site-header{position:sticky;top:0;z-index:20;display:flex;flex-direction:column;height:100vh;padding:28px 18px 18px;background:#111310;color:#eeece4;border-right:1px solid #3b3e37}.brand{display:flex;align-items:flex-start;gap:12px;height:88px;padding:4px 10px;border-bottom:1px solid #33362f}.brand-mark{display:grid;place-items:center;width:35px;height:35px;color:var(--ink);background:var(--acid);font:800 12px/1 var(--mono);letter-spacing:.05em;clip-path:polygon(0 0,100% 0,100% 75%,75% 100%,0 100%)}.brand-copy{display:grid;gap:5px;padding-top:2px}.brand-copy strong{font-size:14px;letter-spacing:-.03em}.brand-copy small,.site-credit{font:700 8px/1.45 var(--mono);letter-spacing:.1em}.brand-copy small{color:#8e9286}.site-header nav{display:grid;gap:4px;padding-top:28px}.site-header nav a{display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:9px;padding:12px 13px;color:#aeb0a8;font-size:13px;border-left:3px solid transparent;transition:background .15s,color .15s}.site-header nav a:hover{background:#23261f;color:#fff}.site-header nav a:first-child{background:#22251f;color:#fff;border-left-color:var(--acid)}.site-header nav span,.site-header nav small{font:700 8px/1 var(--mono);letter-spacing:.1em}.site-header nav span{color:var(--acid)}.site-header nav small{color:#6e7268}.site-credit{display:grid;gap:3px;margin:2px 9px 0;padding:14px 0 2px;border-top:1px solid #33362f;color:#81857a;margin-top:auto}.site-credit strong{color:#d9d8cf;font:700 9px/1.45 var(--sans);letter-spacing:.02em}.workspace{min-width:0;background-color:var(--paper);background-image:linear-gradient(rgba(255,252,246,.54),rgba(255,252,246,.54)),repeating-linear-gradient(0deg,rgba(85,76,61,.035) 0,rgba(85,76,61,.035) 1px,transparent 1px,transparent 4px)}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;height:66px;padding:0 32px;background:rgba(238,231,218,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.breadcrumb{display:flex;gap:9px;color:var(--muted);font-size:11px}.breadcrumb b{color:#aaa599}.breadcrumb strong,.session-meta{font-family:var(--mono)}.breadcrumb strong{color:var(--ink)}.session-meta{display:flex;align-items:center;gap:20px;font-size:10px;letter-spacing:.08em}.session-meta>span{display:flex;align-items:center;gap:7px}.session-meta i,.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 4px rgba(185,47,39,.12)}.session-meta time{font-weight:700;font-size:12px;letter-spacing:0}.page-shell{width:min(1440px,100%);margin:0 auto;padding:38px 48px 80px}.hero,.admin-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:40px;padding-bottom:34px}.hero>div:first-child{min-width:0}.hero h1,.admin-topbar h1,.auth-card h1,.scan-layout h1{margin:12px 0 13px;font-size:clamp(40px,5vw,66px);font-weight:900;letter-spacing:-.065em;line-height:1.05}.admin-topbar h1{font-size:clamp(32px,4vw,50px)}.auth-card h1,.scan-layout h1{font-size:clamp(30px,4vw,46px)}.lede{max-width:670px;margin:0;color:#565850;font-size:15px;line-height:1.85}.eyebrow{display:flex;align-items:center;gap:9px;margin:0;color:var(--signal);font:700 9px/1.2 var(--mono);letter-spacing:.15em}.eyebrow i{display:inline-block;width:30px;height:1px;background:var(--line)}.hero-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.hero> .hero-actions{margin-top:10px}.hero-case-mark{flex:none;display:flex!important;flex-direction:column;justify-content:space-between;width:154px;height:154px;padding:13px;border:2px solid rgba(185,47,39,.74);color:var(--signal);text-align:center;transform:rotate(2deg);font-family:var(--mono);mix-blend-mode:multiply}.hero-case-mark span,.hero-case-mark small{font-size:8px;font-weight:800;letter-spacing:.12em}.hero-case-mark span{padding-bottom:8px;border-bottom:1px solid rgba(185,47,39,.5)}.hero-case-mark strong{font-size:27px;letter-spacing:-.1em;line-height:1}.button{display:inline-flex;align-items:center;justify-content:center;min-height:39px;padding:0 15px;color:var(--ink);background:transparent;border:1px solid var(--line-strong);border-radius:0;cursor:pointer;font:700 10px/1 var(--mono);letter-spacing:.04em;transition:background .15s,border-color .15s,color .15s}.button:hover{background:#d8d2c5;border-color:var(--ink)}.button.primary{color:var(--acid);background:var(--ink);border-color:var(--ink)}.button.primary:hover{background:#2a2d26;color:var(--acid)}.button.ghost{background:rgba(255,255,255,.22)}.button.danger{color:#fff;background:var(--signal);border-color:var(--signal)}.button.danger:hover{background:#94241e}.button.compact{min-height:31px;padding:0 10px;font-size:9px}.button.wide{width:100%;min-height:46px}.button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid rgba(185,47,39,.42);outline-offset:3px}.button:disabled{opacity:.48;cursor:not-allowed}.panel{background:rgba(243,238,228,.74);border:1px solid var(--line);border-radius:0;box-shadow:none}.muted{color:var(--muted)}.small{font-size:12px}.hidden{display:none!important}.dev-banner,.warning-strip{margin:0 0 22px;padding:13px 15px;color:#594617;background:#f1e2ad;border:1px dashed #9f8231;font-size:13px}.warning-strip{color:#7e312b;background:#f1d9d3;border-color:#b96c63}.status-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 52px;background:#eee7da;border:1px solid var(--line)}.status-strip>div{min-width:0;padding:15px 18px;border-right:1px solid var(--line)}.status-strip>div:last-child{border:0}.status-strip span{display:block;margin-bottom:8px;color:var(--muted);font:700 8px/1.2 var(--mono);letter-spacing:.1em}.status-strip strong{display:block;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.status-strip strong small{color:var(--muted);font:500 9px/1 var(--mono);letter-spacing:.06em}.status-strip-note strong{color:var(--signal)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 16px}.section-heading h2{margin:6px 0 0;font-size:25px;letter-spacing:-.045em}.section-heading h3{margin:0;font-size:17px}.live-pill{display:flex;align-items:center;gap:7px;color:var(--muted);font:700 9px/1 var(--mono);letter-spacing:.08em}.live-dot{background:var(--green);box-shadow:0 0 0 4px rgba(66,118,90,.13)}.rooms-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--ink);border-left:1px solid var(--line)}.room-card{display:flex;flex-direction:column;min-height:232px;padding:20px;background:rgba(255,255,255,.2);border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-top:3px solid var(--room-tone,var(--ink));transition:background .15s}.room-card:hover{background:rgba(255,253,247,.72)}.room-card.skeleton{border-top-color:var(--line);background:rgba(255,255,255,.15);animation:pulse 1.4s infinite}@keyframes pulse{50%{opacity:.48}}.room-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.room-number{color:var(--muted);font:700 9px/1 var(--mono);letter-spacing:.12em}.room-name{margin-top:8px;font-size:23px;font-weight:850;letter-spacing:-.05em;line-height:1.2}.state-badge{display:inline-block;padding:6px 7px;border:1px solid var(--line-strong);font:700 8px/1 var(--mono);letter-spacing:.07em;white-space:nowrap}.state-available{color:var(--green);border-color:#6b9578}.state-ready{color:#7d5e0b;border-color:#ae9349;background:#f5e8bd}.state-occupied{color:var(--blue);border-color:#7591ad;background:#e0e8ed}.state-maintenance{color:#5d6059;background:#dfdcd4}.room-main{margin-top:auto}.queue-number{font:800 42px/.95 var(--mono);letter-spacing:-.09em}.queue-number small{margin-left:6px;color:var(--muted);font:600 10px/1 var(--sans);letter-spacing:0}.congestion-label{margin:15px 0 7px;font-size:12px;font-weight:800}.congestion-bar{height:5px;overflow:hidden;background:#c9c2b4}.congestion-fill{height:100%;background:var(--congestion-color)}.room-timer{margin-top:12px;color:var(--muted);font-size:11px}.room-timer strong{color:var(--ink);font-family:var(--mono)}.legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:18px;padding:14px 17px;color:#5f605a;font-size:11px}.legend strong{color:var(--ink)}.legend-dot{display:inline-block;width:7px;height:7px;margin-right:6px;background:#777}.legend-dot.low{background:var(--green)}.legend-dot.normal{background:var(--yellow)}.legend-dot.busy{background:var(--orange)}.legend-dot.crowded{background:var(--red)}.my-status{margin:0 0 22px;padding:19px 20px;background:#edf0dc;border:1px solid #8c9572;border-top:3px solid var(--green)}.my-status.ready{background:#f5e9bf;border-color:#af9852;border-top-color:var(--yellow)}.my-status.playing{background:#e1e9ed;border-color:#8094a7;border-top-color:var(--blue)}.my-status h3{margin:7px 0;font-size:22px;letter-spacing:-.04em}.my-grid{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.status-metric{color:var(--muted);font-size:11px}.status-metric strong{display:block;color:var(--ink);font:800 24px/1.2 var(--mono);letter-spacing:-.06em}.narrow{width:min(640px,100%);margin:18px auto 50px}.auth-card{padding:28px;border-top:4px solid var(--ink)}.auth-card h1{font-size:38px}.stack-form{display:grid;gap:17px;margin-top:26px}.stack-form label{display:grid;gap:8px;font-size:13px;font-weight:800}.stack-form input,.inline-form input{width:100%;min-height:46px;padding:11px 13px;color:var(--ink);background:#fbf8f0;border:1px solid #898a80;border-radius:0;outline:0}.stack-form input::placeholder,.inline-form input::placeholder{color:#93938a}.stack-form input:focus,.inline-form input:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(185,47,39,.14)}.form-error{min-height:20px;margin:0;color:var(--signal);font-size:13px}.dev-hint{padding:10px 12px;color:#715d1b;background:#f2e5bc;border:1px dashed #a68c45;font-size:12px}.scan-layout{display:grid;grid-template-columns:minmax(270px,.82fr) minmax(340px,1.18fr);gap:45px;align-items:start}.scanner-card{padding:17px;border-top:3px solid var(--ink)}.reader{position:relative;display:grid;min-height:430px;place-items:center;overflow:hidden;color:var(--muted);background:#111310;border:1px solid #4b4e46;font:700 10px/1 var(--mono);letter-spacing:.08em}.reader video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scanner-actions{display:flex;gap:9px;margin:14px 0}.file-button input{display:none}.scanner-card details{padding-top:13px;border-top:1px solid var(--line);font-size:12px}.scanner-card summary{font-weight:800;cursor:pointer}.inline-form{display:flex;gap:8px;margin-top:9px}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(16,18,15,.68)}.modal-card{width:min(540px,100%);padding:25px;border-top:4px solid var(--ink);box-shadow:var(--shadow)}.modal-card h2{margin:8px 0 14px;font-size:28px;letter-spacing:-.045em}.confirm-body{display:grid;gap:8px;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.toast-root{position:fixed;right:18px;bottom:18px;z-index:120;display:grid;gap:9px;width:min(390px,calc(100vw - 36px))}.toast{padding:14px 15px;color:#ecece5;background:#171916;border:1px solid #55584f;border-left:3px solid var(--acid);box-shadow:0 12px 28px rgba(0,0,0,.25);font-size:13px;animation:toast-in .2s ease-out}.toast.ready{border-left-color:var(--yellow)}.toast.precall{border-left-color:var(--orange)}.toast.error{border-left-color:#e6645b}.toast strong{display:block;margin-bottom:3px}@keyframes toast-in{from{transform:translateY(8px);opacity:0}}.admin-rooms{display:grid;gap:18px}.admin-room{padding:21px;border-top:3px solid var(--ink)}.admin-room-header{display:flex;justify-content:space-between;gap:15px}.admin-room h2{margin:8px 0 0;font-size:28px;letter-spacing:-.045em}.admin-room-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:22px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.admin-status{display:grid;gap:12px}.admin-block{padding:14px;background:#e4ded1;border:1px solid var(--line)}.admin-block .value{margin-top:4px;font-size:21px;font-weight:850;letter-spacing:-.04em}.timer-big{margin-top:7px;font:800 35px/1 var(--mono);letter-spacing:-.07em}.timer-big.over{color:var(--signal);font-size:18px;letter-spacing:-.03em}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.queue-list{display:grid;gap:7px}.queue-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;background:rgba(255,255,255,.28);border:1px solid var(--line)}.queue-team{font-size:13px;font-weight:800}.precall-tag{display:inline-block;margin-left:7px;padding:3px 5px;color:#76580c;background:#f5e5b5;border:1px solid #ad9143;font:700 8px/1 var(--mono);letter-spacing:.06em}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:26px;padding:20px;background:#f0d8d2;border-top:3px solid var(--signal)}.danger-zone h2{margin:6px 0;font-size:23px}.danger-text{color:var(--signal)}.audit-panel{margin-top:18px;padding:20px;border-top:3px solid var(--ink)}.audit-log{display:grid;gap:0;max-height:420px;overflow:auto;font:11px/1.5 var(--mono)}.audit-row{padding:9px;border-bottom:1px solid var(--line);color:#565850}.qr-sheet{width:min(680px,100%);margin:20px auto;padding:36px;text-align:center;border-top:4px solid var(--ink)}.qr-sheet h1{font-size:45px;letter-spacing:-.05em}.qr-sheet img{width:min(420px,90%);padding:10px;background:#fff;border:1px solid var(--line)}.payload-code{display:block;max-width:560px;margin:18px auto;word-break:break-all;color:var(--muted);font-size:11px}.qr-sheet .button{margin-top:10px}
@media(max-width:1180px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.site-header{padding-left:10px;padding-right:10px}.brand{padding-left:8px}.brand-copy,.site-header nav a>small,.site-header nav a:not(:first-child){display:none}.site-header nav a{grid-template-columns:1fr;justify-items:center;padding:13px}.site-credit{display:none}.hero-case-mark{display:none!important}.rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.page-shell{padding:28px 26px 70px}.scan-layout,.admin-room-grid{grid-template-columns:1fr}.hero{padding-bottom:27px}.status-strip{margin-bottom:38px}.reader{min-height:360px}}
@media(max-width:640px){.app-shell{display:block}.site-header{position:sticky;display:flex;flex-direction:row;align-items:center;width:100%;height:57px;min-height:auto;padding:8px 12px;border-right:0;border-bottom:1px solid #3b3e37}.brand{height:auto;padding:0;border:0}.brand-copy{display:block}.brand-copy strong{font-size:11px}.brand-copy small{display:none}.brand-mark{width:31px;height:31px}.site-header nav{display:flex;gap:4px;margin-left:auto;padding:0}.site-header nav a:first-child,.site-header nav a{display:grid;width:37px;height:37px;padding:7px;background:transparent;border-left:0;border-bottom:2px solid transparent}.site-header nav a:first-child{border-bottom-color:var(--acid)}.site-header nav span{font-size:8px}.topbar{height:52px;padding:0 17px}.session-meta{gap:7px}.session-meta>span{display:none}.page-shell{padding:24px 17px 60px}.hero h1,.admin-topbar h1{font-size:39px}.hero h1{line-height:1.1}.lede{font-size:13px;line-height:1.75}.hero,.admin-topbar{flex-direction:column;gap:18px;padding-bottom:24px}.hero>.hero-actions{margin-top:0}.status-strip{grid-template-columns:1fr 1fr;margin-bottom:36px}.status-strip>div{padding:12px;border-bottom:1px solid var(--line)}.status-strip>div:nth-child(2){border-right:0}.status-strip>div:nth-last-child(-n+2){border-bottom:0}.rooms-grid{grid-template-columns:1fr}.room-card{min-height:190px}.section-heading{align-items:flex-start;flex-direction:column;gap:10px}.section-heading h2{font-size:23px}.legend{gap:12px;padding:13px}.narrow{margin-top:0}.auth-card{padding:22px 18px}.auth-card h1,.scan-layout h1{font-size:32px}.scanner-actions,.inline-form{flex-direction:column}.admin-room{padding:16px}.admin-room-header{align-items:flex-start}.danger-zone{align-items:flex-start;flex-direction:column}.qr-sheet{padding:22px 16px}.qr-sheet h1{font-size:36px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{body{background:#fff;color:#000}.app-shell>.site-header,.topbar,.toast-root,.print-hide{display:none!important}.app-shell{display:block;background:#fff}.workspace{background:#fff}.page-shell{width:100%;padding:0}.qr-sheet{border:0;box-shadow:none;background:#fff}.qr-sheet img{width:480px}}
/* Navigation state is set server-side; retain all controls in compact sidebar mode. */
.site-header nav a:first-child{background:transparent;color:#aeb0a8;border-left-color:transparent}.site-header nav a.active{background:#22251f;color:#fff;border-left-color:var(--acid)}
@media(max-width:1180px){.site-header nav a:not(:first-child){display:grid}}
@media(max-width:640px){.site-header nav a:first-child{border-bottom-color:transparent}.site-header nav a.active{border-bottom-color:var(--acid)}}
/* No fluorescent accents: active controls use a quiet paper-white marker. */
:root{--acid:#d9d6cd}
/* Dashboard: queue state is the first and most compact piece of information. */
.queue-priority{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:16px}.queue-priority h1{margin:6px 0 0;font-size:clamp(30px,3.2vw,42px);font-weight:900;letter-spacing:-.06em;line-height:1.1}.room-card{min-height:190px}.page-shell:has(.queue-priority){padding-top:24px}.queue-priority+.rooms-grid{margin-top:0}@media(max-width:640px){.queue-priority{align-items:flex-start;flex-direction:column;gap:14px}.queue-priority h1{font-size:31px}.queue-priority .hero-actions{width:100%}.queue-priority .button{flex:1}.page-shell:has(.queue-priority){padding-top:20px}}
/* Development console */
.debug-rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.debug-room{padding:19px;border-top:3px solid var(--ink)}.debug-room header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.debug-room h2{margin:7px 0 0;font-size:24px;letter-spacing:-.045em}.debug-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:19px 0 0;border:1px solid var(--line)}.debug-metrics>div{min-width:0;padding:11px;border-right:1px solid var(--line);background:rgba(255,255,255,.18)}.debug-metrics>div:last-child{border-right:0}.debug-metrics dt{margin-bottom:5px;color:var(--muted);font:700 8px/1 var(--mono);letter-spacing:.08em}.debug-metrics dd{margin:0;overflow:hidden;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.debug-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}@media(max-width:900px){.debug-rooms{grid-template-columns:1fr}}@media(max-width:640px){.debug-metrics{grid-template-columns:1fr}.debug-metrics>div{border-right:0;border-bottom:1px solid var(--line)}.debug-metrics>div:last-child{border-bottom:0}.debug-actions .button{flex:1}}
/* Scan confirmation: solid sheet and a clear primary action. */
.modal-card{background:#f6f1e7!important;opacity:1}.register-button{min-width:132px;min-height:52px;padding:0 23px;font-size:12px;font-weight:800}.confirm-body{color:#3f413c;font-size:14px}.confirm-body p{margin:7px 0 0}
/* The compact navigation keeps only the numeric index; labels must not overlap it. */
.site-header nav b{font-size:13px;font-weight:700;letter-spacing:-.02em}@media(max-width:1180px){.site-header nav b{display:none}}
/* Make the public mobile login path unmissable without changing desktop controls. */
@media(max-width:640px){.queue-priority .public-login-cta{min-height:52px;color:#fff;background:var(--signal);border-color:var(--signal);font-size:12px;box-shadow:0 3px 0 #7b1e19}.queue-priority .public-login-cta:hover{background:#94241e;border-color:#94241e}}
/* SHA identity: the supplied mark replaces all legacy ER/queue-desk branding. */
.site-header .brand{display:flex;align-items:center;justify-content:center;height:132px;padding:8px;background:#000}.brand-logo{display:block;width:114px;height:auto}.topbar{justify-content:flex-end}@media(max-width:1180px){.site-header .brand{height:66px;padding:4px}.brand-logo{width:48px}}@media(max-width:640px){.site-header .brand{width:40px;height:40px;padding:0}.brand-logo{width:40px}}
/* Room state labels are primary scanning information. */
.room-card .state-badge{padding:7px 9px;font-size:10px;letter-spacing:.06em}
.room-location{margin-top:5px;color:var(--muted);font-size:12px;font-weight:650;letter-spacing:-.02em;line-height:1.35}
/* Keep mobile navigation below iPhone notches and the Dynamic Island. */
@media(max-width:640px){.site-header{height:calc(57px + env(safe-area-inset-top));padding:calc(8px + env(safe-area-inset-top)) 12px 8px}}
.admin-units{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.admin-unit{padding:13px;background:#e4ded1;border:1px solid var(--line)}.admin-unit-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.admin-unit .value{margin-top:3px;font-size:18px;font-weight:800}.admin-unit .admin-actions{margin-top:11px}@media(max-width:640px){.admin-units{grid-template-columns:1fr}}
.room-card-link{cursor:pointer}.room-card-link:focus-visible{position:relative;z-index:1;outline:3px solid rgba(185,47,39,.55);outline-offset:-3px}.room-timer-link{display:block;margin-top:13px;color:var(--muted);font:700 9px/1 var(--mono);letter-spacing:.07em}.room-card-link:hover .room-timer-link{color:var(--ink)}
/* Dedicated, public room timer pages for on-site displays. */
.room-timer-page{min-height:100vh;background:#10120f;color:#f2eee5}.room-timer-screen{display:flex;flex-direction:column;min-height:100vh;padding:max(22px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left));background:radial-gradient(circle at 50% 45%,#262a23 0,#10120f 57%)}.room-timer-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.timer-back,.timer-fullscreen{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;color:#c8c6bd;background:transparent;border:1px solid #55584f;font:700 10px/1 var(--mono);letter-spacing:.06em}.timer-back:hover,.timer-fullscreen:hover{color:#fff;border-color:#b8b7ad}.timer-fullscreen{cursor:pointer}.room-timer-content{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;width:min(1480px,100%);margin:0 auto;padding:36px 0;text-align:center}.timer-eyebrow{margin:0;color:#bbb9af;font:700 10px/1.2 var(--mono);letter-spacing:.18em}.room-timer-content h1{max-width:100%;margin:15px 0 0;font-size:clamp(38px,6vw,90px);font-weight:900;letter-spacing:-.065em;line-height:1.05}.timer-location{margin:10px 0 0;color:#aaa89f;font-size:clamp(15px,2vw,24px);font-weight:650}.timer-units{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:100%;margin:clamp(34px,7vh,82px) 0 0}.timer-units.single-unit{grid-template-columns:minmax(0,1fr);max-width:1060px}.timer-unit{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:clamp(280px,52vh,620px);padding:28px 18px;border:1px solid #454940;background:rgba(255,255,255,.025)}.timer-unit.active{border-top:5px solid #e2ddd1;background:rgba(255,255,255,.065)}.timer-unit.idle{color:#8e9088}.timer-unit.loading{min-height:240px;color:#aaa89f;font:700 13px/1 var(--mono);letter-spacing:.08em}.timer-unit-label{margin:0 0 clamp(14px,3vh,28px);color:#cac8bf;font:700 clamp(13px,1.6vw,22px)/1.35 var(--sans);letter-spacing:-.03em}.timer-value{font:900 clamp(88px,14vw,260px)/.82 var(--mono);letter-spacing:-.11em}.timer-unit.idle .timer-value{color:#777a71}.timer-unit-state{margin-top:clamp(17px,3vh,30px);color:#b8b6ad;font:700 11px/1 var(--mono);letter-spacing:.12em}.timer-unit.idle .timer-unit-state{color:#777a71}.timer-status{margin:clamp(25px,5vh,52px) 0 0;color:#aaa89f;font:700 11px/1.4 var(--mono);letter-spacing:.08em}@media(max-width:700px){.room-timer-screen{padding:calc(18px + env(safe-area-inset-top)) 17px calc(18px + env(safe-area-inset-bottom))}.room-timer-content{justify-content:flex-start;padding-top:clamp(58px,12vh,95px)}.timer-units{grid-template-columns:1fr;gap:11px;margin-top:46px}.timer-unit{min-height:230px}.timer-value{font-size:clamp(96px,25vw,180px)}.timer-back,.timer-fullscreen{min-height:35px;padding:0 10px;font-size:9px}}@media(max-height:600px) and (min-width:701px){.room-timer-content{padding:12px 0}.timer-units{margin-top:28px}.timer-unit{min-height:230px}.timer-value{font-size:clamp(88px,13vw,180px)}}
.timer-units>a.timer-unit{cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.timer-units>a.timer-unit:hover{border-color:#b8b7ad;background:rgba(255,255,255,.1);transform:translateY(-2px)}.timer-units>a.timer-unit:focus-visible{outline:3px solid #e2ddd1;outline-offset:3px}
.invalidated-log{color:#8b3b36!important;background:#f1d9d3}.invalidated-tag{display:inline-block;margin-left:8px;padding:3px 5px;color:#7e312b;border:1px solid #b96c63;font:700 9px/1 var(--mono);letter-spacing:.04em}
