:root[data-theme=dark]{--bg:#0f172a;--panel:#111827;--text:#e5e7eb;--muted:#94a3b8;--brand:#22d3ee;--accent:#22d3ee;--ok:#10b981;--bad:#ef4444;--card:#0b1020;--border:#1f2937;--shadow:rgba(0,0,0,.45)}:root[data-theme=light]{--bg:#f6f8fb;--panel:#ffffff;--text:#0b1220;--muted:#5b6475;--brand:#0ea5e9;--accent:#10b981;--ok:#0ea5e9;--bad:#ef4444;--card:#ffffff;--border:#e6eaf0;--shadow:rgba(0,0,0,.12)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,helvetica neue,Arial,noto sans,apple color emoji,segoe ui emoji}img{max-width:100%;height:auto}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1280px;margin:0 auto;padding:24px}.site-header{position:relative;z-index:4000;backdrop-filter:saturate(180%)blur(10px);background:color-mix(in srgb,var(--bg) 72%,transparent);border-bottom:1px solid var(--border)}.site-header .container{padding-top:12px;padding-bottom:12px}.navbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand-link{display:inline-flex;align-items:center;gap:10px}.brand-logo{height:28px;width:auto;display:block;object-fit:contain;border-radius:6px}.logo-light{display:none}:root[data-theme=light] .logo-light{display:block}:root[data-theme=light] .logo-dark{display:none}.nav{display:flex;gap:12px;flex-wrap:wrap;position:relative;align-items:center}.nav a{padding:8px 12px;border-radius:10px;color:var(--text)}.nav a.active,.nav .menu.active>a{background:color-mix(in srgb,var(--brand) 18%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 45%,var(--border));color:var(--text)}.hamburger{display:none;width:38px;height:38px;border:1px solid var(--border);border-radius:10px;background:var(--panel);cursor:pointer;align-items:center;justify-content:center}.hamburger span{display:block;width:18px;height:2px;background:var(--text);margin:2px 0}.nav-wrap{display:flex;align-items:center;gap:12px}.nav .menu{position:relative}.nav .menu>a{display:inline-flex;align-items:center;gap:6px}.nav .menu>a::after{content:"▾";opacity:.8;font-size:.85em;transform:translateY(-1px)}.nav .dropdown{position:absolute;top:100%;left:0;min-width:240px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:8px;box-shadow:0 14px 36px var(--shadow);display:none;z-index:50}.nav .menu:hover .dropdown,.nav .menu:focus-within .dropdown{display:block}.nav .dropdown a{display:block;padding:8px 10px;border-radius:8px;white-space:nowrap;color:var(--text)}.nav .dropdown a:hover{background:color-mix(in srgb,var(--panel) 86%,var(--brand) 8%)}.nav .dropdown a.all{font-weight:600;margin-top:4px}.switches{display:flex;align-items:center;gap:10px}.lang-switch{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden}.lang-switch a,.lang-switch span{padding:6px 12px;display:inline-block}.lang-switch .current{background:var(--panel);color:var(--text)}.lang-switch a{color:var(--muted)}.theme-toggle{appearance:none;border:1px solid var(--border);background:var(--panel);color:var(--text);padding:6px 10px;border-radius:999px;cursor:pointer;line-height:1;display:inline-flex;align-items:center;gap:8px}.theme-toggle:hover{box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 25%,transparent),0 6px 18px var(--shadow)}.theme-toggle .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.site-header .container{padding:8px 14px}.navbar{gap:10px}.brand-text{font-size:18px}@media(max-width:420px){.brand-text{display:none}}.hamburger{display:inline-flex}.nav-wrap{display:none;position:fixed;left:0;right:0;top:var(--header-h,56px);background:var(--panel);border-bottom:1px solid var(--border);box-shadow:0 12px 28px var(--shadow);padding:8px 0;z-index:4100}.nav-wrap.open{display:block}.nav{flex-direction:column;align-items:flex-start;gap:0;padding:6px 14px}.nav a{padding:10px 0;width:100%;border-radius:8px}.nav .menu{width:100%}.nav .menu>a::after{display:none}.nav .dropdown{position:static;display:block;padding:0;border:0;box-shadow:none;background:0 0}.nav .dropdown a{padding:8px 0 8px 8px;opacity:.9}.switches{display:flex;gap:10px;padding:10px 14px;margin-top:6px;border-top:1px solid var(--border)}}.section{margin:28px 0}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px;color:var(--text)}.card h3{margin-top:0}.meta{color:var(--muted);font-size:.9rem}:where(article,.markdown,.content,.prose) table:not(.annot-compact){width:100%;border:1px solid var(--border);border-radius:12px;background:var(--panel);margin:12px 0 20px;border-collapse:separate;border-spacing:0}@media(max-width:700px){:where(article,.markdown,.content,.prose) table:not(.annot-compact){display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(min-width:701px){:where(article,.markdown,.content,.prose) table:not(.annot-compact){display:table;table-layout:fixed}}:where(article,.markdown,.content,.prose) thead th{text-align:center;padding:10px 12px;font-weight:600;color:var(--text);background:color-mix(in srgb,var(--panel) 82%,var(--bg));border-bottom:1px solid var(--border);white-space:nowrap}:where(article,.markdown,.content,.prose) tbody td,:where(article,.markdown,.content,.prose) tbody th{text-align:center;padding:10px 12px;vertical-align:middle;color:var(--text);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--panel) 96%,var(--bg))}:where(article,.markdown,.content,.prose) th+th,:where(article,.markdown,.content,.prose) td+td{border-left:1px solid var(--border)}:where(article,.markdown,.content,.prose) tbody tr:nth-child(even) td,:where(article,.markdown,.content,.prose) tbody tr:nth-child(even) th{background:color-mix(in srgb,var(--panel) 92%,var(--bg))}:where(article,.markdown,.content,.prose) caption{caption-side:bottom;color:var(--muted);font-size:.9rem;padding-top:6px}.site-footer{border-top:1px solid var(--border);color:var(--muted)}.tool-root{background:radial-gradient(1200px 800px at 80% -10%,#12243a 0%,var(--bg) 40%);border-radius:16px}.tool-root *{box-sizing:border-box}.tool-root header,.tool-root .tool-header{display:flex;align-items:center;justify-content:space-between;padding:20px clamp(16px,4vw,48px);border-bottom:1px solid var(--border);position:static;backdrop-filter:blur(8px);background:color-mix(in srgb,var(--bg) 80%,transparent);z-index:auto}.tool-root .title{display:flex;gap:12px;align-items:center;font-weight:700;letter-spacing:.2px}.tool-root .badge{color:var(--accent);font-weight:600}.tool-root .controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.tool-root select,.tool-root button,.tool-root textarea{background:var(--card);color:var(--text);border:1px solid var(--border);padding:10px 12px;border-radius:12px;outline:none}.tool-root button{cursor:pointer}.tool-root button.primary{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.tool-root main.grid{padding:20px clamp(8px,2vw,24px)64px}.tool-root .grid{display:grid;gap:16px;grid-template-columns:repeat(12,1fr)}.tool-root .col-6{grid-column:span 12}@media(min-width:1000px){.tool-root .col-6{grid-column:span 6}}.tool-root .panel{border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 80%,transparent),var(--panel));box-shadow:0 10px 30px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,3%);overflow:clip}.tool-root .panel h2{margin:0;padding:12px 16px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,2%),transparent);font-size:16px}.tool-root .section{display:grid;gap:12px;padding:14px 16px 18px}.tool-root textarea{width:100%;min-height:140px;resize:vertical;border-radius:12px;padding:12px;background:#0b0f1a;color:#e2e8f0;border:1px solid var(--border);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.4}.tool-root .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tool-root .muted{color:var(--muted)}.tool-root .kpi{font-size:13px;display:inline-flex;gap:6px;align-items:center;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:#0b1020}.tool-root .ok{color:var(--ok)}.tool-root .bad{color:var(--bad)}.tool-root table.annot-compact{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.tool-root table.annot-compact thead th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);color:var(--muted);white-space:nowrap}.tool-root table.annot-compact td{padding:8px 10px;border-bottom:1px dashed rgba(255,255,255,6%);vertical-align:top}.tool-root table.annot-compact td.hex{width:140px;font-family:ui-monospace,Menlo,Consolas,monospace}.tool-root table.annot-compact td.label{width:220px}.tool-root table.annot-compact th:nth-child(3),.tool-root table.annot-compact td:nth-child(3){width:auto;word-break:break-word;overflow-wrap:anywhere}.tool-root .bits-wrap{display:flex;flex-wrap:wrap;gap:6px}.tool-root .bit-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;border:1px solid var(--border);background:#0b1220;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;line-height:1}.tool-root .bit-pill.placeholder{opacity:.6;border-style:dashed}.page{display:grid;grid-template-columns:1fr minmax(240px,300px);gap:24px;align-items:start}.container,.page,.sidebar{overflow:visible}@media(max-width:900px){.page{grid-template-columns:1fr}.sidebar{order:-1}}:root{--anchor-offset:12px}.content :is(h2,h3,h4,h5,h6){scroll-margin-top:var(--anchor-offset)}.sidebar .toc{border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:12px;color:var(--text);max-height:calc(100vh - 32px);overflow:auto}@media(min-width:901px){.sidebar{position:-webkit-sticky;position:sticky;top:16px;align-self:start;height:max-content}.sidebar .toc{position:static}}@media(max-width:900px){.sidebar{position:static}.sidebar .toc{position:fixed;right:14px;bottom:14px;left:auto;top:auto;width:auto;padding:0;border:0;background:0 0;border-radius:999px;box-shadow:none;max-height:none;overflow:visible;z-index:4090;pointer-events:none}.toc-head{margin:0}.toc-head span{display:none}.toc-toggle{display:inline-flex !important;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--border);border-radius:999px;background:var(--card);cursor:pointer;box-shadow:0 8px 22px var(--shadow);pointer-events:auto}:root[data-theme=dark] .toc-toggle{color:#fff;border-color:#fff}.toc[data-collapsed=true] .toc-list{display:none}.toc:not([data-collapsed=true]){left:12px;right:12px;bottom:12px;top:auto;width:auto;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:0 16px 40px var(--shadow);pointer-events:auto}.toc:not([data-collapsed=true]) .toc-head span{display:inline}.toc:not([data-collapsed=true]) .toc-toggle{width:40px;height:34px;border-radius:8px;box-shadow:none}.toc:not([data-collapsed=true]) .toc-list{display:block;max-height:60vh;overflow:auto;margin-top:6px}}.toc-head{display:flex;align-items:center;justify-content:space-between;font-weight:600;margin-bottom:8px}.toc-toggle{display:none}.toc-list nav#TableOfContents ul{list-style:none;padding-left:12px;margin:6px 0}.toc-list nav#TableOfContents>ul{padding-left:0}.toc-list nav#TableOfContents li{margin:2px 0}.toc-list nav#TableOfContents a{color:var(--muted);text-decoration:none;display:block;padding:4px 6px;border-radius:6px}.toc-list nav#TableOfContents a:hover{background:color-mix(in srgb,var(--panel) 85%,var(--bg));color:var(--text)}.toc-list nav#TableOfContents a.active{color:var(--text);background:color-mix(in srgb,var(--brand) 18%,var(--panel))}.sidebar .toc::-webkit-scrollbar{width:10px}.sidebar .toc::-webkit-scrollbar-track{background:color-mix(in srgb,var(--panel) 92%,var(--bg))}.sidebar .toc::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--border) 70%,transparent);border-radius:8px}.page>.content,.page>.sidebar{min-width:0}.content{overflow-wrap:anywhere}.toc-list nav#TableOfContents a{overflow-wrap:anywhere;word-break:break-word}.content pre{overflow:auto;max-width:100%}.content code{white-space:pre-wrap}