:root{
  --brand-blue:#0A4DFF;
  --brand-teal:#00C9A7;
  --brand-ink:#1F2933;
  --brand-gray:#E5E7EB;
  --bg:#fff;
  --surface:color-mix(in srgb,var(--brand-gray) 44%,white);
  --surface2:var(--brand-gray);
  --text:var(--brand-ink);
  --muted:color-mix(in srgb,var(--brand-ink) 68%,white);
  --border:var(--brand-gray);
  --accent:var(--brand-blue);
  --accent-soft:color-mix(in srgb,var(--brand-blue) 9%,white);
  --green:var(--brand-teal);
  --orange:var(--brand-blue);
  --code:var(--brand-ink);
  --code-text:var(--brand-gray);
}
.brand{min-width:228px;gap:10px}.brand-logo{display:block;width:148px;height:auto}.brand-logo-dark{display:none}.brand>span:last-child{border-left:1px solid var(--brand-gray);padding-left:10px;color:var(--muted)}
.logo{display:none!important}
.toc a{display:none}
.toc button{border:0;border-left:2px solid transparent;background:none;text-align:left;font:11.5px/1.4 var(--sans);color:var(--muted);padding:5px 0 5px 9px;cursor:pointer}
.toc button:hover{color:var(--accent);border-left-color:var(--accent)}
.nav-group{margin:1px 0}
.nav-group summary{list-style:none;position:relative;padding-left:12px}
.nav-group summary::-webkit-details-marker{display:none}
.nav-group summary:before{content:"›";position:absolute;left:1px;top:7px;color:var(--muted);font-size:13px;transition:.15s}
.nav-group[open]>summary:before{transform:rotate(90deg)}
.nav-group summary a{font-weight:550}
.nav-group>div{margin:1px 0 7px 14px;border-left:1px solid var(--border);max-height:285px;overflow:auto}
.nav-group>div a{min-height:27px!important;padding-left:11px!important;font-size:11px!important;justify-content:flex-start!important;gap:7px}
.nav-group>div a code{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-kind{width:5px;height:5px;border-radius:50%;background:var(--muted);flex:none}
.nav-kind.class{background:var(--brand-blue)}.nav-kind.function{background:var(--brand-teal)}.nav-kind.constant{background:var(--brand-ink)}
.contract-map{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}
.contract-map a{border:1px solid var(--border);border-radius:7px;padding:14px;color:var(--text)}
.contract-map a:hover{border-color:var(--accent)}
.contract-map b,.contract-map code{display:block}.contract-map code{margin-top:7px;color:var(--accent);font-size:10px}
.result-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);border-radius:7px;overflow:hidden;margin:18px 0}
.result-grid>div{padding:14px;border-right:1px solid var(--border)}.result-grid>div:last-child{border:0}
.result-grid small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase}.result-grid strong{display:block;margin-top:5px;font:15px var(--mono)}
@media(max-width:760px){.contract-map,.result-grid{grid-template-columns:1fr}.result-grid>div{border-right:0;border-bottom:1px solid var(--border)}}
.kind.class{background:var(--brand-blue)}.kind.function{background:var(--brand-teal);color:var(--brand-ink)}.kind.constant{background:var(--brand-ink)}.kind.guide{background:var(--brand-blue)}
.primary-button,.brand .logo{background:var(--brand-blue)}
.callouts>div,.api-group>div{border-top-color:var(--brand-teal)}
.kw{color:var(--brand-teal)}.str{color:var(--brand-gray)}.num{color:color-mix(in srgb,var(--brand-blue) 58%,white)}
.result-chart .area{fill:color-mix(in srgb,var(--brand-blue) 18%,transparent)}.result-chart .line{stroke:var(--brand-blue)}.result-chart .risk-line{stroke:var(--brand-teal)}
.dispatch-chart i{background:color-mix(in srgb,var(--brand-gray) 26%,var(--brand-ink))}.dispatch-chart i.active{background:var(--brand-teal)}
.admonition.warning{border-color:var(--brand-teal);background:color-mix(in srgb,var(--brand-teal) 9%,var(--bg))}
.dark{
  --bg:var(--brand-ink);
  --surface:color-mix(in srgb,var(--brand-ink) 88%,var(--brand-gray));
  --surface2:color-mix(in srgb,var(--brand-ink) 76%,var(--brand-gray));
  --text:var(--brand-gray);
  --muted:color-mix(in srgb,var(--brand-gray) 70%,var(--brand-ink));
  --border:color-mix(in srgb,var(--brand-ink) 72%,var(--brand-gray));
  --accent:color-mix(in srgb,var(--brand-blue) 76%,white);
  --accent-soft:color-mix(in srgb,var(--brand-blue) 20%,var(--brand-ink));
  --code:color-mix(in srgb,var(--brand-ink) 85%,black);
}
.dark .brand-logo-light{display:none}.dark .brand-logo-dark{display:block}
.dark .brand>span:last-child{border-left-color:var(--border)}
@media(max-width:760px){.brand{min-width:0}.brand-logo{width:128px}}
#side-nav h3,#side-nav a span,.breadcrumbs,.output-head span:last-child{color:var(--muted)}
.example-block,.signature{background:var(--brand-ink);border-color:color-mix(in srgb,var(--brand-ink) 76%,var(--brand-gray));box-shadow:0 0 0 1px color-mix(in srgb,var(--brand-ink) 76%,var(--brand-gray))}
.code-head,.output-head,.signature>div{border-color:color-mix(in srgb,var(--brand-ink) 72%,var(--brand-gray));color:color-mix(in srgb,var(--brand-gray) 72%,var(--brand-ink))}
.example-block .output-head,.example-block pre.output,.result-chart,.dispatch-chart{background:color-mix(in srgb,var(--brand-ink) 90%,var(--brand-gray))}
.code-head button,.signature button{color:var(--brand-gray);border-color:color-mix(in srgb,var(--brand-ink) 65%,var(--brand-gray))}
.example-block pre,.signature pre{color:var(--brand-gray)}
.search-dialog footer kbd,.search-box button,.search-trigger kbd{border-color:var(--brand-gray)}
.doc-table{border:1px solid var(--border);border-radius:7px;overflow:hidden}.doc-table>div{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:18px;padding:12px 15px;border-bottom:1px solid var(--border)}.doc-table>div:last-child{border:0}.doc-table p{margin:0;font-size:12.5px}.type-label{color:var(--brand-teal);font-family:var(--mono)}
@media(max-width:760px){.doc-table>div{grid-template-columns:1fr;gap:5px}}
.exception-tree{border:1px solid var(--border);border-radius:7px;padding:18px;background:var(--surface)}.exception-tree div{display:flex;flex-direction:column;gap:7px;margin:9px 0 0 22px;padding-left:16px;border-left:2px solid var(--brand-teal)}.exception-tree code{width:max-content;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:3px 7px;color:var(--text)}

