:root{--ink:#171511;--ink-soft:#2b261c;--paper:#f5f0e6;--paper-strong:#fffaf0;--gold:#c99a2e;--gold-soft:#f1d38a;--danger:#9e2f20;--muted:#7a715f;--line:#d9c9a5;--event-possession:#245d78;--event-completed:#2f6e42;--event-verified:#805c19;--event-issue:#9e2f20}*{box-sizing:border-box}html,body{min-height:100%;color:var(--paper);background:radial-gradient(circle at 12% 0,#c99a2e2e,#0000 28rem),linear-gradient(135deg,#171511 0%,#262014 54%,#171511 100%);margin:0;font-family:Georgia,Times New Roman,serif}body{min-width:320px}a{color:inherit}button,input{font:inherit}.shell{min-height:100vh;padding:calc(18px + env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left))}.app-frame{width:min(900px,100%);margin:0 auto}.topbar{border-bottom:1px solid #f1d38a61;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;padding:14px 0;display:flex}.brand{gap:2px;display:grid}.brand strong{color:var(--gold-soft);letter-spacing:.03em;font-size:clamp(1.2rem,3vw,1.75rem)}.brand span,.eyebrow{color:#d8c99f;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:inline-flex}.card{color:var(--ink);border:2px solid var(--gold);background:#fffaf0f5;border-radius:0;padding:clamp(18px,4vw,34px);box-shadow:10px 10px #00000047}.grid{gap:16px;display:grid}.actions{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.button,.link-button{border:2px solid var(--ink);background:var(--ink);min-height:52px;color:var(--paper-strong);cursor:pointer;border-radius:0;justify-content:center;align-items:center;font-weight:700;text-decoration:none;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.button:hover,.link-button:hover{box-shadow:4px 4px 0 var(--gold);transform:translate(-1px,-1px)}.button.secondary,.link-button.secondary{color:var(--ink);background:0 0}.button.danger,.link-button.danger{background:var(--danger)}.text-link{color:var(--gold-soft);cursor:pointer;background:0 0;border:0;font-size:.9rem;text-decoration:underline}.form{gap:16px;display:grid}.field{gap:8px;display:grid}.field label{color:var(--ink-soft);font-weight:700}.field input{border:2px solid var(--ink);width:100%;min-height:54px;color:var(--ink);background:#fffdf7;border-radius:0;padding:0 14px;font-size:1.15rem}.note{color:var(--muted);line-height:1.45}.status-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.status-list li{border-left:5px solid var(--gold);padding:8px 0 8px 12px}.error{border:2px solid var(--danger);color:var(--danger);background:#fff2ee;padding:12px;font-weight:700}.success{color:#174722;background:#edf9ef;border:2px solid #2e6d3d;padding:12px;font-weight:700}.result-grid{gap:4px;margin-top:10px;font-weight:400;display:grid}.panel{border:2px solid var(--line);background:#fffaf0;gap:12px;padding:14px;display:grid}.panel h2{margin:0;font-size:1.05rem}.choice-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.choice-card{border:2px solid var(--ink);cursor:pointer;background:#fffdf7;grid-template-columns:auto 1fr;align-items:center;gap:10px;min-height:54px;padding:10px 12px;font-weight:700;display:grid}.choice-card:has(input:checked){background:var(--gold-soft);box-shadow:3px 3px 0 var(--ink)}.choice-card small{color:var(--muted);margin-top:3px;font-size:.76rem;font-weight:400;line-height:1.25;display:block}.event-choice-grid{grid-template-columns:1fr}.event-choice-card{color:#fff;justify-items:start;width:100%;min-height:64px;padding:14px 16px;font-size:1.1rem;transition:filter .16s cubic-bezier(.22,1,.36,1),transform .16s cubic-bezier(.22,1,.36,1)}.event-choice-card:hover{filter:brightness(1.08)}.event-choice-card:active{transform:translateY(1px)}.event-choice-card:focus-within{outline:3px solid var(--ink);outline-offset:3px}.event-choice-card:has(input:checked){background:var(--event-color);box-shadow:inset 0 0 0 3px #fff}.event-choice-card input{accent-color:#fff;width:20px;height:20px;margin:0}.event-choice-in-possession{--event-color:var(--event-possession);background:var(--event-color)}.event-choice-completed{--event-color:var(--event-completed);background:var(--event-color)}.event-choice-verified{--event-color:var(--event-verified);background:var(--event-color)}.event-choice-issue{--event-color:var(--event-issue);background:var(--event-color)}@media (prefers-reduced-motion:reduce){.event-choice-card{transition:none}}.button:disabled{cursor:wait;opacity:.72}@media (max-width:520px){.topbar{align-items:flex-start}.button,.link-button{width:100%}}.qr-panel{border:2px dashed var(--line);background:#fffdf7;gap:10px;padding:12px;display:grid}.qr-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.scanner-note{color:var(--muted);margin:0;font-weight:700}.scanner-frame{border:2px solid var(--ink);aspect-ratio:4/3;background:#111;position:relative;overflow:hidden}.scanner-frame video{object-fit:cover;width:100%;height:100%;display:block}.scanner-target{aspect-ratio:1;border:3px solid var(--gold-soft);pointer-events:none;width:min(58vw,230px);max-width:72%;transition:border-color .12s,box-shadow .12s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 999px #00000047}.scanner-frame.scanned .scanner-target{border-color:#23b35a;box-shadow:0 0 0 999px #135c2d61,0 0 18px #23b35ad9}.text-danger{color:var(--danger);cursor:pointer;background:0 0;border:0;font-weight:700;text-decoration:underline}.success-actions,.confirm-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.button.compact{min-height:42px;padding:0 14px}.confirm-card{border:2px solid var(--ink);box-shadow:5px 5px 0 var(--gold-soft);background:#fffdf7;gap:14px;padding:16px;display:grid}.confirm-card h2{margin:0;font-size:1.15rem}.confirm-grid{grid-template-columns:minmax(90px,auto) 1fr;align-items:baseline;gap:8px 12px;display:grid}.confirm-grid span{color:var(--muted);font-size:.9rem;font-weight:700}.confirm-grid strong{overflow-wrap:anywhere}.modal-backdrop{z-index:40;padding:calc(18px + env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));background:#0f0d0ab8;place-items:center;display:grid;position:fixed;inset:0}.modal-card{border:2px solid var(--gold);background:var(--paper-strong);width:min(520px,100%);max-height:calc(100vh - 36px);color:var(--ink);gap:16px;padding:clamp(18px,5vw,28px);display:grid;overflow:auto;box-shadow:10px 10px #00000061}.modal-card h2{margin:0;font-size:1.35rem}.modal-copy{color:var(--muted);margin:-6px 0 0;line-height:1.4}.modal-status{margin:0}
