:root{--bg:#fff;--fg:#1a2233;--mut:#64748b;--line:#e2e8f0;--card:#f8fafc;--pri:#1d4ed8;--pri-d:#0f2a6b;--note:#eff6ff;--red:#e11d48;--sh:0 1px 3px rgba(15,23,42,.08)}
@media (prefers-color-scheme:dark){:root{--bg:#0b1226;--fg:#e2e8f0;--mut:#94a3b8;--line:#1e2a4a;--card:#111a35;--pri:#6b8cff;--pri-d:#b4c6ff;--note:#13204a;--sh:none}}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--fg)}
a{color:var(--pri)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--bg);padding:8px;z-index:20}
.top{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 20px;height:56px;background:#0f2a6b;color:#fff}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700}
.brand .mark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#fff;color:#0f2a6b}
.brand .sub{font-weight:400;opacity:.75;border-left:1px solid rgba(255,255,255,.35);padding-left:10px}
.lang a{color:#fff;opacity:.7;text-decoration:none;padding:4px 8px;border-radius:6px;font-size:14px}
.lang a[aria-current]{opacity:1;background:rgba(255,255,255,.18)}
.wrap{display:grid;grid-template-columns:270px minmax(0,1fr);gap:40px;max-width:1180px;margin:0 auto;padding:24px 20px 64px}
.side{position:sticky;top:76px;align-self:start;max-height:calc(100vh - 96px);overflow:auto;font-size:14px}
.side-h{font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:12px;color:var(--mut);margin-bottom:8px}
.side ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
.side li a{display:block;padding:3px 12px;color:var(--fg);text-decoration:none}
.side li a:hover{color:var(--pri)}
.side li.l2{margin-top:8px;font-weight:600}.side li.l3 a{padding-left:24px;color:var(--mut);font-weight:400}
main{min-width:0;max-width:820px}
main.idx{max-width:900px;margin:0 auto;padding:32px 20px 64px}
.crumb{margin:0 0 8px;font-size:14px}
h1{font-size:2rem;line-height:1.2;margin:.2em 0 .1em;color:var(--pri-d)}
.lead{font-size:1.2rem;color:var(--mut);margin:0 0 .5em}
.meta{color:var(--mut);font-size:14px;margin-bottom:2rem}
h2{font-size:1.55rem;margin:2.6rem 0 .8rem;padding-bottom:.35rem;border-bottom:2px solid var(--pri);color:var(--pri-d)}
h3{font-size:1.15rem;margin:1.8rem 0 .5rem;color:var(--pri-d)}
.anc{margin-left:.4em;text-decoration:none;opacity:0;font-weight:400}
h2:hover .anc,h3:hover .anc,.anc:focus{opacity:.6}
ol.steps{padding-left:1.6rem}ol.steps li{margin:.5rem 0;padding-left:.3rem}ol.steps li::marker{font-weight:700;color:var(--red)}
ul{padding-left:1.4rem}li{margin:.25rem 0}
figure{margin:1.2rem auto 1.8rem;text-align:center}
figure img{width:100%;height:auto;border:1px solid var(--line);border-radius:8px;box-shadow:var(--sh);background:#fff}
figcaption{font-size:13px;color:var(--mut);margin-top:6px}
.note{border-left:4px solid var(--pri);background:var(--note);padding:.7rem 1rem;border-radius:6px;margin:1.2rem 0}
table.t{border-collapse:collapse;width:100%;margin:1rem 0;font-size:15px}
table.t th,table.t td{border:1px solid var(--line);padding:8px 12px;text-align:left;vertical-align:top}
table.t th{background:var(--card)}
.chk{list-style:none;padding-left:0}.chk li:before{content:"\2610";margin-right:10px;color:var(--pri)}
.totop{margin-top:3rem;font-size:14px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:1.5rem}
.card{display:block;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--fg);text-decoration:none;box-shadow:var(--sh)}
.card:hover{border-color:var(--pri)}.card h2{margin:0 0 4px;padding:0;border:0;font-size:1.2rem}
.card .s{color:var(--pri);font-weight:600;margin:0 0 8px}.card p{margin:.3rem 0}
footer{border-top:1px solid var(--line);color:var(--mut);text-align:center;padding:20px;font-size:14px}
@media (max-width:900px){.wrap{display:block;padding:16px}.side{position:static;max-height:none;margin-bottom:20px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--card)}.side ol{max-height:200px;overflow:auto}h1{font-size:1.6rem}}
@media print{.top,.side,.totop,.skip,footer{display:none}.wrap{display:block;padding:0}h2{break-after:avoid}figure{break-inside:avoid}}