/* API description system — maintained by tools/refactor_reference_design.py */
:root{
  --error:#CA3535;
  --error-soft:color-mix(in srgb,var(--error) 8%,var(--bg));
  --error-border:color-mix(in srgb,var(--error) 58%,var(--border));
  --variable-border:color-mix(in srgb,var(--brand-ink) 24%,var(--brand-gray));
  --variable-fill:transparent;
}
.api-description{max-width:820px;padding:18px 20px;border-left:3px solid var(--brand-blue);background:color-mix(in srgb,var(--brand-gray) 23%,transparent);border-radius:0 7px 7px 0}
.api-description>p:first-child{margin-top:0}.api-description>p:last-child{margin-bottom:0}
.doc-table{display:grid;gap:9px;border:0;background:transparent;overflow:visible}
.doc-table>.doc-row{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:18px;padding:13px 15px;border:1px solid var(--variable-border);border-radius:7px;background:var(--variable-fill)}
.doc-table>.doc-row:last-child{border:1px solid var(--variable-border)}
.doc-name,.member-value,.method-signature{font-family:var(--mono);font-variant-ligatures:none}
.doc-name{color:var(--brand-ink);font-weight:650;overflow-wrap:anywhere}
.type-label{display:inline-block;color:color-mix(in srgb,var(--brand-teal) 72%,var(--brand-ink));font-family:var(--mono);font-size:.94em}
.method-list{display:grid;gap:10px;border:0;background:transparent}
.method-list>.method-card{padding:15px 17px;border:1px solid var(--variable-border);border-radius:7px;background:var(--variable-fill)}
.method-list>.method-card:last-child{border:1px solid var(--variable-border)}
.method-signature{display:block;color:var(--brand-blue);font-size:12px;font-weight:650;line-height:1.65;overflow-wrap:anywhere}
.method-card p{padding-top:9px;margin-top:9px;border-top:1px solid var(--border)}
.error-table>.error-row{position:relative;border-color:var(--error-border);background:var(--error-soft)}
.error-table>.error-row::before{content:"!";position:absolute;left:-9px;top:13px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--error);color:white;font:700 11px var(--sans)}
.error-row .doc-name,.admonition.error b{color:var(--error)}
.admonition.error{border-left:4px solid var(--error);background:var(--error-soft)}
.admonition.error a{font-weight:650}
.exception-tree{border:0;background:transparent;padding:4px 0}
.exception-tree div{border-left:1px solid var(--border)}
.exception-tree code{border:1px solid var(--error);background:transparent;color:var(--text);box-shadow:none}
.dark{--error:#FF7B7B;--error-soft:color-mix(in srgb,var(--error) 10%,var(--bg));--variable-border:color-mix(in srgb,var(--brand-gray) 26%,var(--brand-ink))}
.dark .doc-name{color:var(--brand-gray)}
@media(max-width:760px){.doc-table>.doc-row{grid-template-columns:1fr;gap:6px}.api-description{padding:15px 16px}}

/* Structured API docstring sections — maintained by tools/refactor_reference_design.py */
.doc-section-note{padding:15px 17px;border:1px solid var(--variable-border);border-radius:7px;background:var(--variable-fill)}
.doc-section-note p{margin:0}
.doc-section-note.warning-note{border-left:4px solid var(--brand-teal);background:color-mix(in srgb,var(--brand-teal) 7%,var(--bg))}
.doc-section-note.error-note{border-left:4px solid var(--error);border-color:var(--error-border);background:var(--error-soft)}

/* Keep modal search scrolling isolated from the documentation underneath. */
html.search-open,html.search-open body{overflow:hidden;overscroll-behavior:none}
.search-dialog,.search-results{overscroll-behavior:contain}
