:root{
  --bg:#f3f5f1; --surface:#ffffff; --ink:#132a22; --muted:#5d6e66; --line:#dde4de; --chip:#e4ece6;
  --accent:#0f5a44; --accent-ink:#ffffff; --pepper:#d9661f; --ok:#1e7a4c; --warn:#b5650d; --bad:#b33a2b;
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --body:"Figtree",ui-sans-serif,system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0e1714; --surface:#16231e; --ink:#e6eee9; --muted:#93a59c; --line:#26372f; --chip:#22342c;
  --accent:#3fb489; --accent-ink:#06140f; --pepper:#f08a42; --ok:#4cc184; --warn:#e5a14b; --bad:#ef7564;
  color-scheme:dark}}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--ink);font:15px/1.45 var(--body);
  padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(16px,env(safe-area-inset-left))}
#app{max-width:880px;margin:0 auto;padding-block:16px 96px}
.loading{color:var(--muted);text-align:center;margin-top:30vh}
h1{font:800 24px/1.15 var(--display);margin:0}
h2{font:800 19px var(--display);margin:18px 0 10px}
.lbl{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)} .small{font-size:13px}
.top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.clock{font:500 22px var(--mono);font-variant-numeric:tabular-nums;color:var(--accent)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px}
.stack{display:grid;gap:10px}
.row{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.row .grow{flex:1;min-width:160px}
.n{font-weight:600}
.t{font:500 15px var(--mono);font-variant-numeric:tabular-nums}
.pill{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:999px;border:1px solid currentColor}
.ok{color:var(--ok)} .warn{color:var(--warn)} .bad{color:var(--bad)}
.btn{font:600 15px var(--body);padding:11px 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.pepper{background:var(--pepper);color:#fff;border-color:var(--pepper)}
.btn.sm{font-size:13px;padding:7px 10px}
.btn:disabled{opacity:.5;cursor:default}
.link{background:none;border:0;color:var(--accent);font:600 14px var(--body);cursor:pointer;padding:4px;text-decoration:underline}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--pepper);outline-offset:2px}
form{display:grid;gap:10px}
label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
input,select{font:500 16px var(--body);padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);width:100%}
.inline{display:flex;gap:8px;flex-wrap:wrap;align-items:end}
.inline>*{flex:1;min-width:120px}
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin:8px 0 14px}
.tabs button{background:none;border:0;padding:10px 12px;font:600 14px var(--body);color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)}
.sum{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.sum>div{flex:1 1 140px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.sum b{display:block;font:800 22px var(--display)}
.tbl{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th:first-child,td:first-child{text-align:left}
th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
td{font-family:var(--mono);font-variant-numeric:tabular-nums}
td:first-child{font-family:var(--body);font-weight:600}
tr:last-child td{border-bottom:0}
.bud{display:grid;gap:8px;border-left:4px solid var(--ok)}
.bud.warnb{border-left-color:var(--warn)} .bud.badb{border-left-color:var(--bad)}
.bar{height:10px;border-radius:999px;background:var(--chip);overflow:hidden}
.bar span{display:block;height:100%;background:var(--ok)}
.warnb .bar span{background:var(--warn)} .badb .bar span{background:var(--bad)}
.thumb{width:44px;height:44px;border-radius:10px;object-fit:cover;background:var(--chip);display:grid;place-items:center;font:800 16px var(--display);color:var(--muted);flex:none}
.code{font:500 40px var(--mono);letter-spacing:.2em;text-align:center;padding:12px;background:var(--chip);border-radius:12px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:999px;font-weight:600;font-size:14px;max-width:90%;text-align:center;z-index:9}
.err{color:var(--bad);font-weight:600;font-size:14px}

/* Kiosk */
.kiosk{max-width:560px;margin:0 auto}
.dots{display:flex;gap:14px;justify-content:center;margin:8px 0 16px}
.dots span{width:16px;height:16px;border-radius:50%;border:2px solid var(--muted)}
.dots span.on{background:var(--accent);border-color:var(--accent)}
.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pad button{font:500 28px var(--mono);padding:18px 0;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer}
.pad button:active{background:var(--line)}
.who{text-align:center;display:grid;gap:12px}
.who .nm{font:800 30px var(--display)}
.who .acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.who .acts .full{grid-column:1/-1}
.who .btn{font-size:18px;padding:18px 12px}
video.cam{width:180px;height:180px;object-fit:cover;border-radius:16px;background:var(--chip);margin:0 auto;transform:scaleX(-1)}
.done{font:800 26px var(--display);text-align:center;margin:30px 0 8px}
