:root { --bg:#f6f5f2; --card:#fff; --ink:#1d1d1b; --mute:#6b6a66; --line:#e3e1dc;
        --accent:#2f6b3a; --bad:#b3261e; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#161615; --card:#201f1d; --ink:#eceae5; --mute:#9d9b95;
          --line:#34322f; --accent:#7fbf8a; --bad:#f2968f; }
}
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink);
       font:16px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif; }
main { max-width:28rem; margin:0 auto; padding:24px 16px; }
h1 { font-size:1.35rem; margin:0 0 4px; }
.mute { color:var(--mute); font-size:.92rem; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px;
        padding:16px; margin-top:16px; }
label { display:block; font-size:.9rem; color:var(--mute); margin:12px 0 4px; }
input { width:100%; font:inherit; padding:12px; border:1px solid var(--line);
        border-radius:8px; background:var(--bg); color:var(--ink); }
button { width:100%; font:inherit; font-weight:600; margin-top:16px; padding:12px;
         border:0; border-radius:8px; background:var(--accent); color:#fff; cursor:pointer; }
button.ghost { background:transparent; color:var(--mute); border:1px solid var(--line); }
button:disabled { opacity:.6; }
.err { color:var(--bad); min-height:1.4em; margin-top:10px; font-size:.92rem; }
select { width:100%; font:inherit; padding:12px; border:1px solid var(--line);
         border-radius:8px; background:var(--bg); color:var(--ink); }
[hidden] { display:none !important; }
.card .card { margin-top:12px; }
a.btn { display:block; text-align:center; text-decoration:none; font-weight:600;
        margin-top:16px; padding:12px; border-radius:8px; background:var(--accent); color:#fff; }
a.btn.ghost { background:transparent; color:var(--ink); border:1px solid var(--line); }
.row { display:flex; gap:8px; }
.row > * { flex:1; }
.chip { display:inline-block; font-size:.8rem; padding:2px 8px; border-radius:99px;
        border:1px solid var(--line); color:var(--mute); }
.chip.ok { color:var(--accent); border-color:var(--accent); }
.chip.bad { color:var(--bad); border-color:var(--bad); }
.list-item { display:block; color:inherit; text-decoration:none; }
.list-item strong { display:block; }
h2 { font-size:1rem; margin:20px 0 0; color:var(--mute); font-weight:600; }
.item { padding:12px 0; border-top:1px solid var(--line); }
.item.missing { background:color-mix(in srgb, var(--bad) 10%, transparent); margin:0 -16px; padding:12px 16px; }
.item .norm { color:var(--mute); font-size:.88rem; }
.marks { display:flex; gap:8px; margin-top:8px; }
.marks button { margin:0; padding:10px; background:transparent; color:var(--ink); border:1px solid var(--line); }
.marks button[aria-pressed=true].yes { background:var(--accent); color:#fff; border-color:var(--accent); }
.marks button[aria-pressed=true].no { background:var(--bad); color:#fff; border-color:var(--bad); }
.marks button[aria-pressed=true].skip { background:var(--mute); color:var(--bg); border-color:var(--mute); }
.item button.shot { margin-top:8px; padding:8px; background:transparent; color:var(--accent); border:1px dashed var(--accent); }
.item img { display:block; max-height:120px; border-radius:8px; margin-top:8px; }
.bar { position:sticky; top:0; z-index:2; background:var(--bg); padding:8px 0; border-bottom:1px solid var(--line); }
.bar .prog { height:6px; border-radius:3px; background:var(--line); overflow:hidden; margin-top:6px; }
.bar .prog i { display:block; height:100%; width:0; background:var(--accent); }
textarea { width:100%; min-height:5rem; font:inherit; padding:12px; border:1px solid var(--line);
           border-radius:8px; background:var(--bg); color:var(--ink); }
#cam { position:fixed; inset:0; background:#000; z-index:10; display:flex; flex-direction:column; }
#cam video { flex:1; min-height:0; width:100%; object-fit:cover; }
#cam .row { padding:16px; background:#000; }
main.wide { max-width:40rem; }
.big { font-size:2rem; font-weight:700; margin:4px 0; }
.big.neg { color:var(--bad); }
.line { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-top:1px solid var(--line); }
.line .pts { font-weight:600; white-space:nowrap; }
.line .pts.neg { color:var(--bad); }
.line .pts.pos { color:var(--accent); }
.line small { display:block; color:var(--mute); }
button.small { width:auto; margin:6px 6px 0 0; padding:6px 12px; font-weight:500; }
input + button, textarea + button { margin-top:8px; }
.card select { margin-top:6px; }
.fail { padding:8px 0; border-top:1px dashed var(--line); }
.card.unread { border-color: var(--accent); }
.card.unread strong::before { content:'● '; color:var(--accent); }
#badge:not(:empty) { background:var(--bad); color:#fff; border-radius:99px; padding:1px 8px; margin-left:6px; font-size:.85rem; }
