:root{--ink:#111111;--muted:#3d3d3d;--line:#111111;--ground:#ffffff;--admit:#e3f3e8;--pending:#fff6d6;--refuse:#fbe4e2;--cannot:#e6ecfa}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font:18px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}main{max-width:40rem;margin:0 auto;padding:.75rem 1rem 3rem}a{color:var(--ink);text-underline-offset:3px;font-weight:700}.status{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--ground);border-bottom:3px solid var(--line)}.status p{margin:0;padding:.5rem 1rem;font-weight:800}.status .offline{background:#111;color:#fff;font-size:1.1rem}.status .waiting{background:var(--pending);border-bottom:2px dashed var(--line)}.status .attention{background:var(--refuse);border-bottom:2px solid var(--line)}.bar{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding:0 1rem}.bar .who,.bar a{min-height:44px;min-width:44px;display:inline-flex;align-items:center}.bar .build{margin-left:auto;font-size:.8rem;color:var(--muted)}h1{font-size:1.6rem;line-height:1.2;margin:.5rem 0}h2{font-size:1.15rem;margin:0 0 .5rem}.panel{border:3px solid var(--line);border-radius:10px;padding:1rem;margin:1rem 0}.inputs{display:grid;grid-gap:1rem;gap:1rem}.camera video{width:100%;aspect-ratio:1/1;object-fit:cover;background:#222;border-radius:6px}.reader-hold{aspect-ratio:1/1;display:flex;flex-direction:column;justify-content:center}.hint{color:var(--muted);margin:.4rem 0 0}.problem{border:3px solid var(--line);border-left-width:10px;background:var(--refuse);padding:.75rem;margin-top:1rem}form{grid-gap:.9rem;gap:.9rem}form,label{display:grid}label{grid-gap:.3rem;gap:.3rem;font-weight:700}input{font:inherit;font-size:1.4rem;padding:.4rem .7rem;border:3px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}button,input{min-height:52px}button{font:inherit;font-weight:800;min-width:44px;padding:.5rem 1.2rem;border:3px solid var(--line);border-radius:8px;background:var(--ink);color:#fff;cursor:pointer}button.secondary{background:#fff;color:var(--ink)}button:disabled{opacity:.55;cursor:not-allowed}:focus-visible{outline:4px solid #1a3a8f;outline-offset:2px}.decision{text-align:center;border-radius:12px;padding:1.25rem 1rem;margin:1rem 0 .5rem;border-width:10px;color:var(--ink)}.decision svg{display:block;margin:0 auto .5rem}.decision .word{font-size:2.2rem;font-weight:900;letter-spacing:.02em;margin:.25rem 0 .75rem}.decision .say{font-size:1.35rem;font-weight:700;margin:0 0 .5rem}.decision .fact,.decision .next,.decision .note,.decision .route{font-size:1.15rem;margin:.4rem 0}.decision[data-class=admit]{background:var(--admit);border:10px solid var(--line)}.decision[data-class=admit-pending]{background:var(--pending);border:10px dashed var(--line)}.decision[data-class=refuse]{background:var(--refuse);border-style:solid;border:10px double var(--line)}.decision[data-class=cannot-check]{background:var(--cannot);border:10px dotted var(--line)}.next-guest{width:100%;min-height:60px;font-size:1.3rem;margin-bottom:1rem}ul{padding-left:1.2rem}li{margin:.4rem 0}li[data-attention=true]{background:var(--refuse);padding:.4rem .6rem;list-style:none;border-left:8px solid var(--line)}@media (min-width:40rem){.inputs{grid-template-columns:1fr 1fr}}fieldset.names{border:3px solid var(--line);border-radius:8px;padding:.5rem .75rem;display:grid;grid-gap:.25rem;gap:.25rem}fieldset.names legend{font-weight:800;padding:0 .4rem}label.choice{display:flex;align-items:center;gap:.75rem;min-height:52px;font-size:1.25rem}label.choice input{min-height:28px;width:28px}.attention a,.next a,a.action{display:inline-flex;align-items:center;min-height:44px;min-width:44px}a.action{justify-content:center;margin-top:.5rem;padding:0 1.2rem;border:3px solid var(--line);border-radius:8px;background:var(--ink);color:#fff;text-decoration:none}.status .sent{background:var(--admit);border-bottom:2px solid var(--line)}.decision[data-class=checking]{background:#f1f1f1;border-style:solid;border:10px dotted var(--line)}.inputs.typed-first{grid-template-columns:1fr}