:root{--bg:#f6f8fc;--surface:#fff;--ink:#14213d;--muted:#51607a;--line:#dbe2ee;--brand:#12358f;--brand-ink:#fff;--accent:#e8590c;--accent-soft:#fff1e8;--ok:#0b7a43;--warn:#9a5b00;--bad:#b3261e;--chip:#eaf0fc;--shadow:0 1px 3px rgba(20,33,61,.08),0 4px 14px rgba(20,33,61,.05);--hh:64px;--sw:276px}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1424;--surface:#141d33;--ink:#e8edf8;--muted:#a3b0c8;--line:#26334f;--brand:#7ea2ff;--brand-ink:#0d1424;--accent:#ff8a4c;--accent-soft:#2a1d17;--ok:#4cc38a;--warn:#f0b24a;--bad:#ff8f87;--chip:#1c2a49;--shadow:none}}
:root[data-theme=dark]{--bg:#0d1424;--surface:#141d33;--ink:#e8edf8;--muted:#a3b0c8;--line:#26334f;--brand:#7ea2ff;--brand-ink:#0d1424;--accent:#ff8a4c;--accent-soft:#2a1d17;--ok:#4cc38a;--warn:#f0b24a;--bad:#ff8f87;--chip:#1c2a49;--shadow:none}
*{box-sizing:border-box}html{scroll-padding-top:calc(var(--hh) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--brand);text-underline-offset:2px}a:hover{color:var(--accent)}
img{max-width:100%;height:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--brand);color:var(--brand-ink);padding:.6rem 1rem;z-index:100}.skip:focus{left:8px;top:8px}
header.top{position:fixed;inset:0 0 auto 0;height:var(--hh);background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 16px;z-index:50}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:800;font-size:1.25rem;letter-spacing:-.01em;white-space:nowrap}
.brand img{width:40px;height:40px;border-radius:50%}.brand b{color:var(--accent)}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:8px;width:42px;height:42px;font-size:1.3rem;color:var(--ink);cursor:pointer}
.hd-mail{margin-left:auto;font-size:.9rem;white-space:nowrap}
.search{position:relative;flex:0 1 360px;min-width:0}
.search input{width:100%;height:42px;border:1px solid var(--line);border-radius:21px;padding:0 16px;background:var(--bg);color:var(--ink);font:inherit;font-size:.95rem}
.search input:focus{outline:2px solid var(--brand);outline-offset:1px}
.results{position:absolute;top:48px;left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.18);max-height:70vh;overflow:auto;display:none;z-index:60;min-width:min(420px,92vw)}
.results.open{display:block}.results a{display:block;padding:10px 14px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}
.results a:last-child{border:0}.results a:hover,.results a:focus{background:var(--chip)}.results small{display:block;color:var(--muted)}.results .none{padding:12px 14px;color:var(--muted)}
.results .tag{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700}
nav.side{position:fixed;top:var(--hh);bottom:0;left:0;width:var(--sw);overflow-y:auto;background:var(--surface);border-right:1px solid var(--line);padding:14px 10px 40px;z-index:40}
nav.side a,nav.side summary{display:block;padding:9px 12px;border-radius:8px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.97rem;cursor:pointer}
nav.side a:hover,nav.side summary:hover{background:var(--chip)}
nav.side a[aria-current=page]{background:var(--brand);color:var(--brand-ink)}
nav.side .sub{margin:2px 0 6px 12px;padding-left:8px;border-left:2px solid var(--line)}nav.side .sub a{font-weight:500;font-size:.92rem;padding:7px 10px}
nav.side summary{list-style:none;display:flex;justify-content:space-between}nav.side summary::after{content:"+";color:var(--muted)}nav.side details[open]>summary::after{content:"\2212"}
nav.side summary::-webkit-details-marker{display:none}
.scrim{display:none}
main{margin-left:var(--sw);padding:calc(var(--hh) + 28px) 32px 40px;max-width:calc(var(--sw) + 1020px)}
.wrap{max-width:980px}
h1{font-size:2.05rem;line-height:1.2;margin:.2em 0 .4em;letter-spacing:-.02em}h2{font-size:1.45rem;margin:2em 0 .5em;line-height:1.3}h3{font-size:1.15rem;margin:1.5em 0 .4em}
p,li{max-width:76ch}.lede{font-size:1.12rem;color:var(--muted)}
.answer{background:var(--accent-soft);border-left:4px solid var(--accent);padding:14px 18px;border-radius:0 10px 10px 0;margin:1rem 0 1.4rem;max-width:80ch}.answer p{margin:0}
.crumbs{font-size:.88rem;color:var(--muted)}.crumbs a{color:var(--muted)}
.meta{color:var(--muted);font-size:.9rem;display:flex;gap:6px 16px;flex-wrap:wrap}
.hero{position:relative;border-radius:16px;overflow:hidden;margin:0 0 1.6rem;min-height:240px;display:flex;align-items:flex-end;background:#12358f}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .cap{position:relative;background:linear-gradient(transparent,rgba(8,18,50,.88));width:100%;padding:60px 24px 22px;color:#fff}.hero .cap h1{margin:0;color:#fff}.hero .cap p{margin:.3rem 0 0;color:#e4ebfb;max-width:60ch}
.banner{border-radius:12px;overflow:hidden;margin:1rem 0;max-height:260px}.banner img{width:100%;height:260px;object-fit:cover;display:block}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin:1rem 0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}.card h3{margin:.1em 0 .3em;font-size:1.05rem}.card p{margin:.3em 0;font-size:.94rem}
.card a.stretch{text-decoration:none;color:inherit}.card:hover{border-color:var(--brand)}
.chip{display:inline-block;background:var(--chip);color:var(--brand);border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:700;margin-right:6px}
.chip.ok{color:var(--ok)}.chip.warn{color:var(--warn)}.chip.bad{color:var(--bad)}
.notice{border:1px solid var(--line);border-left:4px solid var(--warn);background:var(--surface);padding:12px 16px;border-radius:0 10px 10px 0;margin:1rem 0}
.notice.bad{border-left-color:var(--bad)}.notice.ok{border-left-color:var(--ok)}.notice p{margin:0;max-width:none}
.tablewrap{overflow-x:auto;margin:1rem 0;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:.93rem}th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--chip);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}tr:last-child td{border:0}
td.num,th.num{text-align:right}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:1rem 0}
.fact{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.fact span{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.fact b{font-size:1.08rem}
.news-item{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin:14px 0;box-shadow:var(--shadow)}.news-item h3{margin:.1em 0 .3em}.news-item p{margin:.4em 0}
.news-item.ended{opacity:.7}
.toc{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 18px;margin:1rem 0}.toc ul{margin:.3rem 0;padding-left:1.1rem}
footer.site{margin:48px 0 0;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem}
footer.site p{max-width:none}
/* tools */
.tool{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin:1rem 0}
.tool label{display:block;font-weight:600;font-size:.9rem;margin:.6rem 0 .2rem}
.tool input,.tool select{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);max-width:100%}
.tool input[type=number]{width:140px}.tool input[type=text]{width:min(100%,360px)}.tool input[type=range]{width:min(100%,360px);padding:0}
.row{display:flex;flex-wrap:wrap;gap:6px 18px}.row>div{min-width:150px}
button.btn{background:var(--brand);color:var(--brand-ink);border:0;border-radius:8px;padding:9px 16px;font:inherit;font-weight:700;cursor:pointer;margin:.6rem 8px 0 0}
button.btn.alt{background:var(--chip);color:var(--brand)}button.btn:hover{filter:brightness(1.1)}
.bar{background:var(--chip);border-radius:999px;height:12px;overflow:hidden;margin:6px 0}.bar i{display:block;height:100%;background:var(--ok)}
.out{margin-top:1rem}.small{font-size:.86rem;color:var(--muted)}
.limits{font-size:.9rem;color:var(--muted);border-top:1px dashed var(--line);margin-top:1rem;padding-top:.6rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width:980px){
 .menu-btn{display:block}.hd-mail{display:none}.brand span{display:none}
 nav.side{transform:translateX(-102%);transition:transform .2s;width:min(86vw,320px)}
 body.menu-open nav.side{transform:none;box-shadow:0 0 40px rgba(0,0,0,.3)}body.menu-open .scrim{display:block;position:fixed;inset:var(--hh) 0 0 0;background:rgba(0,0,0,.4);z-index:30}
 main{margin-left:0;padding:calc(var(--hh) + 20px) 16px 32px}.search{flex:1 1 auto}.two{grid-template-columns:1fr}h1{font-size:1.65rem}
}
@media (max-width:480px){header.top{padding:0 10px;gap:8px}.brand img{width:34px;height:34px}}
@media print{header.top,nav.side{display:none}main{margin:0;padding:0}}
