/* The design's page styles: the rules each designed page carried in its <style> block, merged. */
/* Colour tokens. Light is the default; dark follows the system setting unless the header toggle picked a theme, stored
   in <html data-theme> (set before first paint by theme.js). Rules inside the always-dark panels keep literal colours. */
:root { color-scheme: light;
  --c-bg: #FAFAF9; --c-surface: #FFFFFF; --c-surface-2: #FAFAF9; --c-fill: #F5F5F4;
  --c-line: #E7E5E4; --c-line-soft: #F0EFED; --c-line-strong: #D6D3D1;
  --c-ink: #111111; --c-ink-strong: #000000; --c-text-2: #292524; --c-body: #57534E; --c-muted: #78716C; --c-eyebrow: #6B6B6B; --c-faint: #A8A29E;
  --c-ok-text: #15803D; --c-btn-bg: #111111; --c-btn-fg: #FFFFFF; --c-chip-bg: rgba(255,255,255,0.6); --c-hover-fill: rgba(231, 229, 228, 0.6);
  --c-header-bg: rgba(250,250,249,0.86); --c-panel: #111111; --c-panel-shadow: 0 1px 2px rgba(0,0,0,0.06), 0 12px 32px rgba(0,0,0,0.08); --c-panel-ring: none;
  --c-logo-edge: #312C2A; --c-logo-ink: #131210; }
:root[data-theme="dark"] { color-scheme: dark;
  --c-bg: #0F0E0D; --c-surface: #181715; --c-surface-2: #1D1C1A; --c-fill: #22201E;
  --c-line: #2E2B29; --c-line-soft: #252321; --c-line-strong: #44403C;
  --c-ink: #F2F1EF; --c-ink-strong: #FFFFFF; --c-text-2: #D6D3D1; --c-body: #A8A29E; --c-muted: #8A837D; --c-eyebrow: #8A837D; --c-faint: #6B655F;
  --c-ok-text: #4ADE80; --c-btn-bg: #F2F1EF; --c-btn-fg: #111111; --c-chip-bg: rgba(255,255,255,0.03); --c-hover-fill: rgba(68,64,60,0.45);
  --c-header-bg: rgba(15,14,13,0.86); --c-panel: #181715; --c-panel-shadow: 0 0 0 1px #2E2B29; --c-panel-ring: 0 0 0 1px #2E2B29;
  --c-logo-edge: #EDE9DE; --c-logo-ink: #EDE9DE; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { color-scheme: dark;
  --c-bg: #0F0E0D; --c-surface: #181715; --c-surface-2: #1D1C1A; --c-fill: #22201E;
  --c-line: #2E2B29; --c-line-soft: #252321; --c-line-strong: #44403C;
  --c-ink: #F2F1EF; --c-ink-strong: #FFFFFF; --c-text-2: #D6D3D1; --c-body: #A8A29E; --c-muted: #8A837D; --c-eyebrow: #8A837D; --c-faint: #6B655F;
  --c-ok-text: #4ADE80; --c-btn-bg: #F2F1EF; --c-btn-fg: #111111; --c-chip-bg: rgba(255,255,255,0.03); --c-hover-fill: rgba(68,64,60,0.45);
  --c-header-bg: rgba(15,14,13,0.86); --c-panel: #181715; --c-panel-shadow: 0 0 0 1px #2E2B29; --c-panel-ring: 0 0 0 1px #2E2B29;
  --c-logo-edge: #EDE9DE; --c-logo-ink: #EDE9DE; } }
/* The providers pages' own colours (list, /providers/<id>, compare), from the Design canvas's mockups: an accent for links and ticks,
   the info-link grey, segmented controls, menus, the inverse compare bar, chart lines and series. The mockups' greys and hairlines
   reuse the tokens above (#16181D ink, #2E323A/#4A4F59 text-2, #5A606B body, #6B717D muted, #E6E6E0/#E3E3DD line, #EEEEE9 line-soft,
   #D5D5CE/#DCDCD6 line-strong, #FFFFFF surface, #FAFAF7 bg). */
:root {
  --c-accent: #1F45D6; --c-accent-hover: #16329C; --c-info: #8A8F98; --c-icon-quiet: #C3C5CA; --c-warn-text: #A3460B;
  --c-seg-track: #EFEFEA; --c-seg-on: #FFFFFF; --c-seg-shadow: 0 1px 2px rgba(22, 24, 29, 0.14); --c-chip-fill: #F1F1EC; --c-code-bg: #EFEFEA;
  --c-table-head: #F6F6F2; --c-menu-hover: #F3F3EF; --c-menu-shadow: 0 12px 32px rgba(22, 24, 29, 0.14);
  --c-inverse-bg: #16181D; --c-inverse-fg: #FFFFFF; --c-inverse-muted: #C4C7CF; --c-inverse-line: #6B717D; --c-inverse-btn-bg: #FFFFFF; --c-inverse-btn-fg: #16181D;
  --c-bar-shadow: 0 8px 24px rgba(22, 24, 29, 0.18); --c-chart-axis: #C3C2B7;
  --c-series-1: #2A78D6; --c-series-2: #EB6834; --c-series-3: #1BAF7A; --c-logo-tile: #FFFFFF; }
:root[data-theme="dark"] {
  --c-accent: #8EA6FF; --c-accent-hover: #B7C6FF; --c-info: #8A837D; --c-icon-quiet: #4A4542; --c-warn-text: #F2A26B;
  --c-seg-track: #22201E; --c-seg-on: #3A3734; --c-seg-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); --c-chip-fill: #262422; --c-code-bg: #262422;
  --c-table-head: #1D1C1A; --c-menu-hover: #262422; --c-menu-shadow: 0 12px 32px rgba(0, 0, 0, 0.55), 0 0 0 1px #2E2B29;
  --c-inverse-bg: #2A2826; --c-inverse-fg: #F2F1EF; --c-inverse-muted: #A8A29E; --c-inverse-line: #57534E; --c-inverse-btn-bg: #F2F1EF; --c-inverse-btn-fg: #111111;
  --c-bar-shadow: 0 8px 24px rgba(0, 0, 0, 0.5); --c-chart-axis: #57534E;
  --c-series-1: #5B9BEA; --c-series-2: #F2865A; --c-series-3: #34C792; --c-logo-tile: #F5F5F4; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --c-accent: #8EA6FF; --c-accent-hover: #B7C6FF; --c-info: #8A837D; --c-icon-quiet: #4A4542; --c-warn-text: #F2A26B;
  --c-seg-track: #22201E; --c-seg-on: #3A3734; --c-seg-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); --c-chip-fill: #262422; --c-code-bg: #262422;
  --c-table-head: #1D1C1A; --c-menu-hover: #262422; --c-menu-shadow: 0 12px 32px rgba(0, 0, 0, 0.55), 0 0 0 1px #2E2B29;
  --c-inverse-bg: #2A2826; --c-inverse-fg: #F2F1EF; --c-inverse-muted: #A8A29E; --c-inverse-line: #57534E; --c-inverse-btn-bg: #F2F1EF; --c-inverse-btn-fg: #111111;
  --c-bar-shadow: 0 8px 24px rgba(0, 0, 0, 0.5); --c-chart-axis: #57534E;
  --c-series-1: #5B9BEA; --c-series-2: #F2865A; --c-series-3: #34C792; --c-logo-tile: #F5F5F4; } }
.on-dark-only { display: none !important; }
:root[data-theme="dark"] .on-dark-only { display: revert !important; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .on-dark-only { display: revert !important; } }
:root[data-theme="dark"] .bgfield::before { filter: invert(1); opacity: 0.35; }
:root[data-theme="dark"] :root[data-theme="dark"] .bm-name img, :root[data-theme="dark"] .pr-logo { background: #FFFFFF; padding: 2px; box-sizing: border-box; }
:root[data-theme="dark"] .on-light-only { display: none !important; }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) .bgfield::before { filter: invert(1); opacity: 0.35; }
:root:not([data-theme="light"]) :root:not([data-theme="light"]) .bm-name img, :root:not([data-theme="light"]) .pr-logo { background: #FFFFFF; padding: 2px; box-sizing: border-box; }
:root:not([data-theme="light"]) .on-light-only { display: none !important; }
}
/* The footer's System / Light / Dark switch: the highlighted button follows <html data-theme>, so it is right before hydration. */
.theme-switch { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--c-line); border-radius: 999px; }
.theme-switch button { appearance: none; -webkit-appearance: none; margin: 0; padding: 0; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 999px; background: transparent; color: var(--c-muted); cursor: pointer; transition: color 150ms, background-color 150ms; }
.theme-switch button:hover { color: var(--c-ink); }
.theme-switch button:focus-visible { outline: 2px solid var(--c-ink); outline-offset: 1px; }
:root:not([data-theme]) .theme-switch .ts-system, :root[data-theme="light"] .theme-switch .ts-light, :root[data-theme="dark"] .theme-switch .ts-dark { background: var(--c-line); color: var(--c-ink); }
body{margin:0;background:var(--c-bg)}
a{color:var(--c-ink);text-decoration:none}
a:hover{color:var(--c-ink-strong)}
.nav-link:hover{color:var(--c-ink)}
.btn-primary:hover{opacity:0.86}
.btn-secondary{border-color:var(--c-line-strong);background:var(--c-chip-bg)}
.btn-secondary:hover{border-color:var(--c-faint);background:var(--c-hover-fill)}
.text-link:hover .arrow{transform:translateX(3px)}
a:focus-visible{outline:2px solid var(--c-ink);outline-offset:3px;border-radius:6px}
.bgfield::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url(assets/sandboxrouter-dotfield.png);background-size:1320px 1320px;background-repeat:repeat;background-position:center top;opacity:var(--bg-op,0.5)}
a.on-dark:hover{color:#FFFFFF}
.jump:hover{color:var(--c-ink);border-color:var(--c-faint)}
/* Phones: logo and Get started share the top row, the page links scroll on a second row inside the bar. */
@media (max-width:640px){
.site-nav{height:auto!important;padding:10px 16px 6px!important;row-gap:4px!important}
.site-nav-right{display:contents!important}
.site-nav-right>.btn-primary{order:2;height:36px!important;padding:0 14px!important;white-space:nowrap}
.site-nav-links{order:3;flex:1 0 100%;flex-wrap:nowrap!important;gap:20px!important;overflow-x:auto;padding:8px 0 6px}
.site-nav-links a{white-space:nowrap}
}
/* Phones: every band keeps 16px side gutters, as the header does; hero headlines step down so they fit. The containers are
   matched by their inline max-width, as the server writes it and as the browser does after an in-page navigation. */
@media (max-width:640px){
main [style*="max-width:1200px"],main [style*="max-width: 1200px"],footer [style*="max-width:1200px"],footer [style*="max-width: 1200px"]{padding-left:16px!important;padding-right:16px!important}
.hero-title{font-size:42px!important;line-height:1.08!important}
}
/* Homepage routing panel (scoped to .rt-): triggers on the left, Sandbox Router in the middle, providers and the Standby Pool on the right. */
.rt { flex: 1 1 460px; min-width: 0; text-align: left; background: var(--c-panel); color: #FAFAF9; border-radius: 12px; overflow: hidden; box-shadow: var(--c-panel-shadow); --mono: 'Geist Mono', ui-monospace, monospace; --line: #2A2A2A; --muted: #A8A29E; --ok: #8FD9A8; --warn: #F0BE85; }
.rt-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--line); font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; color: var(--muted); }
.rt-map { display: grid; grid-template-columns: minmax(0, 1fr) 36px auto 36px minmax(0, 1fr); grid-template-rows: auto 168px; row-gap: 10px; padding: 20px 20px 22px; }
.rt-label { grid-row: 1; grid-column: 1; font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.1em; color: #78716C; }
.rt-label-end { grid-column: 5; }
.rt-list { grid-row: 2; margin: 0; padding: 0; list-style: none; display: grid; }
.rt-sources { grid-column: 1; grid-template-rows: repeat(4, minmax(0, 1fr)); }
.rt-providers { grid-column: 5; grid-template-rows: repeat(4, minmax(0, 1fr)); }
.rt-list li { display: flex; align-items: center; min-width: 0; }
.rt-node { flex: 1; min-width: 0; height: 30px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: #161616; font-size: 13px; color: #A8A29E; white-space: nowrap; overflow: hidden; }
.rt-providers .rt-node { height: 34px; font-size: 14px; font-weight: 500; color: #D6D3D1; }
.rt-node.on { border-color: #3B5444; background: #142019; color: #FAFAF9; }
.rt-node.down { border-style: dashed; color: #78716C; }
.rt-node.pool { border-style: dashed; color: #78716C; font-weight: 400; }
.rt-node.pool .rt-tag { color: #78716C; }
.rt-tag { font-family: var(--mono); font-size: 10.5px; font-weight: 400; color: var(--ok); }
.rt-node.down .rt-tag { color: #78716C; }
.rt-wires { grid-row: 2; display: block; width: 100%; height: 100%; overflow: visible; }
.rt-wires.in { grid-column: 2; }
.rt-wires.out { grid-column: 4; }
.rt-wire { fill: none; stroke: #34312E; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.rt-wire.on { stroke: var(--ok); }
.rt-wire.down { stroke: #57534E; stroke-dasharray: 3 4; }
.rt-hub { grid-row: 2; grid-column: 3; align-self: center; display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid #3A3531; border-radius: 10px; background: #1C1C1C; box-shadow: 0 0 0 5px rgba(143, 217, 168, 0.06); font-family: var(--mono); font-size: 13px; color: #FAFAF9; }
.rt-log { padding: 16px 20px 18px; border-top: 1px solid var(--line); font-family: var(--mono); font-size: 12.5px; line-height: 1.7; }
.rt-cmd { margin: 0 0 8px; color: #FAFAF9; }
.rt-cmd span { color: var(--muted); }
.rt-log ol { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: auto auto minmax(0, 1fr); column-gap: 14px; }
.rt-log li { display: contents; }
.rt-time { color: #57534E; }
.rt-type { color: #D6D3D1; white-space: pre; }
.rt-data { color: var(--muted); }
.rt-log .skip .rt-type, .rt-log .skip .rt-data { color: #78716C; }
.rt-log .ok .rt-data { color: var(--ok); }
@media (max-width: 640px) {
  .rt-map { grid-template-columns: minmax(0, 1fr) 20px auto 20px minmax(0, 1fr); grid-template-rows: auto 156px; padding: 16px 16px 18px; }
  .rt-node { padding: 0 8px; font-size: 12px; }
  .rt-providers .rt-node { font-size: 13px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px; }
  .rt-tag { font-size: 9px; line-height: 1.2; }
  .rt-hub { gap: 6px; padding: 8px 9px; font-size: 12px; }
  .rt-log { padding: 14px 16px 16px; font-size: 11px; }
  .rt-log ol { grid-template-columns: auto minmax(0, 1fr); column-gap: 10px; }
  .rt-time { display: none; }
}
/* Homepage (scoped to .hm-): hero with the routing panel beside it, four use-case cards, facts, provider cards, built-in cards, numbered steps. */
.hm-muted { color: var(--c-faint); }
.hm-facts { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; max-width: 660px; margin-inline: auto; text-align: center; }
.hm-facts > div { display: flex; flex-direction: column-reverse; gap: 6px; }
.hm-facts dt { font-size: 13px; color: var(--c-body); }
.hm-facts dd { margin: 0; font-size: 40px; line-height: 1.1; font-weight: 600; letter-spacing: -0.03em; color: var(--c-ink); }
/* Homepage benchmark table (scoped to .bm): sortable headers, ranked rows, then unranked ones under a divider. */
.bm { margin-top: 28px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: 12px; overflow: hidden; }
.bm-live { display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; padding: 10px 20px; border-bottom: 1px solid var(--c-line-soft); font-size: 13px; color: var(--c-body); }
.bm-live p { margin: 0; display: inline-flex; align-items: center; gap: 6px; }
.bm-live strong { margin-left: 2px; font-weight: 600; color: var(--c-ok-text); }
.bm-dot { position: relative; width: 8px; height: 8px; border-radius: 50%; background: #16A34A; }
.bm-dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #16A34A; animation: bm-pulse 2s ease-out infinite; }
@keyframes bm-pulse { from { transform: scale(1); opacity: 0.6; } to { transform: scale(2.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .bm-dot::after { animation: none; } }
.bm-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; padding: 12px 20px; border-top: 1px solid var(--c-line-soft); background: var(--c-surface-2); font-size: 13px; color: var(--c-muted); }
.bm-foot a { font-weight: 500; color: var(--c-ink); text-decoration: none; }
.bm-foot a:hover { text-decoration: underline; }
.bm-scroll { overflow-x: auto; }
.bm table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 14px; }
.bm th, .bm td { padding: 14px 20px; text-align: right; vertical-align: top; white-space: nowrap; border-bottom: 1px solid var(--c-line-soft); }
.bm th:first-child { text-align: left; }
.bm thead th { padding-top: 12px; padding-bottom: 12px; font-size: 12px; font-weight: 500; color: var(--c-muted); background: var(--c-surface-2); }
.bm thead button { all: unset; cursor: pointer; display: inline-flex; align-items: baseline; gap: 6px; }
.bm thead button:hover, .bm thead button.on { color: var(--c-ink); }
.bm thead button:focus-visible { outline: 2px solid var(--c-ink); outline-offset: 2px; border-radius: 4px; }
.bm-window { font-family: var(--mono); font-size: 10.5px; color: var(--c-faint); }
.bm-arrow { width: 1ch; color: var(--c-faint); }
.bm thead button.on .bm-arrow { color: var(--c-ink); }
.bm tbody th { font-weight: 400; }
.bm th:first-child { position: sticky; left: 0; z-index: 1; background: var(--c-surface); }
.bm thead th:first-child, .bm-divider td { background: var(--c-surface-2); }
.bm-name { display: flex; align-items: center; gap: 12px; }
.bm-name img { display: block; flex: none; width: 24px; height: 24px; object-fit: contain; border-radius: 6px; }
.bm tbody th strong { display: block; font-size: 15px; font-weight: 600; color: var(--c-ink); }
.bm tbody th span, .bm td span { display: block; margin-top: 2px; font-size: 12px; color: var(--c-faint); }
.bm td { font-family: var(--mono); font-size: 13.5px; color: var(--c-text-2); font-variant-numeric: tabular-nums; }
.bm tbody tr:last-child > * { border-bottom: 0; }
.bm-divider td { padding: 8px 20px; text-align: left; font-family: inherit; font-size: 12px; color: var(--c-muted); background: var(--c-surface-2); }
.bm-divider td span { position: sticky; left: 20px; display: inline; margin: 0; font-size: 12px; color: var(--c-muted); }
.bm-unranked td, .bm-unranked th strong { color: var(--c-muted); }
.bm-note { margin: 0; padding: 10px 20px 14px; border-top: 1px solid var(--c-line-soft); font-size: 12.5px; color: var(--c-muted); }
.hm-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.hm-steps li { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.hm-step-n { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 999px; border: 1px solid var(--c-line-strong); font-family: 'Geist Mono', ui-monospace, monospace; font-size: 13px; }
.hm-steps h3 { margin: 4px 0 0; font-size: 18px; font-weight: 600; }
.hm-steps p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--c-body); }
.hm-steps li > .btn-primary { margin-top: 4px; }
.hm-cmd { margin-top: 4px; max-width: 100%; box-sizing: border-box; display: inline-flex; align-items: center; gap: 8px; padding: 5px 5px 5px 14px; border-radius: 8px; background: var(--c-panel); box-shadow: var(--c-panel-ring); }
.hm-cmd code { min-width: 0; color: #FAFAF9; font-size: 12.5px; line-height: 1.5; }
.hm-cmd code span { white-space: nowrap; }
/* The copy button sits inside the always-dark command chip, so it keeps literal colours. */
.copy-btn { appearance: none; -webkit-appearance: none; flex: none; margin: 0; padding: 0; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 6px; background: transparent; color: #78716C; cursor: pointer; transition: color 150ms, background-color 150ms; }
.copy-btn:hover { color: #FAFAF9; background: rgba(255,255,255,0.08); }
.copy-btn[data-copied] { color: #8FD9A8; }
.copy-btn:focus-visible { outline: 2px solid #FAFAF9; outline-offset: 1px; }
@media (max-width: 1000px) {
  }
@media (max-width: 640px) {
  .hm-facts { gap: 12px; }
  .hm-facts dd { font-size: 32px; }
  .hm-steps { grid-template-columns: minmax(0, 1fr); }
  .hm-steps { gap: 32px; }
}
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@media (max-width: 380px) {
  .rt-hub span { display: none; }
}

/* Homepage pricing teaser (scoped to .price-strip). */
.price-strip { flex: 1 1 560px; min-width: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--c-surface); border: 1px solid var(--c-line); border-radius: 12px; overflow: hidden; }
.price-strip > div { padding: 28px 24px; display: flex; flex-direction: column; justify-content: space-between; gap: 20px; }
.price-strip > div + div { border-left: 1px solid var(--c-line); }
.price-strip dt { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 11px; line-height: 1.5; letter-spacing: 0.08em; color: var(--c-eyebrow); }
.price-strip dd { margin: 0; font-size: 30px; line-height: 1.1; font-weight: 600; letter-spacing: -0.025em; color: var(--c-ink); }
@media (max-width: 640px) {
  .price-strip { grid-template-columns: minmax(0, 1fr); }
  .price-strip > div { flex-direction: row; align-items: baseline; padding: 20px; }
  .price-strip > div + div { border-left: 0; border-top: 1px solid var(--c-line); }
  .price-strip dd { font-size: 24px; white-space: nowrap; }
}
/* Pricing page's per-size table (scoped to .pr-): size tabs over one table per size, which turns into a card per provider on
   phones. */
.pr-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 24px; }
.pr-head h1, .pr-head h2 { margin: 0; font-size: 28px; line-height: 1.2; font-weight: 600; letter-spacing: -0.02em; }
.pr-head p { margin: 6px 0 0; font-size: 15px; color: var(--c-body); }
.pr-checked { font-size: 13px; color: var(--c-muted); }
.pr-tabs { margin-top: 24px; display: inline-flex; max-width: 100%; box-sizing: border-box; overflow-x: auto; gap: 2px; padding: 3px; border: 1px solid var(--c-line-strong); border-radius: 999px; background: var(--c-surface); }
.pr-tab { appearance: none; -webkit-appearance: none; flex: none; margin: 0; height: 32px; min-width: 48px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: var(--c-text-2); font: inherit; font-size: 13px; font-weight: 500; cursor: pointer; transition: background-color 150ms, color 150ms; }
.pr-tab:hover { background: var(--c-hover-fill); }
.pr-tab[aria-selected="true"] { background: var(--c-btn-bg); color: var(--c-btn-fg); }
.pr-tab:focus-visible { outline: 2px solid var(--c-ink); outline-offset: 2px; }
.pr-panel:focus-visible { outline: 2px solid var(--c-ink); outline-offset: 4px; border-radius: 12px; }
.pr-spec { margin: 14px 0 0; font-size: 14px; color: var(--c-body); }
.pr-spec b { color: var(--c-ink); font-weight: 600; }
.pr-mono { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 13px; color: var(--c-text-2); }
.pr-scroll { margin-top: 20px; overflow-x: auto; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: 12px; }
.pr-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.pr-table th, .pr-table td { padding: 14px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--c-line-soft); }
.pr-table thead th { font-size: 12px; font-weight: 500; color: var(--c-muted); background: var(--c-surface-2); white-space: nowrap; vertical-align: bottom; }
.pr-table .num { text-align: right; }
.pr-table tbody tr:last-child > * { border-bottom: 0; }
.pr-name { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 600; color: var(--c-ink); white-space: nowrap; }
.pr-logo { display: block; flex: none; width: 24px; height: 24px; object-fit: contain; border-radius: 6px; box-sizing: border-box; }
.pr-acct { display: block; margin: 4px 0 0 34px; font-size: 12px; font-weight: 400; color: var(--c-muted); white-space: nowrap; }
.pr-best { display: inline-block; margin-left: 2px; padding: 1px 7px; border: 1px solid currentColor; border-radius: 999px; color: var(--c-ok-text); font-size: 11px; font-weight: 500; line-height: 16px; }
.pr-get { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 13px; color: var(--c-text-2); white-space: nowrap; }
.pr-get .chg, .pr-notes .chg { color: var(--c-ink); font-weight: 500; text-decoration: underline dotted var(--c-faint); text-underline-offset: 3px; }
.pr-why { display: block; margin-top: 4px; font-family: 'Geist', ui-sans-serif, system-ui, sans-serif; font-size: 12px; color: var(--c-muted); white-space: normal; max-width: 220px; }
.pr-cost { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 13px; color: var(--c-text-2); white-space: nowrap; }
.pr-rate { display: block; margin-top: 4px; font-size: 11px; color: var(--c-faint); white-space: normal; max-width: 150px; margin-left: auto; }
.pr-total { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 15px; font-weight: 500; color: var(--c-ink); white-space: nowrap; }
.pr-plan { font-size: 13px; color: var(--c-text-2); }
.pr-table .c-plan { min-width: 200px; }
.pr-plan .pr-why { max-width: 240px; }
.pr-group th { padding: 10px 16px !important; font-size: 12px; font-weight: 500; color: var(--c-muted); background: var(--c-surface-2); text-align: left; }
.pr-group th span { font-weight: 400; color: var(--c-faint); }
.pr-soon .pr-name, .pr-soon .pr-total, .pr-soon .pr-get, .pr-soon .pr-cost, .pr-soon .pr-plan { color: var(--c-muted); }
.pr-soon .pr-logo, .pr-none .pr-logo { opacity: 0.55; }
.pr-none .pr-name { color: var(--c-muted); font-weight: 500; }
.pr-none td.pr-off { color: var(--c-faint); font-size: 13px; }
.pr-notes { margin: 16px 0 0; padding: 0; list-style: none; max-width: 760px; }
.pr-notes li { margin: 0 0 8px; font-size: 14px; line-height: 1.6; color: var(--c-body); }
.pr-notes b { color: var(--c-text-2); font-weight: 500; }
.pr-sources { margin-top: 8px; max-width: 760px; font-size: 14px; color: var(--c-body); }
.pr-sources summary { cursor: pointer; color: var(--c-text-2); font-weight: 500; }
.pr-sources summary:focus-visible { outline: 2px solid var(--c-ink); outline-offset: 2px; border-radius: 4px; }
.pr-sources ul { margin: 10px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.pr-sources li { font-size: 13px; line-height: 1.5; }
.pr-sources b { color: var(--c-text-2); font-weight: 500; }
.pr-sources a { text-decoration: underline; text-decoration-color: var(--c-line-strong); text-underline-offset: 3px; }
@media (max-width: 640px) {
  .pr-head h2 { font-size: 24px; }
  .pr-scroll { overflow: visible; background: transparent; border: 0; border-radius: 0; }
  .pr-table, .pr-table tbody { display: block; }
  .pr-table thead { display: none; }
  .pr-table tr.pr-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name total" "get get" "cpu cpu" "mem mem" "disk disk" "plan plan";
    margin-bottom: 10px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: 12px; }
  .pr-table tr.pr-row > * { min-width: 0; border: 0; padding: 0 16px; }
  .pr-table tr.pr-row > .c-name { grid-area: name; padding-top: 14px; }
  .pr-table tr.pr-row > .c-total { grid-area: total; padding-top: 14px; text-align: right; }
  .pr-table tr.pr-row > .c-get { grid-area: get; padding-top: 12px; padding-bottom: 8px; }
  .pr-table tr.pr-row > .c-cpu { grid-area: cpu; }
  .pr-table tr.pr-row > .c-mem { grid-area: mem; }
  .pr-table tr.pr-row > .c-disk { grid-area: disk; }
  .pr-table tr.pr-row > .c-plan { grid-area: plan; min-width: 0; margin-top: 8px; padding-top: 10px; padding-bottom: 14px; border-top: 1px solid var(--c-line-soft); }
  .pr-table tr.pr-row > .c-cpu, .pr-table tr.pr-row > .c-mem, .pr-table tr.pr-row > .c-disk { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 3px; padding-bottom: 3px; text-align: right; }
  .pr-table tr.pr-row > [data-label]::before { content: attr(data-label); font-family: 'Geist', ui-sans-serif, system-ui, sans-serif; font-size: 13px; color: var(--c-muted); text-align: left; }
  .pr-table tr.pr-row > .c-plan::before { display: block; margin-bottom: 2px; font-size: 12px; }
  .pr-get { white-space: normal; }
  .pr-cost { white-space: normal; }
  .pr-rate { display: inline; margin: 0 0 0 6px; }
  .pr-why, .pr-plan .pr-why { max-width: none; }
  .pr-table tr.pr-none { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; padding: 12px 16px; border: 1px dashed var(--c-line-strong); border-radius: 12px; }
  .pr-table tr.pr-none > * { border: 0; padding: 0; }
  .pr-table tr.pr-group { display: block; margin: 18px 0 8px; }
  .pr-table tr.pr-group > th { display: block; padding: 0 !important; background: transparent; }
  .pr-table tr.pr-soon { opacity: 0.85; border-style: dashed; }
}
/* Docs (scoped to .docs): the guide list beside a 760px reading column of rendered Markdown. */
.docs { --ink: var(--c-ink); --body: var(--c-body); --muted: var(--c-eyebrow); --line: var(--c-line); --mono: 'Geist Mono', ui-monospace, monospace; display: grid; grid-template-columns: 200px minmax(0, 760px); column-gap: 72px; align-items: start; }
.docs-sidebar { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 14px; }
.docs-guides { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 2px; font-size: 14px; }
.docs-guides a { display: block; padding: 7px 12px; margin-left: -12px; border-radius: 8px; color: var(--body); line-height: 1.4; }
.docs-guides a:hover { color: var(--ink); background: var(--c-hover-fill); }
.docs-guides a[aria-current="page"] { color: var(--ink); font-weight: 500; background: var(--c-surface); box-shadow: inset 0 0 0 1px var(--line); }
.docs-menu { display: none; }
.docs-article { min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.docs-article > h1 { margin: 0; font-size: 44px; line-height: 1.1; font-weight: 600; letter-spacing: -0.028em; color: var(--ink); }
.docs-body { padding-top: 32px; border-top: 1px solid var(--line); font-size: 16px; line-height: 1.7; color: var(--body); }
.docs-body > * { margin: 0; }
.docs-body > * + * { margin-top: 20px; }
.docs-body h2, .docs-body h3, .docs-body h4 { color: var(--ink); scroll-margin-top: 88px; }
.docs-body h2 { font-size: 26px; line-height: 1.25; font-weight: 600; letter-spacing: -0.02em; }
.docs-body h3 { font-size: 19px; line-height: 1.4; font-weight: 600; letter-spacing: -0.01em; }
.docs-body h4 { font-size: 16px; line-height: 1.5; font-weight: 600; }
.docs-body > * + h2 { margin-top: 56px; }
.docs-body > * + h3 { margin-top: 36px; }
.docs-body > * + h4 { margin-top: 28px; }
.docs-body > h2 + *, .docs-body > h3 + *, .docs-body > h4 + * { margin-top: 14px; }
.docs-body .docs-anchor { color: inherit; }
.docs-body .docs-anchor::after { content: "#"; margin-left: 10px; color: var(--c-faint); font-weight: 400; opacity: 0; transition: opacity 0.15s ease; }
.docs-body .docs-anchor:hover::after, .docs-body .docs-anchor:focus-visible::after { opacity: 1; }
.docs-body a:not(.docs-anchor) { color: var(--ink); text-decoration: underline; text-decoration-color: var(--c-faint); text-underline-offset: 3px; }
.docs-body a:not(.docs-anchor):hover { text-decoration-color: var(--ink); }
.docs-body strong { font-weight: 600; color: var(--ink); }
.docs-body code { font-family: var(--mono); font-size: 0.875em; color: var(--ink); background: var(--c-fill); border: 1px solid var(--line); border-radius: 5px; padding: 0.1em 0.35em; overflow-wrap: anywhere; }
.docs-body ul, .docs-body ol { padding-left: 22px; display: flex; flex-direction: column; gap: 8px; }
.docs-body li > * { margin: 0; }
.docs-body li > * + * { margin-top: 12px; }
.docs-body li::marker { color: var(--c-faint); }
.docs-body ol > li::marker { font-family: var(--mono); font-size: 0.875em; }
.docs-body li > ul, .docs-body li > ol { margin-top: 8px; }
.docs-body blockquote { padding: 16px 20px; background: var(--c-surface); border: 1px solid var(--line); border-left: 3px solid var(--ink); border-radius: 10px; }
.docs-body blockquote > * { margin: 0; }
.docs-body blockquote > * + * { margin-top: 12px; }
.docs-body hr { border: 0; border-top: 1px solid var(--line); }
.docs-code { background: var(--c-panel); color: #FAFAF9; border-radius: 12px; overflow: hidden; box-shadow: var(--c-panel-shadow); }
.docs-code-label { padding: 10px 20px; border-bottom: 1px solid #2A2A2A; font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: #A8A29E; }
.docs-code pre { margin: 0; padding: 18px 20px; overflow-x: auto; font-family: var(--mono); font-size: 13.5px; line-height: 1.7; color: #FAFAF9; }
.docs-code pre:focus-visible { outline: 2px solid #FAFAF9; outline-offset: -4px; border-radius: 10px; }
.docs-body .docs-code code { font: inherit; color: inherit; background: none; border: 0; padding: 0; overflow-wrap: normal; }
.docs-table { overflow-x: auto; background: var(--c-surface); border: 1px solid var(--line); border-radius: 12px; }
.docs-table:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.docs-table table { width: 100%; border-collapse: collapse; font-size: 14.5px; line-height: 1.55; }
.docs-table th, .docs-table td { padding: 10px 16px; text-align: left; vertical-align: top; }
.docs-table th { font-weight: 500; color: var(--ink); border-bottom: 1px solid var(--line); background: var(--c-surface-2); }
.docs-table td { border-bottom: 1px solid var(--c-line-soft); }
.docs-table tbody tr:last-child td { border-bottom: 0; }
.docs-table code { white-space: nowrap; }
@media (max-width: 900px) {
  .docs { grid-template-columns: minmax(0, 1fr); row-gap: 28px; }
  .docs-sidebar { display: none; }
  .docs-menu { display: block; background: var(--c-surface); border: 1px solid var(--line); border-radius: 12px; }
  .docs-menu summary { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 16px; cursor: pointer; list-style: none; font-size: 15px; font-weight: 500; color: var(--ink); }
  .docs-menu summary::-webkit-details-marker { display: none; }
  .docs-menu summary::after { content: ""; margin-left: auto; width: 8px; height: 8px; border-right: 1.5px solid var(--muted); border-bottom: 1.5px solid var(--muted); transform: translateY(-2px) rotate(45deg); transition: transform 0.15s ease; }
  .docs-menu[open] summary::after { transform: translateY(2px) rotate(-135deg); }
  .docs-menu summary:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; border-radius: 12px; }
  .docs-menu-label { font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; color: var(--muted); font-weight: 400; }
  .docs-menu nav { padding: 4px 16px 12px 28px; border-top: 1px solid var(--line); }
  .docs-menu .docs-guides a { padding: 10px 12px; }
}
@media (max-width: 640px) {
  .docs-article > h1 { font-size: 34px; }
  .docs-body h2 { font-size: 23px; }
  .docs-code pre { padding: 16px; font-size: 13px; }
  .docs-code-label { padding: 10px 16px; }
}
@media (prefers-reduced-motion: reduce) { .docs * { transition: none !important; } }

/* ==== providers shared (pv-) ==== */
/* The providers pages' shared pieces (pages/providers/ui/): their layout values are inline, as the Design canvas writes them, with
   var(--c-*) colours; what an inline style can't do (hover, focus, the dark-mode logo tile, phone gutters) is here. Page-only rules go
   in the page's own section below. */
.pv-page { box-sizing: border-box; width: 100%; margin: 0 auto; color: var(--c-ink); font-size: 14px; line-height: 1.45; }
.pv-page :is(button, input, select, [role="tab"]):focus-visible { outline: 2px solid var(--c-ink); outline-offset: 1px; }
.pv-page input[type="checkbox"] { accent-color: var(--c-accent); }
.pv-page input[type="number"] { -moz-appearance: textfield; }
/* An accent link in running text ("From ComputeSDK"); the back link and Clear all use the accent too. */
.pv-a { color: var(--c-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.pv-a:hover, .pv-accent:hover { color: var(--c-accent-hover); }
.pv-accent { color: var(--c-accent); }
/* The circled-i source link: 20x20, grey until hovered. */
.info-link { color: var(--c-info); }
.info-link:hover, .info-link:focus-visible { color: var(--c-ink); }
/* Menus: a full-page scrim closes them; items light up on hover and focus. */
.pv-menu-item { background: transparent; }
.pv-menu-item:hover, .pv-menu-item:focus-visible { background: var(--c-menu-hover); outline: none; }
.pv-trigger:hover { border-color: var(--c-faint) !important; }
/* Buttons and button links. */
.pv-btn-outline:hover { border-color: var(--c-faint) !important; color: var(--c-ink) !important; }
.pv-btn-solid:hover, .pv-btn-inverse:hover { opacity: 0.86; }
.pv-btn-outline-inverse:hover { border-color: var(--c-inverse-fg) !important; }
.pv-seg-btn:not([aria-pressed="true"]):hover { color: var(--c-ink) !important; }
/* A provider's logo tile: the logo on a light tile in both themes, since most logos are dark ink on transparent; a provider with a
   dark variant swaps it in (on-light-only / on-dark-only) on the surface instead. */
.pv-logo { background: var(--c-logo-tile); }
.pv-logo.has-dark { background: var(--c-surface); }
.pv-logo img { display: block; object-fit: contain; }
@media (prefers-reduced-motion: reduce) { .pv-page * { transition: none !important; } }
/* Phones: 16px side gutters, as the header's. */
@media (max-width: 640px) {
  .pv-page { padding-left: 16px !important; padding-right: 16px !important; }
}
/* ==== end providers shared ==== */

/* ==== providers-main ==== */
/* /providers (pages/providers/MainContent.tsx, pages/providers/main/): only that page's rules go here. Layout values the phone rules
   change live here rather than inline, so a media query can override them. */
.pvm-aside { flex: 1 1 232px; max-width: 300px; }
.pvm-results { flex: 999 1 560px; }
.pvm-toolbar-left { flex-wrap: nowrap; }
.pvm-filters-toggle { display: none; }
.pvm-card { padding: 20px 24px 22px; }
.pvm-card-head { flex-wrap: nowrap; }
.pvm-blurb { padding-left: 32px; }
.pvm-specs { grid-template-columns: repeat(auto-fit, minmax(min(168px, 100%), 1fr)); padding: 18px 0 0 32px; }
.pvm-name:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.pvm-estimate { text-decoration: underline dotted; text-decoration-color: var(--c-faint); text-underline-offset: 3px; cursor: help; }
/* A listed provider's compact card (main/ProviderCards.tsx): a run of them shares a grid, and the name's link covers the whole tile. */
.pvm-mini-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(248px, 100%), 1fr)); gap: 8px; }
.pvm-mini { position: relative; padding: 11px 14px; transition: border-color 150ms; }
.pvm-mini:hover { border-color: var(--c-line-strong) !important; }
.pvm-mini-link::after { content: ""; position: absolute; inset: 0; border-radius: 12px; }
.pvm-mini-link:focus-visible { outline: none; }
.pvm-mini:has(.pvm-mini-link:focus-visible) { outline: 2px solid var(--c-ink); outline-offset: 2px; }
/* The Standby Pool card, under the list (MainContent.tsx). */
.hm-pool { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border: 1px dashed var(--c-line-strong); border-radius: 12px; }
.hm-pool img { flex: none; width: 28px; height: 28px; opacity: 0.7; }
.hm-pool strong { font-size: 14px; font-weight: 600; color: var(--c-text-2); }
.hm-pool p { margin: 4px 0 0; font-size: 14px; line-height: 1.5; color: var(--c-body); }
/* Once the sidebar sits above the results (under 888px: 232 + 48 + 560 plus the gutters), its groups fold behind Show filters. */
@media (max-width: 887px) {
  .pvm-aside { max-width: none; }
  .pvm-filters-toggle { display: inline-flex; }
  .pvm-filter-groups:not(.is-open) { display: none !important; }
}
/* Phones: the toolbar wraps, cards lose their side indent and lay their specs out two across. */
@media (max-width: 640px) {
  .pvm-toolbar-left { flex-wrap: wrap; }
  .pvm-card { padding: 16px 16px 18px; }
  .pvm-card-head { flex-wrap: wrap; }
  .pvm-price { align-items: flex-start !important; text-align: left !important; padding-left: 32px; }
  .pvm-blurb { padding-left: 32px; }
  .pvm-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 16px 0 0; }
  .pvm-mini { padding: 10px 12px; }
  .hm-pool { align-items: flex-start; padding: 14px 16px; }
}
/* ==== end providers-main ==== */

/* ==== providers-detail ==== */
/* /providers/<id> (pages/providers/ProviderDetailPage.tsx): only that page's rules go here. */
/* The tabs: an unpicked tab darkens on hover; a panel (focusable, as the ARIA tabs pattern has it) gets a ring only from the keyboard. */
.pvd-tab:not([aria-selected="true"]):hover { color: var(--c-ink) !important; }
.pvd-panel:focus { outline: none; }
.pvd-panel:focus-visible { outline: 2px solid var(--c-ink); outline-offset: 4px; border-radius: 4px; }
/* A long provider name wraps instead of widening the page on a phone. */
.pvd-title { overflow-wrap: anywhere; }
/* ==== end providers-detail ==== */

/* ==== providers-compare ==== */
/* /providers/compare (pages/providers/ComparePage.tsx): only that page's rules go here. */
/* All details: the label column and each provider column's least width, as variables the inline grid reads, so phones can narrow them. */
.pc-table { --pc-label: 200px; --pc-col: 180px; }
.pc-scroll:focus-visible { outline: 2px solid var(--c-ink); outline-offset: 2px; border-radius: 4px; }
/* Provider names in the key and the column headings link to the provider's page. */
.pc-name-link:hover { color: var(--c-accent) !important; }
/* The picker's tiles and the Providers menu. */
.pc-pick { transition: border-color 150ms; }
.pc-pick:hover { border-color: var(--c-faint) !important; }
.pc-pick:has(input:checked) { border-color: var(--c-ink) !important; }
.pc-pick:has(input:disabled):hover { border-color: var(--c-line-strong) !important; }
.pc-pick:has(input:focus-visible) { outline: 2px solid var(--c-ink); outline-offset: 1px; }
.pc-menu-item[aria-disabled="true"] { opacity: 0.45; }
.pc-menu-item[aria-disabled="true"]:hover { background: transparent; }
@media (max-width: 640px) {
  .pc-title { font-size: 32px !important; }
  .pc-table { --pc-label: 112px; --pc-col: 160px; }
  .pc-col-head { font-size: 18px !important; }
  /* The label column stays put while the provider columns scroll under it. */
  .pc-sticky { position: sticky; left: 0; z-index: 1; background: var(--c-bg); box-shadow: 12px 0 0 var(--c-bg); }
}
/* ==== end providers-compare ==== */

/* Shared provider limits: grouped rows with secondary qualifications. */
.pvd-limits-frame{overflow:hidden;border:1px solid var(--c-line);border-radius:12px;background:var(--c-surface)}
.pvd-limits-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px;line-height:1.45;text-align:left}
.pvd-limits-table th,.pvd-limits-table td{padding:11px 20px;vertical-align:top;overflow-wrap:anywhere}
.pvd-limit-label-col{width:34%}
.pvd-limits-table th[scope=row]{color:var(--c-body);font-weight:400}
.pvd-limits-table tr:not(.pvd-limits-group)+tr{border-top:1px solid var(--c-line-soft)}
.pvd-limits-table .pvd-limits-group th{padding:9px 20px;background:var(--c-bg);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--c-muted)}
.pvd-limits-table tbody+tbody{border-top:1px solid var(--c-line)}
.pvd-limit-answer{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px}
.pvd-limit-value{font-weight:500;color:var(--c-ink)}
.pvd-limit-detail,.pvd-limit-quiet{font-size:12px;color:var(--c-muted)}
.pvd-limits-note,.pvd-limits-notes{margin:0;max-width:760px;font-size:12px;line-height:1.6;color:var(--c-muted)}
.pvd-limits-notes p{margin:0 0 6px}
.pvd-limits-sources{font-size:12px;line-height:1.6;color:var(--c-body)}
.pvd-limits-sources summary{width:fit-content;cursor:pointer;min-height:32px;padding:5px 0}
.pvd-limits-sources summary span{margin-left:12px;color:var(--c-muted)}
.pvd-limits-sources ul{margin:6px 0 0;padding-left:20px;display:grid;gap:4px}
@media(max-width:600px){.pvd-limits-table th,.pvd-limits-table td{padding:10px 14px}.pvd-limit-label-col{width:40%}.pvd-limits-table .pvd-limits-group th{padding:8px 14px}.pvd-limit-answer{flex-direction:column;gap:2px}}

/* Sourced profiles for offerings used on the reader's own compute. */
.pvd-research{display:flex;flex-direction:column;gap:24px;min-width:0}
.pvd-research h2{margin:0;font-size:18px;line-height:1.35;font-weight:600;color:var(--c-ink)}
.pvd-research h3{margin:0;font-size:15px;font-weight:600;color:var(--c-ink)}
.pvd-research p{margin:10px 0;font-size:14px;line-height:1.6;color:var(--c-body)}
.pvd-research .pvd-research-access{margin:0;max-width:760px}
.pvd-research-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pvd-research-source{font-size:12px;line-height:1.5;color:var(--c-body);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.pvd-research-plans{display:flex;flex-direction:column;gap:12px}
.pvd-research-plans>p{margin:0;max-width:760px}
.pvd-research-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pvd-research-price{margin:14px 0 6px;font-size:22px;line-height:1.25;letter-spacing:-.02em;font-weight:600;color:var(--c-ink);overflow-wrap:anywhere}
.pvd-research-annual{font-size:12px;line-height:1.5;color:var(--c-muted)}
.pvd-research-sources{padding-left:20px;margin:12px 0 0;display:grid;gap:8px}
@media(max-width:700px){.pvd-research-grid,.pvd-research-plan-grid{grid-template-columns:minmax(0,1fr)}}

/* Homepage discovery, agent setup and feature illustrations. */
:root { --hm-leading:#237A4B; --hm-rest:#8F887B; --hm-motion:#9A6B0A; --hm-idle:#E7E5E0;
  --hm-provider-1:var(--c-series-2); --hm-provider-2:var(--c-series-3); --hm-provider-3:var(--c-series-1); --hm-provider-4:var(--c-muted); }
:root[data-theme="dark"] { --hm-leading:#3FA56E; --hm-rest:#6E685E; --hm-motion:#EAD98B; --hm-idle:#2C2A26; }
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--hm-leading:#3FA56E;--hm-rest:#6E685E;--hm-motion:#EAD98B;--hm-idle:#2C2A26}}
.hm-agent-trigger,.hm-agent-copy,.hm-agent-docs { display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 20px;border-radius:8px;font:inherit;font-size:15px;font-weight:500;text-decoration:none;cursor:pointer;box-sizing:border-box; }
.hm-agent-trigger,.hm-agent-docs { border:1px solid var(--c-line-strong);color:var(--c-ink);background:var(--c-surface); }
.hm-agent-copy { position:relative;overflow:hidden;border:0;background:var(--c-btn-bg);color:var(--c-btn-fg);transition:background-color 180ms ease; }
.hm-agent-copy-label { display:inline-block;transition:opacity 150ms ease,transform 180ms ease; }
.hm-agent-copy-confirm { position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;transform:translateY(4px) scale(.8);transition:opacity 150ms ease,transform 180ms ease; }
.hm-agent-copy-confirm path { stroke-dasharray:1;stroke-dashoffset:0; }
.hm-agent-copy[data-copied] { background:var(--c-ok-text); }
.hm-agent-copy[data-copied] .hm-agent-copy-label { opacity:0;transform:translateY(-4px); }
.hm-agent-copy[data-copied] .hm-agent-copy-confirm { opacity:1;transform:translateY(0) scale(1); }
.hm-agent-copy[data-copied] .hm-agent-copy-confirm path { stroke-dashoffset:0;animation:hm-copy-check 240ms ease-out both; }
@keyframes hm-copy-check { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@media(prefers-reduced-motion:reduce){.hm-agent-copy,.hm-agent-copy-label,.hm-agent-copy-confirm{transition:none}.hm-agent-copy[data-copied] .hm-agent-copy-confirm path{animation:none}}
.hm-agent-dialog { width:min(700px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;padding:0;border:1px solid var(--c-line-strong);border-radius:18px;background:var(--c-surface);color:var(--c-ink);box-shadow:var(--c-menu-shadow);font-family:inherit; }
.hm-agent-dialog::backdrop { background:rgb(0 0 0 / .62);backdrop-filter:blur(4px); }
.hm-agent-card { padding:32px;display:flex;flex-direction:column;gap:20px; }
.hm-agent-heading { display:flex;justify-content:space-between;align-items:flex-start;gap:20px; }
.hm-agent-heading h2 { margin:0;font-size:28px;font-weight:600;line-height:1.15;letter-spacing:-.025em; }
.hm-agent-heading p { margin:10px 0 0;font-size:15px;line-height:1.55;color:var(--c-body); }
.hm-agent-prompt { display:block;width:100%;min-height:280px;resize:vertical;box-sizing:border-box;padding:18px 20px;border:1px solid var(--c-line);border-radius:12px;background:var(--c-bg);color:var(--c-ink);font:13px/1.75 'Geist Mono',ui-monospace,monospace; }
.hm-agent-actions { display:flex;align-items:center;gap:12px;flex-wrap:wrap; }
.hm-icon-button { flex:none;width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--c-line);border-radius:10px;background:var(--c-surface);color:var(--c-body);font-family:inherit;font-size:20px;line-height:1;cursor:pointer; }
.hm-icon-button:hover:not(:disabled) { background:var(--c-hover-fill);color:var(--c-ink); }
.hm-icon-button:disabled { opacity:.35;cursor:default; }
.hm-icon-button:focus-visible,.hm-agent-trigger:focus-visible,.hm-agent-copy:focus-visible,.hm-agent-docs:focus-visible,.hm-ranking-info:focus-visible,.hm-policy-requirements button:focus-visible { outline:2px solid var(--c-accent);outline-offset:3px; }
.hm-discovery { max-width:1200px;margin:0 auto;padding:112px 24px 96px; }
.hm-discovery-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:24px; }
.hm-discovery-heading>div:first-child { min-width:0;max-width:820px; }
.hm-discovery h2 { margin:0;font-size:clamp(30px,3.6vw,44px);line-height:1.1;font-weight:600;letter-spacing:-.03em;text-wrap:balance; }
.hm-discovery-heading p { margin:16px 0 0;font-size:17px;line-height:1.6;color:var(--c-body); }
.hm-discovery-actions { display:flex;align-items:center;gap:18px;flex-wrap:wrap;flex:none; }
.hm-text-link { display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--c-ink);font-size:14px;font-weight:500;text-decoration:underline;text-underline-offset:4px; }
.hm-carousel-controls { display:flex;gap:8px; }
.hm-carousel-controls[hidden] { display:none; }
.hm-workload-track { display:grid;grid-template-rows:repeat(2,1fr);grid-auto-flow:column;grid-auto-columns:max(calc((100% - 40px)/3),min(320px,100%));gap:20px;margin-top:40px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:0;scrollbar-width:none;padding:2px;box-sizing:border-box; }
.hm-workload-track::-webkit-scrollbar { display:none; }
.hm-workload-track:focus-visible { outline:2px solid var(--c-accent);outline-offset:6px;border-radius:14px; }
.hm-workload-card { position:relative;min-width:0;min-height:228px;padding:24px;box-sizing:border-box;scroll-snap-align:start;display:flex;flex-direction:column;gap:12px;border:1px solid var(--c-line);border-radius:14px;background:var(--c-surface); }
.hm-workload-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:8px; }
.hm-workload-heading h3 { margin:0;font-size:18px;line-height:1.35;font-weight:600;letter-spacing:-.015em;text-wrap:balance; }
.hm-ranking-info { flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;margin:-10px -12px -10px 0;border:0;border-radius:10px;background:transparent;color:var(--c-muted);cursor:pointer; }
.hm-ranking-info:hover { color:var(--c-ink);background:var(--c-hover-fill); }
.hm-ranking-bars { list-style:none;display:flex;flex-direction:column;margin:auto 0 0;padding:0;min-height:108px;justify-content:center; }
.hm-ranking-bars li { display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;align-items:center;font-size:13px;line-height:20px;min-height:36px; }
.hm-ranking-bars a { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--c-body);text-decoration:none; }
.hm-ranking-bars a:hover { color:var(--c-ink);text-decoration:underline;text-underline-offset:3px; }
.hm-ranking-measure { min-width:0;min-height:36px;display:flex;align-items:center;gap:8px;border-left:1px solid var(--c-chart-axis); }
.hm-ranking-bar { flex:0 1 auto;height:14px;border-radius:0 4px 4px 0;background:var(--hm-rest); }
.hm-ranking-value { flex:none;white-space:nowrap;font:12px/1.4 'Geist Mono',ui-monospace,monospace;color:var(--c-body); }
.hm-ranking-bars .is-leading a { font-weight:600;color:var(--c-ink); }
.hm-ranking-bars .is-leading .hm-ranking-bar { background:var(--hm-leading); }
.hm-ranking-bars .is-leading .hm-ranking-value { color:var(--c-ink);font-weight:500; }
.hm-ranking-explanation { position:absolute;z-index:2;inset:8px;padding:12px 16px;border:1px solid var(--c-line-strong);border-radius:10px;background:var(--c-surface-2);display:flex;flex-direction:column;gap:8px;overflow-y:auto; }
.hm-ranking-explanation[hidden] { display:none; }
.hm-ranking-explanation-head { display:flex;justify-content:space-between;align-items:center;gap:10px;font:10px/1.4 'Geist Mono',monospace;letter-spacing:.08em;color:var(--c-muted); }
.hm-ranking-explanation-head button { border:0;background:transparent;margin:-12px -12px -6px 0; }
.hm-ranking-explanation p { margin:0;font-size:13px;line-height:1.5;color:var(--c-ink); }
.hm-ranking-explanation>a { margin-top:auto;padding-top:6px;font-size:12px;color:var(--c-body);text-underline-offset:3px; }
.hm-showcase { border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line); }
.hm-showcase-inner { max-width:1200px;margin:0 auto;padding:24px 24px 48px; }
.hm-feature { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:48px 64px;padding:48px 0; }
.hm-feature+.hm-feature { border-top:1px solid var(--c-line); }
.hm-feature-reverse .hm-feature-copy { order:2; }
.hm-feature-copy { min-width:0; }
.hm-feature-copy h3 { margin:0;font-size:clamp(28px,3.2vw,38px);font-weight:600;line-height:1.12;letter-spacing:-.025em;text-wrap:balance; }
.hm-feature-copy p { margin:18px 0 8px;font-size:17px;line-height:1.6;color:var(--c-body);text-wrap:pretty; }
.hm-feature-art { min-width:0; }
.hm-graphic { width:100%;max-width:560px;min-height:340px;margin:0 auto;overflow:hidden;border:1px solid var(--c-line);border-radius:16px;background:var(--c-surface);color:var(--c-ink);box-sizing:border-box;display:flex;flex-direction:column; }
.hm-graphic-header { min-height:44px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--c-line);font-size:13px;font-weight:500; }
.hm-graphic-header>span+span { color:var(--c-muted);font-size:11px;font-weight:400;text-align:right; }
.hm-graphic-footer { display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;margin-top:auto;padding:0 20px;border-top:1px solid var(--c-line);font-size:13px;color:var(--c-body); }
.hm-graphic-footer strong { color:var(--hm-motion);font:14px/1.3 'Geist Mono',monospace; }
.hm-routing-canvas { display:block;width:100%;height:auto;overflow:visible; }
.hm-routing-lines { stroke:var(--c-line-strong); }
.hm-routing-lines .hm-routing-detour { stroke:var(--c-warn-text); }
.hm-routing-hub { fill:var(--c-bg);stroke:var(--c-line-strong);stroke-width:1.5; }
.hm-routing-hub-icon { stroke:var(--c-ink); }
.hm-routing-provider rect { fill:var(--c-surface-2);stroke:var(--c-line-strong); }
.hm-routing-provider text { fill:var(--c-ink);font:14px 'Geist',sans-serif;font-weight:500; }
.hm-routing-provider.is-full rect { stroke-dasharray:3 4;fill:none; }
.hm-routing-provider.is-full text { fill:var(--c-muted); }
.hm-routing-fail-label { fill:var(--c-warn-text);font:11px 'Geist Mono',monospace; }
.hm-flow-dot { fill:var(--hm-motion);offset-rotate:0deg;offset-position:0 0;offset-anchor:0 0;transform-box:view-box;opacity:0;animation:hm-flow-travel 2.4s linear infinite; }
.hm-flow-failover { animation:hm-flow-retry 4s ease-in-out infinite; }
@keyframes hm-flow-travel { 0%{offset-distance:0%;opacity:0}8%{opacity:1}90%{opacity:1}100%{offset-distance:100%;opacity:0} }
@keyframes hm-flow-retry { 0%{offset-distance:0%;opacity:0;fill:var(--hm-motion)}6%{opacity:1}52%,68%{offset-distance:62%;fill:var(--c-warn-text)}94%{offset-distance:100%;opacity:1;fill:var(--hm-motion)}100%{offset-distance:100%;opacity:0} }
.hm-timeline-legend { display:flex;justify-content:flex-end;gap:14px;padding:10px 20px 0;font-size:10px;color:var(--c-muted); }
.hm-timeline-legend>span { display:flex;align-items:center;gap:5px; }
.hm-timeline-legend i,.hm-timeline-lane i,.hm-policy-table i { width:7px;height:7px;border-radius:2px;display:inline-block;flex:none; }
.hm-timeline-body { display:flex;flex:1;flex-direction:column;gap:10px;padding:12px 20px 16px; }
.hm-timeline-lane { display:flex;flex-direction:column;gap:6px; }
.hm-timeline-lane>div:first-child { display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px; }
.hm-timeline-lane>div:first-child>span+span { display:flex;align-items:center;gap:6px;font:10px 'Geist Mono',monospace;color:var(--c-muted); }
.hm-timeline-segments { display:grid;grid-template-columns:repeat(36,minmax(0,1fr));gap:3px; }
.hm-timeline-segments>span { height:18px;border-radius:3px;transition:background-color 240ms ease; }
.hm-timeline-result { margin-top:auto;padding-top:12px;border-top:1px solid var(--c-line); }
.hm-graphic .is-serving { background:var(--hm-leading); }
.hm-graphic .is-failing { background:var(--c-warn-text); }
.hm-graphic .is-idle { background:var(--hm-idle); }
.hm-graphic .is-fallback { background:var(--hm-motion); }
.hm-usage-body { padding:16px 20px;display:flex;flex:1;flex-direction:column;gap:14px; }
.hm-usage-totals { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px; }
.hm-usage-totals>div { display:flex;flex-direction:column;gap:3px; }
.hm-usage-totals span { font-size:11px;color:var(--c-muted); }
.hm-usage-totals strong { font-size:20px;font-weight:600;letter-spacing:-.02em; }
.hm-usage-chart { display:flex;flex-direction:column;gap:4px; }
.hm-usage-bars { height:80px;display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:9px;align-items:end;border-bottom:1px solid var(--c-chart-axis);background:repeating-linear-gradient(to top,transparent 0,transparent 25px,var(--c-line-soft) 26px,var(--c-line-soft) 27px); }
.hm-usage-bars>span { display:flex;flex-direction:column-reverse;overflow:hidden;border-radius:3px 3px 0 0; }
.hm-usage-bars>span>i { display:block;flex-basis:0;min-height:0; }
.hm-usage-axis { display:flex;justify-content:space-between;font-size:10px;color:var(--c-muted); }
.hm-usage-table { margin-top:auto; }
.hm-usage-table>[role=row] { display:grid;grid-template-columns:minmax(0,1fr) 50px 72px;gap:8px;align-items:center;min-height:26px;font-size:12px;border-top:1px solid var(--c-line-soft); }
.hm-usage-table>[role=row]:first-child { border:0;font-size:10px;color:var(--c-muted); }
.hm-usage-table>[role=row]>span:not(:first-child) { text-align:right;font-family:'Geist Mono',monospace;font-size:11px; }
.hm-usage-table>[role=row]>span:first-child { display:flex;align-items:center;gap:8px;min-width:0; }
.hm-usage-table i { display:inline-block;width:8px;height:8px;border-radius:2px;flex:none; }
.hm-policy-body { --hm-policy-columns:minmax(58px,1fr) repeat(3,58px) 62px;flex:1;padding:12px 20px; }
.hm-policy-requirements { display:grid;grid-template-columns:var(--hm-policy-columns);gap:5px;align-items:center;padding-bottom:10px;font-size:11px;color:var(--c-muted); }
.hm-policy-requirements button { min-height:36px;padding:0 6px;border:1px solid var(--c-line-strong);border-radius:999px;background:transparent;color:var(--c-body);font-family:inherit;font-size:11px;line-height:1.2;cursor:pointer; }
.hm-policy-requirements button[aria-pressed=true] { background:var(--c-btn-bg);color:var(--c-btn-fg);border-color:var(--c-btn-bg); }
.hm-policy-table>[role=row]:not(.sr-only) { display:grid;grid-template-columns:var(--hm-policy-columns);gap:5px;align-items:center;min-height:29px;border-top:1px solid var(--c-line-soft);font-size:11px;color:var(--c-body); }
.hm-policy-table>[role=row]>span:not(:first-child) { text-align:center;font-family:'Geist Mono',monospace; }
.hm-policy-table>[role=row]>span:last-child { display:flex;align-items:center;justify-content:flex-end;gap:4px;font-size:9px; }
.hm-policy-table .is-filtered>span:first-child { color:var(--c-muted);text-decoration:line-through; }
.hm-policy-table .is-missing { color:var(--c-warn-text); }
.hm-policy-footer { min-height:48px;font-size:12px; }
.hm-policy-footer>span:last-child { font-size:9px;color:var(--c-muted); }
.hm-policy-footer strong { color:var(--c-ink);font-size:12px; }
@media(max-width:1000px){.hm-discovery-heading{align-items:flex-start;flex-direction:column}.hm-discovery-actions{width:100%;justify-content:space-between}.hm-feature{gap:36px}.hm-workload-track{grid-auto-columns:max(calc((100% - 20px)/2),min(320px,100%))}}
@media(max-width:800px){.hm-feature{grid-template-columns:minmax(0,1fr);gap:28px;padding:40px 0}.hm-feature-copy,.hm-feature-reverse .hm-feature-copy{order:0}.hm-feature-copy{max-width:620px}.hm-feature-art{order:1}.hm-graphic{max-width:560px}.hm-showcase-inner{padding-top:16px}.hm-discovery{padding-top:88px;padding-bottom:72px}}
@media(max-width:600px){.hm-discovery,.hm-showcase-inner{padding-left:16px;padding-right:16px}.hm-workload-track{grid-auto-columns:min(320px,calc(100% - 14px));gap:20px;margin-top:28px}.hm-workload-card{padding:20px;min-height:228px}.hm-ranking-bars li{grid-template-columns:98px minmax(0,1fr);gap:10px}.hm-agent-card{padding:24px 20px}.hm-agent-heading{gap:12px}.hm-agent-heading h2{font-size:24px}.hm-agent-prompt{font-size:12px;min-height:300px;padding:14px}.hm-agent-actions>a,.hm-agent-actions>button{flex:1}.hm-feature-copy p{font-size:16px}.hm-graphic{min-height:320px}.hm-routing-graphic{min-height:0}.hm-routing-provider text{font-size:22px}.hm-routing-provider rect{height:38px}.hm-routing-fail-label{font-size:16px}.hm-graphic-header,.hm-graphic-footer{padding-left:14px;padding-right:14px}.hm-timeline-body{padding:12px 14px 16px}.hm-timeline-legend{padding-right:14px;gap:10px}.hm-timeline-segments{gap:2px}.hm-timeline-segments>span{height:16px;border-radius:2px}.hm-policy-body{--hm-policy-columns:minmax(48px,1fr) repeat(3,44px) 48px;padding:12px}.hm-policy-requirements{gap:3px}.hm-policy-requirements button{font-size:9px;padding:0 2px}.hm-policy-table>[role=row]:not(.sr-only){gap:3px;font-size:10px}.hm-policy-footer{gap:8px}.hm-usage-body{padding:16px 14px}.hm-usage-bars{gap:6px}}
@media(prefers-reduced-motion:reduce){.hm-flow-dot{animation:none;opacity:0}.hm-timeline-segments>span{transition:none}.hm-workload-track{scroll-behavior:auto}}

/* Feature details: routing, account boundaries, creation failover and policy. */
.ft-page { color:var(--c-ink); }
.ft-hero,.ft-section { max-width:1200px;margin:0 auto;padding:88px 24px; }
.ft-hero { padding-top:104px;display:flex;flex-direction:column;gap:24px; }
.ft-hero h1 { margin:0;max-width:900px;font-size:clamp(38px,5vw,58px);line-height:1.08;letter-spacing:-.03em;font-weight:600; }
.ft-hero>p { margin:0;max-width:700px;font-size:19px;line-height:1.6;color:var(--c-body); }
.ft-hero-actions { display:flex;flex-wrap:wrap;gap:12px;margin-top:4px; }
.ft-jumps { display:flex;flex-wrap:wrap;gap:8px;margin-top:16px; }
.ft-jumps a { min-height:36px;display:flex;align-items:center;padding:0 14px;border:1px solid var(--c-line-strong);border-radius:999px;font-size:12px;color:var(--c-body);background:var(--c-surface); }
.ft-jumps a:hover { color:var(--c-ink);border-color:var(--c-muted); }
.ft-section { border-top:1px solid var(--c-line);scroll-margin-top:64px; }
.ft-section-heading { display:flex;flex-direction:column;gap:16px;max-width:760px; }
.ft-section-heading h2 { margin:0;font-size:clamp(28px,3.4vw,40px);font-weight:600;line-height:1.13;letter-spacing:-.025em;text-wrap:balance; }
.ft-section-heading>p { margin:0;font-size:17px;line-height:1.65;color:var(--c-body); }
.ft-card-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:36px; }
.ft-card { min-width:0;padding:26px;border:1px solid var(--c-line);border-radius:12px;background:var(--c-surface);display:flex;flex-direction:column;gap:12px; }
.ft-card h3 { margin:0;font-size:18px;font-weight:600;line-height:1.35; }
.ft-card p { margin:0;font-size:15px;line-height:1.65;color:var(--c-body); }
.ft-card .ft-text-link { margin-top:auto;padding-top:4px; }
.ft-split { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center; }
.ft-detail-list { display:flex;flex-direction:column;gap:20px;list-style:none;margin:12px 0 0;padding:0; }
.ft-detail-list li { display:flex;flex-direction:column;gap:6px; }
.ft-detail-list strong { font-size:15px;font-weight:500; }
.ft-detail-list span { font-size:14px;line-height:1.65;color:var(--c-body); }
.ft-account-demo,.ft-egress-diagram { min-width:0;overflow:hidden;border:1px solid var(--c-line);border-radius:14px;background:var(--c-surface); }
.ft-demo-heading { display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--c-line);font-size:12px;font-weight:500; }
.ft-demo-heading>span+span { font-size:10px;color:var(--c-muted);font-weight:400;text-align:right; }
.ft-mode-buttons { display:flex;gap:6px;flex-wrap:wrap;padding:20px 20px 0; }
.ft-mode-buttons button { padding:9px 12px;min-height:40px;border:1px solid var(--c-line-strong);border-radius:8px;background:transparent;color:var(--c-body);font-family:inherit;font-size:12px;line-height:1.3;cursor:pointer; }
.ft-mode-buttons button[aria-pressed=true] { background:var(--c-btn-bg);border-color:var(--c-btn-bg);color:var(--c-btn-fg); }
.ft-mode-buttons button:focus-visible,.ft-text-link:focus-visible,.ft-jumps a:focus-visible { outline:2px solid var(--c-accent);outline-offset:3px; }
.ft-account-route { padding:24px 20px;min-height:300px;box-sizing:border-box; }
.ft-account-route ol { margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px; }
.ft-account-route li { display:flex;align-items:center;gap:14px;border:1px solid var(--c-line);border-radius:8px;padding:14px;background:var(--c-bg); }
.ft-route-number { width:26px;height:26px;display:flex;justify-content:center;align-items:center;flex:none;border:1px solid var(--c-line-strong);border-radius:50%;font:11px 'Geist Mono',monospace;color:var(--c-muted); }
.ft-account-route li>div { display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;min-width:0; }
.ft-account-route strong { font-size:14px;font-weight:600; }
.ft-account-route li>div>span { font:11px 'Geist Mono',monospace;color:var(--c-muted); }
.ft-pool-name { margin-left:auto;flex:none;font-size:10px;color:var(--c-muted); }
.ft-account-route>p { margin:20px 0 0;font-size:13px;line-height:1.65;color:var(--c-body); }
.ft-demo-footer { padding:14px 20px;border-top:1px solid var(--c-line);font-size:11px;line-height:1.5;color:var(--c-muted); }
.ft-creation-steps { list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;padding:0;margin:40px 0; }
.ft-creation-steps>li { min-width:0; }
.ft-creation-steps>li>span { font:12px 'Geist Mono',monospace;color:var(--c-muted);display:block;padding-top:16px;border-top:1px solid var(--c-line-strong); }
.ft-creation-steps h3 { margin:16px 0 10px;font-size:17px;line-height:1.4;font-weight:600; }
.ft-creation-steps p { margin:0;font-size:14px;line-height:1.65;color:var(--c-body); }
.ft-policy-layers { margin:36px 0 0;border-top:1px solid var(--c-line-strong); }
.ft-policy-row { display:grid;grid-template-columns:190px minmax(0,1fr);gap:32px;padding:26px 0;border-bottom:1px solid var(--c-line); }
.ft-policy-row dt { display:flex;gap:14px;align-items:baseline;font-size:15px;line-height:1.5; }
.ft-policy-row dt>span { color:var(--c-muted);font:11px 'Geist Mono',monospace; }
.ft-policy-row dt>strong { font-weight:500; }
.ft-policy-row dd { margin:0; }
.ft-policy-row p { margin:0;font-size:14px;line-height:1.65;color:var(--c-body); }
.ft-text-link { display:inline-flex;align-items:center;gap:8px;min-height:40px;font-size:13px;color:var(--c-ink);text-decoration:underline;text-underline-offset:4px;width:fit-content; }
.ft-egress-diagram ol { list-style:none;margin:0;padding:26px;display:flex;flex-direction:column;gap:26px; }
.ft-egress-diagram li { display:flex;align-items:flex-start;gap:16px; }
.ft-egress-diagram li+li { border-top:1px solid var(--c-line);padding-top:24px; }
.ft-egress-diagram strong { display:block;font-size:15px;font-weight:500;margin-top:3px; }
.ft-egress-diagram p { font-size:13px;line-height:1.65;color:var(--c-body);margin:8px 0 0; }
.ft-egress-check { display:block;margin-top:12px;color:var(--c-ok-text);font-size:11px;line-height:1.5; }
.ft-runtime-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:1000px){.ft-split{gap:36px}.ft-creation-steps,.ft-runtime-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-policy-row{grid-template-columns:160px minmax(0,1fr);gap:24px}.ft-card{padding:22px}}
@media(max-width:760px){.ft-hero,.ft-section{padding:64px 24px}.ft-hero{padding-top:72px}.ft-split{grid-template-columns:minmax(0,1fr);gap:32px}.ft-card-grid{grid-template-columns:minmax(0,1fr)}.ft-runtime-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-policy-row{grid-template-columns:minmax(0,1fr);gap:12px}.ft-policy-row dd{padding-left:29px}.ft-account-route{min-height:0}}
@media(max-width:440px){.ft-hero,.ft-section{padding-left:20px;padding-right:20px}.ft-hero>p{font-size:17px}.ft-section-heading>p{font-size:16px}.ft-creation-steps,.ft-runtime-grid{grid-template-columns:minmax(0,1fr)}.ft-mode-buttons{padding:16px 14px 0}.ft-mode-buttons button{padding:8px;font-size:10px;min-height:40px}.ft-demo-heading,.ft-demo-footer{padding-left:14px;padding-right:14px}.ft-account-route{padding:20px 14px}.ft-account-route li{padding:12px;gap:10px}.ft-pool-name{font-size:9px}.ft-egress-diagram ol{padding:22px 18px}.ft-account-route li>div{flex-direction:column}}
.ft-failover-summary { margin-top:24px;display:flex;flex-wrap:wrap;gap:12px 32px;align-items:center;justify-content:space-between; }
.ft-failover-summary p { margin:0;font-size:14px;line-height:1.65;color:var(--c-body);max-width:740px; }
.ft-failover-summary strong { font-weight:500;color:var(--c-ink); }
.ft-routing-example { min-width:0;overflow:hidden;border:1px solid var(--c-line);border-radius:14px;background:var(--c-surface); }
.ft-routing-inputs { display:flex;flex-direction:column;gap:22px;padding:20px; }
.ft-input-label { font-size:11px;color:var(--c-muted); }
.ft-routing-inputs .ft-mode-buttons { padding:10px 0 0;gap:6px; }
.ft-routing-inputs .ft-mode-buttons button { font-size:11px;padding:9px 10px; }
/* Reserve the header and three result rows, even when a region matches fewer pools. */
.ft-routing-results { padding:0 20px;min-height:228px;box-sizing:border-box; }
.ft-routing-results>[role=row] { display:grid;grid-template-columns:minmax(94px,1fr) repeat(3,minmax(40px,.42fr));gap:8px;align-items:center;min-height:66px;box-sizing:border-box;border-bottom:1px solid var(--c-line-soft);font-size:12px; }
.ft-routing-results>[role=row]:first-child { min-height:30px;font-size:10px;color:var(--c-muted);border-color:var(--c-line); }
.ft-routing-results>[role=row]>span:not(:first-child) { text-align:center; }
.ft-routing-results>[role=row]>span:first-child { display:flex;align-items:center;gap:10px;min-width:0; }
.ft-routing-results strong { display:block;font-weight:500;font-size:13px; }
.ft-routing-results small { display:block;font-size:10px;color:var(--c-muted);margin-top:4px; }
.ft-routing-results [role=cell]:not(:first-child) { color:var(--c-muted);font:11px 'Geist Mono',monospace; }
.ft-routing-results [role=cell].is-priority { color:var(--c-ink);font-weight:500; }
.ft-routing-summary { padding:18px 20px;margin:0;min-height:calc(4.8em + 36px);box-sizing:border-box;font-size:12px;line-height:1.6;color:var(--c-body); }
@media(max-width:440px){.ft-routing-inputs{padding:18px 14px}.ft-routing-inputs .ft-mode-buttons button{font-size:10px;padding:8px}.ft-routing-results{padding:0 14px}.ft-routing-results>[role=row]{gap:5px}.ft-routing-results .ft-route-number{width:22px;height:22px}.ft-routing-results>[role=row]>span:first-child{gap:6px}.ft-routing-summary{padding:16px 14px}}

/* Features page region selector: the trigger and popup share the site's light/dark tokens. */
.ft-region-field { display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;color:var(--c-body); }
.ft-region-dropdown { position:relative;min-width:132px;max-width:60%; }
.ft-region-trigger { display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;width:100%;padding:8px 12px;border:1px solid var(--c-line-strong);border-radius:8px;background:var(--c-bg);color:var(--c-ink);font:inherit;text-align:left;cursor:pointer;transition:border-color 140ms ease,background-color 140ms ease; }
.ft-region-trigger:hover,.ft-region-trigger[aria-expanded=true] { border-color:var(--c-muted);background:var(--c-surface-2); }
.ft-region-trigger:focus-visible { outline:2px solid var(--c-accent);outline-offset:3px; }
.ft-region-trigger>svg { flex:none;color:var(--c-muted);transition:transform 140ms ease; }
.ft-region-trigger[aria-expanded=true]>svg { transform:rotate(180deg); }
.ft-routing-example:has(.ft-region-trigger[aria-expanded=true]) { overflow:visible; }
.ft-region-options.opens-up { top:auto;bottom:calc(100% + 6px); }
.ft-region-options { overflow-y:auto;position:absolute;z-index:30;top:calc(100% + 6px);right:0;min-width:100%;width:160px;max-width:calc(100vw - 40px);box-sizing:border-box;list-style:none;margin:0;padding:6px;border:1px solid var(--c-line);border-radius:10px;background:var(--c-surface);color:var(--c-ink);box-shadow:var(--c-menu-shadow);animation:ft-region-reveal 140ms ease-out; }
.ft-region-options>li { display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:0 10px;border-radius:6px;font-size:12px;cursor:pointer; }
.ft-region-options>li.is-active { background:var(--c-menu-hover); }
.ft-region-options>li[aria-selected=true] { font-weight:500; }
@keyframes ft-region-reveal { from { opacity:0;transform:translateY(-4px); } to { opacity:1;transform:translateY(0); } }
@media(prefers-reduced-motion:reduce){.ft-region-options{animation:none}.ft-region-trigger,.ft-region-trigger>svg{transition:none}}

/* Provider onboarding. The application and its receipt share the public site's theme. */
.po-page { color:var(--c-ink); }
.po-hero,.po-section,.po-application-heading,.po-application-grid { max-width:1200px;margin:0 auto;padding:80px 24px; }
.po-hero { padding-top:88px;display:flex;flex-direction:column;align-items:flex-start;gap:24px; }
.po-back { display:inline-flex;align-items:center;min-height:32px;font-size:13px;color:var(--c-body);text-decoration:none; }
.po-back:hover { color:var(--c-ink);text-decoration:underline;text-underline-offset:3px; }
.po-hero h1,.po-application-heading h1 { margin:0;font-size:clamp(36px,4.8vw,56px);font-weight:600;line-height:1.08;letter-spacing:-.03em;max-width:920px;text-wrap:balance; }
.po-hero>p { max-width:680px;font-size:18px;line-height:1.65;color:var(--c-body);margin:0; }
.po-actions { display:flex;gap:12px;align-items:center;flex-wrap:wrap; }
.po-hero>.po-contact { font-size:13px; }
.po-contact a,.po-hint a,.po-application-aside p a,.po-consent a,.po-form-alert a { color:var(--c-ink);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere; }
.po-section { border-top:1px solid var(--c-line); }
.po-benefits { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px; }
.po-benefits article { padding:28px;min-width:0;border:1px solid var(--c-line);border-radius:12px;background:var(--c-surface); }
.po-benefits h2 { margin:0 0 12px;font-size:20px;line-height:1.3;font-weight:600;letter-spacing:-.015em; }
.po-benefits p,.po-section p { color:var(--c-body);font-size:15px;line-height:1.65;margin:0; }
.po-section h2 { margin:0 0 16px;font-size:clamp(27px,3vw,36px);line-height:1.15;font-weight:600;letter-spacing:-.025em; }
.po-benefits h2 { font-size:20px; }
.po-requirements { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start; }
.po-requirements>div>p { max-width:440px; }
.po-requirements ul { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:24px; }
.po-requirements li { display:flex;flex-direction:column;gap:8px;padding-bottom:24px;border-bottom:1px solid var(--c-line); }
.po-requirements li:last-child { border:0;padding-bottom:0; }
.po-requirements strong { font-size:16px;font-weight:500; }
.po-requirements li>span { color:var(--c-body);font-size:14px;line-height:1.65; }
.po-text-link { display:inline-flex;align-items:center;min-height:40px;font-size:13px;color:var(--c-ink);text-decoration:underline;text-underline-offset:4px;width:fit-content; }
.po-requirements .po-text-link { margin-top:20px; }
.po-steps { list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px; }
.po-steps li>span { display:block;border-top:1px solid var(--c-line-strong);padding-top:16px;font:12px 'Geist Mono',monospace;color:var(--c-muted); }
.po-steps h3 { font-size:18px;line-height:1.35;font-weight:500;margin:18px 0 12px; }
.po-self-hosted { display:flex;align-items:center;justify-content:space-between;gap:40px; }
.po-self-hosted>div { max-width:680px; }
.po-self-hosted>.btn-secondary { flex:none; }
.po-final { padding-bottom:112px; }
.po-final .po-actions { margin-top:24px; }
.po-application-heading { padding-bottom:40px;display:flex;flex-direction:column;gap:20px; }
.po-application-heading>p { margin:0;max-width:670px;font-size:17px;line-height:1.65;color:var(--c-body); }
.po-application-heading h1:focus { outline:none; }
.po-application-grid { display:grid;grid-template-columns:minmax(0,760px) minmax(220px,1fr);gap:48px;padding-top:0;padding-bottom:112px;align-items:start; }
.po-application-grid>div { min-width:0; }
.po-form { display:flex;flex-direction:column;gap:32px; }
.po-form fieldset { min-width:0;padding:26px;border:1px solid var(--c-line);border-radius:12px;background:var(--c-surface);display:flex;flex-direction:column;gap:24px;margin:0; }
.po-form legend { padding:0 8px;font-size:17px;line-height:1.4;font-weight:600;color:var(--c-ink); }
.po-field-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px; }
.po-field { min-width:0;display:flex;flex-direction:column;gap:8px; }
.po-field-wide { grid-column:1 / -1; }
.po-field>label { display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px;font-weight:500;line-height:1.5; }
.po-field>label>span { color:var(--c-muted);font-size:10px;font-weight:400; }
.po-field input,.po-field textarea { display:block;width:100%;box-sizing:border-box;min-width:0;min-height:44px;border:1px solid var(--c-line-strong);border-radius:8px;background:var(--c-bg);color:var(--c-ink);padding:10px 12px;font:inherit;font-size:14px;line-height:1.5; }
.po-field textarea { min-height:112px;resize:vertical; }
.po-field input::placeholder,.po-field textarea::placeholder { color:var(--c-muted); }
.po-field input:focus-visible,.po-field textarea:focus-visible,.po-primary:focus-visible,.po-secondary:focus-visible,.po-page a:focus-visible,.po-page input[type=checkbox]:focus-visible,.po-page input[type=radio]:focus-visible { outline:2px solid var(--c-accent);outline-offset:3px; }
.po-field input[aria-invalid=true],.po-field textarea[aria-invalid=true] { border-color:var(--c-warn-text); }
.po-hint { margin:0;font-size:12px;line-height:1.65;color:var(--c-muted); }
.po-error { margin:0;font-size:12px;line-height:1.5;color:var(--c-warn-text); }
.po-offering-choices { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.po-offering-choices>label { display:flex;align-items:flex-start;gap:10px;padding:16px;min-width:0;border:1px solid var(--c-line-strong);border-radius:10px;cursor:pointer; }
.po-offering-choices>label.is-selected { border-color:var(--c-ink);background:var(--c-surface-2); }
.po-offering-choices strong { display:block;font-size:13px;font-weight:500;line-height:1.5; }
.po-offering-choices small { display:block;font-size:12px;line-height:1.55;color:var(--c-body);margin-top:6px; }
.po-page input[type=radio],.po-page input[type=checkbox] { appearance:none;-webkit-appearance:none;flex:none;width:16px;height:16px;margin:2px 0 0;box-sizing:border-box;border:1px solid var(--c-line-strong);background:var(--c-bg);cursor:pointer;display:grid;place-content:center; }
.po-page input[type=radio] { border-radius:50%; }
.po-page input[type=radio]:checked { border-color:var(--c-ink);box-shadow:inset 0 0 0 4px var(--c-bg);background:var(--c-ink); }
.po-page input[type=checkbox] { border-radius:4px; }
.po-page input[type=checkbox]:checked { border-color:var(--c-btn-bg);background:var(--c-btn-bg);color:var(--c-btn-fg); }
.po-page input[type=checkbox]:checked::after { content:'✓';font-size:12px;line-height:1; }
.po-capabilities { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px; }
.po-capabilities>label { display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.5;cursor:pointer; }
.po-capabilities input[type=checkbox] { margin-top:0; }
.po-consent { display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.65;color:var(--c-body); }
.po-trap { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.po-form-actions { display:flex;align-items:center;gap:12px;flex-wrap:wrap; }
.po-form-actions>span { font-size:12px;color:var(--c-muted); }
.po-primary,.po-secondary { display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:44px;border-radius:8px;padding:10px 18px;box-sizing:border-box;font:inherit;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none; }
.po-primary { border:1px solid var(--c-btn-bg);background:var(--c-btn-bg);color:var(--c-btn-fg); }
.po-secondary { border:1px solid var(--c-line-strong);background:var(--c-surface);color:var(--c-ink); }
.po-primary:hover:not(:disabled),.po-secondary:hover:not(:disabled) { opacity:.85; }
.po-primary:disabled,.po-secondary:disabled { opacity:.6;cursor:default; }
.po-form-alert { padding:14px 18px;border:1px solid var(--c-warn-text);border-radius:8px;color:var(--c-warn-text);background:var(--c-surface);font-size:13px;line-height:1.6;margin-bottom:24px; }
.po-application-aside { position:sticky;top:88px;min-width:0;padding:24px;border:1px solid var(--c-line);border-radius:12px;background:var(--c-surface); }
.po-application-aside h2 { font-size:15px;line-height:1.4;font-weight:500;margin:0 0 14px; }
.po-application-aside ul { margin:0 0 18px;padding-left:18px;color:var(--c-body);font-size:12px;line-height:1.7;display:grid;gap:7px; }
.po-application-aside p { margin:12px 0;font-size:12px;line-height:1.65;color:var(--c-body); }
.po-application-aside hr { border:0;border-top:1px solid var(--c-line);margin:24px 0; }
.po-review,.po-receipt { padding:28px;border:1px solid var(--c-line);border-radius:12px;background:var(--c-surface); }
.po-review dl { margin:0 0 24px; }
.po-review dl>div { display:grid;grid-template-columns:145px minmax(0,1fr);gap:24px;padding:15px 0;border-bottom:1px solid var(--c-line-soft);font-size:13px;line-height:1.6; }
.po-review dl>div:first-child { padding-top:0; }
.po-review dt { color:var(--c-muted); }
.po-review dd { margin:0;white-space:pre-wrap;overflow-wrap:anywhere; }
.po-review .po-form-actions { margin-top:24px; }
.po-success-icon { width:42px;height:42px;border-radius:50%;border:1px solid var(--c-line-strong);display:flex;align-items:center;justify-content:center;color:var(--c-ok-text);font-size:22px;margin-bottom:24px; }
.po-receipt h2 { font-size:24px;line-height:1.3;font-weight:600;margin:0 0 14px;overflow-wrap:anywhere; }
.po-receipt>p { margin:0;font-size:14px;line-height:1.65;color:var(--c-body);overflow-wrap:anywhere; }
.po-reference { margin:28px 0;display:flex;flex-direction:column;gap:10px;padding:18px;background:var(--c-bg);border:1px solid var(--c-line);border-radius:10px; }
.po-reference>span { color:var(--c-muted);font-size:11px; }
.po-reference>div { display:flex;gap:12px;align-items:center;min-width:0; }
.po-reference code { min-width:0;overflow-wrap:anywhere;font:12px/1.6 'Geist Mono',monospace; }
.po-receipt>.po-hint { margin-top:28px;font-size:12px; }
@media(max-width:1000px){.po-application-grid{gap:28px;grid-template-columns:minmax(0,1fr) 240px}.po-form fieldset{padding:22px}.po-field-grid{grid-template-columns:minmax(0,1fr)}.po-self-hosted{align-items:flex-start;flex-direction:column;gap:24px}.po-requirements{gap:36px}.po-benefits{gap:16px}.po-benefits article{padding:22px}}
@media(max-width:760px){.po-hero,.po-section{padding:60px 20px}.po-hero{padding-top:64px}.po-hero>p{font-size:16px}.po-benefits,.po-steps,.po-requirements{grid-template-columns:minmax(0,1fr)}.po-benefits article{padding:24px}.po-steps{gap:28px;margin-top:28px}.po-application-heading{padding:60px 20px 32px}.po-application-grid{grid-template-columns:minmax(0,1fr);padding:0 20px 72px}.po-application-aside{position:static}.po-application-heading>p{font-size:16px}.po-offering-choices{grid-template-columns:minmax(0,1fr)}.po-review,.po-receipt{padding:22px}.po-review dl>div{grid-template-columns:minmax(0,1fr);gap:5px}.po-form{gap:24px}.po-form fieldset{padding:20px}.po-form-actions>span{flex-basis:100%}.po-reference{padding:14px}}
@media(max-width:380px){.po-actions{align-items:stretch;flex-direction:column}.po-actions>.btn-primary,.po-actions>.btn-secondary{justify-content:center}.po-capabilities{grid-template-columns:minmax(0,1fr)}.po-self-hosted>.btn-secondary{height:auto!important;min-height:44px;white-space:normal}.po-reference>div{gap:6px}}

@media(max-width:760px){.po-field input,.po-field textarea{font-size:16px}}

.po-application-heading h1 { scroll-margin-top:112px; }
