:root{--bg:#f7f7f5;--card:#fff;--ink:#0a0a0a;--dim:#55555e;--line:#e6e6e3;--border-strong:#c9c9c4;--acc:#047857;--acc-soft:#d1fae5;--warn:#92400e;--warn-soft:#fef3c7;--bad:#991b1b;--bad-soft:#fee2e2;--info:#1e40af;--info-soft:#dbeafe}
*{box-sizing:border-box}
html{overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
.mono{font-family:'JetBrains Mono',monospace}
.dim{color:var(--dim)}.tiny{font-size:12px}
h2{font-size:18px;margin:0 0 6px;letter-spacing:-.01em}
h3{font-size:14px;margin:16px 0 6px}
p{margin:0 0 10px;overflow-wrap:break-word}
a{color:var(--acc)}
.top{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:10px 16px}
.brand{display:flex;gap:10px;align-items:center;min-width:0}
.brand small{display:block;color:var(--dim);font-size:11px}
.logo{background:#0a0a0a;color:#34d399;font:700 13px 'JetBrains Mono',monospace;border-radius:8px;padding:6px 7px}
#tabs{display:flex;flex-wrap:wrap;gap:6px}
#tabs button{border:2px solid var(--border-strong);background:#fff;border-radius:8px;padding:5px 10px;font:500 13px Inter,sans-serif;cursor:pointer;color:var(--ink)}
#tabs button.on{background:#0a0a0a;color:#fff;border-color:#0a0a0a}
.note{max-width:1280px;margin:10px auto 0;padding:0 16px;font-size:12px;color:var(--dim)}
main{max-width:1280px;margin:0 auto;padding:12px 16px 30px}
.tab{display:none}.tab.on{display:block}
.card{background:var(--card);border:2px solid var(--border-strong);border-radius:12px}
.pad{padding:14px 16px}
.desk{display:grid;grid-template-columns:330px minmax(0,1fr);gap:14px;align-items:start}
@media (max-width:900px){.desk{grid-template-columns:minmax(0,1fr)}}
.inbox .hd{display:flex;justify-content:space-between;padding:12px 16px 4px}
#inbox{list-style:none;margin:0;padding:0 8px}
#inbox li{border:2px solid transparent;border-radius:10px;padding:9px 10px;margin:0 0 4px;cursor:pointer}
#inbox li:hover{background:#fafaf8}
#inbox li.on{border-color:#0a0a0a;background:#fafaf8}
#inbox li.done{opacity:.55}
#inbox .t{font-weight:600;overflow-wrap:break-word}
#inbox .m{font-size:12px;color:var(--dim);display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:3px}
.pill{font:500 10.5px 'JetBrains Mono',monospace;padding:2px 6px;border-radius:5px;white-space:nowrap;display:inline-block}
.p0{background:var(--bad-soft);color:var(--bad)}.p1{background:var(--warn-soft);color:var(--warn)}.p2{background:var(--info-soft);color:var(--info)}.p3{background:#f1f1ef;color:#3f3f46}.ok{background:var(--acc-soft);color:var(--acc)}
.case{min-height:420px}
.case .hd{padding:14px 16px;border-bottom:1px solid var(--line)}
.case .hd h2{overflow-wrap:break-word}
.msg{background:#fafaf8;border:2px solid var(--line);border-radius:10px;padding:10px 12px;white-space:pre-wrap;overflow-wrap:break-word}
.steps{padding:6px 16px 16px}
.step{border-left:3px solid var(--line);padding:4px 0 6px 14px;margin:12px 0}
.step.on{border-color:#0a0a0a}.step.ok{border-color:var(--acc)}.step.locked{opacity:.5;pointer-events:none}
.step h3{margin:0 0 6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:end;margin:10px 0}
.row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dim)}
.row label.inline{flex-direction:row;align-items:center;gap:6px;color:var(--ink);font-size:13px}
.grow{flex:1 1 280px;min-width:0}
.ctl{border:2px solid var(--border-strong);border-radius:8px;padding:7px 9px;font:inherit;background:#fff;color:var(--ink)}
textarea.ctl{width:100%;resize:vertical;font-size:13.5px;line-height:1.5}
select.ctl{padding-right:24px}
.btn{border:2px solid #0a0a0a;background:#0a0a0a;color:#fff;border-radius:8px;padding:7px 12px;font:600 13px Inter,sans-serif;cursor:pointer}
.btn.ghost{background:#fff;color:#0a0a0a;border-color:var(--border-strong)}
.btn.sm{padding:4px 9px;font-size:12px}
.btn.bad{background:var(--bad);border-color:var(--bad)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.chip{border:2px solid var(--border-strong);background:#fff;border-radius:999px;padding:2px 9px;font:500 12px Inter,sans-serif;cursor:pointer}
.checks{list-style:none;padding:0;margin:6px 0}
.checks li{display:flex;gap:8px;align-items:flex-start;padding:4px 0}
.find{border:2px solid var(--line);border-radius:10px;padding:8px 10px;margin:6px 0;overflow-wrap:break-word}
.find.block{border-color:#fca5a5;background:#fff7f7}.find.warn{border-color:#fcd34d;background:#fffbeb}.find.info{border-color:#bfdbfe;background:#f8fbff}
.find q{display:block;font-size:12px;color:var(--dim);margin-top:3px}
.verdict{font-weight:600;padding:8px 10px;border-radius:8px;margin:8px 0}
.verdict.block{background:var(--bad-soft);color:var(--bad)}.verdict.fix{background:var(--warn-soft);color:var(--warn)}.verdict.send{background:var(--acc-soft);color:var(--acc)}
.kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 12px;font-size:13px}
.kv dt{color:var(--dim)}.kv dd{margin:0;overflow-wrap:break-word}
@media (max-width:560px){.kv{grid-template-columns:minmax(0,1fr)}.kv dt{margin-top:6px}}
.tbl{overflow:auto;border:2px solid var(--border-strong);border-radius:10px;margin:10px 0;max-height:520px}
table{border-collapse:collapse;width:100%;min-width:640px;table-layout:fixed;font-size:13px}
th{position:sticky;top:0;background:#fafaf8;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--dim);padding:8px 10px;word-break:keep-all;box-shadow:inset 0 -1px 0 var(--line);z-index:2}
td{padding:8px 10px;border-top:1px solid var(--line);vertical-align:top;overflow-wrap:break-word}
th:first-child,td:first-child{position:sticky;left:0;background:#fff;z-index:1;box-shadow:2px 0 4px -2px rgba(0,0,0,.12)}
th:first-child{z-index:3;background:#fafaf8}
.prose{max-width:none}
.prose li{margin:4px 0}
.foot{max-width:1280px;margin:0 auto;padding:10px 16px 30px;font-size:12px;color:var(--dim)}
.spin{display:inline-block;width:12px;height:12px;border:2px solid var(--border-strong);border-top-color:#0a0a0a;border-radius:50%;animation:s .8s linear infinite;vertical-align:-2px}
@keyframes s{to{transform:rotate(360deg)}}
.ok-t{color:var(--acc)}.bad-t{color:var(--bad)}.warn-t{color:var(--warn)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:#0a0a0a;color:#fff;padding:8px 14px;border-radius:8px;font-size:13px;z-index:50}
.h1{font-size:15px;margin:0;font-weight:700}
input[type=checkbox]{width:20px;height:20px;accent-color:#0a0a0a;flex:none}
.checks li label{padding:2px 0}
@media (max-width:560px){#reset{padding:10px 14px}.foot a{display:inline-block;padding:12px 0}}
