.documentation{--doc-bg:#f8f9f5;--doc-panel:#fff;--doc-ink:#23373e;--doc-muted:#56676c;--doc-line:#d9e1dc;--doc-accent:#17644d;--doc-soft:#e9f1e9;--callout-bg:#edf4ed;--callout-border:#c6d9ca;background:var(--doc-bg);color:var(--doc-ink);--bs-body-bg:var(--doc-bg);--bs-body-color:var(--doc-ink);--bs-border-color:var(--doc-line);--bs-link-color:var(--doc-accent);--status-fg:#255b45;--status-bg:#e7f0e6;--status-border:#a9c9b4;line-height:1.8}.documentation a{color:var(--doc-accent)}[data-bs-theme=dark] .documentation{--doc-bg:#111e25;--doc-panel:#182a33;--doc-ink:#e0e8ec;--doc-muted:#afc1ca;--doc-line:#3b505a;--doc-accent:#a0ebc9;--doc-soft:#233d3c;--callout-bg:#1b3335;--callout-border:#49645b;--status-fg:#b4f0d3;--status-bg:#19352e;--status-border:#477665}.docs-header{position:sticky;top:0;z-index:1020;height:76px;border-bottom:1px solid var(--doc-line);background:var(--doc-panel)}.docs-header>.container-fluid{height:100%;padding:0 2rem}.documentation .brand{color:var(--doc-ink);font-size:1.32rem;flex-shrink:0}.documentation .brand .icon{color:var(--doc-accent)}.brand-docs{font-size:.76rem;letter-spacing:0;font-weight:500;color:var(--doc-muted);border-left:1px solid var(--doc-line);padding-left:.7rem;margin-left:.2rem}.search-trigger{display:flex;align-items:center;gap:.75rem;border:1px solid var(--doc-line);background:var(--doc-bg);color:var(--doc-muted);font-size:.78rem;font-weight:400;border-radius:8px;width:min(360px,33vw);margin-left:3rem;justify-content:start}.search-trigger .icon{width:17px;height:17px}.search-trigger kbd{margin-left:auto;background:var(--doc-panel);color:var(--doc-muted);font-size:.65rem;border:1px solid var(--doc-line);border-radius:4px}.theme-toggle{padding:.5rem;color:var(--doc-muted);border:1px solid var(--doc-line)}.theme-toggle .icon{width:19px;height:19px}.website-link{font-size:.78rem;text-decoration:none;white-space:nowrap}.docs-layout{display:grid;grid-template-columns:260px minmax(0,850px) 205px;max-width:1536px;margin:auto;min-height:calc(100vh - 76px)}.docs-sidebar{padding:2rem 1.25rem 2rem 2rem;border-right:1px solid var(--doc-line);position:sticky;top:76px;height:calc(100vh - 76px);overflow-y:auto;overscroll-behavior:contain}.sidebar-group{margin-bottom:1rem}.sidebar-group-toggle{display:flex;justify-content:space-between;align-items:center;gap:.5rem;width:100%;border:0;background:none;padding:.35rem .5rem;font-size:.73rem;font-weight:700;color:var(--doc-ink);text-align:left}.sidebar-group-toggle span{font-size:.9rem;color:var(--doc-muted)}.docs-nav-link{display:block;padding:.38rem .65rem .38rem .9rem;margin:.15rem 0;border-left:2px solid transparent;border-radius:0 5px 5px 0;font-size:.74rem;text-decoration:none;color:var(--doc-muted)!important;line-height:1.6}.docs-nav-link:hover{background:var(--doc-soft);color:var(--doc-ink)!important}.docs-nav-link.active{background:var(--doc-soft);border-left-color:var(--doc-accent);color:var(--doc-accent)!important;font-weight:650}.sidebar-note{border-top:1px solid var(--doc-line);padding:1.5rem .5rem 0;margin-top:1.5rem}.sidebar-note p{font-size:.69rem;color:var(--doc-muted);margin:.7rem 0 0}.docs-main{min-width:0;padding:2.5rem clamp(1.5rem,3.8vw,4rem) 4rem;max-width:850px}.doc-breadcrumb{display:flex;gap:.65rem;font-size:.7rem;color:var(--doc-muted);margin-bottom:2rem}.doc-breadcrumb span{color:var(--doc-muted)}.doc-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:.8rem}.doc-title-row .eyebrow{color:var(--doc-accent);font-size:.64rem}.doc-title-row .status-badge{font-size:.6rem;padding:.25rem .45rem}.docs-main h1{font-size:clamp(2rem,3.6vw,2.8rem);letter-spacing:-.055em;line-height:1.2;font-weight:700;margin:.8rem 0 2.2rem}.docs-main h2{font-size:1.35rem;font-weight:650;line-height:1.35;letter-spacing:-.025em;scroll-margin-top:6rem;margin:0 0 1rem}.doc-section{margin-bottom:2.5rem}.docs-main p,.docs-main li{font-size:.9rem;color:var(--doc-muted);line-height:1.9}.docs-main .lead{font-size:1.02rem;color:var(--doc-ink)}.docs-main .callout strong{color:var(--doc-ink)}.doc-inline-link{font-size:.85rem;font-weight:650}.docs-topic{padding:1.4rem;border:1px solid var(--doc-line);background:var(--doc-panel);border-radius:10px;text-decoration:none;transition:border-color .15s}.docs-topic:hover{border-color:var(--doc-accent)}.docs-topic>.icon{margin-bottom:1.1rem}.docs-topic strong{font-size:.9rem;color:var(--doc-ink);margin-bottom:.5rem}.docs-topic span{font-size:.76rem;line-height:1.7;color:var(--doc-muted)}.docs-toc{position:sticky;top:76px;height:fit-content;padding:3rem 1rem 2rem;border-left:1px solid var(--doc-line);margin-top:0}.docs-toc h2{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:1rem}.docs-toc a{display:block;font-size:.7rem;line-height:1.65;text-decoration:none;margin-bottom:.65rem;color:var(--doc-muted)}.docs-toc a:hover{color:var(--doc-accent)}.toc-note{border-top:1px solid var(--doc-line);margin-top:2rem;padding-top:1.3rem;color:var(--doc-muted)}.toc-note .icon{width:17px;height:17px}.toc-note p{font-size:.65rem;line-height:1.7;margin-top:.5rem}.doc-pagination{display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--doc-line);margin-top:3rem;padding-top:1.5rem}.doc-pagination a{display:block;font-size:.76rem;text-decoration:none;max-width:47%}.docs-footer{border-top:1px solid var(--doc-line);padding:1.5rem 2rem;display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;font-size:.68rem;color:var(--doc-muted);background:var(--doc-panel)}.documentation .table{--bs-table-bg:transparent;--bs-table-color:var(--doc-ink);--bs-table-border-color:var(--doc-line);font-size:.76rem;white-space:nowrap}.documentation .table th{background:var(--doc-soft);font-weight:650;padding:.85rem}.documentation .table td{padding:.85rem}.documentation caption{font-size:.72rem;color:var(--doc-muted)}.documentation .table-responsive{border:1px solid var(--doc-line);border-radius:8px;margin:1rem 0;max-width:100%}.documentation .table{margin-bottom:0}.documentation .architecture-figure{box-shadow:none}.btn-doc-primary{background:var(--doc-accent);color:var(--doc-panel)!important;font-size:.82rem;font-weight:650;padding:.65rem 1rem}.btn-doc-primary:hover{opacity:.9;background:var(--doc-accent)}.search-dialog{width:min(650px,calc(100vw - 2rem));max-height:80vh;position:fixed;margin:10vh auto auto;border:1px solid var(--doc-line);border-radius:14px;background:var(--doc-panel);color:var(--doc-ink);padding:0;box-shadow:0 30px 120px #0006;overflow:auto}.search-dialog::backdrop{background:#07151f99;backdrop-filter:blur(3px)}.search-dialog-top{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.5rem;gap:1rem}.search-dialog h2{font-size:.95rem;font-weight:650;margin:0}.search-close{font-size:.7rem;color:var(--doc-muted);border:1px solid var(--doc-line);padding:.25rem .45rem}.search-input-wrap{display:flex;align-items:center;gap:.7rem;margin:0 1.5rem;border:1px solid var(--doc-line);border-radius:8px;padding:.5rem .7rem}.search-input-wrap .icon{color:var(--doc-accent);width:20px}.search-input-wrap input{border:0;border-radius:0;background:transparent;color:var(--doc-ink);font-size:.9rem;min-width:0}.search-input-wrap input:focus{box-shadow:none;background:transparent;color:var(--doc-ink)}.search-input-wrap input::placeholder{color:var(--doc-muted)}.search-hint{font-size:.67rem;margin:.65rem 1.5rem;color:var(--doc-muted)}.search-status{font-size:.75rem;margin:1rem 1.5rem;color:var(--doc-muted)}.search-results{list-style:none;padding:0 .75rem;margin:0 0 1rem}.search-results a{display:block;padding:.8rem;border-radius:7px;text-decoration:none}.search-results a:hover,.search-results a:focus{background:var(--doc-soft)}.search-results strong{display:block;font-size:.9rem;color:var(--doc-ink)}.search-results small{display:block;font-size:.65rem;color:var(--doc-accent);margin-bottom:.25rem}.search-results p{font-size:.74rem;line-height:1.6;color:var(--doc-muted);margin:.35rem 0 0}.search-footer{border-top:1px solid var(--doc-line);padding:.7rem 1.5rem;color:var(--doc-muted);font-size:.66rem}.docs-sidebar-toggle{border:1px solid var(--doc-line);font-size:.75rem;color:var(--doc-ink)}@media(min-width:1600px){.docs-layout{grid-template-columns:280px minmax(0,900px) 220px}}@media(max-width:1199px){.docs-layout{grid-template-columns:240px minmax(0,1fr)}.docs-toc{position:static;grid-column:2;padding:0 2.5rem 2rem;border:0}.docs-toc nav{border-top:1px solid var(--doc-line);padding-top:1rem}.docs-toc a{display:inline-block;margin-right:1rem}.toc-note{display:none}.docs-header>.container-fluid{padding:0 1.25rem}.search-trigger{margin-left:1rem;width:300px}}@media(max-width:991px){.docs-layout{display:block}.docs-sidebar{position:static;height:auto;padding:1.25rem;border-right:0;border-bottom:1px solid var(--doc-line);max-height:60vh;background:var(--doc-panel)}.docs-main{max-width:840px;margin:auto;padding:2rem 1.5rem}.docs-toc{padding:0 1.5rem 2rem}.search-trigger{width:auto;margin-left:auto}.search-trigger span{display:none}.docs-header-actions{margin-left:0!important}.docs-header .status-badge{display:none}.doc-breadcrumb{margin-bottom:1.5rem}.docs-header{height:70px}}@media(max-width:575px){.docs-header>.container-fluid{padding:0 .85rem;gap:.6rem!important}.documentation .brand{font-size:1.15rem;gap:.4rem}.documentation .brand .icon{width:25px;height:25px}.brand-docs{font-size:.64rem;padding-left:.4rem;margin-left:0}.search-trigger{padding:.5rem}.docs-header-actions{gap:.5rem!important}.website-link{display:none}.theme-toggle{padding:.4rem}.docs-sidebar-toggle{padding:.4rem .5rem}.docs-main{padding:1.75rem 1.15rem}.docs-main h1{font-size:2.15rem}.docs-main h2{font-size:1.2rem}.doc-pagination a{max-width:100%}.search-dialog-top{padding:1rem}.search-input-wrap{margin:0 1rem}.search-hint,.search-status{margin-left:1rem;margin-right:1rem}.search-dialog h2{font-size:.84rem}}
@media(max-width:575px){.docs-header{height:auto;min-height:80px}.docs-header>.container-fluid{flex-wrap:wrap;padding-top:.7rem;padding-bottom:.7rem}.documentation .brand{margin-right:auto}.docs-sidebar-toggle{order:3}.search-trigger{order:4;width:calc(100% - 70px);margin-left:0}.search-trigger span{display:inline;font-size:.72rem}.docs-header-actions{order:2}.website-link{display:inline;font-size:.67rem}.docs-sidebar{max-height:60vh}html{scroll-padding-top:8rem}.docs-main h2{scroll-margin-top:8rem}}
.documentation code{color:var(--doc-accent)}.documentation pre code{color:#d7efe5}
.documentation .architecture-figure li{color:#e3eeef}.documentation .architecture-figure .arch-note{color:#b3c9d0;font-size:.72rem;line-height:1.7}

/* v3 design pass */
.documentation{--doc-shadow:0 1px 2px #1d33290d,0 8px 24px #1d33290a}
[data-bs-theme=dark] .documentation{--doc-shadow:0 1px 2px #0006,0 8px 24px #0004}
.docs-header{background:color-mix(in srgb,var(--doc-panel) 85%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}
.documentation body,.documentation{background-image:radial-gradient(ellipse 60% 30% at 50% -5%,color-mix(in srgb,var(--doc-accent) 9%,transparent),transparent 70%);background-repeat:no-repeat}
.docs-sidebar{background:color-mix(in srgb,var(--doc-panel) 55%,transparent)}
.sidebar-group-toggle{text-transform:uppercase;letter-spacing:.1em;font-size:.64rem;color:var(--doc-muted);padding:.5rem}
.sidebar-group-toggle span{transition:transform .2s}
.sidebar-group-toggle[aria-expanded=false] span{transform:rotate(-90deg)}
.docs-nav-link{font-size:.78rem;border-radius:0 7px 7px 0}
.docs-main{max-width:880px}
.docs-main h1{font-size:clamp(2.2rem,4vw,3.2rem);letter-spacing:-.05em;margin-bottom:2.5rem;background:linear-gradient(180deg,var(--doc-ink),color-mix(in srgb,var(--doc-ink) 70%,var(--doc-accent)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.doc-section{margin-bottom:0;padding:2rem 0;border-top:1px solid var(--doc-line)}
.doc-section:first-of-type{border-top:0;padding-top:0}
.docs-main h2{font-size:1.45rem;margin-bottom:1.1rem}
.docs-main p,.docs-main li{font-size:.95rem;line-height:1.85}
.docs-main .lead{font-size:1.15rem;line-height:1.75;color:var(--doc-ink)}
.docs-main ul,.docs-main ol{padding-left:1.3rem}
.docs-main li::marker{color:var(--doc-accent)}
.documentation :not(pre)>code{background:var(--doc-soft);border:1px solid var(--doc-line);border-radius:5px;padding:.1em .4em;font-size:.86em}
.callout{box-shadow:var(--doc-shadow);background:var(--callout-bg)}
.callout-warning{--callout-bg:#fbf4e4;--callout-border:#e3cf9f}
[data-bs-theme=dark] .callout-warning{--callout-bg:#2c2a22;--callout-border:#675a3a}
.docs-topic{box-shadow:var(--doc-shadow);transition:transform .15s,border-color .15s}
.docs-topic:hover{transform:translateY(-2px)}
.docs-topic>.icon{display:block;width:38px;height:38px;padding:8px;border-radius:9px;background:var(--doc-soft);color:var(--doc-accent);margin-bottom:1.1rem}
.docs-topic strong{display:block;font-size:1rem}
.docs-topic span{display:block;font-size:.84rem}
.docs-toc a{border-left:2px solid var(--doc-line);padding:.15rem 0 .15rem .8rem;margin-bottom:.15rem;font-size:.76rem}
.docs-toc a.is-current{border-left-color:var(--doc-accent);color:var(--doc-accent);font-weight:650}
.doc-pagination{display:grid;grid-template-columns:1fr 1fr;gap:1rem;border-top:0;padding-top:1rem;margin-top:2rem}
.doc-pagination .pager{max-width:none;display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.2rem;border:1px solid var(--doc-line);border-radius:10px;background:var(--doc-panel);box-shadow:var(--doc-shadow);transition:border-color .15s,transform .15s}
.doc-pagination .pager:hover{border-color:var(--doc-accent);transform:translateY(-2px)}
.doc-pagination .pager small{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--doc-muted)}
.doc-pagination .pager span{font-size:.92rem;font-weight:650}
.pager-next{text-align:right;grid-column:2}
.doc-pagination>span:empty{display:block}
.documentation .table-responsive{box-shadow:var(--doc-shadow);background:var(--doc-panel)}
.search-trigger{background:var(--doc-panel);box-shadow:var(--doc-shadow)}
.search-trigger:hover{border-color:var(--doc-accent)}
.doc-breadcrumb{font-size:.76rem}
@media(max-width:575px){.doc-pagination{grid-template-columns:1fr}.pager-next{grid-column:auto}}
