:root{--green:#0c4b3e;--red:#b5382a;--gold:#f2b84b;--cream:#f4e7ce;--night:#14120f;--blue:#3a6b8f;--success:#1f7a4d;--warning:#a46600;--error:#a52121;--paper:#fffaf0;--ink:#211d18;--muted:#6e665d;--radius:20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--cream);color:var(--ink)}button,input{font:inherit}button,a{touch-action:manipulation}a{color:var(--green)}h1,h2,p{margin-top:0}.hidden{display:none!important}.app-shell,.admin-shell,.legal-shell{width:min(760px,100%);margin:auto;padding:max(18px,env(safe-area-inset-top)) 18px max(28px,env(safe-area-inset-bottom))}.topbar,.display-header,.section-heading,.button-row,.admin-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:800;color:var(--red)}.muted{color:var(--muted)}.panel,.claim-card{background:var(--paper);border:1px solid rgba(20,18,15,.12);border-radius:var(--radius);padding:20px;margin:18px 0;box-shadow:0 10px 30px rgba(20,18,15,.08)}.stack{display:grid;gap:16px}.stack label{display:grid;gap:7px;font-weight:700}.stack input{width:100%;min-height:52px;border:2px solid #bcb2a5;border-radius:12px;padding:10px 12px;background:#fff;color:#111}.stack input:focus-visible,.button:focus-visible,.capture-button:focus-visible,.shutter:focus-visible{outline:4px solid color-mix(in srgb,var(--gold) 70%,white);outline-offset:3px}.button,.capture-button{min-height:48px;border:0;border-radius:14px;padding:12px 18px;font-weight:800;cursor:pointer}.button.primary,.capture-button{background:var(--green);color:white}.button.secondary{background:#e9dfce;color:var(--night)}.button.small{min-height:40px;padding:8px 12px}.capture-actions{display:grid;gap:12px;margin:22px 0}.capture-button{min-height:clamp(160px,38vh,340px);font-size:clamp(1.7rem,6vw,3.2rem);padding:28px}.file-button{text-align:center;position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.network-pill{border-radius:999px;background:#e9dfce;padding:8px 12px;font-weight:700}.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.status-grid div{background:var(--night);color:white;border-radius:16px;text-align:center;padding:14px 8px}.status-grid strong,.status-grid span{display:block}.status-grid strong{font-size:1.7rem}.status-grid span{font-size:.75rem;color:#ddd}.camera-panel video,#photo-preview{width:100%;max-height:65vh;object-fit:contain;border-radius:14px;background:#000}.camera-controls{display:flex;justify-content:center;align-items:center;gap:30px;margin-top:16px}.shutter{width:72px;height:72px;border-radius:50%;border:8px solid white;background:var(--red);box-shadow:0 0 0 3px var(--night)}.qr-stage{text-align:center;background:var(--night);color:white;border-radius:28px;padding:26px;margin:20px 0}.qr-code{width:min(78vw,360px);aspect-ratio:1;background:white;margin:0 auto 18px;padding:16px;border-radius:12px}.qr-code svg,.qr-code canvas{width:100%;height:100%}.capture-list{display:grid;gap:10px}.capture-card{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px;border:1px solid #ddd;border-radius:14px}.toast{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--night);color:white;border-radius:12px;padding:12px 18px;opacity:0;pointer-events:none;transition:opacity .2s}.toast.show{opacity:1}.claim-shell{min-height:100vh;background:var(--green);padding:clamp(22px,6vw,70px) 18px;color:white}.claim-hero,.claim-card{width:min(680px,100%);margin-left:auto;margin-right:auto}.claim-hero{text-align:center}.claim-hero h1{font-size:clamp(2.4rem,9vw,5rem);line-height:.95}.wheel-mark{width:84px;height:84px;margin:0 auto 20px;border:3px solid var(--gold);border-radius:50%;display:grid;place-items:center;font-size:2.5rem;color:var(--gold)}.claim-card{color:var(--ink)}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice input{position:absolute;opacity:0}.choice span{display:grid;place-items:center;min-height:88px;border:2px solid #bbb;border-radius:14px;text-align:center;font-weight:800}.choice input:checked+span{border-color:var(--green);background:#dfece6}.checkbox{grid-template-columns:auto 1fr!important;align-items:start}.checkbox input{width:24px!important;min-height:24px!important}.draft-warning{border-left:4px solid var(--warning);padding:8px 12px;background:#fff2d8;font-size:.9rem}.display-shell{min-height:100vh;background:var(--night);color:white;padding:24px}.display-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,minmax(0,1fr));gap:14px;height:calc(100vh - 130px)}.display-card{display:grid;grid-template-columns:minmax(100px,45%) 1fr;align-items:center;gap:12px;background:var(--paper);color:var(--ink);padding:12px;border-radius:18px}.display-qr{aspect-ratio:1;background:white}.offline-banner{background:var(--warning);padding:10px;text-align:center;border-radius:10px}.admin-actions{justify-content:flex-start}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:10px;border-bottom:1px solid #ddd;white-space:nowrap}.legal-shell{padding-top:10vh}.legal-shell h1{font-size:clamp(2rem,8vw,4rem)}progress{width:100%;height:16px}@media(max-width:620px){.choice-grid{grid-template-columns:1fr}.display-grid{grid-template-columns:1fr}.display-shell{overflow:auto}.display-grid{height:auto}.display-card{min-height:210px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.stack select{width:100%;min-height:52px;border:2px solid #bcb2a5;border-radius:12px;padding:10px 12px;background:#fff;color:#111;font:inherit}.check-list{display:grid;gap:10px;margin:14px 0}.check-row,.notice{border-left:4px solid var(--warning);padding:10px 12px;background:#fff2d8}.check-row.ok{border-color:var(--success);background:#e1f3e8}.admin-settings pre{overflow:auto;padding:14px;border-radius:12px;background:var(--night);color:#fff}.admin-settings details{margin:12px 0}.admin-settings summary{cursor:pointer;font-weight:800}.legal-preview{max-height:320px;overflow:auto;padding:12px;border:1px solid #d8d0c4;border-radius:12px;background:#fff}.toast.error{background:var(--error)}#worker-status{overflow:auto}#operator-pin-once{margin-top:18px}#operator-pin-once-value{display:inline-block;font-size:1.8rem;font-weight:900;letter-spacing:.18em;background:#fff;padding:8px 12px;border-radius:8px}
