:root{font-family:Arial,Helvetica,sans-serif;color:#20242c;background:#f5f6f8;font-synthesis:none;--green:#2456d8;--border:#dce0e7;--muted:#636b7a}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,summary{cursor:pointer}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #789aff;outline-offset:3px}
.topbar{height:90px;background:#12151b;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1080px)/2))}.brand{font-size:35px;line-height:.8;letter-spacing:-2px;font-weight:900;color:white;text-decoration:none}.brand span{display:block;font-size:8px;letter-spacing:2px;margin-top:9px}.event-label{font-size:12px;letter-spacing:2px}.event-label span{color:#a4afc3;display:block;text-align:right;margin-top:5px;font-size:10px}
main{max-width:1000px;margin:auto;padding:54px 28px 60px;min-height:calc(100svh - 160px)}h1{font-size:48px;font-weight:500;letter-spacing:-2px;line-height:1.1;margin:16px 0 22px}h2{font-size:23px;letter-spacing:-.7px;font-weight:500;margin:0 0 28px}p{line-height:1.6}.eyeline{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--muted)}.login{display:grid;grid-template-columns:1fr 1fr;gap:88px;align-items:center;padding:40px 0}.intro>p:last-child{font-size:15px;color:var(--muted);margin-top:28px}.login-form{padding:32px;background:#fff;border:1px solid var(--border);border-radius:12px}
label{display:block;font-size:13px;font-weight:600;margin:20px 0 9px}input,select,textarea{width:100%;border:1px solid #cbd1dc;border-radius:7px;padding:13px 14px;min-height:48px;background:#fff;color:#20242c;font-size:16px}textarea{resize:vertical}.primary,.secondary{border-radius:7px;padding:15px 18px;font-size:14px;font-weight:600;border:1px solid var(--green);min-height:50px}.primary{background:var(--green);color:#fff}.primary:hover{background:#1c44b0}.secondary{background:#fff;color:var(--green)}.login-form .primary{width:100%;margin-top:25px;display:flex;justify-content:space-between;align-items:center}.hint{font-size:12px;color:var(--muted);line-height:1.6;margin:16px 0 0}.text-button{border:0;background:none;color:var(--muted);padding:12px;font-size:13px;text-decoration:underline}
#workspace{max-width:560px;margin:auto}.workspace-heading{display:flex;align-items:center;justify-content:space-between}.workspace-heading h1{font-size:35px;margin:8px 0 0;letter-spacing:-1.1px}.operator-line{font-size:12px;color:var(--muted);margin:14px 0 25px}.context-bar{display:grid;grid-template-columns:1fr 1fr;gap:14px}.context-bar label{margin-top:0}.mode-note{font-size:11px;border-left:3px solid #b47c20;background:#fff3db;padding:10px 13px;margin:15px 0 26px}.mode-note.live{background:#edf2ff;border-color:var(--green)}.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:26px}.tabs button{flex:1;border:0;border-bottom:3px solid transparent;background:none;padding:16px 5px;color:var(--muted);font-size:14px}.tabs button[aria-selected=true]{border-bottom-color:var(--green);color:var(--green);font-weight:bold}.camera-box{aspect-ratio:1.45;background:#edf0f5;border:1px solid #d7deea;border-radius:10px;overflow:hidden;display:grid;place-items:center;position:relative}.camera-box video{height:100%;width:100%;position:absolute;object-fit:cover}#camera-placeholder{text-align:center}#camera-placeholder svg{width:76px;height:76px;fill:none;stroke:#2456d8;stroke-width:3}#camera-placeholder p{font-size:14px;margin:16px 0 0}#camera-placeholder span{font-size:11px;color:var(--muted)}#start-camera,#stop-camera{width:100%;margin-top:15px}.manual-qr{margin:19px 0 26px;font-size:12px;color:var(--muted)}.manual-qr label{font-size:12px}.upload-label{margin-top:20px}#qr-file{padding:8px;font-size:12px}.input-row{display:flex;gap:10px}.input-row input{min-width:0;flex:1}.input-row button{flex-shrink:0}.review-link{padding:18px 0;border:0;border-top:1px solid var(--border);width:100%;background:none;color:var(--green);font-size:13px;text-align:left;margin-top:20px}
.person{border:1px solid var(--border);border-radius:10px;background:#fff;padding:22px;margin:18px 0}.person h2{margin:0 0 8px;font-size:21px}.person .assignment{margin:0;color:var(--green);font-size:14px;font-weight:bold}.person .meta{font-size:12px;color:var(--muted);margin:8px 0}.person .availability{font-size:12px;background:#f0f2f6;padding:9px 12px}.person .actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.person .primary{flex:1}.person .text-button{font-size:11px;padding:10px 0}.empty{font-size:14px;color:var(--muted);padding:15px 0}#review-panel{border-top:1px solid var(--border);padding:25px 0}#review-panel h2{margin-bottom:10px}#review-panel p{font-size:13px;color:var(--muted)}#review-form .primary{margin-top:20px}.receipt{padding:25px;background:#edf2ff;border:1px solid #b9c9ee;border-radius:10px;margin-top:25px}.receipt.review,.receipt.duplicate{background:#b42318;color:#fff;border-color:#b42318}.receipt h2{margin-bottom:12px}.receipt .time{font-size:42px;letter-spacing:-1px;margin:0}.receipt p{font-size:13px;margin:8px 0}.receipt button{margin-top:15px;background:#fff}
.status{max-width:560px;margin:22px auto 0;padding:15px;border-radius:7px;background:#eef1f7;font-size:13px;line-height:1.5}.status.error{background:#b42318;color:#fff}#retry-panel{max-width:560px;margin:15px auto;font-size:13px;border-left:3px solid #b47c20;padding-left:18px}footer{max-width:1080px;margin:auto;border-top:1px solid var(--border);padding:25px 28px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:var(--muted)}
@media(max-width:700px){.topbar{height:78px;padding:0 23px}main{padding:30px 22px 40px}.login{grid-template-columns:1fr;gap:30px;padding:3px 0}.login h1{font-size:40px;margin:14px 0}.intro>p:last-child{margin:20px 0 0;font-size:14px}.login-form{padding:24px}.login-form h2{font-size:22px;margin-bottom:24px}.workspace-heading h1{font-size:29px}.context-bar{gap:10px}.context-bar select{font-size:14px;padding-left:9px}footer{font-size:8px;padding:22px}.person{padding:19px}.input-row button{padding:12px}.camera-box{aspect-ratio:1.18}}
.qr-confirmation{position:fixed;z-index:20;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 24px);max-width:560px;max-height:calc(100dvh - 24px);display:flex;flex-direction:column;background:#fff;border:2px solid var(--green);border-radius:12px;padding:20px;box-shadow:0 8px 48px #0a102430}.qr-confirm-summary{overflow:auto;min-height:0}.qr-confirm-summary h2{font-size:23px;line-height:1.2;margin:8px 0;overflow-wrap:anywhere}.qr-confirm-summary p{font-size:13px;line-height:1.45;margin:8px 0;overflow-wrap:anywhere}.qr-confirm-summary .eyeline{font-size:11px}.qr-confirm-actions{display:flex;gap:8px;align-items:center;flex-shrink:0;margin-top:12px}.qr-confirm-actions .primary{flex:1;min-height:56px}.qr-confirm-actions .text-button{max-width:115px}#qr-confirm-status{color:var(--green);font-weight:600}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s}.receipt{animation:appear .2s ease-out}@keyframes appear{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}}

/* Fast event check-in: keep camera, confirmation and next-person actions within reach. */
.checkin-page main{padding-top:24px}.checkin-page .topbar{height:68px}.checkin-page .workspace-heading h1{font-size:28px}.checkin-page .operator-line{margin:10px 0 16px}.event-settings{border:1px solid var(--border);border-radius:9px;background:#fff;padding:12px 14px}.event-settings summary{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;cursor:pointer}.event-settings summary span{font-size:12px;color:var(--green);text-decoration:underline}.event-settings .context-bar{margin-top:18px}.checkin-page #mode-note{font-size:12px;margin:10px 0 12px;padding:8px 11px}.checkin-page .tabs{position:sticky;top:0;z-index:5;background:#f5f6f8;margin-bottom:14px}.checkin-page .tabs button{font-size:15px;min-height:52px;padding:14px 5px}.checkin-page .camera-box{height:clamp(160px,29svh,250px);aspect-ratio:auto}.checkin-page #camera-placeholder svg{width:54px;height:54px}.checkin-page #camera-placeholder p{margin:10px 0 0}.checkin-page #scan-help{margin-top:8px}.checkin-page #start-camera{margin-top:10px;min-height:54px;font-size:17px}.checkin-page #scan-fallback{width:100%;margin-top:8px;min-height:52px;font-size:15px}.checkin-page #stop-camera{width:auto;margin-top:8px}.checkin-page .manual-qr{margin:18px 0;color:var(--muted)}.checkin-page #search-form label{margin-top:4px}.checkin-page #search-form .hint{margin-top:10px}.checkin-page .person{padding:16px;margin:12px 0}.checkin-page .person h2{margin-bottom:8px}.checkin-page .person .availability{margin:10px 0}.checkin-page .person .primary{font-size:16px;min-height:52px}.checkin-page .qr-confirm-actions{display:grid;grid-template-columns:1fr 1fr}.checkin-page #qr-confirm{grid-column:1/-1;min-height:58px;font-size:19px}.checkin-page #qr-confirm:disabled{display:none}.checkin-page #qr-search{min-height:48px}.checkin-page #qr-dismiss{max-width:none}.checkin-page #receipt{animation:none;position:fixed;z-index:21;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 24px);max-width:560px;max-height:calc(100dvh - 24px);overflow:auto;margin:0;box-shadow:0 8px 48px #0a102430;padding:20px}.checkin-page #receipt h2{font-size:24px}.checkin-page #receipt button{display:block;width:100%;position:sticky;bottom:0;min-height:58px;font-size:19px;border:1px solid var(--green);background:var(--green);color:#fff;border-radius:8px}.checkin-page #status:not([hidden]){position:sticky;bottom:8px;z-index:10;border:1px solid var(--border);margin-top:12px}.checkin-page #retry-panel{position:sticky;bottom:8px;z-index:22;background:#fff3db;padding:16px;border:1px solid #dcb56d;border-radius:9px}.checkin-page #retry-panel button{width:100%;min-height:56px;font-size:17px}@media(max-width:520px){.checkin-page main{padding:18px 16px 36px}.checkin-page .topbar{height:60px}.checkin-page .brand{font-size:29px}.checkin-page .workspace-heading h1{font-size:26px}.checkin-page .operator-line{margin:8px 0 12px}.checkin-page .qr-confirmation{padding:16px}.checkin-page .qr-confirm-summary h2{font-size:25px}}

/* Original MOD identity, kept compact for the mobile check-in. */
.checkin-page .topbar{height:76px;background:#fff;color:#20242c;border-bottom:1px solid var(--border);gap:16px}.checkin-page .brand{position:relative;display:block;flex:none;width:146px;height:60px;overflow:hidden}.checkin-page .brand img{position:absolute;top:50%;left:50%;width:208px;max-width:none;height:auto;transform:translate(-50%,-50%)}.checkin-page .event-label{color:var(--green);font-size:11px;letter-spacing:1.5px;white-space:nowrap}.checkin-page .event-label span{color:var(--muted)}

/* Theme switch stays available before and after login. */
.header-tools{display:flex;align-items:center;gap:20px}.theme-toggle{display:flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:10px;border:1px solid var(--border);border-radius:9px;background:transparent;color:inherit;font-size:12px}.theme-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}.theme-toggle:hover{background:#eef1f7}
@media(max-width:700px){.checkin-page .topbar{padding:0 16px;gap:8px}.checkin-page .brand{width:128px;height:54px}.checkin-page .brand img{width:182px}.header-tools{gap:12px}.theme-toggle span{display:none}.checkin-page .event-label{font-size:10px;letter-spacing:1px}}
:root[data-theme=dark]{color-scheme:dark;color:#f4f5f8;background:#101217;--green:#9bb8ff;--border:#343944;--muted:#acb3c0}
[data-theme=dark] .checkin-page .topbar{background:#101217;color:#f4f5f8}
[data-theme=dark] .brand img{filter:invert(1);mix-blend-mode:screen}
[data-theme=dark] .login-form,[data-theme=dark] .event-settings,[data-theme=dark] .person,[data-theme=dark] .qr-confirmation{background:#1b1f27}
[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:#141820;color:#f4f5f8;border-color:#454d5d}
[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:#929cab}
[data-theme=dark] .secondary{background:#1b1f27}
[data-theme=dark] .primary,[data-theme=dark] .checkin-page #receipt button{background:#9bb8ff;color:#101b35;border-color:#9bb8ff}
[data-theme=dark] .primary:hover,[data-theme=dark] .checkin-page #receipt button:hover{background:#bfd0ff}
[data-theme=dark] .checkin-page .tabs{background:#101217}
[data-theme=dark] .camera-box{background:#171c25;border-color:var(--border)}
[data-theme=dark] #camera-placeholder svg{stroke:#9bb8ff}
[data-theme=dark] .person .availability,[data-theme=dark] .status{background:#262d3a}
[data-theme=dark] .mode-note,[data-theme=dark] .checkin-page #retry-panel{background:#3b301d;color:#ffe1a8;border-color:#b48b49}
[data-theme=dark] .mode-note.live,[data-theme=dark] .receipt{background:#182744;color:#f0f4ff;border-color:#3e5e96}
[data-theme=dark] .status.error{background:#b42318;color:#fff}
[data-theme=dark] .theme-toggle:hover{background:#262d3a}

.theme-toggle .theme-sun{display:none}[data-theme=dark] .theme-toggle .theme-moon{display:none}[data-theme=dark] .theme-toggle .theme-sun{display:block}
.qr-confirm-summary .eligibility-warning,.person .availability.eligibility-warning{font-size:20px;font-weight:700;line-height:1.35;background:#b42318;color:#fff;padding:12px;border-radius:8px}.checkin-page .qr-confirmation.needs-review{border-color:#b42318}.checkin-page .needs-review #qr-dismiss{grid-column:1/-1;grid-row:1;min-height:56px}.checkin-page .needs-review #qr-confirm{font-size:15px;min-height:48px}.person .actions .secondary{font-size:14px}.checkin-page #review-form button[type=submit]{margin-top:20px}[data-theme=dark] .qr-confirm-summary .eligibility-warning,[data-theme=dark] .person .availability.eligibility-warning,[data-theme=dark] .receipt.review,[data-theme=dark] .receipt.duplicate{background:#b42318;color:#fff;border-color:#b42318}
.checkin-page #qr-change-day{grid-column:1/-1;min-height:48px}.qr-change-confirmation{border-top:1px solid var(--border);padding-top:12px;margin-top:12px;flex-shrink:0}.qr-change-confirmation h3{margin:0 0 8px;font-size:20px}.qr-change-confirmation p{font-size:14px;margin:0 0 12px}.qr-change-confirmation>div{display:flex;gap:8px;flex-wrap:wrap}.qr-change-confirmation button{min-height:50px}.qr-change-confirmation .primary{flex:1}

/* Clear mobile hierarchy: two large entry methods, quiet chrome, one strong action. */
.checkin-page{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
.checkin-page .primary,.checkin-page .secondary{border-radius:12px;font-size:16px;font-weight:650;min-height:54px;padding:15px 18px;letter-spacing:-.2px}
.checkin-page .primary{box-shadow:0 2px 3px #10182714}
.checkin-page .secondary{border-color:var(--border);color:inherit;background:#fff}
.checkin-page .secondary:hover{background:#eef1f7;border-color:#a8b8d4}
.checkin-page .text-button{text-decoration:none;font-size:14px;min-height:44px}
.checkin-page #logout{border:1px solid var(--border);border-radius:10px;padding:8px 14px}
.checkin-page .event-settings{border-radius:13px;padding:13px 15px}
.checkin-page .event-settings summary span{font-weight:600;text-decoration:none;padding:5px 0}
.checkin-page input,.checkin-page select,.checkin-page textarea{border-radius:10px}
.checkin-page .tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;padding:8px 0 12px;margin-bottom:4px}
.checkin-page .tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:88px;padding:14px 8px;border:1px solid var(--border);border-radius:14px;background:#fff;color:#374052;font-size:17px;line-height:1.15;font-weight:650;letter-spacing:-.3px}
.checkin-page .tabs button svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.checkin-page .tabs button[aria-selected=true]{background:#2456d8;border-color:#2456d8;color:#fff;box-shadow:0 3px 8px #2456d826}
.checkin-page .camera-box{border-radius:16px;border-color:var(--border)}
.checkin-page #camera-placeholder svg{stroke:var(--green)}
.checkin-page #scan-fallback{font-weight:600}
.checkin-page .qr-confirmation,.checkin-page #receipt{border-radius:18px;box-shadow:0 12px 48px #080e2440}
.checkin-page #receipt button{border-radius:12px}
.checkin-page .mode-note{border-radius:0 8px 8px 0}
[data-theme=dark] .checkin-page .primary,[data-theme=dark] .checkin-page #receipt button{background:#3667e7;border-color:#3667e7;color:#fff}
[data-theme=dark] .checkin-page .primary:hover,[data-theme=dark] .checkin-page #receipt button:hover{background:#3c6beb}
[data-theme=dark] .checkin-page .secondary,[data-theme=dark] .checkin-page .tabs button{background:#1b1f27;color:#e3e7ef;border-color:#343944}
[data-theme=dark] .checkin-page .secondary:hover{background:#262d3a}
[data-theme=dark] .checkin-page .tabs button[aria-selected=true]{background:#3667e7;color:#fff;border-color:#638cf5;box-shadow:0 3px 12px #0003}
[data-theme=dark] .checkin-page .event-label{color:#e3e7ef}
@media(max-width:360px){.checkin-page .tabs{gap:8px}.checkin-page .tabs button{font-size:16px;min-height:84px}}

.location-choices{display:grid;gap:8px;margin:12px 0}.location-choices button{text-align:left;white-space:normal;line-height:1.4;height:auto;min-height:48px}

.event-picker{margin:12px 0 18px}.event-picker label{display:block;margin-bottom:6px;font-weight:700}.event-picker select{width:100%;font-size:1.08rem;font-weight:700;min-height:52px}
