:root{--bg:#f6f7f9;--card:#ffffff;--ink:#16191d;--muted:#6b7280;--line:#e3e6ea;--brand:#0f62fe;--ok:#067647;--warn:#b54708;--err:#b42318;--radius:10px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.wrap{max-width:920px;margin:0 auto;padding:24px 16px 64px}h1{font-size:20px;margin:0 0 4px}h2{font-size:16px;margin:0 0 12px}p.sub{color:var(--muted);margin:0 0 24px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:16px}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1 1 200px}label{display:block;font-weight:500;margin-bottom:4px}.hint{color:var(--muted);font-size:12px;margin-top:4px}input,select{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit}input:focus,select:focus{outline:2px solid var(--brand);outline-offset:-1px}.field{margin-bottom:14px}button{font:inherit;font-weight:500;padding:9px 16px;border-radius:8px;border:1px solid transparent;background:var(--brand);color:#fff;cursor:pointer}button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}button:disabled{opacity:.55;cursor:default}.steps{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.step{padding:6px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--muted);font-size:13px}.step.active{border-color:var(--brand);color:var(--brand);font-weight:500}.step.done{border-color:var(--ok);color:var(--ok)}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.badge,th{font-size:12px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-weight:500}.badge.ok{background:#e7f6ee;color:var(--ok)}.badge.warn{background:#fef3e6;color:var(--warn)}.badge.err{background:#fdeceb;color:var(--err)}.badge.neutral{background:#eef0f3;color:var(--muted)}.alert{padding:12px 14px;border-radius:8px;margin-bottom:14px}.alert.err{background:#fdeceb;color:var(--err)}.alert.ok{background:#e7f6ee;color:var(--ok)}.empty{text-align:center;color:var(--muted);padding:36px 12px}.metrics{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.metric{flex:1 1 140px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.metric .n{font-size:22px;font-weight:600}.metric .l{color:var(--muted);font-size:12px}