:root{--brand:#1f4e79;--brand-soft:#e8eff6;--ink:#1d2733;--muted:#5d6b7a;--ok:#1b7f4b;--warn:#a15c00;--bad:#b42318;--line:#d8dee6;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#f6f8fa}.topbar{display:flex;align-items:center;gap:2rem;padding:.75rem 1.5rem;background:var(--brand);color:#fff}.topbar a{color:#fff;text-decoration:none}.brand{font-weight:700;font-size:1.15rem}.brand span{font-weight:400;opacity:.8}nav{display:flex;gap:1.25rem}.page{max-width:960px;margin:2rem auto;padding:0 1rem}.foot{text-align:center;color:var(--muted);font-size:.8rem;padding:2rem 0}.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:1.25rem;margin-bottom:1rem}.grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));grid-gap:.75rem 1rem;gap:.75rem 1rem}.grid,label{display:grid}label{grid-gap:.25rem;gap:.25rem;font-size:.9rem}input,select{padding:.5rem;border:1px solid var(--line);border-radius:6px;font:inherit}.button,button{background:var(--brand);color:#fff;border:0;border-radius:6px;padding:.6rem 1rem;font:inherit;cursor:pointer;text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:default}table{width:100%;border-collapse:collapse;background:#fff}td,th{text-align:left;padding:.5rem;border-bottom:1px solid var(--line)}.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.8rem;background:var(--brand-soft)}.badge--ok{background:#e6f4ec;color:var(--ok)}.badge--warn{background:#fff4e0;color:var(--warn)}.badge--bad,.error{background:#fde8e7;color:var(--bad)}.error{padding:.6rem .8rem;border-radius:6px}.hint{color:var(--muted);font-size:.85rem}.stack{display:grid;grid-gap:1rem;gap:1rem}.row{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap;margin-bottom:1rem}fieldset{border:1px solid var(--line)}