:root{
  --bg:#edf0f3; --surface:#ffffff; --surface-2:#f4f6f8; --line:#d3dae1; --fg:#16202a; --muted:#566573;
  --accent:#0e5a86; --accent-soft:#e2eef6; --on-accent:#ffffff;
  --good:#17754a; --good-soft:#e1f2e8; --warn:#9a5b00; --warn-soft:#fbeed5; --bad:#b0271f; --bad-soft:#fbe4e1;
  --font:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-head:"Barlow Semi Condensed","Barlow",system-ui,sans-serif;
  --r:6px;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#0f151b; --surface:#172029; --surface-2:#1d2832; --line:#2d3a47; --fg:#e4ebf1; --muted:#96a5b4;
  --accent:#63b3e3; --accent-soft:#17344a; --on-accent:#08202f;
  --good:#52c690; --good-soft:#153427; --warn:#f0b24c; --warn-soft:#3a2b10; --bad:#f28b83; --bad-soft:#40191a;
  color-scheme:dark}}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:15px;line-height:1.45}
h1,h2{font-family:var(--font-head);margin:0;text-wrap:balance}
h1{font-size:26px;font-weight:700}
p{margin:0}
code{background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:13px}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.muted{color:var(--muted)}
.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:14px}
.narrow{width:100%;max-width:400px}
.top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 24px;border-bottom:1px solid var(--line);background:var(--surface);padding:10px 16px 0}
.brand{display:flex;flex-direction:column;padding-bottom:8px}
.brand b{font:700 22px var(--font-head)}
.brand span{color:var(--muted);font-size:13px}
.tabs{display:flex;flex-wrap:wrap;gap:2px;margin-right:auto}
.tab{font:600 15px var(--font-head);letter-spacing:.03em;text-transform:uppercase;background:none;border:0;border-bottom:3px solid transparent;color:var(--muted);padding:9px 12px;cursor:pointer;text-decoration:none}
.tab:hover{color:var(--fg)}
.tab[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent)}
.who{position:relative;padding-bottom:8px}
.menu{position:absolute;right:0;top:100%;z-index:10;width:260px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:12px;box-shadow:0 8px 22px rgb(0 0 0 / .18)}
.menu form{display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--line);padding-bottom:12px}
.wrap{max-width:1180px;margin:0 auto;padding:16px 16px 56px}
section{display:flex;flex-direction:column;gap:16px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;min-width:0;display:flex;flex-direction:column;gap:10px}
.panel>h2{font-size:14px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
.panel>h2 small{font:400 13px var(--font);letter-spacing:0;text-transform:none}
.f{display:flex;flex-direction:column;gap:3px;min-width:0}
.grow{flex:1 1 200px}
.grow2{flex:2 1 260px}
label{font:500 12px var(--font);color:var(--muted);letter-spacing:.02em}
input,select{font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:6px 8px;min-width:0;width:100%}
input:disabled,select:disabled{background:var(--surface-2);color:var(--muted)}
input[type=number]{text-align:right;font-variant-numeric:tabular-nums}
input[type=checkbox]{width:auto;accent-color:var(--accent)}
.btn{font:600 14px var(--font);border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:4px;padding:7px 12px;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.primary:hover{filter:brightness(1.08);color:var(--on-accent)}
.btn.sm{padding:4px 9px;font-size:13px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.scroll{overflow-x:auto;margin-inline:-16px;padding-inline:16px}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th{font:600 12px var(--font-head);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
.num{text-align:right}
td input,td select{padding:4px 6px}
.w-s{width:84px}
.w-m{min-width:150px}
.w-l{min-width:190px}
.matrix th.rol{text-align:center;white-space:normal;min-width:84px}
.matrix td.c{text-align:center}
.matrix tr.grp td{background:var(--surface-2);font:600 12px var(--font-head);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.chip{display:inline-block;font:500 12px var(--font);border-radius:10px;padding:1px 8px;white-space:nowrap}
.chip.warn{background:var(--warn-soft);color:var(--warn)}
.chip.good{background:var(--good-soft);color:var(--good)}
.chip.info{background:var(--accent-soft);color:var(--accent)}
.note{font-size:13px;color:var(--muted)}
.banner{background:var(--bad-soft);color:var(--bad);border-radius:var(--r);padding:8px 12px;font-size:14px}
.x{border:0;background:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:4px}
.x:hover{color:var(--bad);background:var(--bad-soft)}
.ord{display:flex;gap:2px}
.ord button{border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:4px;cursor:pointer;padding:1px 7px;font-size:13px}
.ord button:disabled{opacity:.35;cursor:default}
ul.plain{margin:0;padding-left:18px}
ol.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;background:var(--fg);color:var(--bg);padding:9px 16px;border-radius:5px;font-weight:500;z-index:20;max-width:calc(100% - 32px)}
.toast.err{background:var(--bad);color:#fff}
