/* Adapter classes, not a replacement for the site's framework or HTML.
   Put sv-theme on body; map these classes to the existing templates. */
.sv-theme { margin:0; background:var(--sv-canvas); color:var(--sv-ink); font-family:var(--sv-font); font-size:1rem; line-height:1.5; }
.sv-theme *, .sv-theme *::before, .sv-theme *::after { box-sizing:border-box; }
.sv-theme :where(button,input,select,textarea) { font:inherit; }
.sv-theme :where(button,select) { min-height:2.75rem; }
.sv-theme :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--sv-focus); outline-offset:3px; }
.sv-theme ::selection { background:var(--sv-active); color:var(--sv-ink); }
.sv-theme a { color:var(--sv-link); text-underline-offset:.2em; text-decoration-thickness:1px; }
.sv-theme a:hover { color:var(--sv-hover); }
.sv-skip-link { position:fixed; top:.75rem; left:1rem; z-index:100; padding:.75rem 1rem; background:var(--sv-surface); transform:translateY(-200%); }
.sv-skip-link:focus { transform:none; }
.sv-header { min-height:var(--sv-header); position:sticky; top:0; z-index:30; display:flex; align-items:center; gap:1.5rem; padding:.75rem 2rem; background:var(--sv-surface); border-bottom:1px solid var(--sv-border); }
.sv-logo { display:block; width:12.125rem; height:auto; flex-shrink:0; }
.sv-logo-pair .sv-logo-dark { display:none; }
:root[data-theme="dark"] .sv-logo-pair .sv-logo-light { display:none; }
:root[data-theme="dark"] .sv-logo-pair .sv-logo-dark { display:block; }
@media(prefers-color-scheme:dark) {
 :root:not([data-theme]) .sv-logo-pair .sv-logo-light { display:none; }
 :root:not([data-theme]) .sv-logo-pair .sv-logo-dark { display:block; }
}
.sv-topnav { display:flex; align-items:center; gap:1.5rem; margin-left:auto; }
.sv-topnav a { display:flex; align-items:center; min-height:2.75rem; color:var(--sv-muted); text-decoration:none; font-size:.9375rem; }
.sv-topnav a[aria-current="page"], .sv-topnav a[aria-current="true"] { color:var(--sv-ink); box-shadow:0 3px var(--sv-link); font-weight:700; }
.sv-theme-select { background:var(--sv-raised); color:var(--sv-ink); border:1px solid var(--sv-control); border-radius:var(--sv-radius-control); padding:.5rem .75rem; }
.sv-doc-layout { max-width:96rem; margin-inline:auto; display:grid; grid-template-columns:var(--sv-sidebar) minmax(0,var(--sv-reading)) minmax(10rem,var(--sv-toc)); gap:var(--sv-column-gap); padding-right:2rem; align-items:start; }
.sv-sidebar { position:sticky; top:var(--sv-header); max-height:calc(100dvh - var(--sv-header)); overflow:auto; padding:2rem 1rem; border-right:1px solid var(--sv-border); background:var(--sv-surface); scrollbar-gutter:stable; }
.sv-nav-group { margin:0 0 1.5rem; padding:0; list-style:none; }
.sv-nav-label { margin:.75rem 1rem .5rem; color:var(--sv-muted); font-size:.8125rem; font-weight:700; }
.sv-sidebar a { display:block; padding:.625rem 1rem; border-left:3px solid transparent; border-radius:.25rem; min-height:2.5rem; font-size:.875rem; line-height:1.45; color:var(--sv-muted); text-decoration:none; overflow-wrap:anywhere; }
.sv-sidebar a:hover { background:var(--sv-raised); color:var(--sv-ink); }
.sv-sidebar a[aria-current="page"] { background:var(--sv-active); color:var(--sv-link); border-left-color:var(--sv-link); font-weight:700; }
.sv-article { min-width:0; padding:3rem 0 4rem; font-size:var(--sv-body-size); line-height:var(--sv-body-leading); overflow-wrap:anywhere; }
.sv-article :where(h1,h2,h3,h4) { color:var(--sv-ink); font-weight:700; scroll-margin-top:calc(var(--sv-header) + 1.5rem); text-wrap:balance; }
.sv-article h1 { margin:.875rem 0 1.5rem; font-size:clamp(2rem,3.2vw,2.75rem); letter-spacing:-.025em; line-height:1.12; }
.sv-article h2 { margin:3rem 0 1rem; font-size:1.75rem; letter-spacing:-.015em; line-height:1.25; }
.sv-article h3 { margin:2rem 0 .75rem; font-size:1.25rem; line-height:1.35; }
.sv-article :where(p,ul,ol,dl,figure,table,pre,blockquote) { margin-block:0 1.5rem; }
.sv-article li + li { margin-top:.5rem; }
.sv-article li > :last-child { margin-bottom:0; }
.sv-breadcrumb { font-size:.8125rem; color:var(--sv-muted); }
.sv-lead { font-size:1.25rem; line-height:1.5; color:var(--sv-muted); }
.sv-eyebrow { font-size:.6875rem; line-height:1.5; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--sv-muted); }
.sv-actions { display:flex; gap:1rem; flex-wrap:wrap; align-items:center; margin-block:2rem; }
.sv-theme .sv-button { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:2.75rem; padding:.625rem 1.125rem; border:1px solid transparent; border-radius:var(--sv-radius-control); background:var(--sv-button); color:var(--sv-onbutton); font-size:.9375rem; line-height:1.4; font-weight:700; text-decoration:none; cursor:pointer; transition:background-color var(--sv-motion),border-color var(--sv-motion); }
.sv-theme .sv-button:hover { background:var(--sv-hover); color:var(--sv-onbutton); }
.sv-theme .sv-button-secondary { background:var(--sv-surface); color:var(--sv-ink); border-color:var(--sv-control); }
.sv-theme .sv-button-secondary:hover { background:var(--sv-raised); color:var(--sv-ink); border-color:var(--sv-link); }
.sv-theme .sv-button:disabled { background:var(--sv-raised); color:var(--sv-muted); border-color:var(--sv-border); cursor:not-allowed; }
.sv-toc { position:sticky; top:calc(var(--sv-header) + 2.5rem); margin-top:3rem; border-left:1px solid var(--sv-border); padding-left:1.5rem; font-size:.875rem; max-height:calc(100dvh - var(--sv-header) - 4rem); overflow:auto; }
.sv-toc a { display:block; padding:.375rem 0; color:var(--sv-muted); text-decoration:none; }
.sv-toc a[aria-current="location"] { color:var(--sv-link); font-weight:700; }
.sv-callout { --sv-callout-ink:var(--sv-link); --sv-callout-bg:var(--sv-active); background:var(--sv-callout-bg); border-left:3px solid var(--sv-callout-ink); padding:1.25rem 1.5rem; border-radius:var(--sv-radius-panel); margin-block:1.5rem; }
.sv-callout[data-kind="success"] { --sv-callout-ink:var(--sv-success); --sv-callout-bg:var(--sv-successbg); }
.sv-callout[data-kind="warning"] { --sv-callout-ink:var(--sv-warning); --sv-callout-bg:var(--sv-warningbg); }
.sv-callout[data-kind="danger"] { --sv-callout-ink:var(--sv-danger); --sv-callout-bg:var(--sv-dangerbg); }
.sv-callout > :last-child { margin-bottom:0; }
.sv-callout-title { display:block; margin-bottom:.5rem; color:var(--sv-callout-ink); font-weight:700; }
.sv-article code { font-family:var(--sv-mono); font-size:.875em; }
.sv-article :not(pre) > code { padding:.125rem .3rem; border-radius:.25rem; background:var(--sv-code); color:var(--sv-ink); overflow-wrap:anywhere; }
.sv-article pre { max-width:100%; overflow:auto; padding:1.5rem; background:var(--sv-code); color:var(--sv-ink); border:1px solid var(--sv-border); border-radius:var(--sv-radius-panel); line-height:1.6; tab-size:2; }
.sv-article pre code { white-space:pre; overflow-wrap:normal; }
.sv-code-comment { color:var(--sv-muted); }
.sv-code-keyword, .sv-code-key { color:var(--sv-link); }
.sv-code-string { color:var(--sv-success); }
.sv-code-number { color:var(--sv-warning); }
.sv-table-scroll { max-width:100%; overflow:auto; }
.sv-article table { width:100%; border-collapse:collapse; font-size:1rem; }
.sv-article :where(th,td) { text-align:left; vertical-align:top; padding:.875rem 1rem; border-bottom:1px solid var(--sv-border); }
.sv-article th { background:var(--sv-raised); font-weight:700; }
.sv-article img { max-width:100%; height:auto; }
.sv-article figcaption { font-size:.875rem; line-height:1.5; color:var(--sv-muted); margin-top:.75rem; }
.sv-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.sv-card { padding:1.5rem; border:1px solid var(--sv-border); border-radius:var(--sv-radius-panel); background:var(--sv-surface); min-width:0; }
.sv-card h3 { margin-top:0; }
.sv-card a { text-decoration:underline; }
.sv-hero { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:3rem; padding:4rem; max-width:96rem; margin:auto; align-items:center; }
.sv-hero h1 { font-size:clamp(2.5rem,5vw,4rem); line-height:1.05; letter-spacing:-.03em; margin:1.5rem 0; }
.sv-hero-art { width:100%; max-width:40rem; height:auto; }
.sv-mobile-nav, .sv-mobile-toc, .sv-menu-trigger { display:none; }
.sv-icon { width:1.25rem; height:1.25rem; flex-shrink:0; }
@media (max-width:79.999rem) {
 .sv-doc-layout { grid-template-columns:15rem minmax(0,46.5rem); gap:2rem; }
 .sv-toc { display:none; }
 .sv-mobile-toc { display:block; margin-block:1.5rem; }
 .sv-topnav { gap:1rem; }
 .sv-header { padding-inline:1.25rem; }
}
@media (max-width:63.999rem) {
 :root { --sv-header:4rem; }
 .sv-header { min-height:4rem; flex-wrap:wrap; gap:.75rem; }
 .sv-logo { width:10.625rem; }
 .sv-topnav, .sv-sidebar { display:none; }
 .sv-doc-layout { display:block; padding:0 1.25rem; }
 .sv-article { padding-top:1.5rem; }
 .sv-mobile-nav, .sv-menu-trigger { display:block; }
 .sv-mobile-nav { margin-top:1rem; }
 .sv-mobile-nav summary, .sv-mobile-toc summary { min-height:2.75rem; padding:.625rem 1rem; border:1px solid var(--sv-control); border-radius:var(--sv-radius-control); background:var(--sv-surface); cursor:pointer; }
 .sv-hero { grid-template-columns:1fr; padding:2.5rem 1.25rem; }
 .sv-hero-art { display:none; }
}
@media (max-width:39.999rem) { .sv-card-grid { grid-template-columns:1fr; } .sv-article .sv-lead { font-size:1.125rem; } }
@media (max-width:23.999rem) { .sv-header { gap:.5rem; padding-inline:1rem; } .sv-logo { width:9rem; } .sv-doc-layout { padding-inline:1rem; } }
@media (prefers-reduced-motion:reduce) { .sv-theme *, .sv-theme *::before, .sv-theme *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; } }
@media (forced-colors:active) { .sv-sidebar a[aria-current="page"] { border-left-color:Highlight; } .sv-theme .sv-button { border:1px solid ButtonText; } }
@media print { .sv-header,.sv-sidebar,.sv-toc,.sv-mobile-nav,.sv-mobile-toc,.sv-actions { display:none !important; } .sv-theme,.sv-article { background:white !important; color:black !important; } .sv-doc-layout { display:block; padding:0; } .sv-article { padding:0; font-size:11pt; } .sv-article pre,.sv-callout { background:white !important; color:black !important; border:1px solid #777; } .sv-theme a { color:black !important; } }
