:root{color-scheme:light dark;--bg:#F6F7FA;--surface:#fff;--surface-2:#EFF1F6;--line:#E1E5EE;--text:#14171F;--text-2:#565D70;--text-3:#676D7B;--accent:#2B50D8;--accent-soft:rgba(43,80,216,.1);--accent-ink:#2246BF;--on-accent:#fff;--ok:#0D704D;--ok-soft:rgba(15,127,88,.12);--mid:#8D5517;--mid-soft:rgba(162,98,27,.12);--no:#AF362D;--no-soft:rgba(188,58,48,.12);--r:12px;--r-s:9px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:28px;--s7:40px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, monospace}@media (prefers-color-scheme: dark){:root{--bg:#0F1116;--surface:#171A21;--surface-2:#1E222B;--line:#262B36;--text:#ECEEF4;--text-2:#A8AFC0;--text-3:#848B9D;--accent:#7E9BFF;--accent-soft:rgba(126,155,255,.14);--accent-ink:#A5B9FF;--on-accent:#10131A;--ok:#3FBF8F;--ok-soft:rgba(63,191,143,.16);--mid:#D69A4E;--mid-soft:rgba(214,154,78,.16);--no:#EB7A70;--no-soft:rgba(232,104,92,.16)}}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font:15px/1.6 var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;letter-spacing:-.015em;line-height:1.2;text-wrap:balance}h1{font-size:1.65em;font-weight:700}h2{font-size:1.2em;font-weight:620}h3{font-size:1em;font-weight:620}p{margin:0 0 var(--s3)}a{color:var(--accent)}.btn{font:inherit;font-size:.92em;padding:9px 15px;border-radius:var(--r-s);border:1px solid var(--line);background:var(--surface-2);color:var(--text);cursor:pointer;min-height:40px;transition:border-color .14s,background .14s}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn--primary:hover:not(:disabled){filter:brightness(1.06)}.btn--ghost{background:transparent}.btn--sm{padding:6px 11px;min-height:32px;font-size:.86em}a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}a.btn:not(.btn--primary){color:var(--text)}.field{font:inherit;font-size:.94em;padding:9px 12px;border-radius:var(--r-s);border:1px solid var(--line);background:var(--surface);color:var(--text);min-height:40px;width:100%}.field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}label{display:block;font-size:.84em;color:var(--text-2);margin-bottom:5px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s5)}.card--flat{padding:var(--s4)}.row{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center}.col{display:flex;flex-direction:column;gap:var(--s3)}.grid{display:grid;gap:var(--s3)}.grid--2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid--3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.spacer{flex:1}.dim{color:var(--text-2)}.muted{color:var(--text-3);font-size:.88em}.num{font-variant-numeric:tabular-nums}.tag{display:inline-flex;align-items:center;gap:5px;font-size:.76em;padding:2px 8px;border-radius:20px;background:var(--surface-2);color:var(--text-2)}.tag--ok{background:var(--ok-soft);color:var(--ok)}.tag--mid{background:var(--mid-soft);color:var(--mid)}.tag--no{background:var(--no-soft);color:var(--no)}.tag--accent{background:var(--accent-soft);color:var(--accent-ink)}.code{font-family:var(--mono);font-size:.78em;color:var(--text-3);border:1px solid var(--line);border-radius:5px;padding:1px 6px}.head{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s5)}.btn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.bar{display:flex;height:7px;border-radius:4px;overflow:hidden;background:var(--surface-2)}.bar__seg{height:100%}.bar__seg--ok{background:var(--ok)}.bar__seg--mid{background:var(--mid)}.note{padding:var(--s3) var(--s4);border-radius:var(--r-s);font-size:.92em}.note--error{background:var(--no-soft);color:var(--no)}.note--ok{background:var(--ok-soft);color:var(--ok)}.empty{color:var(--text-3);text-align:center;padding:var(--s6)}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
