/* The Portal palette, with a quieter surface for long-form reading. */
:root { --bg:#fafafd; --panel:#f2f1f8; --text:#17151f; --muted:#625e74; --border:#dedbe9; --accent:#5038d9; --accent-soft:#ece8ff; --code:#f4f3f8; }
:root[data-theme=dark] { --bg:#0d0e16; --panel:#13141f; --text:#eeedf6; --muted:#aaa7bf; --border:#2b293d; --accent:#b6a8ff; --accent-soft:#28203f; --code:#171823; }
body { font-family:"Geist","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; font-size:16px; line-height:1.85; }
::selection { background:#725cff; color:#fff; }
* { scrollbar-color:var(--muted) var(--panel); scrollbar-width:thin; }
input { caret-color:var(--accent); }
a { text-underline-offset:4px; }
.topbar { height:76px; background:#08090f; color:#f6f5ff; border-color:#292638; padding-inline:32px; }
.brand { color:#f6f5ff; font-size:18px; letter-spacing:-.03em; gap:12px; }
.brand-docs { color:#bcb6d2; letter-spacing:0; font-size:12px; padding-left:12px; border-left:1px solid #413b53; }
.brand-mark { position:relative; width:28px; height:28px; flex-shrink:0; border:1px solid currentColor; border-radius:50%; background:none; color:inherit; transform:rotate(-22deg); }
.brand-mark::before { content:""; position:absolute; inset:7px; border-radius:50%; background:currentColor; }
.brand-mark i { position:absolute; left:-4px; right:-4px; top:12px; height:4px; border:1px solid currentColor; border-radius:50%; }
.brand-mark b { position:absolute; width:4px; height:4px; background:#55dfb7; border-radius:50%; right:-2px; top:11px; }
.top-nav a { color:#d0cadf; min-height:44px; display:inline-flex; align-items:center; }
.top-nav a:hover { color:#fff; }
.topbar button { color:#eeedf6; background:#1b182b; border-color:#39324d; min-height:40px; }
.topbar kbd { color:#bbb3d0; border-color:#504767; }
.sidebar { top:76px; width:268px; padding:28px 18px; }
.nav-group a { padding:10px 12px; border-radius:8px; font-size:14px; }
.nav-group a:hover { background:var(--accent-soft); color:var(--accent); }
.nav-group a.active { background:var(--accent-soft); color:var(--accent); }
.nav-group p { letter-spacing:0; }
.api-subnav { margin:6px 0 14px 12px; border-left:1px solid var(--border); padding-left:8px; }
.api-subnav .api-nav-group { margin:2px 0; border:0; padding:0; border-radius:0; }
.api-nav-group > summary { padding:8px 4px; color:var(--text); font-size:13px; font-weight:600; line-height:1.5; cursor:pointer; overflow-wrap:anywhere; }
.api-nav-group > summary::marker { color:var(--muted); }
.api-nav-group > summary:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-radius:4px; }
.api-subnav a { display:block; margin:1px 0 1px 8px; padding:7px 8px; font-size:12px; line-height:1.55; overflow-wrap:anywhere; }
.api-subnav a.api-nav-section { margin-top:9px; font-weight:600; color:var(--text); }
.api-subnav a.api-nav-entry { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.api-subnav a[aria-current="location"] { color:var(--accent); background:var(--accent-soft); font-weight:600; }
.layout { padding-top:116px; grid-template-columns:minmax(0,76ch) 180px; gap:40px; }
h1 { font-size:clamp(28px,3vw,42px); letter-spacing:-.03em; line-height:1.3; text-wrap:balance; }
h2 { font-size:25px; letter-spacing:-.02em; }
h3 { font-size:19px; }
article > p, article > ul, article > ol { max-width:75ch; }
.breadcrumb { color:var(--muted); font-size:13px; }
.version { font-size:13px; }
.toc { top:112px; }
.table-scroll { border-radius:12px; }
th,td { padding:14px 16px; font-size:14px; font-variant-numeric:tabular-nums; }
blockquote { border-left:1px solid var(--accent); border-radius:0 12px 12px 0; }
.code-block { background:var(--code); color:var(--text); border-radius:12px; }
.code-toolbar { border-color:var(--border); color:var(--muted); }
.copy-code { color:var(--text); background:var(--panel); border-color:var(--border); min-height:32px; }
pre code { font-size:13px; line-height:1.85; }
:root[data-theme=dark] .code-block span { color:inherit; }
:root[data-theme=dark] .code-block :is(.k,.kn,.kd,.kp,.kr,.kt,.ow) { color:#b6a8ff; }
:root[data-theme=dark] .code-block :is(.s,.s1,.s2,.sa,.sb,.sc,.sd,.se,.sh,.si,.sr,.ss) { color:#7bdfc1; }
:root[data-theme=dark] .code-block :is(.c,.c1,.cm,.cp,.cs) { color:#aaa7bf; }
:root[data-theme=dark] .code-block :is(.m,.mi,.mf,.mh,.mo) { color:#8dcdff; }
.pager a { border-radius:12px; }
.pager a:hover { background:var(--accent-soft); text-decoration:none; }
footer { font-size:12px; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.heading-anchor:focus-visible { opacity:1; }
@media (max-width:1200px) { .layout { padding-top:108px; } }
@media (max-width:850px) {
  .topbar { height:auto; min-height:112px; display:grid; grid-template-columns:1fr auto; padding:12px 18px; gap:8px; }
  .brand { font-size:16px; }
  .topbar .header-actions { grid-column:1 / -1; justify-content:space-between; }
  .topbar button { min-height:44px; }
  .sidebar { top:124px; bottom:0; max-width:85vw; }
  .layout { margin-left:0; padding:150px 20px 24px; }
  html { scroll-padding-top:150px; }
  #nav-toggle { display:block; }
  .brand-docs { display:inline; }
}
@media print { .code-block { background:#f4f4f4; color:#111; } }
.api-reference h3 { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; overflow-wrap:anywhere; margin-top:2.5rem; padding:.8rem 1rem; border-left:3px solid var(--accent); background:var(--accent-soft); border-radius:0 8px 8px 0; }
.api-reference td:first-child { overflow-wrap:anywhere; }
.api-reference pre, .api-reference pre code { white-space:pre-wrap; overflow-wrap:anywhere; }
