:root{--bg:#f4f6fa;--card:#fff;--tx:#1a2238;--mu:#5b6478;--navy:#1b2a5c;--gold:#d99a00;--ln:#d8dde8;--ok:#e3f4e6;--bad:#fde6e3;--dc:#fff3cf}
@media(prefers-color-scheme:dark){:root{--bg:#0f1424;--card:#171e35;--tx:#e8ebf5;--mu:#9aa3bd;--navy:#8fa6ff;--gold:#f0b429;--ln:#2b3454;--ok:#15331f;--bad:#3a1b1b;--dc:#3a3010}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
header{background:#1b2a5c;color:#fff;padding:2.2rem 1.2rem 1.6rem;border-bottom:4px solid #d99a00}
header div,main{max-width:980px;margin:auto}
h1{margin:0 0 .3rem;font-size:1.7rem;line-height:1.25}
header p{margin:0;opacity:.85;font-size:.95rem}
nav{position:sticky;top:0;z-index:5;background:var(--card);border-bottom:1px solid var(--ln);display:flex;gap:.3rem;overflow-x:auto;padding:.5rem .8rem}
nav a{white-space:nowrap;padding:.35rem .8rem;border-radius:6px;color:var(--tx);text-decoration:none;font-size:.9rem}
nav a:hover,nav a:focus-visible{background:var(--navy);color:#fff;outline:none}
main{padding:1rem 1.2rem 3rem}
section{margin-top:2rem}
h2{font-size:1.4rem;color:var(--navy);margin:0 0 .2rem;padding-left:.7rem;border-left:5px solid var(--gold)}
.ind{color:var(--mu);margin:0 0 1rem;font-size:.9rem}
h3{font-size:1.05rem;margin:1.5rem 0 .4rem}
.box{background:var(--card);border:1px solid var(--ln);border-radius:8px;padding:.9rem 1.1rem;margin:.6rem 0}
table{border-collapse:collapse;width:100%;font-size:.9rem;margin:.5rem 0}
.tw{overflow-x:auto}
th,td{border:1px solid var(--ln);padding:.4rem .6rem;text-align:left;vertical-align:top}
th{background:var(--navy);color:#fff}
td.n,th.n{text-align:right;white-space:nowrap}
tr.t td{font-weight:700;background:var(--dc)}
.flow{display:flex;flex-wrap:wrap;gap:.9rem .8rem;margin:.6rem 0;padding:.9rem;background:var(--card);border:1px dashed var(--ln);border-radius:8px}
.flow b{position:relative;font-weight:400;font-size:.82rem;line-height:1.35;background:var(--bg);border:1.5px solid var(--navy);border-radius:6px;padding:.4rem .6rem;max-width:200px}
.flow b:not(:last-child)::after{content:"▶";position:absolute;right:-.85rem;top:50%;transform:translateY(-50%);font-size:.65rem;color:var(--gold)}
.flow b.r{background:var(--bad);border-color:#c0392b}
.flow b.g{background:var(--ok);border-color:#2e8b4a}
.flow b.d{background:var(--dc);border-color:var(--gold);border-radius:18px}
.flow small{display:block;color:var(--mu);font-size:.72rem}
.lg{font-size:.8rem;color:var(--mu)}
.arch{display:grid;gap:.5rem;text-align:center;margin:.6rem 0}
.arch div{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.arch b{font-weight:400;font-size:.82rem;background:var(--card);border:1.5px solid var(--navy);border-radius:6px;padding:.4rem .7rem}
.arch i{font-style:normal;font-size:.75rem;color:var(--gold)}
.arch .k{border-color:#c0392b;background:var(--bad)}
code{font-family:ui-monospace,Consolas,monospace;font-size:.88em;background:var(--bg);padding:.05rem .3rem;border-radius:3px}
ul,ol{padding-left:1.3rem;margin:.3rem 0}
.sim{border:2px solid var(--gold)}
.sim button{font:inherit;font-size:.85rem;margin:.2rem .3rem .2rem 0;padding:.35rem .7rem;border:1.5px solid var(--navy);border-radius:6px;background:var(--card);color:var(--tx);cursor:pointer}
.sim button:hover:not(:disabled),.sim button:focus-visible{background:var(--navy);color:#fff;outline:none}
.sim button:disabled{opacity:.4;cursor:default}
.sim input{width:4.5rem;font:inherit;padding:.15rem .3rem;border:1px solid var(--ln);border-radius:4px;background:var(--bg);color:var(--tx)}
.sim label{display:inline-block;margin:.15rem .8rem .15rem 0;font-size:.85rem}
.sim .out{margin-top:.5rem;padding:.6rem .8rem;border-radius:6px;background:var(--dc);font-size:.9rem}
.sim ol{font-size:.85rem;max-height:9rem;overflow:auto}
footer{text-align:center;color:var(--mu);font-size:.8rem;padding:1.5rem}

.cards{display:grid;gap:.7rem;margin-top:1rem}
.cards a{display:block;background:var(--card);border:1px solid var(--ln);border-left:5px solid var(--gold);border-radius:8px;padding:.8rem 1rem;color:var(--tx);text-decoration:none}
.cards a:hover,.cards a:focus-visible{border-color:var(--navy);outline:none}
.cards b{color:var(--navy);display:block}
.cards span{font-size:.88rem;color:var(--mu)}
.pg{display:flex;justify-content:space-between;gap:1rem;margin-top:2.5rem}
.pg a{padding:.5rem 1rem;border:1.5px solid var(--navy);border-radius:6px;color:var(--tx);text-decoration:none;font-size:.9rem}
.pg a:hover,.pg a:focus-visible{background:var(--navy);color:#fff;outline:none}
nav a.on{background:var(--navy);color:#fff}
