:root{--navy:#032d4f;--blue:#0073c6;--text:#1c2430;--muted:#5b6676;--line:#dde3ea;--soft:#f4f7fa;--toc-width:19rem;--topbar-height:3.25rem}*{box-sizing:border-box}html{scroll-padding-top:calc(var(--topbar-height) + 1rem)}body{margin:0;color:var(--text);background:#fff;font:16px/1.6 system-ui,-apple-system,segoe ui,Roboto,helvetica neue,Arial,sans-serif}a{color:var(--blue)}a:hover{color:var(--navy)}.preview{padding:.5rem 1rem;background:#fff4ce;border-bottom:1px solid #e8d48a;text-align:center;font-size:.9rem}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--topbar-height);padding:0 1.25rem;background:var(--navy);color:#fff}.topbar a{color:#fff;text-decoration:none}.topbar .brand{font-weight:700;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .brand span{font-weight:400;opacity:.85;margin-left:.5rem}.topbar .source{font-size:.9rem;opacity:.9;white-space:nowrap}.topbar .source:hover{opacity:1;text-decoration:underline}.layout{display:grid;grid-template-columns:var(--toc-width)minmax(0,1fr);max-width:88rem;margin:0 auto}.toc{position:sticky;top:var(--topbar-height);align-self:start;max-height:calc(100vh - var(--topbar-height));overflow-y:auto;padding:1.25rem 1rem 2rem 1.25rem;border-right:1px solid var(--line);font-size:.85rem;line-height:1.4}.toc summary{cursor:pointer;font-weight:700;color:var(--navy);margin-bottom:.5rem}.toc ul{list-style:none;margin:0;padding-left:0}.toc ul ul{padding-left:1rem;margin:.15rem 0 .4rem}.toc li{margin:.2rem 0}.toc a{color:var(--muted);text-decoration:none}.toc a:hover{color:var(--blue)}.toc a.toc-section{color:var(--text);font-weight:600}.content{min-width:0;max-width:62rem;padding:1.5rem 2.5rem 4rem}.content h1{font-size:2rem;line-height:1.25;color:var(--navy);margin:.5rem 0 1rem}.content h2{font-size:1.5rem;color:var(--navy);margin:2.75rem 0 1rem;padding-bottom:.35rem;border-bottom:2px solid var(--line)}.content h3{font-size:1.2rem;color:var(--navy);margin:2rem 0 .75rem}.content h4{font-size:1.05rem;margin:1.5rem 0 .5rem}.content .anchor{opacity:0;margin-left:.3rem;color:var(--muted);text-decoration:none;font-weight:400}.content :is(h1,h2,h3,h4):hover .anchor,.content .anchor:focus{opacity:1}.content img{max-width:100%;height:auto}.content :is(p,li,blockquote,h1,h2,h3,h4){overflow-wrap:break-word}.content table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:1rem 0 1.5rem;font-size:.9rem}.content th,.content td{padding:.45rem .7rem;border:1px solid var(--line);text-align:left;vertical-align:top}.content th{background:var(--soft);color:var(--navy)}.content tr:nth-child(even) td{background:#fafbfc}.content code{font:.88em/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,liberation mono,monospace;background:var(--soft);padding:.1em .3em;border-radius:3px}.content pre{overflow-x:auto;padding:.9rem 1rem;border:1px solid var(--line);border-radius:6px;background:var(--soft)!important;line-height:1.45}.content pre code{background:0 0;padding:0;font-size:.85rem}.content pre.mermaid{background:#fff!important}.content pre.mermaid[data-processed]{text-align:center}.content pre.mermaid.zoomable{cursor:zoom-in}.content pre.mermaid.zoomed{cursor:zoom-out;text-align:left}.content .zoom-toggle{display:block;margin:.5rem 0 -.5rem auto;padding:.2rem .6rem;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--blue);font:inherit;font-size:.8rem;cursor:pointer}.content .zoom-toggle:hover,.content .zoom-toggle:focus-visible{border-color:var(--blue)}.content blockquote{margin:1rem 0;padding:.5rem 1rem;border-left:4px solid var(--blue);background:var(--soft);color:var(--muted)}.footer{border-top:1px solid var(--line);padding:1rem 1.25rem 2rem;color:var(--muted);font-size:.85rem;text-align:center}@media(max-width:60rem){.layout{display:block}.toc{position:static;max-height:none;border-right:0;border-bottom:1px solid var(--line)}.content{padding:1rem 1.25rem 3rem}.topbar .brand span{display:none}}@media print{.topbar,.toc,.preview,.footer{display:none}.layout{display:block;max-width:none}.content{max-width:none;padding:0}.content a{color:inherit}.content h2{break-after:avoid}.content table,.content pre{break-inside:avoid}.content pre{overflow:visible;white-space:pre-wrap;overflow-wrap:anywhere}.content table{display:table;width:100%;overflow:visible}.content :is(th,td) code{overflow-wrap:anywhere}.content .zoom-toggle{display:none}}