/* Documentation extends the same paper, ink, type, and blue as the homepage. */
.docs-layout {max-width:1480px;margin:auto;padding:54px var(--gutter) 100px;display:grid;grid-template-columns:220px minmax(0,760px) 170px;gap:52px;align-items:start}
.docs-sidebar {position:sticky;top:calc(var(--header) + 28px);max-height:calc(100dvh - var(--header) - 60px);overflow:auto;scrollbar-width:thin;padding-right:14px;font:13px/1.5 var(--sans)}
.docs-mobile-nav>summary {display:none}
.docs-sidebar a {display:block;padding:6px 10px;color:var(--muted);border-radius:4px}
.docs-sidebar a:hover {background:var(--inset);color:var(--ink)}
.docs-sidebar a[aria-current="page"] {background:var(--inset);color:var(--blue);box-shadow:inset 2px 0 var(--blue)}
.docs-sidebar .docs-overview {font-weight:600;color:var(--ink);margin-bottom:18px}
.docs-nav-group {margin:0 0 18px}
.docs-nav-group summary {font-weight:600;color:var(--ink);cursor:pointer;padding:4px 8px;margin-bottom:4px}
.upstream-mark {float:right;font-size:11px;opacity:.8;margin-left:8px}
.doc-content {min-width:0;max-width:100%;font:16px/1.8 var(--sans);letter-spacing:.005em}
.doc-content h1 {font-size:clamp(40px,4vw,56px);line-height:1.1;letter-spacing:-1.6px;font-weight:400;margin:16px 0 24px}
.doc-content h1 em {color:var(--muted);font-weight:400}
.doc-content h2 {font-size:30px;line-height:1.23;letter-spacing:-.7px;font-weight:400;margin:54px 0 20px;scroll-margin-top:0}
.doc-content h3 {font-size:23px;line-height:1.35;font-weight:400;margin:34px 0 14px}
.doc-content p {margin:0 0 22px}
.doc-content .eyebrow {margin:0;color:var(--blue);font-size:11px;letter-spacing:1.8px;font-family:var(--sans)}
.doc-content .doc-lead {font-size:22px;line-height:1.55;color:var(--muted);margin:0 0 28px;max-width:750px}
.doc-content .doc-lead p {margin:0}
.guide-meta {display:flex;gap:18px;flex-wrap:wrap;border-bottom:1px solid var(--rule);padding:0 0 28px;margin:0 0 34px;font:11px/1.5 var(--sans);color:var(--muted);letter-spacing:.25px}
.guide-meta span+span::before {content:'·';margin-right:18px}
.doc-content a:not(.directory-item):not(.docs-start a):not([data-enlarge]):not(.workspace-guides a):not(.guide-pagination a) {color:var(--blue);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.doc-content a:hover {text-decoration-thickness:2px}
.doc-content li {margin-bottom:10px}
.doc-content ul,.doc-content ol {padding-left:24px;margin:0 0 24px}
.doc-content strong {font-weight:600}
.doc-content code {font: .82em/1.6 var(--mono);background:var(--inset);padding:2px 5px;border-radius:3px;overflow-wrap:anywhere}
.doc-content pre {max-width:100%;overflow:auto;margin:24px 0;padding:23px 25px;background:var(--inset);border:1px solid var(--rule);border-radius:6px;font:13px/1.8 var(--mono);tab-size:4}
.doc-content pre code {font:inherit;padding:0;border-radius:0;overflow-wrap:normal;white-space:pre;background:none}
.code-example {position:relative;min-width:0;margin:24px 0}
.code-example pre {margin:0;padding-top:42px}
.copy-code {position:absolute;top:8px;right:9px;border:1px solid var(--rule);border-radius:4px;padding:4px 9px;background:var(--paper);color:var(--muted);font:11px/1.5 var(--sans);cursor:pointer}
.copy-code:hover {color:var(--blue);border-color:var(--blue)}
.doc-content table {border-collapse:collapse;font:14px/1.65 var(--sans);width:100%;margin:0;overflow-wrap:break-word;table-layout:auto}
.doc-content col {width:auto!important}
.doc-content .table-wrap {margin:26px 0;max-width:100%;overflow-x:auto;border:1px solid var(--rule);border-radius:7px;scrollbar-width:thin}
.doc-content .table-wrap:focus-visible,.doc-content .doc-diagram:focus-visible {outline-offset:3px}
.doc-content .table-wrap[data-columns="3"] table {min-width:560px}
.doc-content .table-wrap[data-columns="4"] table,.doc-content .table-wrap[data-columns="5"] table {min-width:680px}
.doc-content td code {overflow-wrap:normal}
.doc-content th {text-align:left;font-size:11px;letter-spacing:.6px;text-transform:uppercase;background:var(--inset);font-weight:600}
.doc-content td,.doc-content th {padding:14px 15px;border-bottom:1px solid var(--rule);vertical-align:top}
.doc-content td p {margin:0}
.doc-note,.availability-note {border-left:2px solid var(--blue);padding:20px 24px;margin:30px 0;background:var(--inset);font-size:16px;line-height:1.7}
.doc-note p:last-child,.availability-note p:last-child {margin:0}
.availability-note {font-family:var(--sans);font-size:14px}
.platform-line {display:flex;gap:22px;flex-wrap:wrap;font:12px/1.6 var(--sans);color:var(--muted);margin:-8px 0 24px}
.platform-line span:before {content:'✓';color:var(--blue);margin-right:7px}
.doc-toc {position:sticky;top:calc(var(--header) + 32px);font:12px/1.55 var(--sans);border-left:1px solid var(--rule);padding:3px 0 3px 20px}
.doc-toc p {margin:0 0 12px;font-weight:600}
.doc-toc a {display:block;margin:0 0 12px;color:var(--muted)}
.doc-toc a:hover {color:var(--blue)}
.doc-details {margin:0;border-bottom:1px solid var(--rule);font-size:16px}
.doc-details summary {cursor:pointer;padding:19px 0;font-family:var(--sans);font-size:14px;font-weight:500}
.doc-details p {padding:0 14px 0 22px}
.doc-details[open] summary {color:var(--blue)}
.doc-figure {margin:34px 0}
.doc-figure img {display:block;width:100%;height:auto;border:1px solid var(--rule);border-radius:5px}
.doc-figure figcaption {font:12px/1.6 var(--sans);color:var(--muted);margin-top:12px}
.doc-content .slide-demo {border:1px solid var(--rule);border-radius:6px;margin:30px 0;overflow:hidden}
.doc-content .demo-launch-prompt {font-size:17px}
.doc-content .demo-launch-prompt small {font-size:12px}
.next-reading {border-top:1px solid var(--rule);margin:56px 0 0;padding:26px 0 0}
.next-reading p {margin:0 0 10px}
.next-reading strong {font-family:var(--sans);font-size:12px;font-weight:500;color:var(--muted)}
.next-reading a {font-size:24px;text-decoration:none!important}
.doc-source {margin:40px 0 0;font:12px/1.6 var(--sans);color:var(--muted)}
.doc-content .doc-source a{color:var(--muted);text-decoration:none}
.doc-content .doc-source a:hover{color:var(--blue)}
.directory-layout {grid-template-columns:220px minmax(0,1fr)}
.docs-directory .doc-lead {max-width:680px}
.docs-start {display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;margin:38px 0 25px;border:1px solid var(--rule);border-radius:7px;overflow:hidden}
.docs-start>a {padding:24px;background:var(--inset);display:flex;flex-direction:column;color:var(--ink)}
.docs-start>a+a {border-left:1px solid var(--rule)}
@media(max-width:900px){.docs-start {grid-template-columns:1fr}.docs-start>a+a {border-left:0;border-top:1px solid var(--rule)}}
.docs-start>a:hover {background:var(--raised)}
.doc-content .docs-start h2 {font-size:23px;margin:14px 0 12px}
.docs-start h2 span {color:var(--blue);font:20px var(--sans);float:right;padding-left:10px}
.docs-start p {font-size:14px;line-height:1.6;margin-bottom:22px;color:var(--muted)}
.reading-time {font:11px/1.5 var(--sans);color:var(--muted);margin-top:auto}
.doc-content .migration-note {font:12px/1.7 var(--sans);color:var(--muted);margin-bottom:45px}
.directory-group {display:grid;grid-template-columns:170px minmax(0,1fr);gap:22px;padding:29px 0;border-top:1px solid var(--rule)}
.directory-heading h2 {font-size:22px;margin:0 0 8px;letter-spacing:-.4px}
.directory-heading>span {font:12px var(--sans);color:var(--muted)}
.directory-items {display:grid;grid-template-columns:1fr 1fr;gap:22px 28px}
.directory-item h3 {font-family:var(--sans);font-size:14px;margin:0 0 7px;font-weight:500}
.directory-item h3 span {color:var(--blue);margin-left:6px}
.directory-item p {font:12px/1.7 var(--sans);color:var(--muted);margin:0}
.directory-item:hover h3 {color:var(--blue)}
.install-layout {max-width:1110px;grid-template-columns:minmax(0,760px) 180px;gap:60px}
.install-layout .doc-content>h1 {font-size:68px}
.search-dialog {border:1px solid var(--rule);border-radius:10px;padding:24px;width:min(660px,calc(100vw - 32px));max-height:80dvh;background:var(--paper);color:var(--ink);box-shadow:0 24px 100px #0004}
.search-dialog::backdrop {background:#100f0f66;backdrop-filter:blur(4px)}
.search-heading {display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.search-heading h2 {font:25px var(--serif);margin:0;font-weight:400}
.search-heading button {font:11px var(--sans);padding:8px;border:1px solid var(--rule);border-radius:4px;background:var(--inset);color:var(--muted);cursor:pointer}
.search-dialog input {width:100%;font:17px var(--sans);padding:14px;border:1px solid var(--rule);border-radius:5px;background:var(--inset);color:var(--ink)}
.search-status,.search-help {font:11px/1.5 var(--sans);color:var(--muted);margin:15px 0}
.search-results {list-style:none;padding:0;margin:0;max-height:48dvh;overflow:auto}
.search-results a {display:block;padding:14px 12px;border-top:1px solid var(--rule);border-radius:3px}
.search-results a:hover,.search-results a:focus {background:var(--inset)}
.search-results strong {display:block;font:16px var(--serif);font-weight:400;margin-bottom:5px}
.search-results span {font:12px/1.6 var(--sans);color:var(--muted);display:block}
.search-help {margin-bottom:0}
@media(min-width:1500px){.directory-layout {gap:70px}}
@media(max-width:1200px){.docs-layout {grid-template-columns:200px minmax(0,1fr);gap:36px}.doc-toc {display:none}.install-layout {display:block;max-width:850px}.directory-group {grid-template-columns:135px minmax(0,1fr);gap:16px}.docs-start>a {padding:24px}}
@media(max-width:900px){.docs-layout {display:block;padding-top:24px}.docs-sidebar {position:static;max-height:none;padding:0;border-bottom:1px solid var(--rule);margin-bottom:32px}.docs-mobile-nav>summary {display:block;cursor:pointer;font:13px var(--sans);padding:14px 0;color:var(--blue)}.docs-mobile-nav>summary::after {content:' +';float:right}.docs-mobile-nav[open]>summary::after {content:' −'}.docs-sidebar nav {padding-bottom:20px;columns:2}.docs-nav-group {break-inside:avoid}.doc-content h1 {font-size:46px}.directory-group {grid-template-columns:145px minmax(0,1fr)}}
@media(max-width:600px){.docs-layout {padding-bottom:65px}.doc-content {font-size:17px;line-height:1.75}.doc-content h1 {font-size:39px;letter-spacing:-1px}.doc-content .doc-lead {font-size:20px}.doc-content h2 {font-size:27px;margin-top:40px}.doc-content h3 {font-size:22px}.doc-content pre {font-size:11px;padding:38px 16px 18px}.doc-content td,.doc-content th {padding:11px 8px;font-size:12px}.guide-meta {gap:8px;font-size:10px}.guide-meta span+span::before {margin-right:8px}.doc-note,.availability-note {padding:17px 18px}.docs-start {grid-template-columns:1fr}.docs-start>a+a {border-left:0;border-top:1px solid var(--rule)}.doc-content .docs-start h2 {font-size:25px;margin:15px 0}.directory-group {grid-template-columns:1fr;gap:22px}.directory-heading {display:flex;align-items:center;gap:14px}.directory-heading h2 {margin:0;font-size:24px}.directory-items {gap:22px;grid-template-columns:1fr 1fr}.directory-item h3 {font-size:13px}.install-layout .doc-content>h1 {font-size:49px}.platform-line {display:block;font-size:11px}.platform-line span {display:block;margin:6px 0}.doc-content .demo-launch-prompt {font-size:14px}.doc-content .demo-launch-prompt small {font-size:11px}}
@media print {.docs-sidebar,.doc-toc,.docs-footer,.search-open,.copy-code {display:none}.docs-layout {display:block;padding:0}.doc-content {max-width:none}.doc-content a {color:inherit}}
.api-detail{border-left:2px solid var(--rule);padding:2px 0 2px 18px;margin:12px 0 32px}.api-detail summary{font:13px/1.6 var(--sans);cursor:pointer;color:var(--blue)}.api-detail pre{white-space:pre-wrap;overflow-wrap:anywhere}.doc-content h3[id]{scroll-margin-top:0}.doc-content figure img{max-width:100%;height:auto}.doc-content figure:not(.doc-figure){margin:26px 0}.doc-content figure figcaption{font:12px/1.6 var(--sans);color:var(--muted);margin-top:10px}.doc-content .callout-note{padding:20px 24px;background:var(--inset);border-left:2px solid var(--blue);margin:28px 0}.doc-content .callout-note p:last-child{margin-bottom:0}

.api-detail {font-size:16px;line-height:1.75}.api-detail dl{margin:18px 0}.api-detail dt{margin-top:18px;font:14px/1.7 var(--sans);font-weight:600}.api-detail dd{margin:6px 0 18px 18px}.api-detail dd p{margin:8px 0}.api-detail pre{font-size:12px}.doc-content pre.python, .doc-content pre.python code, .doc-content pre.python code>span{white-space:pre-wrap;overflow-wrap:anywhere}.doc-content details>summary{cursor:pointer;color:var(--blue);font:13px/1.7 var(--sans)}

/* A quiet reading frame; demonstrations carry the visual emphasis. */
.docs-layout{gap:46px;padding-top:42px}
.doc-content h1,.doc-content h2,.doc-content h3{font-family:var(--serif);letter-spacing:-.025em}
.doc-content h1{font-size:clamp(38px,4vw,52px);margin:18px 0 20px}
.doc-content h2{padding-top:10px;margin-top:46px;font-size:29px}
.doc-content h3{font-size:23px}
.doc-content .doc-lead{font:19px/1.65 var(--sans);max-width:690px;margin-bottom:24px}
.doc-content p{margin-bottom:20px}
.doc-content li{margin-bottom:8px}
.doc-content strong{font-weight:600}
.docs-sidebar{border-right:1px solid var(--rule);padding-right:20px}
.docs-sidebar a{padding:7px 11px;border-radius:5px;line-height:1.55}
.docs-sidebar a[aria-current="page"]{background:color-mix(in srgb,var(--blue) 8%,var(--paper));box-shadow:inset 2px 0 var(--blue)}
.docs-nav-group{margin-bottom:20px}
.docs-nav-group summary{font-size:12px;letter-spacing:.015em;padding:5px 8px}
.doc-breadcrumb{display:flex;gap:10px;align-items:center;font:12px/1.5 var(--sans);color:var(--muted);margin-bottom:18px;flex-wrap:wrap}
.doc-content .doc-breadcrumb a{color:var(--muted);text-decoration:none}
.doc-content .doc-breadcrumb a:hover{color:var(--blue)}
.guide-meta{gap:13px;padding-bottom:22px;margin-bottom:30px;font-size:11px}
.guide-meta span+span::before{margin-right:13px}
.doc-content .heading-link{display:inline-block;margin-left:10px;text-decoration:none!important;color:var(--muted);opacity:0;font:16px var(--sans);vertical-align:middle}
.doc-content h2:hover .heading-link,.doc-content h3:hover .heading-link,.doc-content .heading-link:focus-visible{opacity:1}
.doc-toc{max-height:calc(100dvh - var(--header) - 65px);overflow:auto;scrollbar-width:thin;padding-left:17px}
.doc-toc a{padding:5px 0;margin-bottom:4px;line-height:1.6}
.doc-toc a[aria-current="location"]{color:var(--blue);font-weight:600}
.doc-figure{border:1px solid var(--rule);border-radius:9px;overflow:hidden;background:var(--inset);margin:30px 0}
.doc-figure img{border:0;border-radius:0}
.doc-figure figcaption{margin:0;padding:14px 17px;font-size:12px}
.doc-content .next-reading{padding:22px 24px;border:1px solid var(--rule);border-radius:8px;background:var(--inset);margin-top:42px}
.next-reading p:last-child{margin:0;line-height:2}
.next-reading a{font:14px/1.8 var(--sans)}
.doc-content table{font-size:13px}
.doc-content th{letter-spacing:.04em;font-size:10px}
.doc-content td,.doc-content th{padding:12px 14px}
.doc-content tbody tr:last-child td{border-bottom:0}
.doc-content tbody tr:nth-child(even){background:color-mix(in srgb,var(--inset) 50%,transparent)}
.doc-content pre{border-radius:8px;font-size:12px}
.doc-note,.availability-note{border:1px solid var(--rule);border-left:3px solid var(--blue);border-radius:0 7px 7px 0;font-size:14px}
.guide-pagination{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px}
.doc-content .guide-pagination a{padding:18px 20px;border:1px solid var(--rule);border-radius:7px;text-decoration:none;color:var(--ink)}
.guide-pagination a:hover{border-color:var(--blue);background:var(--inset)}
.guide-pagination span{display:block;font:11px/1.5 var(--sans);color:var(--muted);margin-bottom:9px}
.guide-pagination strong{font:18px/1.35 var(--serif)}
.workspace-guides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:30px 0 42px}
.doc-content .workspace-guides a{display:block;border:1px solid var(--rule);border-radius:8px;overflow:hidden;text-decoration:none!important;color:var(--ink);background:var(--inset)}
.workspace-guides img{width:100%;height:auto;aspect-ratio:1.65;object-fit:cover;display:block;border-bottom:1px solid var(--rule);background:#fff}
.workspace-guides span{display:block;padding:14px;font:13px/1.5 var(--sans)}
.workspace-guides b{float:right;color:var(--blue)}
.workspace-guides a:hover{border-color:var(--blue)}
.doc-study{border:1px solid var(--rule);border-radius:9px;overflow:hidden;margin:28px 0 34px;background:var(--paper)}
.doc-study-stage{position:relative;display:flow-root;background:#fffefa}
.doc-study-stage>img{display:block;width:100%;height:auto}
.doc-study-launch{position:relative;margin:0 auto 15px;display:flex;gap:10px;align-items:center;white-space:nowrap;padding:10px 15px;border:1px solid #d1d6d3;border-radius:6px;background:#fffefaf5;color:#205ea6;box-shadow:0 4px 20px #0001;font:13px var(--sans);cursor:pointer}
.doc-study-launch span{font-size:14px}
.doc-study-stage iframe{display:block;border:0;width:100%;height:500px;background:#fffefa}
.doc-study-caption{padding:14px 18px;font:12px/1.7 var(--sans);color:var(--muted);border-top:1px solid var(--rule)}
.doc-study-caption strong{color:var(--ink)}
.doc-study-caption p{margin:0!important}
.doc-study-caption .study-label{display:block;color:var(--blue);font-size:10px;letter-spacing:.09em;text-transform:uppercase;margin-bottom:5px}
.timing-lab{border:1px solid var(--rule);border-radius:9px;overflow:hidden;margin:28px 0;background:var(--inset)}
.timing-options{display:flex;flex-wrap:wrap;gap:6px;padding:12px;border-bottom:1px solid var(--rule)}
.timing-options button{border:1px solid var(--rule);border-radius:5px;padding:9px 12px;min-height:40px;background:var(--paper);color:var(--muted);font:12px var(--sans);cursor:pointer}
.timing-options button[aria-pressed=true]{color:var(--blue);border-color:var(--blue);background:color-mix(in srgb,var(--blue) 7%,var(--paper))}
.doc-content .timing-panel{margin:0!important}
.timing-panel img{display:block;width:100%;height:auto}
.doc-content .timing-panel figcaption{padding:15px 18px;margin:0}
.doc-content kbd{font-size:.8em;background:var(--paper);box-shadow:0 1px 0 var(--rule);padding:2px 6px;border-radius:4px;white-space:nowrap}
.doc-content .quick-path{display:flex;flex-wrap:wrap;gap:8px 18px;padding:14px 0 20px;margin:0 0 22px;border-bottom:1px solid var(--rule);font:12px/1.6 var(--sans)}
.doc-content .quick-path a{text-decoration:none}
@media(max-width:1200px){.docs-layout{gap:30px}.docs-layout.install-layout{display:block}}
@media(max-width:900px){.docs-sidebar{border-right:0;padding-right:0}.docs-layout{padding-top:18px}}
@media(max-width:600px){.doc-content{font-size:15px;line-height:1.8}.doc-content .doc-lead{font-size:18px}.doc-content h1{font-size:38px}.doc-content h2{font-size:27px}.doc-content h3{font-size:22px}.workspace-guides{grid-template-columns:1fr;gap:12px}.workspace-guides a{display:grid!important;grid-template-columns:110px 1fr;align-items:center}.workspace-guides img{border:0;aspect-ratio:1.3}.workspace-guides span{font-size:14px}.guide-pagination{gap:10px}.doc-content .guide-pagination a{padding:15px}.guide-pagination strong{font-size:17px}.doc-content .next-reading{padding:17px}.doc-breadcrumb{font-size:11px;gap:8px}.doc-study-launch{margin-bottom:12px;font-size:12px;padding:8px 12px}.doc-study-caption{padding:12px 14px}.timing-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:9px}.timing-options button{padding:8px;font-size:11px}.doc-content .heading-link{opacity:1;font-size:13px}.doc-content td,.doc-content th{padding:10px 8px}}
@media print{.heading-link,.guide-pagination,.doc-study-launch,.timing-options{display:none!important}.doc-study-stage>img{display:block!important}.doc-study-stage iframe{display:none!important}.timing-panel[hidden]{display:block!important}.doc-study,.doc-figure{break-inside:avoid}}
.doc-content .doc-figure-compact{max-width:440px;margin:28px auto 36px}
.doc-content .quick-path{border-bottom:0;padding-top:0;margin-top:-5px}
.doc-details[open]{padding-bottom:18px}
.doc-details>ul,.doc-details>ol{margin-left:12px}
.doc-details>p{font-size:14px}

/* Part explorer: a real fluxplot SVG whose named parts can be inspected. */
.part-explorer{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,1fr);border:1px solid var(--rule);border-radius:10px;overflow:hidden;margin:30px 0 34px;background:var(--inset)}
.explorer-stage{position:relative;background:#fff;padding:clamp(12px,2.6vw,28px);display:flex;align-items:center;justify-content:center;border-right:1px solid var(--rule)}
.explorer-stage img,.explorer-svg{display:block;width:100%;height:auto;max-width:560px}
.explorer-svg *{stroke-linejoin:round;stroke-linecap:butt}
.explorer-svg [data-role]{cursor:crosshair}
.explorer-svg text{pointer-events:bounding-box}
.explorer-svg .is-hot{filter:drop-shadow(0 0 0.6px #205ea6) drop-shadow(0 0 2px #205ea699)}
.explorer-box{fill:#205ea60d;stroke:#205ea6;stroke-width:.7;vector-effect:non-scaling-stroke;stroke-dasharray:none}
.explorer-handle{fill:#fff;stroke:#205ea6;stroke-width:.6;vector-effect:non-scaling-stroke}
.explorer-tip{position:absolute;left:0;top:0;z-index:2;pointer-events:none;display:flex;flex-direction:column;gap:1px;padding:6px 9px;border:1px solid #dad8ce;border-radius:5px;background:#fffcf0f7;color:#100f0f;box-shadow:0 4px 14px #100f0f1a;font:11px/1.35 var(--sans);white-space:nowrap}
.part-explorer .explorer-tip code{font:10.5px var(--mono);color:#205ea6;background:none;padding:0}
@media(hover:none){.explorer-tip{display:none}}
.explorer-panel{display:flex;flex-direction:column;min-width:0;font:13px/1.55 var(--sans);color:var(--muted)}
.explorer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--rule);font-size:11px;font-weight:550;letter-spacing:.08em;text-transform:uppercase}
.explorer-head button{font:11px var(--sans);border:1px solid var(--rule);border-radius:4px;background:var(--paper);color:var(--muted);padding:4px 9px;cursor:pointer}
.part-explorer:not(.is-pinned) .explorer-head button{visibility:hidden}
.explorer-readout{min-height:150px;padding:14px 16px;border-bottom:1px solid var(--rule);color:var(--ink)}
.explorer-readout>p{margin:0;font-size:13px;color:var(--muted)}
.explorer-crumbs{font-size:11px!important;color:var(--muted)!important;margin:0 0 8px!important;overflow-wrap:anywhere}
.explorer-crumbs span{opacity:.6;margin:0 2px}
.part-explorer .explorer-id{display:block;font:14px/1.4 var(--mono);color:var(--ink);background:none;padding:0;margin:0 0 8px;overflow-wrap:anywhere}
.explorer-role{display:inline-block;font:10px/1.2 var(--sans);font-weight:550;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);border:1px solid color-mix(in srgb,var(--blue) 35%,transparent);border-radius:3px;padding:4px 7px}
.explorer-facts{display:grid;grid-template-columns:max-content 1fr;gap:3px 14px;margin:12px 0 0;font-size:12px}
.explorer-facts dt{color:var(--muted)}
.explorer-facts dd{margin:0;color:var(--ink);font-family:var(--mono);font-size:11.5px;overflow-wrap:anywhere}
.explorer-tree{flex:1;overflow:auto;max-height:330px;padding:8px 10px 10px;scrollbar-width:thin}
.explorer-tree ul{list-style:none;margin:0;padding:0 0 0 14px}
.explorer-tree>ul{padding-left:0}
.explorer-tree li{margin:0}
.explorer-row{display:flex;align-items:center;gap:2px}
.explorer-row.is-leaf{padding-left:26px}
.explorer-toggle{flex:none;width:24px;height:26px;border:0;background:none;color:var(--muted);cursor:pointer;padding:0;position:relative}
.explorer-toggle::before{content:"";position:absolute;left:9px;top:10px;border:4px solid transparent;border-left:5px solid currentColor;transition:transform .15s}
.explorer-toggle[aria-expanded="true"]::before{transform:rotate(90deg) translate(-1px,-1px)}
.explorer-part{flex:1;min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:10px;text-align:left;border:0;border-radius:4px;background:none;color:var(--ink);font:12px/1.4 var(--sans);padding:4px 7px;cursor:pointer}
.explorer-part span{white-space:nowrap}
.part-explorer .explorer-part code{font:10.5px var(--mono);color:var(--muted);background:none;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:right}
.explorer-part:hover,.explorer-part[aria-current]{background:color-mix(in srgb,var(--blue) 10%,var(--paper));color:var(--blue)}
.explorer-part[aria-current] code{color:var(--blue)}
.explorer-caption{padding:12px 16px;border-top:1px solid var(--rule);font:12px/1.6 var(--sans);color:var(--muted);grid-column:1/-1;background:var(--paper)}
.explorer-caption p{margin:0!important}
.part-explorer:not(.is-live) .explorer-head button,.part-explorer:not(.is-live) .explorer-tree{display:none}
@media(max-width:800px){.part-explorer{grid-template-columns:1fr}.explorer-stage{border-right:0;border-bottom:1px solid var(--rule)}.explorer-tree{max-height:260px}}
@media print{.explorer-tree,.explorer-head{display:none}}

/* Explanatory diagrams reuse the homepage flow vocabulary. */
.doc-content .doc-diagram{margin:28px 0 34px;max-width:none}
.doc-content .doc-diagram svg{width:100%;height:auto;display:block}
.doc-content .doc-diagram figcaption{font:13px/1.6 var(--sans);color:var(--muted);margin-top:12px}
.doc-content .doc-diagram figcaption code{font-size:12px}
.doc-content .flow-labels text{font-size:13px}

/* Diagrams keep legible type on narrow screens by scrolling instead of shrinking. */
@media(max-width:800px){.doc-content .doc-diagram{overflow-x:auto;scrollbar-width:thin}.doc-content .doc-diagram svg{min-width:720px}}
.flow-files{display:grid;grid-template-columns:max-content 1fr;gap:3px 14px;margin:6px 0 0;font:11.5px/1.35 var(--sans)}
.flow-files dt{font-family:var(--mono);color:var(--ink)}
.flow-files dd{margin:0;color:var(--muted)}
.doc-content .flow-box code{font:11.5px/1.4 var(--mono);color:var(--ink);background:none;padding:0;display:block}
.doc-content .flow-box{font-size:12.5px}
/* Install commands wrap on phones instead of hiding their ends; copying uses the text. */
@media(max-width:600px){.install-layout .doc-content pre.bash,.install-layout .doc-content pre.bash code{white-space:pre-wrap;overflow-wrap:anywhere}}
/* The search dialog stays anchored while results change, so the field never jumps. */
.search-dialog{margin:min(12dvh,96px) auto auto}
/* Parts the manifest names but the plot's style does not draw (for example hidden tick marks). */
.explorer-note{margin:10px 0 0!important;font-size:12px!important;color:var(--muted)!important;font-style:italic}
.explorer-part.is-undrawn>span{color:var(--muted);font-style:italic}

/* Short inline code stays on one line; only long tokens may break. */
.doc-content code.is-short{white-space:nowrap}
.doc-content :not(pre)>code{overflow-wrap:break-word}
/* Only the API reference wraps its long signatures; other Python blocks scroll like every other block. */
.doc-content pre.python,.doc-content pre.python code,.doc-content pre.python code>span{white-space:pre;overflow-wrap:normal}
.doc-content[data-page="fluxplot-api"] pre.python,.doc-content[data-page="fluxplot-api"] pre.python code,.doc-content[data-page="fluxplot-api"] pre.python code>span{white-space:pre-wrap;overflow-wrap:anywhere}
.directory-heading{align-self:start;position:sticky;top:calc(var(--header) + 24px)}
@media(max-width:600px){.directory-heading{position:static}}
