:root{--bg:#f6f7f9;--card:#ffffff;--fg:#161a20;--muted:#5f6a78;--line:#e3e7ec;--accent:#2d5bd7;--done:#1f9254;--donebg:#e6f5ec;--ready:#2d5bd7;--readybg:#e8eefc;--locked:#8a94a3;--lockedbg:#eef0f3;--fail:#c0392b;--failbg:#fdecea;--warn:#8a5a00;--warnbg:#fff6e0}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg:#101317;--card:#181c22;--fg:#e7ebf0;--muted:#98a3b2;--line:#272d36;--accent:#7ea2ff;--done:#4ecf8b;--donebg:#12291d;--ready:#7ea2ff;--readybg:#151d31;--locked:#6d7684;--lockedbg:#1b1f26;--fail:#ff7b6b;--failbg:#2b1512;--warn:#f0c674;--warnbg:#2a2413}}:root[data-theme=dark]{--bg:#101317;--card:#181c22;--fg:#e7ebf0;--muted:#98a3b2;--line:#272d36;--accent:#7ea2ff;--done:#4ecf8b;--donebg:#12291d;--ready:#7ea2ff;--readybg:#151d31;--locked:#6d7684;--lockedbg:#1b1f26;--fail:#ff7b6b;--failbg:#2b1512;--warn:#f0c674;--warnbg:#2a2413}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.wrap{max-width:1240px;margin:0 auto;padding:28px 20px 80px}header{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:6px}h1{font-size:22px;margin:0;letter-spacing:-.01em}.sub{color:var(--muted);font-size:13px}.note{margin:0 0 10px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:18px}.filters{margin-top:0;margin-bottom:12px}select,button{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:7px;padding:7px 11px;cursor:pointer}select:hover,button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button+button{margin-left:6px}.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.p-done{background:var(--donebg);color:var(--done)}.p-ready{background:var(--readybg);color:var(--ready)}.p-locked{background:var(--lockedbg);color:var(--locked)}.p-failed{background:var(--failbg);color:var(--fail)}.p-running,.p-review{background:var(--warnbg);color:var(--warn)}.p-skipped{background:var(--lockedbg);color:var(--locked)}.phase{margin-top:26px}.phase h2{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0 0 10px;font-weight:600}.cards{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(268px,1fr))}.card{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:9px;padding:13px 15px;cursor:pointer;transition:.12s;text-align:left;width:100%;font:inherit;color:inherit;display:block}.card:hover{border-color:var(--accent);transform:translateY(-1px)}.card.done{border-left-color:var(--done)}.card.ready{border-left-color:var(--ready)}.card.running,.card.review{border-left-color:var(--warn)}.card.locked{border-left-color:var(--locked);opacity:.62}.card.problem{border-left-color:var(--fail)}.card h3{margin:0 0 3px;font-size:14px;font-weight:600}.card .no{color:var(--muted);font-weight:400}.card .meta{display:flex;justify-content:space-between;align-items:center;margin-top:9px;font-size:11px;color:var(--muted);gap:8px}.checkline{font-size:11px;margin-top:7px;color:var(--muted)}.checkline .bad,.bad{color:var(--fail)}.checkline .bad{font-weight:600}.cardnote{font-size:11px;color:var(--muted);margin-top:6px;font-style:italic}.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-top:20px}.panel h2{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 12px;font-weight:600}.chart{height:320px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line)}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.scroll{overflow-x:auto}tbody tr:hover{background:var(--bg)}.checks{padding:0;margin:0;list-style:none}.checks li{margin:3px 0;font-size:13px}.checks .ok:before{content:"ok ";color:var(--done);font-weight:700}.checks .bad:before{content:"fail ";color:var(--fail);font-weight:700}.stats .stat{display:inline-block;margin-right:26px}.stat b{display:block;font-size:21px;font-weight:650}.stat span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}dialog{border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--fg);max-width:620px;width:92%;padding:22px 24px}dialog::backdrop{background:#00000073}dialog h2{margin:0 0 4px;font-size:18px}dialog h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 8px}dialog .gate{margin-top:12px}.dialog-actions{margin-top:18px;text-align:right}.banner{border-radius:8px;padding:11px 15px;margin-top:16px;font-size:13px}.banner.bad{background:var(--failbg);color:var(--fail)}.banner.good{background:var(--donebg);color:var(--done)}.banner.warn{background:var(--warnbg);color:var(--warn)}code{background:var(--bg);padding:1px 5px;border-radius:3px;font-size:12px}@media (max-width: 640px){.wrap{padding:20px 14px 60px}.cards{grid-template-columns:1fr}.stats .stat{margin-right:18px}}.stamp{font-size:11px;opacity:.75}
