html{scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}a{overflow-wrap:anywhere}
.skip{position:absolute;left:16px;top:-80px;z-index:500;background:var(--sa-color-bg-default);padding:12px}.skip:focus{top:12px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:48px;align-items:center}.sa-doc-hero{padding-top:48px}
.eyebrow,.chapter-no{color:var(--sa-color-text-brand);font-family:var(--sa-font-family-mono);font-size:12px;letter-spacing:.08em;font-weight:700}
.sa-doc-hero h1{font-size:48px;line-height:1.17;letter-spacing:-.025em}.hero-sub{display:block;font-size:24px;line-height:1.5;letter-spacing:.02em;margin-top:16px}
.hero-trace{border-top:2px solid var(--sa-color-border-brand);padding:24px 0;min-width:0}.hero-trace ol{padding:0;list-style:none;margin:12px 0}.hero-trace li{padding:10px 0;display:flex;gap:16px;border-bottom:1px solid var(--sa-color-border-default);font-family:var(--sa-font-family-mono);font-size:14px}.hero-trace li span{color:var(--sa-color-text-subtle)}.hero-trace li strong{font-weight:500}
.meta-row{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 0}
.sa-doc-layout{grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:48px}
.toc{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto}.toc p{font-size:12px;font-weight:700}.toc a{display:block;text-decoration:none;padding:8px 12px;border-left:2px solid var(--sa-color-border-default);font-size:14px;color:var(--sa-color-text-muted)}.toc a[aria-current=true]{border-left-color:var(--sa-color-border-brand);color:var(--sa-color-text-brand);background:var(--sa-color-bg-brandSubtle)}
main{min-width:0}section{scroll-margin-top:24px;padding-bottom:48px;margin-bottom:48px;border-bottom:1px solid var(--sa-color-border-default)}section>h2{margin-top:8px}
section>p,section>ul,section>ol,section>dl{max-width:40rem}p code,li code,td code,th code,dd code,h3 code{overflow-wrap:anywhere}
pre{max-width:100%;overflow-x:auto}pre code{white-space:pre}
.code-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;margin-top:24px}.code-head+pre{margin-top:8px}
.copy{font-size:12px;min-height:32px;padding:4px 12px;border:1px solid var(--sa-color-border-default);background:var(--sa-color-bg-surface);color:var(--sa-color-text-brand);border-radius:4px;cursor:pointer}
.source{font-size:12px;color:var(--sa-color-text-subtle);margin:20px 0}.source a{color:inherit}
.goal{padding:16px 20px;background:var(--sa-color-bg-brandSubtle);border-radius:8px;margin:16px 0 24px}.goal strong{color:var(--sa-color-text-brand)}
.sa-card{max-width:none}.sa-card h3{margin-top:0}.sa-card p{margin-bottom:0}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}
.lab-label{display:block;font-family:var(--sa-font-family-mono);font-size:12px;color:var(--sa-color-text-brand);margin-bottom:8px}
.exercise{padding:24px;border:1px solid var(--sa-color-border-default);border-radius:8px;margin:24px 0}.exercise h3{margin-top:0}.exercise>label{display:flex;gap:12px;align-items:flex-start;margin-top:20px;font-size:14px}.exercise>label input{margin-top:6px;accent-color:var(--sa-color-bg-brand)}
.check-note{font-size:12px;color:var(--sa-color-text-subtle)}
.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:16px;margin:16px 0}
.calc-grid label{display:flex;flex-direction:column;gap:6px;font-size:14px;min-width:0}
.calc-grid label.inline,fieldset label.inline{flex-direction:row;align-items:center;gap:8px}
.calc-grid input[type=number],.calc-grid input[type=text]{width:100%;min-width:0;min-height:40px;padding:8px 12px;font:inherit;color:var(--sa-color-text-default);background:var(--sa-color-bg-surface);border:1px solid var(--sa-color-border-strong);border-radius:4px}
.calc-grid input[type=checkbox],.calc-grid input[type=radio],fieldset input{accent-color:var(--sa-color-bg-brand);width:18px;height:18px;margin:0}
fieldset{border:1px solid var(--sa-color-border-default);border-radius:4px;padding:8px 12px;margin:0;display:flex;flex-wrap:wrap;gap:16px;align-items:center;min-width:0}legend{font-size:14px;padding:0 4px}
.calc-table td,.calc-table th{font-variant-numeric:tabular-nums}.calc-table td[colspan]{text-align:center}.calc-table tbody tr:last-child{font-weight:700}
.calc-note,.qb-meta{font-size:14px;min-height:24px}.qb-meta .warn{color:var(--sa-color-semantic-warning)}
tbody th{border-bottom:1px solid var(--sa-color-border-default);color:var(--sa-color-text-default);font-weight:500}table.bench thead th:not(:first-child){text-align:right}.table-wrap th{white-space:nowrap}.table-wrap{overflow-x:auto;margin:16px 0}.table-wrap table{min-width:560px}.table-wrap table.bench{min-width:760px}table.bench td{text-align:right;font-variant-numeric:tabular-nums}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.sa-fig{margin:32px 0}.sa-fig svg{min-width:720px}.sa-fig figcaption{color:var(--sa-color-text-subtle);font-size:12px;margin-top:12px}
.sa-fig text{fill:var(--sa-color-text-default,#131F33);font-family:var(--sa-font-family-sans)}
.sa-fig .mono{font-family:var(--sa-font-family-mono)}
.sa-fig .t-muted{fill:var(--sa-color-text-muted,#38465C)}.sa-fig .t-brand{fill:var(--sa-color-text-brand,#004AAD)}
.sa-fig .box{fill:var(--sa-color-bg-subtle,#F6F8FB);stroke:var(--sa-color-border-default,#DCE2EB)}
.sa-fig .accent-box{fill:var(--sa-color-bg-brandSubtle,#EAF1FA);stroke:var(--sa-color-border-brand,#004AAD)}
.sa-fig .retired{fill:none;stroke:var(--sa-color-border-strong,#C2CBD8);stroke-dasharray:6 4}
.sa-fig .boundary{fill:none;stroke:var(--sa-color-border-strong,#C2CBD8);stroke-dasharray:6 4}
.sa-fig .wire{stroke:var(--sa-color-bg-brand,#004AAD);stroke-width:1.5;fill:none}
.sa-fig .wire-back{stroke:var(--sa-color-text-muted,#38465C);stroke-width:1.5;fill:none}
.sa-fig .link{stroke:var(--sa-color-border-brand,#004AAD);stroke-width:1.5;fill:none}
.sa-fig .rail{stroke:var(--sa-color-border-strong,#C2CBD8);stroke-width:2}
.sa-fig .dot{fill:var(--sa-color-bg-default,#FFFFFF);stroke:var(--sa-color-border-strong,#C2CBD8);stroke-width:2}
.sa-fig .dot-now{fill:var(--sa-color-bg-brand,#004AAD);stroke:var(--sa-color-bg-default,#FFFFFF);stroke-width:2}
.sa-fig .axis{stroke:var(--sa-color-border-strong,#C2CBD8);stroke-width:1}
.sa-fig .bar-new{fill:var(--sa-color-text-brand,#004AAD)}.sa-fig .bar-prev{fill:var(--sa-color-border-strong,#C2CBD8)}
.sa-fig .track{fill:var(--sa-color-bg-muted,#ECF0F5)}.sa-fig .track-hi{fill:var(--sa-color-bg-brand,#004AAD)}
.sa-fig .len{fill:var(--sa-color-bg-brandSubtle,#EAF1FA);stroke:var(--sa-color-border-brand,#004AAD)}
.sa-fig .len-open{fill:none;stroke:var(--sa-color-border-brand,#004AAD);stroke-dasharray:6 4}
.sa-fig .lifeline{fill:var(--sa-color-bg-muted,#ECF0F5);stroke:var(--sa-color-border-default,#DCE2EB)}
.sa-fig .st-ok{fill:var(--sa-color-bg-subtle,#F6F8FB);stroke:var(--sa-color-semantic-success,#15803D);stroke-width:1.5}
.sa-fig .st-warn{fill:var(--sa-color-bg-subtle,#F6F8FB);stroke:var(--sa-color-semantic-warning,#B45309);stroke-width:1.5}
.sa-fig .st-ng{fill:var(--sa-color-bg-subtle,#F6F8FB);stroke:var(--sa-color-semantic-danger,#DC2626);stroke-width:1.5}
.sa-fig .cell{fill:none;stroke:var(--sa-color-border-default,#DCE2EB)}
.sa-fig .cell-head{fill:var(--sa-color-bg-subtle,#F6F8FB);stroke:var(--sa-color-border-default,#DCE2EB)}
.sa-fig .cell-ok{fill:var(--sa-color-bg-brandSubtle,#EAF1FA);stroke:var(--sa-color-border-default,#DCE2EB)}
.sa-fig .cell-ng{fill:var(--sa-color-bg-muted,#ECF0F5);stroke:var(--sa-color-border-default,#DCE2EB)}
.stepper{background:var(--sa-color-bg-surface)}
.step-list{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0 0 16px;list-style:none;max-width:none}
.step-list li{font-size:12px;font-family:var(--sa-font-family-mono);padding:4px 10px;border:1px solid var(--sa-color-border-default);border-radius:4px;color:var(--sa-color-text-muted)}
.step-list li.active{border-color:var(--sa-color-border-brand);background:var(--sa-color-bg-brandSubtle);color:var(--sa-color-text-brand);font-weight:700}
.step-list li.done{color:var(--sa-color-text-default)}
.sim-toolbar{display:flex;flex-wrap:wrap;gap:12px}
.sim-state{font-family:var(--sa-font-family-mono);color:var(--sa-color-text-brand);margin:20px 0 8px;font-size:14px}
.sim-json{min-height:180px;max-height:420px;overflow:auto;margin-bottom:8px}
.sim-note{min-height:48px;font-size:14px}
.sim-status{min-height:28px;font-size:14px;color:var(--sa-color-semantic-danger);font-weight:700}
.progress-wrap{margin-top:20px;font-size:12px}.progress-wrap progress{display:block;width:100%;height:8px;accent-color:var(--sa-color-bg-brand);margin-top:8px}
.quiz button{display:block;text-align:left;width:100%;margin:8px 0;padding:12px 16px;border:1px solid var(--sa-color-border-default);background:var(--sa-color-bg-surface);color:var(--sa-color-text-default);border-radius:4px;cursor:pointer;font:inherit;font-size:14px}
.quiz button[aria-pressed=true]{border-color:var(--sa-color-border-brand);background:var(--sa-color-bg-brandSubtle)}.quiz-result{min-height:28px;font-size:14px}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible,input:focus-visible{outline:2px solid var(--sa-color-border-brand);outline-offset:3px}button:disabled{opacity:.55;cursor:default}
details{padding:16px;border:1px solid var(--sa-color-border-default);border-radius:8px;margin:16px 0}summary{cursor:pointer;font-weight:500}details[open] summary{margin-bottom:16px}
.downloads{margin:24px 0}
.sources li{margin-bottom:8px}.verification{font-size:14px}
.glossary dt{font-weight:700;margin-top:12px}.glossary dd{margin:4px 0 0 0}
footer p{margin:0}noscript{display:block;padding:16px;background:var(--sa-color-bg-subtle)}
@media(max-width:60rem){.hero-grid{grid-template-columns:minmax(0,1fr);gap:24px}.hero-trace{display:none}.sa-doc-layout{grid-template-columns:minmax(0,1fr);gap:32px}.toc{position:sticky;top:0;z-index:20;background:var(--sa-color-bg-default);padding:8px 0;display:flex;overflow-x:auto;max-height:none;border-bottom:1px solid var(--sa-color-border-default)}.toc a{white-space:nowrap;flex:none;padding:8px 12px;border-left:0;border-bottom:2px solid transparent}.toc a[aria-current=true]{border-bottom-color:var(--sa-color-border-brand)}.toc>p,.toc>.progress-wrap{display:none}section{scroll-margin-top:76px}.sa-doc-layout{padding-top:0}.sa-doc-hero h1{font-size:36px}.hero-sub{font-size:20px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.exercise{padding:16px}}
@media(max-width:40rem){.cards{grid-template-columns:minmax(0,1fr)}}
@media(max-width:380px){.sa-doc-header .sa-doc-header-inner,.sa-doc-hero .sa-doc-hero-inner,.sa-doc-layout{padding-left:16px;padding-right:16px}.sa-doc-hero h1{font-size:30px}.sim-toolbar .sa-btn{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
@media print{.toc,.copy,.sim-toolbar,.exercise>label input,.downloads,.quiz button,.skip,.calc,.builder,.stepper{display:none!important}.sa-doc-layout{display:block;padding:24px 0}.sa-doc-hero{padding:24px 0}.hero-grid{display:block}.hero-trace{display:none}section{break-before:auto;margin-bottom:24px;padding-bottom:24px}.sa-scroll-x,.table-wrap{overflow:visible!important}.sa-fig svg{min-width:0!important;width:100%}pre{white-space:pre-wrap;overflow:visible;background:#F6F8FB!important;color:#131F33!important}pre code{white-space:pre-wrap;overflow-wrap:anywhere;color:inherit!important}.sa-fig,.exercise,.sa-callout{break-inside:avoid}details:not([open]) > :not(summary){display:none}.sa-doc-header{border:0}.sa-doc-footer{background:none}h2,h3{break-after:avoid}}
