:root{
  --bg:#f6f7f4;--paper:#ffffff;--fg:#17211b;--muted:#5e6a62;--line:#d6dbd4;
  --accent:#1f6f4a;--accent-ink:#ffffff;--soft:#e6f0ea;--good:#1f6f4a;--bad:#a63a2b;--warn:#8a6d1f;--warnbg:#fbf3dc;
  --font:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:16px;line-height:1.5;padding:24px 16px 48px}
.wrap{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
.wide{max-width:1100px}
h1{font-size:1.5rem;font-weight:600;margin:0;letter-spacing:-.01em}
h2{font-size:1.15rem;font-weight:600;margin:0;line-height:1.4}
h3{font-size:.95rem;font-weight:600;margin:16px 0 6px}
p{margin:0}
.eyebrow{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.card{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:24px;display:flex;flex-direction:column;gap:16px}
label{display:block;font-size:.875rem;font-weight:500;color:var(--muted);margin-bottom:6px}
input[type=text],input[type=password],input[type=email],textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg)}
input:focus,textarea:focus,button:focus-visible,.opt:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.fields{grid-template-columns:1fr}}
button{font:inherit;font-weight:500;padding:10px 18px;border-radius:6px;border:1px solid var(--line);background:var(--paper);color:var(--fg);cursor:pointer}
button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
button.danger{color:var(--bad)}
button[disabled]{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between;align-items:center}
.rail{display:flex;gap:4px}
.rail i{flex:1;height:4px;border-radius:2px;background:var(--line)}
.rail i.done{background:var(--accent)}
.opts{display:flex;flex-direction:column;gap:8px}
.opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:6px;cursor:pointer;background:var(--bg)}
.opt:has(input:checked){border-color:var(--accent);background:var(--soft)}
.opt input{margin-top:4px;accent-color:var(--accent)}
.amt{font-family:var(--mono);font-variant-numeric:tabular-nums}
.meta{font-family:var(--mono);font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}
.qclock{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:500}
.qclock.low{color:var(--bad)}
.note{font-size:.9rem;color:var(--muted)}
.warn{background:var(--warnbg);color:var(--warn);border:1px solid currentColor;border-radius:6px;padding:10px 12px;font-size:.9rem}
.camrow{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
video#cam{width:160px;height:120px;background:#111;border-radius:6px;object-fit:cover}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:500;color:var(--muted);font-size:.8rem}
td.r,th.r{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono)}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--soft)}
.pill{display:inline-block;font-family:var(--mono);font-size:.72rem;padding:2px 8px;border-radius:999px;border:1px solid currentColor}
.ok{color:var(--good)}.no{color:var(--bad)}.wn{color:var(--warn)}
.score{font-size:2.5rem;font-weight:600;font-family:var(--mono);font-variant-numeric:tabular-nums;line-height:1}
.secs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.sec{border:1px solid var(--line);border-radius:6px;padding:10px 12px}
.sec b{display:block;font-family:var(--mono);font-size:1.25rem;font-variant-numeric:tabular-nums}
.sec span{font-size:.78rem;color:var(--muted)}
.snaps{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}
.snaps img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;border:1px solid var(--line);cursor:zoom-in}
.snaps img.big{grid-column:1/-1;aspect-ratio:auto;cursor:zoom-out}
ul{margin:0;padding-left:20px}
.quiz-lock{user-select:none;-webkit-user-select:none}
.scroll{overflow-x:auto}
a{color:var(--accent)}
