
:root {
  /* Canonical source palette: openclaw.ai at b94b43b. */
  --oc-palette-ink-950: #101012;
  --oc-palette-ink-900: #19191c;
  --oc-palette-ink-850: #202024;
  --oc-palette-ink-50: #ededed;
  --oc-palette-ink-300: #bcbcc4;
  --oc-palette-ink-500: #9a9aa2;

  --oc-palette-paper-50: #ffffff;
  --oc-palette-paper-100: #f6f5f3;
  --oc-palette-paper-200: #eceae6;
  --oc-palette-paper-950: #17171a;
  --oc-palette-paper-700: #46464e;
  --oc-palette-paper-600: #63636c;

  --oc-palette-coral-dark-bright: #f5654a;
  --oc-palette-coral-dark-mid: #e05540;
  --oc-palette-coral-dark-deep: #b23a28;
  --oc-palette-coral-light-bright: #d84a31;
  --oc-palette-coral-light-mid: #c24028;
  --oc-palette-coral-light-deep: #9c3222;

  --oc-palette-sea-dark-bright: #4fc8ae;
  --oc-palette-sea-dark-mid: #2fa48d;
  --oc-palette-sea-light-bright: #14806e;
  --oc-palette-sea-light-mid: #0f6355;

  --oc-space-1: 0.25rem;
  --oc-space-2: 0.5rem;
  --oc-space-3: 0.75rem;
  --oc-space-4: 1rem;
  --oc-space-5: 1.5rem;
  --oc-space-6: 2rem;
  --oc-space-7: 3rem;
  --oc-space-8: 4rem;

  --oc-font-size-xs: 0.75rem;
  --oc-font-size-sm: 0.8125rem;
  --oc-font-size-base: 0.875rem;
  --oc-font-size-md: 0.9375rem;
  --oc-font-size-lg: 1.0625rem;
  --oc-font-size-xl: 1.25rem;
  --oc-font-size-2xl: 1.5rem;
  --oc-font-size-3xl: 2rem;

  --oc-radius-sm: 0.25rem;
  --oc-radius-md: 0.5rem;
  --oc-radius-lg: 0.75rem;
  --oc-radius-xl: 1rem;
  --oc-radius-full: 999px;
  --oc-radius-surface: 0;
  --oc-radius-control: 0;
  --oc-radius-inset: 0;
  --oc-radius-round: var(--oc-radius-full);

  --oc-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.12);
  --oc-shadow-md: 0 8px 24px -6px rgb(0 0 0 / 0.28);
  --oc-shadow-lg: 0 24px 48px -12px rgb(0 0 0 / 0.42);

  --oc-duration-fast: 160ms;
  --oc-duration-ui: 200ms;
  --oc-ease-out: cubic-bezier(0.23, 1, 0.32, 1);

  --oc-content-max: 75rem;
  --oc-content-narrow: 48rem;
}

:root,
html[data-theme="dark"] {
  color-scheme: dark;

  --oc-bg-page: var(--oc-palette-ink-950);
  --oc-bg-surface: var(--oc-palette-ink-900);
  --oc-bg-elevated: var(--oc-palette-ink-850);

  --oc-accent-primary: var(--oc-palette-coral-dark-bright);
  --oc-accent-primary-hover: var(--oc-palette-coral-dark-mid);
  --oc-accent-primary-deep: var(--oc-palette-coral-dark-deep);
  --oc-accent-secondary: var(--oc-palette-sea-dark-bright);
  --oc-accent-secondary-deep: var(--oc-palette-sea-dark-mid);

  --oc-text-primary: var(--oc-palette-ink-50);
  --oc-text-secondary: var(--oc-palette-ink-300);
  --oc-text-muted: var(--oc-palette-ink-500);
  --oc-text-on-accent: var(--oc-palette-ink-950);

  --oc-border-subtle: rgb(154 154 162 / 0.18);
  --oc-border-accent: rgb(245 101 74 / 0.4);

  --oc-surface-card: rgb(25 25 28 / 0.72);
  --oc-surface-card-strong: rgb(25 25 28 / 0.9);
  --oc-surface-overlay: rgb(0 0 0 / 0.3);
  --oc-surface-interactive: rgb(237 237 237 / 0.08);
  --oc-surface-interactive-hover: rgb(237 237 237 / 0.16);
  --oc-surface-accent-soft: rgb(245 101 74 / 0.14);
  --oc-surface-secondary-soft: rgb(79 200 174 / 0.14);
  --oc-chart-line: rgb(237 237 237 / 0.09);
  --oc-selection-bg: rgb(245 101 74 / 0.28);
  --oc-focus-ring: rgb(79 200 174 / 0.72);

  /* Compatibility aliases retained for zero-diff openclaw.ai extraction. */
  --bg-deep: var(--oc-bg-page);
  --bg-surface: var(--oc-bg-surface);
  --bg-elevated: var(--oc-bg-elevated);
  --coral-bright: var(--oc-accent-primary);
  --coral-mid: var(--oc-accent-primary-hover);
  --coral-dark: var(--oc-accent-primary-deep);
  --cyan-bright: var(--oc-accent-secondary);
  --cyan-mid: var(--oc-accent-secondary-deep);
  --cyan-glow: rgb(79 200 174 / 0.35);
  --text-primary: var(--oc-text-primary);
  --text-secondary: var(--oc-text-secondary);
  --text-muted: var(--oc-text-muted);
  --on-accent: var(--oc-text-on-accent);
  --border-subtle: var(--oc-border-subtle);
  --border-accent: var(--oc-border-accent);
  --surface-card: var(--oc-surface-card);
  --surface-card-strong: var(--oc-surface-card-strong);
  --surface-overlay: var(--oc-surface-overlay);
  --surface-interactive: var(--oc-surface-interactive);
  --surface-interactive-hover: var(--oc-surface-interactive-hover);
  --surface-coral-soft: var(--oc-surface-accent-soft);
  --surface-cyan-soft: var(--oc-surface-secondary-soft);
  --surface-inset-highlight: rgb(237 237 237 / 0.05);
  --chart-line: var(--oc-chart-line);
}

html[data-theme="light"] {
  color-scheme: light;

  --oc-bg-page: var(--oc-palette-paper-100);
  --oc-bg-surface: var(--oc-palette-paper-200);
  --oc-bg-elevated: var(--oc-palette-paper-50);

  --oc-accent-primary: var(--oc-palette-coral-light-bright);
  --oc-accent-primary-hover: var(--oc-palette-coral-light-mid);
  --oc-accent-primary-deep: var(--oc-palette-coral-light-deep);
  --oc-accent-secondary: var(--oc-palette-sea-light-bright);
  --oc-accent-secondary-deep: var(--oc-palette-sea-light-mid);

  --oc-text-primary: var(--oc-palette-paper-950);
  --oc-text-secondary: var(--oc-palette-paper-700);
  --oc-text-muted: var(--oc-palette-paper-600);
  --oc-text-on-accent: var(--oc-palette-paper-50);

  --oc-border-subtle: rgb(23 23 26 / 0.14);
  --oc-border-accent: rgb(216 74 49 / 0.42);

  --oc-surface-card: rgb(255 255 255 / 0.8);
  --oc-surface-card-strong: rgb(255 255 255 / 0.95);
  --oc-surface-overlay: rgb(23 23 26 / 0.08);
  --oc-surface-interactive: rgb(23 23 26 / 0.07);
  --oc-surface-interactive-hover: rgb(23 23 26 / 0.14);
  --oc-surface-accent-soft: rgb(216 74 49 / 0.12);
  --oc-surface-secondary-soft: rgb(20 128 110 / 0.13);
  --oc-chart-line: rgb(23 23 26 / 0.12);
  --oc-selection-bg: rgb(216 74 49 / 0.2);
  --oc-focus-ring: rgb(20 128 110 / 0.58);

  --cyan-glow: rgb(20 128 110 / 0.24);
  --surface-inset-highlight: rgb(23 23 26 / 0.05);
}

:root {
  /*
   * Font binaries are intentionally not distributed. Consumers must load
   * licensed fonts themselves or use the documented fallback stacks.
   */
  --oc-font-display: "Switzer", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --oc-font-body: "Switzer", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --oc-font-serif: "Sentient", Georgia, "Times New Roman", serif;
  --oc-font-mono: ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas, monospace;

  --font-display: var(--oc-font-display);
  --font-body: var(--oc-font-body);
  --font-serif: var(--oc-font-serif);
  --font-mono: var(--oc-font-mono);
}


/*
 * Framework-neutral component primitives for OpenClaw surfaces.
 * Consumers own content, routing, and behavior; these classes own the shared
 * visual contract.
 */

.oc-app-surface {
  --oc-component-surface: var(--oc-surface-card);
  --oc-component-surface-strong: var(--oc-surface-card-strong);
  --oc-component-surface-hover: var(--oc-surface-interactive);
  --oc-component-border: var(--oc-border-subtle);
  --oc-component-border-hover: color-mix(
    in srgb,
    var(--oc-text-primary) 28%,
    var(--oc-border-subtle)
  );
  --oc-component-shadow: var(--oc-shadow-sm);
  --oc-component-shadow-hover: var(--oc-shadow-md);

  background: var(--oc-bg-page);
  color: var(--oc-text-primary);
  font-family: var(--oc-font-body);
}

.oc-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--oc-space-3);
  text-align: center;
}

.oc-hero-title {
  max-width: 66rem;
  margin: 0;
  color: var(--oc-accent-primary);
  font-family: var(--oc-font-mono);
  font-size: clamp(2.25rem, 4.25vw, 3.5rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: 0;
  text-wrap: balance;
}

.oc-hero-lede {
  max-width: 42rem;
  margin: 0;
  color: var(--oc-text-secondary);
  font-size: var(--oc-font-size-lg);
  line-height: 1.6;
  text-wrap: pretty;
}

.oc-section {
  width: 100%;
  color: var(--oc-text-primary);
}

.oc-section-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--oc-space-5);
}

.oc-section-heading {
  display: grid;
  gap: var(--oc-space-2);
}

.oc-eyebrow {
  margin: 0;
  color: var(--oc-accent-primary);
  font-family: var(--oc-font-mono);
  font-size: var(--oc-font-size-xs);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: uppercase;
}

.oc-section-title {
  margin: 0;
  color: var(--oc-text-primary);
  font-family: var(--oc-font-display);
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  font-weight: 750;
  line-height: 1.12;
  letter-spacing: 0;
  text-wrap: balance;
}

.oc-section-copy {
  max-width: 60ch;
  margin: 0;
  color: var(--oc-text-secondary);
  font-size: var(--oc-font-size-base);
  line-height: 1.65;
  text-wrap: pretty;
}

.oc-card {
  border: 1px solid var(--oc-component-border);
  border-radius: var(--oc-radius-surface);
  background: var(--oc-component-surface);
  color: var(--oc-text-primary);
  box-shadow: var(--oc-component-shadow);
}

.oc-card-interactive {
  transition:
    background var(--oc-duration-ui) var(--oc-ease-out),
    border-color var(--oc-duration-ui) var(--oc-ease-out),
    box-shadow var(--oc-duration-ui) var(--oc-ease-out),
    transform var(--oc-duration-ui) var(--oc-ease-out);
}

.oc-card-interactive:hover,
.oc-card-interactive:focus-visible {
  border-color: var(--oc-component-border-hover);
  background: var(--oc-component-surface-hover);
  box-shadow: var(--oc-component-shadow-hover);
  outline: none;
  transform: translateY(-1px);
}

.oc-card-interactive:active {
  transform: translateY(0) scale(0.995);
}

.oc-action {
  display: inline-flex;
  min-height: 2.5rem;
  align-items: center;
  justify-content: center;
  gap: var(--oc-space-2);
  padding: var(--oc-space-2) var(--oc-space-4);
  border: 1px solid transparent;
  border-radius: var(--oc-radius-control);
  font: inherit;
  font-size: var(--oc-font-size-base);
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition:
    background var(--oc-duration-fast) var(--oc-ease-out),
    border-color var(--oc-duration-fast) var(--oc-ease-out),
    color var(--oc-duration-fast) var(--oc-ease-out),
    transform var(--oc-duration-fast) var(--oc-ease-out);
}

.oc-action:hover {
  text-decoration: none;
}

.oc-action:focus-visible {
  outline: 2px solid var(--oc-focus-ring);
  outline-offset: 3px;
}

.oc-action:active {
  transform: scale(0.98);
}

.oc-action-primary {
  border-color: var(--oc-accent-primary);
  background: var(--oc-accent-primary);
  color: var(--oc-text-on-accent);
}

.oc-action-primary:hover {
  border-color: var(--oc-accent-primary-hover);
  background: var(--oc-accent-primary-hover);
  color: var(--oc-text-on-accent);
}

.oc-action-secondary {
  border-color: var(--oc-border-accent);
  background: var(--oc-surface-accent-soft);
  color: var(--oc-accent-primary);
}

.oc-action-secondary:hover {
  border-color: var(--oc-accent-primary);
  background: color-mix(in srgb, var(--oc-surface-accent-soft) 72%, var(--oc-accent-primary));
  color: var(--oc-text-primary);
}

.oc-action-ghost {
  border-color: transparent;
  background: transparent;
  color: var(--oc-text-secondary);
}

.oc-action-ghost:hover {
  background: var(--oc-surface-interactive);
  color: var(--oc-text-primary);
}

.oc-action-icon {
  width: 2.5rem;
  padding: 0;
}

.oc-segmented {
  display: inline-flex;
  align-items: center;
  gap: var(--oc-space-1);
  padding: var(--oc-space-1);
  border: 1px solid var(--oc-border-subtle);
  border-radius: var(--oc-radius-control);
  background: var(--oc-surface-card);
}

.oc-segmented-item {
  display: inline-flex;
  min-height: 2rem;
  align-items: center;
  justify-content: center;
  gap: var(--oc-space-2);
  padding: var(--oc-space-1) var(--oc-space-3);
  border: 0;
  border-radius: var(--oc-radius-inset);
  background: transparent;
  color: var(--oc-text-secondary);
  font: inherit;
  font-size: var(--oc-font-size-base);
  font-weight: 650;
  line-height: 1;
  cursor: pointer;
  transition:
    background var(--oc-duration-fast) var(--oc-ease-out),
    color var(--oc-duration-fast) var(--oc-ease-out);
}

.oc-segmented-item:hover {
  color: var(--oc-text-primary);
}

.oc-segmented-item[aria-selected="true"],
.oc-segmented-item[aria-pressed="true"],
.oc-segmented-item.is-active {
  background: var(--oc-surface-interactive-hover);
  color: var(--oc-text-primary);
}

.oc-segmented-item:focus-visible {
  outline: 2px solid var(--oc-focus-ring);
  outline-offset: 2px;
}

.oc-pill {
  display: inline-flex;
  min-height: 1.75rem;
  align-items: center;
  gap: var(--oc-space-2);
  padding: var(--oc-space-1) var(--oc-space-3);
  border: 1px solid var(--oc-border-subtle);
  border-radius: var(--oc-radius-control);
  background: var(--oc-surface-card);
  color: var(--oc-text-secondary);
  font-size: var(--oc-font-size-xs);
  font-weight: 650;
  line-height: 1;
}

@media (prefers-reduced-motion: reduce) {
  .oc-card-interactive {
    transition: none;
  }

  .oc-card-interactive:hover,
  .oc-card-interactive:focus-visible,
  .oc-card-interactive:active {
    transform: none;
  }
}

@media (max-width: 42rem) {
  .oc-section-header {
    align-items: start;
    flex-direction: column;
  }

  .oc-hero-title {
    font-size: clamp(2rem, 11vw, 2.75rem);
  }
}

:root {
  --oc-status-success-bg: rgb(34 197 94 / 0.12);
  --oc-status-success-fg: #22c55e;
  --oc-status-warning-bg: rgb(251 191 36 / 0.12);
  --oc-status-warning-fg: #fbbf24;
  --oc-status-error-bg: rgb(239 68 68 / 0.12);
  --oc-status-error-fg: #ef4444;
  --oc-status-info-bg: rgb(59 130 246 / 0.14);
  --oc-status-info-fg: #60a5fa;

  --oc-input-bg: var(--oc-bg-elevated);
  --oc-input-border: var(--oc-border-subtle);
  --oc-input-placeholder: color-mix(in srgb, var(--oc-text-muted) 70%, transparent);
  --oc-input-focus-border: color-mix(in srgb, var(--oc-accent-primary) 58%, transparent);
  --oc-input-focus-ring: color-mix(in srgb, var(--oc-accent-primary) 22%, transparent);

  --oc-diff-added: #22c55e;
  --oc-diff-added-strong: #16a34a;
  --oc-diff-removed: #f87171;
  --oc-diff-removed-strong: #ef4444;
}

html[data-theme="light"],
[data-theme-family="claw"][data-theme-resolved="light"] {
  --oc-status-success-bg: rgb(34 197 94 / 0.1);
  --oc-status-success-fg: #16a34a;
  --oc-status-warning-bg: rgb(245 158 11 / 0.1);
  --oc-status-warning-fg: #d97706;
  --oc-status-error-bg: rgb(239 68 68 / 0.1);
  --oc-status-error-fg: #dc2626;
  --oc-status-info-bg: rgb(37 99 235 / 0.1);
  --oc-status-info-fg: #2563eb;

  --oc-diff-added: #16a34a;
  --oc-diff-added-strong: #15803d;
  --oc-diff-removed: #e57373;
  --oc-diff-removed-strong: #dc2626;
}

@media (prefers-color-scheme: light) {
  [data-theme-family="claw"][data-theme-mode="system"] {
    --oc-status-success-bg: rgb(34 197 94 / 0.1);
    --oc-status-success-fg: #16a34a;
    --oc-status-warning-bg: rgb(245 158 11 / 0.1);
    --oc-status-warning-fg: #d97706;
    --oc-status-error-bg: rgb(239 68 68 / 0.1);
    --oc-status-error-fg: #dc2626;
    --oc-status-info-bg: rgb(37 99 235 / 0.1);
    --oc-status-info-fg: #2563eb;
    --oc-diff-added: #16a34a;
    --oc-diff-added-strong: #15803d;
    --oc-diff-removed: #e57373;
    --oc-diff-removed-strong: #dc2626;
  }
}


:root{--bg:var(--oc-bg-page);--paper:var(--oc-bg-surface);--paper-2:var(--oc-bg-elevated);--ink:var(--oc-text-primary);--text:var(--oc-text-secondary);--muted:var(--oc-text-muted);--line:var(--oc-border-subtle);--line-strong:color-mix(in srgb,var(--oc-text-primary) 18%,var(--oc-border-subtle));--soft:var(--oc-surface-accent-soft);--brand:var(--oc-accent-primary);--brand-2:var(--oc-accent-primary-deep);--accent-2:var(--oc-accent-secondary);--on-brand:var(--oc-text-on-accent);--code:#141416;--code-inline:#232328;--code-block:#0e0e10;--code-text:#e9e9ee;--code-border:#2a2a30;--code-shadow:var(--oc-shadow-lg);--tok-comment:#7e7e88;--tok-command:#ff8f78;--tok-option:#79c0ff;--tok-string:#8fd4bd;--tok-literal:#d2a8ff;--tok-key:#f2a37c;--tok-number:#79c0ff;--tok-punct:#8b949e;--shadow:var(--oc-shadow-lg);--tooltip-bg:var(--oc-text-primary);--tooltip-text:var(--oc-bg-page);--tooltip-border:var(--oc-text-primary);--sticky-header-h:121px;color-scheme:dark}
:root[data-theme="light"]{--paper:var(--oc-bg-elevated);--paper-2:color-mix(in srgb,var(--oc-bg-surface) 60%,var(--oc-bg-page));--code:#f2f0ec;--code-inline:#ecebe6;--code-block:#fffefc;--code-text:#26262c;--code-border:#dbd8d1;--code-shadow:none;--tok-comment:#6d6d77;--tok-command:#bb3f28;--tok-option:#2365a8;--tok-string:#0f6355;--tok-literal:#7b3fb4;--tok-key:#a63c22;--tok-number:#1a5fb4;--tok-punct:#75707a;color-scheme:light}
.oc-table-wrap{max-width:100%;overflow:auto;margin:22px 0 28px;border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);background:color-mix(in srgb,var(--paper) 72%,transparent)}.doc .oc-table{margin:0;width:100%;min-width:560px;border-collapse:separate;border-spacing:0;font-size:var(--oc-font-size-sm)}.doc .oc-table th,.doc .oc-table td{border:0;border-bottom:1px solid var(--line);padding:10px var(--oc-space-3);text-align:left;vertical-align:top;overflow-wrap:anywhere;word-break:break-word}.doc .oc-table th{position:sticky;top:0;background:color-mix(in srgb,var(--paper-2) 86%,var(--soft) 14%);color:var(--ink);font:780 var(--oc-font-size-xs)/1.35 var(--oc-font-body)}.doc .oc-table tr:last-child td{border-bottom:0}.doc .oc-table td:first-child{color:var(--ink);font-weight:720}.oc-lead{margin:18px 0 28px;color:var(--text);font:500 var(--oc-font-size-lg)/1.72 var(--oc-font-body)}.oc-lead p{margin:0}.oc-pullquote{margin:30px 0;padding:3px 0 3px var(--oc-space-5);border-left:3px solid var(--brand);color:var(--ink)}.oc-pullquote blockquote{margin:0;padding:0;border:0;font:400 21px/1.55 var(--oc-font-serif);font-style:italic}.oc-pullquote figcaption{margin-top:10px;color:var(--muted);font-size:var(--oc-font-size-xs)}.oc-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:var(--oc-space-3);margin:var(--oc-space-5) 0}.oc-stat{border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);background:color-mix(in srgb,var(--paper) 72%,transparent);padding:15px var(--oc-space-4)}.oc-stat strong{display:block;color:var(--ink);font:780 var(--oc-font-size-2xl)/1 var(--oc-font-body);margin:0 0 var(--oc-space-2)}.oc-stat>span{display:block;color:var(--muted);font-size:var(--oc-font-size-xs);line-height:1.35}.oc-stat-delta{display:inline-block!important;width:max-content;margin-top:10px;padding:2px 7px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line-strong));border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--brand) 10%,var(--paper));color:var(--brand)!important}.oc-stat div p{margin:.8em 0 0}.oc-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;margin:var(--oc-space-6) 0;padding:22px;border:1px solid color-mix(in srgb,var(--brand) 34%,var(--line-strong));border-radius:var(--oc-radius-surface);background:linear-gradient(135deg,color-mix(in srgb,var(--paper) 82%,var(--brand) 18%),color-mix(in srgb,var(--paper-2) 92%,transparent));box-shadow:var(--shadow)}.oc-cta-copy>span{display:block;color:var(--brand);font:780 var(--oc-font-size-xs)/1.2 var(--oc-font-body);margin:0 0 7px}.oc-cta-copy strong{display:block;color:var(--ink);font:780 19px/1.28 var(--oc-font-body);margin:0 0 var(--oc-space-2)}.oc-cta-copy p{margin:0;color:var(--text)}.oc-cta-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.oc-cta-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:10px 20px;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);font:600 var(--oc-font-size-sm)/1 var(--oc-font-mono);transition:background var(--oc-duration-fast) var(--oc-ease-out),border-color var(--oc-duration-fast) var(--oc-ease-out),color var(--oc-duration-fast) var(--oc-ease-out),filter var(--oc-duration-fast) var(--oc-ease-out)}.oc-cta-link-primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.oc-cta-link-secondary{background:color-mix(in srgb,var(--paper) 78%,transparent);color:var(--ink)}.oc-cta-link:after{content:"→";margin-left:var(--oc-space-2)}.oc-cta-link:hover{filter:brightness(1.04)}.oc-cta-link-primary:hover{background:var(--oc-accent-primary-hover);border-color:var(--oc-accent-primary-hover);color:var(--on-brand)}.oc-cta-link-secondary:hover{background:color-mix(in srgb,var(--soft) 62%,var(--paper) 38%);border-color:color-mix(in srgb,var(--brand) 44%,var(--line-strong));color:var(--ink)}.oc-cta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:14px;margin:var(--oc-space-5) 0}.oc-cta-card{display:block;min-height:160px;border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);background:color-mix(in srgb,var(--paper) 78%,transparent);padding:18px 20px;color:var(--text);transition:border-color var(--oc-duration-fast) var(--oc-ease-out),background var(--oc-duration-fast) var(--oc-ease-out)}.oc-cta-card:hover,.oc-cta-card:focus-visible{border-color:var(--brand);background:color-mix(in srgb,var(--soft) 38%,transparent);outline:0}.oc-cta-card .oc-card-icon{margin-bottom:14px}.oc-cta-card strong{display:block;color:var(--ink);font:760 16px/1.3 var(--oc-font-body);margin:0 0 var(--oc-space-1)}.oc-cta-kicker{display:block;color:var(--brand);font:760 var(--oc-font-size-xs)/1.35 var(--oc-font-body);margin:0 0 9px}.oc-cta-card p{margin:0 0 14px;color:var(--muted)}.oc-cta-card .oc-cta-actions{margin-top:var(--oc-space-4)}.oc-chart{margin:28px 0;padding:var(--oc-space-4);border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);background:color-mix(in srgb,var(--paper) 76%,transparent)}.oc-chart figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin:0 0 var(--oc-space-4)}.oc-chart figcaption strong{color:var(--ink);font:780 var(--oc-font-size-md)/1.25 var(--oc-font-body)}.oc-chart figcaption span{color:var(--muted);font-size:var(--oc-font-size-xs)}.oc-chart-bars{display:grid;gap:10px}.oc-chart-row{display:grid;grid-template-columns:minmax(86px,150px) minmax(120px,1fr) auto;gap:10px;align-items:center}.oc-chart-row>span{color:var(--text);font-size:var(--oc-font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-chart-row strong{color:var(--ink);font:760 var(--oc-font-size-xs)/1 var(--oc-font-body)}.oc-chart-track{height:10px;border-radius:var(--oc-radius-inset);background:color-mix(in srgb,var(--line-strong) 62%,transparent);overflow:hidden}.oc-chart-track i{display:block;width:var(--oc-chart-value);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand-2),var(--brand))}.oc-chart-line-wrap{display:grid;gap:10px}.oc-chart-line-svg{display:block;width:100%;height:auto;overflow:visible}.oc-chart-line-svg polyline{fill:none;stroke:var(--brand);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.oc-chart-line-svg circle{fill:var(--paper);stroke:var(--brand);stroke-width:3}.oc-chart-gridline{stroke:var(--line-strong);stroke-width:1}.oc-chart-axis{display:flex;justify-content:space-between;gap:var(--oc-space-2);color:var(--muted);font-size:11px}.oc-chart-axis span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-chart-data{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}@media(max-width:820px){.oc-cta{grid-template-columns:1fr}.oc-chart-row{grid-template-columns:minmax(74px,110px) minmax(90px,1fr) auto}.doc .oc-table{min-width:0;table-layout:fixed}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:120px}body{margin:0;display:flex;flex-direction:column;min-height:100vh;background:var(--bg);color:var(--text);font:var(--oc-font-size-md)/1.7 var(--oc-font-body);-webkit-font-smoothing:antialiased}::selection{background:var(--brand);color:var(--on-brand)}a{color:inherit;text-decoration:none}a:hover{color:var(--ink)}img{max-width:100%;height:auto}button,input,select{font:inherit}.hidden{display:none!important}.oc-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}:root[data-theme="dark"] .dark\:hidden{display:none!important}:root[data-theme="dark"] .dark\:block{display:block!important}:root[data-theme="light"] .dark\:block{display:none!important}
.site-header{position:sticky;top:0;z-index:70;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.header-row,.tabs{max-width:1780px;margin:0 auto}.doc-shell{width:100%;max-width:1780px;margin:0 auto;flex:1 0 auto}.header-row{height:62px;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,430px) minmax(0,1fr);gap:var(--oc-space-5);align-items:center;padding:0 56px}.header-left{display:flex;align-items:center;gap:var(--oc-space-4);min-width:0}.brand{display:inline-flex;align-items:center;gap:9px;flex:0 0 auto;color:var(--ink);font-weight:600;font-size:14.5px;letter-spacing:.02em}.brand img{width:22px;height:22px}.brand-name{color:var(--ink)}.brand-tag{color:var(--muted);font:600 10px/1 var(--oc-font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line-strong);padding:3px 6px;margin-left:2px}.language-picker{position:relative;min-width:0}.language-native{display:none}.language-trigger{height:36px;border:1px solid transparent;border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper) 62%,transparent);color:var(--ink);display:flex;align-items:center;gap:9px;max-width:190px;padding:0 var(--oc-space-3) 0 11px;cursor:pointer;transition:background var(--oc-duration-fast) var(--oc-ease-out),border-color var(--oc-duration-fast) var(--oc-ease-out),box-shadow var(--oc-duration-fast) var(--oc-ease-out),color var(--oc-duration-fast) var(--oc-ease-out)}.language-trigger:hover,.language-picker.open .language-trigger{background:var(--paper);border-color:var(--line-strong);color:var(--ink)}.language-trigger:focus-visible{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--oc-focus-ring),var(--oc-shadow-md)}.language-trigger:hover .language-chevron{color:var(--brand)}.locale-flag{width:21px;height:21px;border-radius:var(--oc-radius-round);display:inline-grid;place-items:center;font-size:var(--oc-font-size-lg);line-height:1;overflow:hidden;flex:0 0 auto}.language-current{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--oc-font-size-base);color:var(--ink)}.language-chevron{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--muted);line-height:1;transition:transform var(--oc-duration-fast) var(--oc-ease-out),color var(--oc-duration-fast) var(--oc-ease-out)}.language-chevron .icon{width:16px;height:16px}.language-picker.open .language-chevron{transform:rotate(180deg);color:var(--brand)}.language-menu{position:absolute;top:calc(100% + 10px);left:auto;right:0;width:min(340px,calc(100vw - 32px));max-height:min(72vh,720px);overflow:auto;display:none;z-index:80;padding:10px;background:color-mix(in srgb,var(--bg) 92%,var(--oc-bg-page) 8%);border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);box-shadow:var(--oc-shadow-lg)}.language-picker.open .language-menu{display:block}.language-option{display:grid;grid-template-columns:30px minmax(0,1fr) 22px;align-items:center;gap:var(--oc-space-3);padding:var(--oc-space-3) var(--oc-space-4);border-radius:var(--oc-radius-control);color:var(--ink);font-weight:800;font-size:18px;line-height:1.2}.language-option:hover{background:color-mix(in srgb,var(--paper-2) 84%,transparent);color:var(--ink)}.language-option.active{color:var(--brand)}.language-option.active:hover{background:color-mix(in srgb,var(--soft) 84%,transparent)}.language-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.language-check{opacity:0;color:var(--brand);font-size:19px;text-align:right}.language-option.active .language-check{opacity:1}.icon{display:block;width:18px;height:18px;min-width:18px;max-width:18px;flex:0 0 18px}.search-button{height:38px;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper) 86%,transparent);color:var(--muted);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 9px 0 14px;cursor:pointer;text-align:left}.search-button:hover{background:var(--paper);border-color:var(--line-strong);color:var(--text)}.search-button:hover .search-shortcut{border-color:var(--line-strong);color:var(--ink);background:var(--paper-2)}.search-label{min-width:0;font-size:var(--oc-font-size-base);color:var(--muted)}.search-shortcut{display:inline-grid;place-items:center;justify-self:end;min-width:44px;height:28px;padding:0 9px;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper-2) 82%,transparent);color:var(--text);font:760 var(--oc-font-size-sm)/1 var(--oc-font-mono)}.header-links{display:flex;align-items:center;justify-content:flex-end;gap:22px;color:var(--muted);font-size:var(--oc-font-size-base);white-space:nowrap}.header-links>a{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-weight:650}.header-links>a:hover{color:var(--ink)}.header-links>a .icon{width:16px;height:16px;color:var(--ink)}.header-links .top-icon-link{padding:2px}.header-links .top-icon-link .icon{width:18px;height:18px;min-width:18px;max-width:18px;color:currentColor}.header-links button{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:var(--oc-space-1)}.header-links button:hover{color:var(--ink)}.theme-toggle{display:inline-grid;place-items:center;width:28px;height:28px}.theme-toggle .icon{width:18px;height:18px}.nav-toggle{display:none;flex-direction:column;gap:var(--oc-space-1);border:0;background:none;color:var(--muted);cursor:pointer;padding:5px 2px;transition:color var(--oc-duration-fast) var(--oc-ease-out)}.nav-toggle:hover{color:var(--ink)}.nav-toggle span{display:block;width:18px;height:1.6px;background:currentColor;border-radius:var(--oc-radius-inset);transition:transform var(--oc-duration-ui) var(--oc-ease-out),opacity var(--oc-duration-ui) var(--oc-ease-out)}body.nav-open .nav-toggle span:nth-child(1){transform:translateY(5.6px) rotate(45deg)}body.nav-open .nav-toggle span:nth-child(2){opacity:0}body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-5.6px) rotate(-45deg)}.sidebar-close{display:none}
.search-shortcut{display:inline-flex;align-items:center;justify-content:flex-end;gap:2px;color:var(--muted);font:760 var(--oc-font-size-md)/1 var(--oc-font-mono);background:transparent;border:0;border-radius:var(--oc-radius-control);box-shadow:none;min-width:0;height:15px;padding:0}.search-shortcut span{display:block;line-height:15px}.search-shortcut .icon{width:15px;height:15px;min-width:15px;max-width:15px;stroke-width:2.2}.search-button:hover .search-shortcut{background:transparent;border-color:transparent;color:var(--ink)}
.theme-toggle-icon{display:none;place-items:center}:root[data-theme="dark"] .theme-toggle-icon-dark,:root[data-theme="light"] .theme-toggle-icon-light{display:grid}
.tabs{position:relative;display:flex;align-items:center;gap:var(--oc-space-6);min-height:58px;padding:0 56px;overflow-x:auto;white-space:nowrap}.tab-link{position:relative;color:var(--muted);font:700 var(--oc-font-size-sm)/1.4 var(--oc-font-mono);padding:19px 0 20px;transition:color var(--oc-duration-fast) var(--oc-ease-out)}.tab-link:hover{color:var(--ink)}.tab-link.active{color:var(--ink)}.tab-underline{position:absolute;left:0;bottom:0;height:2px;width:var(--tu-w,0);transform:translate3d(var(--tu-x,0),0,0);background:var(--brand);border-radius:var(--oc-radius-control);pointer-events:none;opacity:0;will-change:transform,width;transition:transform var(--oc-duration-ui) var(--oc-ease-out),width var(--oc-duration-ui) var(--oc-ease-out),opacity var(--oc-duration-fast) var(--oc-ease-out)}.tabs.is-ready .tab-underline{opacity:1}.tab-underline.no-transition{transition:none}@media(prefers-reduced-motion:reduce){.tab-underline{transition:opacity var(--oc-duration-fast) var(--oc-ease-out)}}
.doc-shell{display:grid;grid-template-columns:340px minmax(0,1fr);gap:72px;padding:38px 56px 90px}.sidebar{position:sticky;top:148px;align-self:start;max-height:calc(100vh - 172px);overflow:auto;padding:0 6px var(--oc-space-8) 0;scrollbar-gutter:stable;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 42%,transparent) transparent}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 34%,transparent);background-clip:content-box;border:2px solid transparent;border-radius:var(--oc-radius-round)}.sidebar:hover::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--muted) 56%,transparent)}.sidebar.has-overflow{--sidebar-fade-top:0px;--sidebar-fade-bottom:0px;mask-image:linear-gradient(to bottom,transparent 0,#000 var(--sidebar-fade-top),#000 calc(100% - var(--sidebar-fade-bottom)),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--sidebar-fade-top),#000 calc(100% - var(--sidebar-fade-bottom)),transparent 100%)}.sidebar.can-scroll-up{--sidebar-fade-top:18px}.sidebar.can-scroll-down{--sidebar-fade-bottom:30px}.nav-section{margin:0 0 33px}.nav-section h2{font:750 11px/1.2 var(--oc-font-mono);color:var(--muted);letter-spacing:.09em;text-transform:uppercase;margin:0 0 14px}.nav-link{display:block;color:var(--muted);border-left:2px solid transparent;padding:7px 14px;margin:2px 0;font-size:var(--oc-font-size-base);line-height:1.48}.nav-link:hover{color:var(--ink);background:color-mix(in srgb,var(--paper) 68%,transparent)}.nav-link.active{border-left-color:var(--brand);color:var(--brand);font-weight:650}.nav-nested{padding-left:10px;border-left:1px solid var(--line);margin:9px 0 0 6px}.nav-nested h2{font-size:var(--oc-font-size-xs);color:var(--muted);margin:0 0 5px;text-transform:none}
.main{min-width:0;display:grid;grid-template-columns:minmax(0,760px) 250px;gap:76px;align-items:start}.article{min-width:0}.article-header{margin:0 0 36px}.article-kicker{color:var(--brand);font:780 var(--oc-font-size-xs)/1.35 var(--oc-font-mono);letter-spacing:.09em;text-transform:uppercase;margin:0 0 10px}.article h1{font:700 clamp(34px,3.8vw,44px)/1.08 var(--oc-font-display);letter-spacing:-.02em;color:var(--ink);margin:0}.doc{font-size:var(--oc-font-size-md)}.doc>h1:first-child{display:none}.doc h2{font:750 var(--oc-font-size-2xl)/1.22 var(--oc-font-body);letter-spacing:-.015em;color:var(--ink);margin:3.0em 0 .65em}.doc h3{font:700 var(--oc-font-size-lg)/1.28 var(--oc-font-body);color:var(--ink);margin:1.8em 0 .45em}.doc h4{font:700 var(--oc-font-size-base)/1.35 var(--oc-font-body);color:var(--ink);margin:1.4em 0 .35em}.doc [tabindex="-1"]:focus{outline:0}.doc p,.doc ul,.doc ol,.doc blockquote,.doc table{margin-top:0;margin-bottom:1.12em}.doc ul,.doc ol{padding-left:1.35rem}.doc li{margin:.24em 0}.doc strong{color:var(--ink);font-weight:800}.doc :where(p,li,td,blockquote) a:not([class]){color:var(--brand);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.doc :where(p,li,td,blockquote) a:not([class]):hover{color:var(--ink)}.doc :where(p,li,td,blockquote){overflow-wrap:anywhere;word-break:break-word}.doc code{background:var(--code-inline);border:1px solid var(--code-border);border-radius:var(--oc-radius-inset);padding:.08em .36em;font-size:.86em;color:var(--code-text);box-decoration-break:clone}.doc kbd{display:inline-grid;place-items:center;min-width:1.65em;height:1.65em;margin:0 .08em;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:var(--oc-radius-control);background:var(--paper);color:var(--ink);font:760 .78em/1 var(--oc-font-mono)}.doc pre{position:relative;overflow:auto;background:var(--code-block);color:var(--code-text);border-radius:var(--oc-radius-inset);padding:var(--oc-space-3) 14px;border:1px solid var(--code-border);box-shadow:var(--code-shadow)}.doc pre code{background:transparent;border:0;color:inherit;padding:0}.doc pre .tok-comment,.doc pre .hljs-comment,.doc pre .hljs-quote{color:var(--tok-comment)}.doc pre .tok-command,.doc pre .hljs-title,.doc pre .hljs-section,.doc pre .hljs-selector-tag{color:var(--tok-command);font-weight:750}.doc pre .tok-option,.doc pre .tok-keyword,.doc pre .hljs-keyword,.doc pre .hljs-built_in,.doc pre .hljs-type{color:var(--tok-option)}.doc pre .tok-string,.doc pre .hljs-string,.doc pre .hljs-regexp{color:var(--tok-string)}.doc pre .tok-var,.doc pre .tok-literal,.doc pre .hljs-variable,.doc pre .hljs-template-variable,.doc pre .hljs-symbol{color:var(--tok-literal)}.doc pre .tok-key,.doc pre .hljs-attr,.doc pre .hljs-attribute,.doc pre .hljs-name{color:var(--tok-key)}.doc pre .tok-number,.doc pre .hljs-number,.doc pre .hljs-literal{color:var(--tok-number)}.doc pre .tok-punct,.doc pre .hljs-punctuation,.doc pre .hljs-meta{color:var(--tok-punct)}.doc pre .hljs-deletion{color:#fca5a5}.doc pre .hljs-addition{color:#7dd3a8}.doc blockquote{border-left:3px solid var(--line-strong);padding-left:24px;color:var(--text);font-family:var(--oc-font-serif);font-style:italic}.doc table{width:100%;border-collapse:collapse;font-size:var(--oc-font-size-sm)}.doc th,.doc td{border-bottom:1px solid var(--line);padding:9px;text-align:left;vertical-align:top}.doc th{color:var(--ink);background:var(--paper);font-weight:760}.doc p[align="center"]{text-align:center}.doc p[align="center"] img{margin:0 auto}.heading-anchor{position:relative;display:inline-grid;place-items:center;width:24px;height:24px;margin-left:7px;padding:0;border:1px solid transparent;border-radius:var(--oc-radius-control);background:transparent;color:var(--muted);vertical-align:-1px;opacity:0;cursor:pointer;transition:opacity var(--oc-duration-fast) var(--oc-ease-out),background var(--oc-duration-fast) var(--oc-ease-out),border-color var(--oc-duration-fast) var(--oc-ease-out),color var(--oc-duration-fast) var(--oc-ease-out)}.doc :is(h1,h2,h3,h4,h5,h6):hover .heading-anchor,.heading-anchor:focus-visible,.heading-anchor[data-copy-state]{opacity:1}.heading-anchor:hover,.heading-anchor:focus-visible{border-color:color-mix(in srgb,var(--brand) 34%,var(--line-strong));background:color-mix(in srgb,var(--soft) 46%,transparent);color:var(--ink);outline:0}.heading-anchor[data-copy-state="copied"]{color:var(--brand)}.heading-anchor[data-copy-state="failed"]{color:var(--oc-status-error-fg)}.heading-anchor .heading-anchor-icon{grid-area:1/1;display:block;width:15px;height:15px;stroke-width:2.15}.heading-anchor .heading-anchor-check{display:none}.heading-anchor[data-copy-state="copied"] .heading-anchor-link,.heading-anchor[data-copy-state="failed"] .heading-anchor-link{display:none}.heading-anchor[data-copy-state="copied"] .heading-anchor-check{display:block}.heading-anchor[data-copy-state="failed"]:after{content:"!";grid-area:1/1;font:900 var(--oc-font-size-sm)/1 var(--oc-font-body)}
.doc code{overflow-wrap:anywhere;word-break:break-word}.doc pre{max-width:100%}
.toc{position:sticky;top:148px;align-self:start;max-height:calc(100vh - 172px);overflow:auto;color:var(--muted);font-size:var(--oc-font-size-base)}.toc h2{display:flex;align-items:center;gap:7px;font:700 11px/1.2 var(--oc-font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}.toc h2:before{content:"≡";font-size:var(--oc-font-size-base);color:var(--text)}.toc summary{display:none}.toc a{display:block;color:var(--muted);line-height:1.42;padding:7px 0}.toc a:hover{color:var(--ink)}.toc a.active{color:var(--brand);font-weight:750}.toc-l3{padding-left:12px!important}
.oc-card-grid,.oc-card-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:28px 0;padding:1px}.oc-card-grid.oc-card-cols-1{grid-template-columns:1fr}.oc-card-grid.oc-card-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.oc-card-grid.oc-card-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.oc-card{display:block;min-height:136px;background:var(--bg);box-shadow:0 0 0 1px var(--line-strong);padding:var(--oc-space-5);color:var(--text);transition:background var(--oc-duration-fast) var(--oc-ease-out)}.oc-card:hover{background:var(--paper);color:var(--text)}.oc-card:focus-visible{background:var(--paper);color:var(--text);outline:2px solid var(--brand);outline-offset:-2px}.oc-card strong{display:block;color:var(--ink);font:750 16px/1.3 var(--oc-font-body);margin:18px 0 var(--oc-space-2)}.oc-card p{margin:0;color:var(--muted);line-height:1.55}.oc-card-icon{display:block;width:24px;height:24px;color:var(--brand);stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.oc-card>.oc-card-icon,.oc-cta-card>.oc-card-icon{width:26px;height:26px}
.doc{container-type:inline-size}.oc-card-grid,.oc-card-group{--oc-card-columns:2;display:grid;grid-template-columns:repeat(var(--oc-card-columns),minmax(0,1fr));gap:1px;margin:28px 0;padding:1px}.oc-card-grid.oc-card-cols-1,.oc-card-group.oc-card-cols-1{--oc-card-columns:1}.oc-card-grid.oc-card-cols-2,.oc-card-group.oc-card-cols-2{--oc-card-columns:2}.oc-card-grid.oc-card-cols-3,.oc-card-group.oc-card-cols-3{--oc-card-columns:3}.oc-card-grid.oc-card-cols-4,.oc-card-group.oc-card-cols-4{--oc-card-columns:4}@container (max-width:720px){.oc-card-grid.oc-card-cols-4,.oc-card-group.oc-card-cols-4{--oc-card-columns:2}}@container (max-width:620px){.oc-card-grid.oc-card-cols-3,.oc-card-group.oc-card-cols-3{--oc-card-columns:2}}@container (max-width:520px){.oc-card-grid,.oc-card-group{--oc-card-columns:1}}
.oc-card-grid.oc-card-cols-1,.oc-card-group.oc-card-cols-1,.oc-card-grid.oc-card-cols-2,.oc-card-group.oc-card-cols-2,.oc-card-grid.oc-card-cols-3,.oc-card-group.oc-card-cols-3,.oc-card-grid.oc-card-cols-4,.oc-card-group.oc-card-cols-4{grid-template-columns:repeat(var(--oc-card-columns),minmax(0,1fr))}
.oc-steps{counter-reset:step;list-style:none;padding-left:0!important;margin:28px 0 var(--oc-space-6) var(--oc-space-5)}.oc-step{counter-increment:step;border-left:2px solid var(--line);padding:0 0 var(--oc-space-5) 34px;position:relative}.oc-step:last-child{padding-bottom:0;border-image:linear-gradient(to bottom,var(--line) 0%,color-mix(in srgb,var(--line) 52%,transparent) 44%,transparent 92%) 1}.oc-step:before{content:counter(step);position:absolute;left:-13px;top:0;width:24px;height:24px;border-radius:var(--oc-radius-round);background:color-mix(in srgb,var(--line-strong) 78%,var(--paper) 22%);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-strong);display:grid;place-items:center;font-size:var(--oc-font-size-xs);font-weight:800}.oc-step h3{margin-top:0}.oc-step>p:first-of-type{margin-top:.2em}.oc-step .oc-code{max-width:100%;margin:14px 0 18px}.oc-step .oc-code:last-child{margin-bottom:0}.oc-callout{--callout-accent:var(--brand);--callout-surface:color-mix(in srgb,var(--paper) 86%,var(--callout-accent) 14%);position:relative;border:1px solid color-mix(in srgb,var(--line-strong) 74%,var(--callout-accent) 26%);border-left:3px solid var(--callout-accent);background:var(--callout-surface);border-radius:var(--oc-radius-surface);padding:14px var(--oc-space-4) 14px 42px;margin:20px 0;color:var(--text)}.oc-callout strong{display:block;color:var(--ink);font:760 var(--oc-font-size-base)/1.3 var(--oc-font-body);margin:0 0 var(--oc-space-1)}.oc-callout strong:before{content:"i";position:absolute;left:15px;top:15px;width:17px;height:17px;border:1px solid var(--callout-accent);border-radius:var(--oc-radius-round);display:grid;place-items:center;color:var(--callout-accent);font:800 11px/1 var(--oc-font-body)}.oc-callout p:last-child,.oc-callout ul:last-child,.oc-callout ol:last-child{margin-bottom:0}.oc-callout-tip{--callout-accent:var(--oc-status-success-fg)}.oc-callout-tip strong:before{content:"?"}.oc-callout-info,.oc-callout-note{--callout-accent:var(--oc-status-info-fg)}.oc-callout-warning{--callout-accent:var(--oc-status-warning-fg)}.oc-callout-warning strong:before{content:"!"}.oc-callout-check{--callout-accent:var(--oc-status-success-fg)}.oc-callout-check strong:before{content:"✓"}.oc-callout-say{--callout-accent:#c084fc}.oc-callout-say strong:before{content:">"}.oc-code{margin:18px 0;border:1px solid var(--code-border);border-radius:var(--oc-radius-surface);background:var(--code-block);box-shadow:var(--code-shadow);overflow:hidden}.oc-code figcaption{display:flex;align-items:center;min-height:34px;padding:6px var(--oc-space-2) 6px var(--oc-space-3);border-bottom:1px solid var(--code-border);background:color-mix(in srgb,var(--paper-2) 42%,transparent);color:var(--muted);font:760 var(--oc-font-size-xs)/1 var(--oc-font-body)}.oc-code pre{margin:0;border:0;border-radius:var(--oc-radius-inset);box-shadow:none;background:transparent}.oc-tabs,.oc-code-group{border:1px solid var(--line-strong);background:color-mix(in srgb,var(--paper) 78%,transparent);border-radius:var(--oc-radius-surface);margin:20px 0 28px;overflow:hidden}.oc-code-tabs{display:flex;gap:2px;padding:6px 7px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 74%,transparent)}.oc-code-tab{border:0;border-radius:var(--oc-radius-control);background:transparent;color:var(--muted);padding:6px 9px;font:760 var(--oc-font-size-xs)/1 var(--oc-font-body);cursor:pointer}.oc-code-tab:hover{color:var(--ink);background:color-mix(in srgb,var(--soft) 52%,transparent)}.oc-code-tab.active{color:var(--ink);background:var(--soft)}.oc-code-group .oc-code{display:none;margin:0;border:0;border-radius:var(--oc-radius-surface);box-shadow:none}.oc-code-group .oc-code.active{display:block}.oc-code-group .oc-code figcaption{display:none}.oc-tab{border-top:1px solid var(--line);padding:20px var(--oc-space-5)}.oc-tab:first-child{border-top:0}.oc-tab h3{margin:0 0 var(--oc-space-3);font-size:var(--oc-font-size-sm);color:var(--brand)}.oc-tab .oc-code{margin:0;max-width:100%}.oc-accordion-group{display:grid;gap:10px;margin:18px 0}.oc-accordion{border:1px solid var(--line-strong);background:var(--paper);border-radius:var(--oc-radius-surface);margin:0;padding:0 13px}.oc-accordion summary{cursor:pointer;color:var(--ink);font-weight:750;padding:var(--oc-space-3) 0}.oc-accordion summary::marker{color:var(--brand)}.oc-param,.oc-frame{border:1px solid var(--line-strong);background:color-mix(in srgb,var(--paper) 78%,transparent);border-radius:var(--oc-radius-surface);padding:13px 15px;margin:var(--oc-space-3) 0}.oc-frame{padding:10px}.oc-frame figcaption{padding:2px var(--oc-space-1) 10px;color:var(--muted);font-size:var(--oc-font-size-xs)}.oc-frame p{margin:0}.oc-frame img{display:block;margin:0 auto;border-radius:var(--oc-radius-control)}.oc-tooltip{position:relative;display:inline-flex;align-items:center;border-bottom:1px dotted color-mix(in srgb,var(--brand) 72%,var(--text));color:var(--ink);cursor:help}.oc-tooltip:focus{outline:2px solid var(--oc-focus-ring);outline-offset:3px;border-radius:var(--oc-radius-control)}.oc-tooltip[data-tip]:hover:after,.oc-tooltip[data-tip]:focus:after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);z-index:20;width:max-content;max-width:min(320px,calc(100vw - 40px));padding:var(--oc-space-2) 10px;border:1px solid var(--tooltip-border);border-radius:var(--oc-radius-control);background:var(--tooltip-bg);color:var(--tooltip-text);font:700 var(--oc-font-size-xs)/1.35 var(--oc-font-body);box-shadow:var(--shadow)}.oc-param header{display:flex;gap:var(--oc-space-2);align-items:center;flex-wrap:wrap;margin-bottom:var(--oc-space-2)}.oc-param header code{background:var(--code-inline);border-color:var(--code-border);color:var(--ink)}.oc-param-type,.oc-param-default,.oc-param-required{border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--soft) 70%,transparent);padding:1px 7px;font-size:var(--oc-font-size-xs);color:var(--muted)}.oc-param-type{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 34%,var(--line-strong));background:color-mix(in srgb,var(--brand) 12%,var(--paper))}.oc-param-default{color:var(--text);background:color-mix(in srgb,var(--paper-2) 82%,transparent)}.oc-param-required{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 42%,var(--line-strong));background:color-mix(in srgb,var(--brand) 10%,var(--paper))}
.breadcrumbs{display:flex;align-items:center;gap:var(--oc-space-2);color:var(--muted);font:650 11.5px/1.4 var(--oc-font-mono);margin:0 0 var(--oc-space-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breadcrumbs span{min-width:0;overflow:hidden;text-overflow:ellipsis}.breadcrumbs .breadcrumb-part{display:inline-flex;align-items:center;gap:var(--oc-space-2);flex:0 1 auto}.breadcrumbs .breadcrumb-separator{flex:0 0 auto}.breadcrumbs [aria-current="page"]{color:var(--text)}.page-status{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0 0}.page-status-badge{display:inline-flex;align-items:center;min-height:24px;max-width:100%;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper) 76%,transparent);color:var(--muted);padding:var(--oc-space-1) 9px;font:760 var(--oc-font-size-xs)/1.25 var(--oc-font-body)}.page-status-beta,.page-status-status{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 38%,var(--line-strong));background:color-mix(in srgb,var(--soft) 68%,transparent)}.page-status-deprecated{color:var(--oc-status-warning-fg);border-color:color-mix(in srgb,var(--oc-status-warning-fg) 42%,var(--line-strong))}.page-tools{display:flex;align-items:center;gap:var(--oc-space-2);margin-top:var(--oc-space-4)}.page-tools a,.page-tools button,.page-feedback button,.oc-prompt button{border:1px solid var(--line-strong);background:color-mix(in srgb,var(--paper) 82%,transparent);color:var(--muted);border-radius:var(--oc-radius-control);padding:6px 9px;font:760 var(--oc-font-size-xs)/1 var(--oc-font-body);cursor:pointer}.page-tools a:hover,.page-tools button:hover,.page-feedback button:hover,.oc-prompt button:hover{border-color:var(--brand);color:var(--ink)}.oc-code figcaption{justify-content:space-between;gap:var(--oc-space-3)}.oc-code figcaption .oc-code-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;letter-spacing:.08em}.oc-code figcaption button{position:relative;display:grid;place-items:center;flex:0 0 32px;width:32px;height:30px;padding:0;border:1px solid transparent;background:transparent;color:var(--muted);border-radius:var(--oc-radius-control);cursor:pointer}.oc-code figcaption button:before,.oc-code figcaption button:after{content:"";position:absolute;box-sizing:border-box;width:13px;height:13px;border:1.6px solid currentColor;border-radius:var(--oc-radius-inset);background:color-mix(in srgb,var(--paper-2) 42%,var(--code-block) 58%)}.oc-code figcaption button:before{left:7px;top:6px;opacity:.72}.oc-code figcaption button:after{left:11px;top:10px}.oc-code figcaption button:hover{border-color:color-mix(in srgb,var(--brand) 32%,var(--line-strong));background:color-mix(in srgb,var(--soft) 46%,transparent);color:var(--ink)}.oc-code figcaption button[data-copy-state="copied"]{color:var(--brand)}.oc-code figcaption button[data-copy-state="copied"]:before{content:"✓";position:static;width:auto;height:auto;border:0;background:transparent;font:900 var(--oc-font-size-base)/1 var(--oc-font-body)}.oc-code figcaption button[data-copy-state="copied"]:after,.oc-code figcaption button[data-copy-state="failed"]:after{content:none}.oc-code figcaption button[data-copy-state="failed"]{color:var(--oc-status-error-fg)}.oc-code figcaption button[data-copy-state="failed"]:before{content:"!";position:static;width:auto;height:auto;border:0;background:transparent;font:900 var(--oc-font-size-base)/1 var(--oc-font-body)}.doc pre code{display:block;min-width:max-content}.doc .oc-code pre code{white-space:pre}.doc .code-line,.oc-code .code-line{display:block;min-height:1.5em;line-height:1.5;padding:0 2px;border-left:2px solid transparent;white-space:pre}.doc .code-line:before{content:attr(data-line);display:none;width:2.4em;margin-right:1em;color:var(--muted);text-align:right;user-select:none}.doc .has-line-numbers .code-line:before{display:inline-block}.doc .code-line.is-highlighted{background:color-mix(in srgb,var(--brand) 14%,transparent);border-left-color:var(--brand)}.doc .code-line.is-dimmed{opacity:.46}.doc .code-line.is-added{background:color-mix(in srgb,var(--oc-diff-added) 13%,transparent);border-left-color:var(--oc-diff-added)}.doc .code-line.is-removed{background:color-mix(in srgb,var(--oc-diff-removed) 12%,transparent);border-left-color:var(--oc-diff-removed)}.doc .oc-code.is-wrapped pre,.doc .oc-code.is-wrapped code{white-space:pre-wrap;min-width:0}.doc .oc-code.is-wrapped .code-line{white-space:pre-wrap}.doc .oc-code.is-expandable pre{max-height:360px}.oc-badge{display:inline-flex;align-items:center;min-height:1.55em;padding:0 .5em;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:var(--soft);color:var(--ink);font:760 .76em/1 var(--oc-font-body);vertical-align:middle}.oc-badge-orange{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 38%,var(--line-strong))}.oc-badge-green{color:var(--oc-status-success-fg);border-color:color-mix(in srgb,var(--oc-status-success-fg) 38%,var(--line-strong))}.oc-panel,.oc-prompt,.oc-mermaid{border:1px solid var(--line-strong);background:color-mix(in srgb,var(--paper) 86%,transparent);border-radius:var(--oc-radius-surface);margin:18px 0;padding:var(--oc-space-4)}.oc-panel>strong{display:block;color:var(--ink);font:760 var(--oc-font-size-base)/1.3 var(--oc-font-body);margin:0 0 var(--oc-space-2)}.oc-prompt header{display:flex;align-items:center;justify-content:space-between;gap:var(--oc-space-3);margin-bottom:10px}.oc-prompt strong{color:var(--ink);font:760 var(--oc-font-size-base)/1.3 var(--oc-font-body)}.oc-prompt p:last-child,.oc-panel p:last-child{margin-bottom:0}.oc-tile-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:10px;margin:18px 0}.oc-tile{display:flex;align-items:flex-start;gap:var(--oc-space-3);border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);padding:14px;color:var(--text);background:transparent}.oc-tile:hover{border-color:var(--brand);background:color-mix(in srgb,var(--soft) 28%,transparent)}.oc-tile strong{display:block;color:var(--ink);font:750 var(--oc-font-size-base)/1.3 var(--oc-font-body);margin:0 0 5px}.oc-tile p{margin:0;color:var(--muted);line-height:1.5}.oc-tile .oc-card-icon{flex:0 0 20px;width:20px;height:20px}.oc-mermaid{overflow:auto;display:grid;place-items:center;min-height:180px;padding:18px;color:var(--code-text);font:var(--oc-font-size-sm)/1.65 var(--oc-font-mono)}.oc-mermaid svg{display:block;max-width:100%;height:auto}.oc-mermaid pre{width:100%;margin:0}.oc-mermaid.is-rendered{background:color-mix(in srgb,var(--paper) 70%,transparent)}.oc-mermaid.is-error{display:block;place-items:normal;border-color:color-mix(in srgb,var(--oc-status-warning-fg) 42%,var(--line-strong))}.page-feedback{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);margin-top:42px;padding-top:18px;color:var(--muted);font-size:var(--oc-font-size-sm)}.page-feedback output{color:var(--brand);font-weight:760}.page-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;border-top:1px solid var(--line);margin-top:var(--oc-space-5);padding-top:18px}.page-nav a{border:1px solid var(--line-strong);background:var(--paper);border-radius:var(--oc-radius-surface);padding:13px;color:var(--text)}.page-nav a:hover{border-color:var(--brand)}.page-nav small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase}.next{text-align:right}
.article-meta-row{display:flex;align-items:center;justify-content:space-between;gap:var(--oc-space-4);margin:0 0 var(--oc-space-3)}.article-meta-row .breadcrumbs{margin:0;min-width:0}.article-meta-row .page-tools{margin:0 0 0 auto}.page-actions{display:inline-flex;align-items:stretch;position:relative}.page-tools .page-actions-primary,.page-tools .page-actions-more summary{height:30px;min-height:30px;border:1px solid var(--line-strong);background:color-mix(in srgb,var(--paper) 82%,transparent);color:var(--muted);font:760 var(--oc-font-size-xs)/1 var(--oc-font-body);cursor:pointer}.page-tools .page-actions-primary{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border-right:1px solid var(--line-strong);border-radius:var(--oc-radius-control);margin-right:-1px;padding:0 9px}.page-tools .page-actions-primary .icon{width:15px;height:15px;min-width:15px}.page-tools .page-actions-more{position:relative}.page-tools .page-actions-more summary{display:grid;place-items:center;width:34px;border-radius:var(--oc-radius-control);padding:0;list-style:none}.page-tools .page-actions-more summary::-webkit-details-marker{display:none}.page-tools .page-actions-more summary::marker{content:""}.page-tools .page-actions-primary:hover,.page-tools .page-actions-more[open] summary,.page-tools .page-actions-more summary:hover{border-color:var(--brand);color:var(--ink)}.page-actions-chevron{display:grid;place-items:center;color:var(--muted)}.page-tools .page-actions-more summary .page-actions-chevron .icon{width:15px;height:15px;min-width:15px;transition:transform var(--oc-duration-fast) var(--oc-ease-out)}.page-tools .page-actions-more[open] .page-actions-chevron .icon{transform:rotate(180deg)}.page-tools .page-actions-more .page-actions-menu{position:absolute;top:calc(100% + 8px);left:auto;right:0;z-index:40;display:none;gap:var(--oc-space-1);min-width:260px;padding:var(--oc-space-2);border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);background:var(--paper);box-shadow:var(--shadow)}.page-tools .page-actions-more[open] .page-actions-menu{display:grid}.page-tools .page-action{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:9px;border:0;border-radius:var(--oc-radius-control);background:transparent;color:var(--text);text-align:left;text-decoration:none;cursor:pointer}.page-tools .page-action:hover{background:var(--soft);color:var(--ink)}.page-tools .page-action .icon{width:17px;height:17px}.page-tools .page-action strong{display:block;color:var(--ink);font:760 var(--oc-font-size-xs)/1.2 var(--oc-font-body)}.page-tools .page-action small{display:block;margin-top:3px;color:var(--muted);font:650 11px/1.25 var(--oc-font-body)}.page-tools .page-action-external{justify-self:end;color:var(--muted);font-size:var(--oc-font-size-xs)}.page-feedback-links{display:flex;align-items:center;gap:9px;margin-left:auto}.page-feedback-links a{border:1px solid var(--line-strong);background:color-mix(in srgb,var(--paper) 82%,transparent);color:var(--muted);border-radius:var(--oc-radius-control);padding:6px 9px;font:760 var(--oc-font-size-xs)/1 var(--oc-font-body)}.page-feedback-links a:hover{border-color:var(--brand);color:var(--ink)}@media(max-width:620px){.page-feedback-links{flex-basis:100%;margin:3px 0 0}}
.doc .oc-code.is-expandable{position:relative}.doc .oc-code.is-expandable pre{max-height:360px;padding-bottom:44px}.doc .oc-code.is-expandable.is-expanded pre{max-height:none}.doc .oc-code.is-expandable:not(.is-expanded):after{content:"";position:absolute;left:0;right:0;bottom:39px;height:72px;background:linear-gradient(180deg,transparent,var(--code-block));pointer-events:none}.oc-code-expand{position:absolute;left:0;right:0;bottom:0;z-index:2;width:100%;min-height:40px;border:0;border-top:1px solid var(--code-border);background:color-mix(in srgb,var(--code-block) 88%,var(--paper-2) 12%);color:var(--brand);font:760 var(--oc-font-size-xs)/1 var(--oc-font-body);cursor:pointer}.oc-code-expand:hover,.oc-code-expand:focus-visible{color:var(--ink);background:color-mix(in srgb,var(--soft) 48%,var(--code-block));outline:0}
.search-modal{position:fixed;inset:0;background:color-mix(in srgb,var(--oc-bg-page) 62%,transparent);display:none;z-index:90;padding:clamp(var(--oc-space-3),8vh,72px) 18px}.search-modal.open{display:block}.search-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(820px,100%);max-height:min(640px,calc(100vh - 16vh));margin:0 auto;background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);box-shadow:var(--shadow);overflow:hidden}.search-head{position:relative;padding:var(--oc-space-3);border-bottom:1px solid var(--line)}.search-head input{width:100%;border:1px solid var(--oc-input-border);border-radius:var(--oc-radius-control);padding:var(--oc-space-3) 44px var(--oc-space-3) var(--oc-space-3);background:var(--oc-input-bg);color:var(--text);outline:0}.search-head input:focus{border-color:color-mix(in srgb,var(--brand) 42%,var(--line-strong));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent)}.search-close{position:absolute;top:50%;right:22px;display:inline-grid;place-items:center;width:28px;height:28px;transform:translateY(-50%);border:0;background:transparent;color:var(--muted);border-radius:var(--oc-radius-control);padding:0;cursor:pointer}.search-close:hover,.search-close:focus-visible{color:var(--ink);background:color-mix(in srgb,var(--paper-2) 72%,transparent);outline:0}.search-close .icon{width:17px;height:17px}.search-hints{grid-row:2;display:flex;flex-wrap:wrap;gap:var(--oc-space-2);padding:10px var(--oc-space-3);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 58%,transparent)}.search-modal.has-query .search-hints{display:none}.search-hints button{border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:transparent;color:var(--muted);padding:6px 10px;font:730 var(--oc-font-size-xs)/1 var(--oc-font-body);cursor:pointer}.search-hints button:hover,.search-hints button:focus-visible{color:var(--ink);border-color:var(--brand);background:color-mix(in srgb,var(--soft) 42%,transparent);outline:0}.search-results{grid-row:3;position:relative;min-height:0;max-height:min(440px,calc(100vh - 260px));overflow:auto;padding:var(--oc-space-2) var(--oc-space-3) 22px;scrollbar-color:color-mix(in srgb,var(--muted) 62%,transparent) transparent}.search-results:after{content:"";position:sticky;left:0;right:0;bottom:-22px;display:block;height:26px;margin:0 -var(--oc-space-3) -22px;pointer-events:none;background:linear-gradient(180deg,transparent,var(--paper) 82%)}.search-results::-webkit-scrollbar{width:10px}.search-results::-webkit-scrollbar-track{background:transparent}.search-results::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 58%,transparent);border:3px solid transparent;border-radius:var(--oc-radius-round);background-clip:content-box}.search-results.is-loading{cursor:progress;display:grid;place-items:center}.search-results.is-loading:after{display:none}.search-state{margin:0;padding:var(--oc-space-3);color:var(--muted)}.search-loading{display:grid;place-items:center;gap:var(--oc-space-3);padding:36px 0;color:var(--muted);font-weight:720}.search-empty{min-height:260px;display:grid;place-content:center;justify-items:center;gap:10px;padding:34px;color:var(--muted);text-align:center}.search-empty-icon{display:grid;place-items:center;width:42px;height:42px;margin:0 0 var(--oc-space-1);border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line-strong));border-radius:var(--oc-radius-round);background:color-mix(in srgb,var(--soft) 36%,transparent);color:color-mix(in srgb,var(--brand) 78%,var(--muted))}.search-empty-icon .icon{width:19px;height:19px;min-width:19px;max-width:19px;stroke-width:2.1}.search-empty strong{max-width:100%;overflow-wrap:anywhere;color:var(--ink);font:780 16px/1.35 var(--oc-font-body)}.search-empty p{max-width:420px;margin:0 auto;color:var(--text);font-size:var(--oc-font-size-sm)}.search-empty-kbd{display:inline-flex;align-items:center;gap:2px;height:20px;margin:0 .18em;padding:0 6px;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper-2) 70%,transparent);color:var(--ink);vertical-align:-4px}.search-empty-kbd .icon{width:13px;height:13px;min-width:13px;max-width:13px;stroke-width:2.2}.search-spinner{display:inline-flex;width:42px;height:42px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--brand) 36%,var(--line));border-radius:var(--oc-radius-round);background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.18),transparent 28%),color-mix(in srgb,var(--paper-2) 82%,var(--brand) 18%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 10px 32px color-mix(in srgb,var(--brand) 18%,transparent);transform-style:preserve-3d;animation:search-spinner-orbit 2.8s linear infinite}.search-spinner-emoji:before{content:"🦑";display:block;font-size:22px;line-height:1;transform:translateZ(8px);transform-style:preserve-3d;animation:search-spinner-emoji 2.8s steps(1,end) infinite,search-spinner-emoji-spin 2.8s linear infinite}.search-result{display:grid;grid-template-columns:minmax(0,1fr) 24px;grid-template-areas:"meta enter" "title enter" "snippet snippet";gap:5px 10px;border-bottom:1px solid var(--line);border-radius:var(--oc-radius-control);padding:var(--oc-space-3) 14px;color:var(--text);outline:0}.search-result:hover,.search-result:focus-visible,.search-result.active{border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper-2) 92%,transparent);color:var(--text)}.search-result.active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line-strong) 92%,transparent)}.search-result-meta{grid-area:meta;display:flex;min-width:0;gap:var(--oc-space-2);align-items:center;color:var(--muted);font:700 var(--oc-font-size-xs)/1 var(--oc-font-body)}.search-result-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-meta span+span:before{content:"/";margin-right:var(--oc-space-2);color:var(--muted)}.search-result strong{grid-area:title;display:block;min-width:0;color:var(--ink);font:780 var(--oc-font-size-md)/1.35 var(--oc-font-body)}.search-result p{grid-area:snippet;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:.1em 0 0;color:var(--muted);font-size:var(--oc-font-size-sm)}.search-result mark{border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--brand) 28%,transparent);color:var(--ink);box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 22%,transparent);box-decoration-break:clone;-webkit-box-decoration-break:clone}.search-result-enter{grid-area:enter;align-self:center;justify-self:end;display:grid;place-items:center;width:24px;height:24px;color:var(--muted);opacity:0}.search-result-enter .icon{width:17px;height:17px;min-width:17px;max-width:17px;stroke-width:2.1}.search-result.active .search-result-enter,.search-result:hover .search-result-enter{opacity:1}.search-molty{grid-row:4;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;border:0;border-top:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 60%,transparent);color:var(--text);padding:11px 14px;cursor:pointer;text-align:left}.search-molty:hover,.search-molty:focus-visible{background:color-mix(in srgb,var(--soft) 52%,var(--paper) 48%);outline:0}.search-molty img{width:28px;height:28px;border-radius:var(--oc-radius-round)}.search-molty span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-molty [hidden]{display:none}.search-molty strong{color:var(--brand);font-weight:800;background:linear-gradient(90deg,var(--brand),color-mix(in srgb,var(--brand) 55%,white 45%),var(--brand));background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:search-term-shimmer 1.7s ease-in-out infinite}.search-molty-shortcut{display:inline-flex;align-items:center;justify-content:flex-end;gap:2px;color:var(--muted);height:15px}.search-molty-shortcut .icon{width:15px;height:15px;min-width:15px;max-width:15px;stroke-width:2.2}.search-molty:hover .search-molty-shortcut,.search-molty:focus-visible .search-molty-shortcut{color:var(--ink)}@media(max-width:640px){.search-modal{padding:10px}.search-modal.open{display:grid;align-items:center}.search-panel{border-radius:var(--oc-radius-surface)}.search-head{padding:9px}.search-head input{font-size:16px;line-height:1.35;padding:11px 40px 11px 11px}.search-close{right:16px}.search-hints{flex-wrap:nowrap;overflow-x:auto;gap:7px;padding:var(--oc-space-2) 9px}.search-hints button{flex:0 0 auto}.search-results{max-height:min(340px,calc(100vh - 230px));padding:7px var(--oc-space-2) 20px}.search-results:after{margin:0 -var(--oc-space-2) -20px}.search-empty{min-height:220px;padding:22px 18px}.search-empty p{max-width:280px}.search-result{grid-template-columns:minmax(0,1fr);grid-template-areas:"meta" "title" "snippet";padding:11px 10px}.search-result-enter{display:none}.search-molty{gap:var(--oc-space-2);padding:10px 11px}.search-molty img{width:24px;height:24px}.search-molty-shortcut{display:none}}@keyframes search-term-shimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes search-spinner-orbit{0%{transform:rotateY(0deg)}12.49%{transform:rotateY(89deg)}12.5%{transform:rotateY(90deg)}25%{transform:rotateY(180deg)}37.49%{transform:rotateY(269deg)}37.5%{transform:rotateY(270deg)}50%{transform:rotateY(360deg)}62.49%{transform:rotateY(449deg)}62.5%{transform:rotateY(450deg)}75%{transform:rotateY(540deg)}87.49%{transform:rotateY(629deg)}87.5%{transform:rotateY(630deg)}100%{transform:rotateY(720deg)}}@keyframes search-spinner-emoji-spin{0%{transform:translateZ(8px) rotateY(0deg)}12.49%{transform:translateZ(8px) rotateY(-89deg)}12.5%{transform:translateZ(8px) rotateY(-90deg)}25%{transform:translateZ(8px) rotateY(-180deg)}37.49%{transform:translateZ(8px) rotateY(-269deg)}37.5%{transform:translateZ(8px) rotateY(-270deg)}50%{transform:translateZ(8px) rotateY(-360deg)}62.49%{transform:translateZ(8px) rotateY(-449deg)}62.5%{transform:translateZ(8px) rotateY(-450deg)}75%{transform:translateZ(8px) rotateY(-540deg)}87.49%{transform:translateZ(8px) rotateY(-629deg)}87.5%{transform:translateZ(8px) rotateY(-630deg)}100%{transform:translateZ(8px) rotateY(-720deg)}}@keyframes search-spinner-emoji{0%,12.49%{content:"🦑"}12.5%,37.49%{content:"🦞"}37.5%,62.49%{content:"🦐"}62.5%,87.49%{content:"🦀"}87.5%,100%{content:"🦑"}}@media(prefers-reduced-motion:reduce){.search-spinner,.search-spinner-emoji:before,.search-molty strong{animation:none}}
.docs-chat{position:fixed;top:0;right:0;bottom:0;width:min(380px,calc(100vw - 28px));z-index:80;pointer-events:none}.docs-chat-launcher{position:absolute;right:18px;bottom:18px;height:46px;border:1px solid color-mix(in srgb,var(--brand) 48%,var(--line-strong));border-radius:var(--oc-radius-control);background:var(--paper);color:var(--ink);display:flex;align-items:center;gap:9px;padding:0 17px 0 var(--oc-space-2);font-weight:650;cursor:pointer;box-shadow:var(--oc-shadow-lg);pointer-events:auto;overflow:hidden;isolation:isolate;transition:transform var(--oc-duration-fast) var(--oc-ease-out),border-color var(--oc-duration-fast) var(--oc-ease-out),box-shadow var(--oc-duration-fast) var(--oc-ease-out)}.docs-chat.open .docs-chat-launcher{display:none}.docs-chat-launcher:after{content:none}.docs-chat-launcher:hover{border-color:var(--brand);color:var(--ink)}.docs-chat-launcher:hover:after{opacity:1}.docs-chat-avatar{display:block;width:32px;height:32px;border-radius:var(--oc-radius-round);object-fit:contain;flex:0 0 auto}.docs-chat-launcher .docs-chat-avatar{width:30px;height:30px}.docs-chat-title .docs-chat-avatar{width:34px;height:34px}.docs-chat-panel{position:absolute;inset:0;display:none;grid-template-rows:auto auto minmax(0,1fr) auto;background:color-mix(in srgb,var(--paper) 94%,var(--oc-bg-page) 6%);border-left:1px solid var(--line-strong);box-shadow:var(--oc-shadow-lg);overflow:hidden;pointer-events:auto}.docs-chat.open .docs-chat-panel{display:grid}.docs-chat-head{display:flex;align-items:center;justify-content:space-between;gap:var(--oc-space-3);min-height:64px;padding:14px 14px 13px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 88%,transparent)}.docs-chat-head p{margin:0 0 2px;color:var(--brand);font-size:var(--oc-font-size-xs);font-weight:850;text-transform:uppercase}.docs-chat-head h2{margin:0;color:var(--ink);font:760 18px/1.1 var(--oc-font-body)}.docs-chat-actions{display:flex;align-items:center;gap:7px}.docs-chat-icon{position:relative;display:grid;place-items:center;width:34px;height:34px;border:1px solid transparent;border-radius:var(--oc-radius-control);background:transparent;color:var(--muted);padding:0;line-height:1;cursor:pointer;transition:background var(--oc-duration-fast) var(--oc-ease-out),border-color var(--oc-duration-fast) var(--oc-ease-out),color var(--oc-duration-fast) var(--oc-ease-out)}.docs-chat-icon .icon{width:17px;height:17px}.docs-chat-icon:hover{border-color:color-mix(in srgb,var(--brand) 38%,var(--line-strong));background:color-mix(in srgb,var(--paper-2) 82%,transparent);color:var(--ink)}.docs-chat-icon:disabled{opacity:.35;cursor:not-allowed}.docs-chat-icon[data-copy-state="copied"]{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 44%,var(--line-strong));background:color-mix(in srgb,var(--soft) 70%,transparent)}.docs-chat-minimize{font-size:22px}.docs-chat-clear[hidden]{display:none}.docs-chat-auth{padding:14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 92%,var(--oc-bg-page) 8%)}.docs-chat-auth[hidden]{display:none}.docs-chat-auth-card{border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);background:color-mix(in srgb,var(--paper-2) 86%,transparent);padding:14px}.docs-chat-auth-card p{margin:0 0 var(--oc-space-4);color:var(--text);font-size:var(--oc-font-size-base);line-height:1.45;text-wrap:balance}.docs-chat-auth-card strong{display:block;color:var(--ink);font:760 var(--oc-font-size-md)/1.25 var(--oc-font-body);margin-bottom:var(--oc-space-2)}.docs-chat-verify{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;border:1px solid var(--brand);border-radius:var(--oc-radius-control);background:var(--brand);color:var(--on-brand)!important;font-weight:850;padding:0 14px;text-decoration:none!important}.docs-chat-github-icon{width:18px;height:18px;fill:currentColor;flex:0 0 auto}.docs-chat-verify:hover{background:var(--oc-accent-primary-hover);color:var(--on-brand)!important}.docs-chat-log{overflow:auto;padding:14px 14px var(--oc-space-4);display:flex;flex-direction:column;gap:10px}.docs-chat-message{max-width:94%;border:1px solid var(--line);border-radius:var(--oc-radius-surface);padding:10px var(--oc-space-3);overflow-wrap:break-word}.docs-chat-message p{margin:0 0 .7em}.docs-chat-message p:last-child{margin-bottom:0}.docs-chat-message a{color:var(--brand);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;word-break:break-word}.docs-chat-message code{background:var(--code);border:1px solid var(--line-strong);border-radius:var(--oc-radius-inset);padding:.05em .32em;color:var(--code-text);font-size:.9em}.docs-chat-code{margin:.35em 0 .85em;border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);background:color-mix(in srgb,var(--code) 92%,var(--oc-bg-page) 8%);overflow:hidden;box-shadow:var(--oc-shadow-md)}.docs-chat-code-head{display:flex;align-items:center;min-height:28px;padding:5px 10px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.docs-chat-code pre{margin:0;padding:var(--oc-space-3);overflow:auto;white-space:pre;line-height:1.55}.docs-chat-code code{display:block;background:transparent!important;border:0!important;border-radius:var(--oc-radius-inset)!important;padding:0!important;color:var(--code-text);font-size:var(--oc-font-size-xs)}.docs-chat-message.user{align-self:flex-end;background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.docs-chat-message.assistant{align-self:flex-start;background:var(--paper-2);color:var(--text)}.docs-chat-message.thinking{padding:14px;min-height:42px;display:inline-flex;align-items:center}.docs-chat-thinking{display:inline-flex;gap:7px;align-items:flex-end;height:14px}.docs-chat-thinking span{width:7px;height:7px;border-radius:var(--oc-radius-round);background:var(--muted);animation:docs-chat-dot 1.25s var(--oc-ease-out) infinite;will-change:transform,opacity,background-color}.docs-chat-thinking span:nth-child(2){animation-delay:.18s}.docs-chat-thinking span:nth-child(3){animation-delay:.36s}@keyframes docs-chat-dot{0%,80%,100%{opacity:.3;transform:translateY(0) scale(.85);background:var(--muted)}40%{opacity:1;transform:translateY(-5px) scale(1);background:var(--brand)}}@media(prefers-reduced-motion:reduce){.docs-chat-thinking span{animation-duration:2.4s;animation-name:docs-chat-dot-fade}@keyframes docs-chat-dot-fade{0%,100%{opacity:.35}50%{opacity:1}}}.docs-chat-message.error{border-color:color-mix(in srgb,var(--oc-status-error-fg) 52%,var(--line-strong));color:var(--oc-status-error-fg);background:color-mix(in srgb,var(--oc-status-error-bg) 72%,var(--paper))}.docs-chat-form{display:grid;grid-template-columns:1fr auto;gap:10px;padding:var(--oc-space-3);border-top:1px solid var(--line);background:var(--paper)}.docs-chat-form[hidden]{display:none}.docs-chat-form textarea{resize:none;min-height:50px;max-height:160px;border:1px solid var(--oc-input-border);border-radius:var(--oc-radius-control);background:var(--oc-input-bg);color:var(--ink);padding:var(--oc-space-3) var(--oc-space-3);line-height:1.35}.docs-chat-form textarea:focus{outline:2px solid var(--oc-input-focus-ring);border-color:var(--oc-input-focus-border)}.docs-chat-form button{align-self:end;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--brand);border-radius:var(--oc-radius-control);background:var(--brand);color:var(--on-brand);font-weight:850;padding:0;cursor:pointer}.docs-chat-form button .icon{width:18px;height:18px}.docs-chat-form button:disabled{opacity:.55;cursor:wait}
.docs-chat{top:auto;right:18px;bottom:18px;width:min(420px,calc(100vw - 36px));height:min(680px,calc(100vh - 36px));transition:width var(--oc-duration-ui) var(--oc-ease-out),height var(--oc-duration-ui) var(--oc-ease-out)}.docs-chat-launcher{right:0;bottom:0}.docs-chat.expanded{width:min(760px,calc(100vw - 36px));height:min(860px,calc(100vh - 36px))}.docs-chat.open{pointer-events:auto}.docs-chat:not(.open):not(.closing){right:18px!important}.docs-chat.open .docs-chat-launcher,.docs-chat.closing .docs-chat-launcher{display:flex;opacity:0;visibility:hidden;pointer-events:none}.docs-chat-panel{display:grid;opacity:0;transform:translateY(10px) scale(.985);transform-origin:bottom right;pointer-events:none;transition:transform var(--oc-duration-ui) var(--oc-ease-out),opacity var(--oc-duration-fast) var(--oc-ease-out)}.docs-chat.open .docs-chat-panel{display:grid;opacity:1;transform:none;pointer-events:auto}.docs-chat-maximize[aria-pressed="true"]{border-color:color-mix(in srgb,var(--brand) 44%,var(--line-strong));background:color-mix(in srgb,var(--soft) 68%,transparent);color:var(--ink)}.docs-chat-maximize .icon{transition:none}@media(prefers-reduced-motion:reduce){.docs-chat,.docs-chat-panel{transition:none}}
.docs-chat-panel{grid-template-rows:auto auto minmax(0,1fr) auto;inline-size:100%;min-width:0;max-width:100%;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);box-shadow:var(--oc-shadow-lg);overflow:hidden}.docs-chat-panel>*{min-width:0;max-width:100%}.docs-chat-head{grid-row:1;min-height:58px;overflow:hidden;padding:10px 14px;background:var(--bg);border-bottom:1px solid var(--line);cursor:grab;touch-action:none;user-select:none}.docs-chat.dragging .docs-chat-head{cursor:grabbing}.docs-chat-title{display:flex;align-items:center;gap:10px;flex:1 1 auto;min-width:0}.docs-chat-mark{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;color:var(--brand);filter:drop-shadow(0 0 12px color-mix(in srgb,var(--brand) 35%,transparent))}.docs-chat-mark .icon{width:25px;height:25px;stroke-width:1.8}.docs-chat-head h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 var(--oc-font-size-lg)/1.05 var(--oc-font-mono);letter-spacing:.04em}.docs-chat-actions{flex:0 0 auto;min-width:0;gap:6px}.docs-chat-icon{width:29px;height:29px;border-radius:var(--oc-radius-control);color:color-mix(in srgb,var(--muted) 82%,transparent)}.docs-chat-icon[hidden]{display:none}.docs-chat-icon .icon{width:17px;height:17px}.docs-chat-copy[data-copy-state] .icon{display:none}.docs-chat-copy[data-copy-state]:before{font:900 var(--oc-font-size-md)/1 var(--oc-font-body)}.docs-chat-copy[data-copy-state="copied"]:before{content:"✓"}.docs-chat-copy[data-copy-state="failed"]:before{content:"!"}.docs-chat-minimize{font-size:27px;font-weight:320}.docs-chat-log{grid-row:3;min-width:0;overflow-x:hidden;padding:var(--oc-space-5) 22px 18px;gap:var(--oc-space-3)}.docs-chat-message{max-width:min(86%,calc(100% - 28px));min-width:0;overflow-wrap:anywhere;word-break:break-word}.docs-chat-message.user{margin-right:0}.docs-chat-code{max-width:100%}.docs-chat-empty{max-width:300px;margin:0 auto;color:color-mix(in srgb,var(--muted) 72%,transparent);text-align:center;font:500 var(--oc-font-size-md)/1.45 var(--oc-font-mono);letter-spacing:.03em}.docs-chat-form{grid-row:4;position:relative;display:block;width:100%;min-width:0;max-width:100%;overflow:hidden;padding:var(--oc-space-4) 22px 22px;border-top:0;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--bg) 96%,var(--oc-bg-page) 4%) 22%)}.docs-chat:not([data-chat-auth-state="ready"]) .docs-chat-form{display:none}.docs-chat-form textarea{display:block;inline-size:100%;max-width:100%;min-width:0;min-height:118px;max-height:158px;border-radius:var(--oc-radius-control);padding:20px 66px 42px 20px;background:var(--oc-input-bg);font-size:16px;line-height:1.5;overflow:hidden}.docs-chat-form textarea:focus{outline:0;border-color:var(--oc-input-focus-border);box-shadow:inset 0 0 0 1px var(--oc-input-focus-ring),inset 0 0 0 4px var(--oc-input-focus-ring)}.docs-chat-form button{position:absolute;right:34px;bottom:34px;width:38px;height:38px;border-radius:var(--oc-radius-control)}.docs-chat-auth{grid-row:4;align-self:end;border-top:1px solid var(--line);border-bottom:0;background:var(--bg);padding:var(--oc-space-4) 22px 22px}.docs-chat-auth-card{border-radius:var(--oc-radius-surface)}
.oc-chart-mark,.oc-chart-donut-key{position:relative}.oc-chart-mark:focus-visible,.oc-chart-line-svg circle:focus-visible,.oc-chart-donut-segment:focus-visible,.oc-chart-donut-key:focus-visible{outline:2px solid var(--oc-focus-ring);outline-offset:3px}.oc-chart-mark[data-tip]:hover:after,.oc-chart-mark[data-tip]:focus:after,.oc-chart-donut-key[data-tip]:hover:after,.oc-chart-donut-key[data-tip]:focus:after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 9px);transform:translateX(-50%);z-index:30;width:max-content;max-width:min(260px,calc(100vw - 40px));padding:7px 9px;border:1px solid var(--tooltip-border);border-radius:var(--oc-radius-control);background:var(--tooltip-bg);color:var(--tooltip-text);font:760 var(--oc-font-size-xs)/1.25 var(--oc-font-body);box-shadow:var(--shadow);pointer-events:none}.oc-chart-mark[data-tip]:hover:before,.oc-chart-mark[data-tip]:focus:before,.oc-chart-donut-key[data-tip]:hover:before,.oc-chart-donut-key[data-tip]:focus:before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%) rotate(45deg);z-index:31;width:8px;height:8px;background:var(--tooltip-bg);pointer-events:none}.oc-chart-area-fill{fill:color-mix(in srgb,var(--brand) 18%,transparent)}.oc-chart-donut-wrap{display:grid;grid-template-columns:minmax(170px,220px) minmax(0,1fr);gap:18px;align-items:center}.oc-chart-donut-svg{display:block;width:100%;height:auto}.oc-chart-donut-bg{fill:none;stroke:color-mix(in srgb,var(--line-strong) 72%,transparent);stroke-width:28}.oc-chart-donut-segment{fill:none;stroke:var(--oc-chart-tone);stroke-width:28;stroke-linecap:butt;stroke-dasharray:var(--oc-chart-share) 100;stroke-dashoffset:calc(var(--oc-chart-offset) * -1);transition:stroke-width var(--oc-duration-fast) var(--oc-ease-out),opacity var(--oc-duration-fast) var(--oc-ease-out)}.oc-chart-donut-segment:hover,.oc-chart-donut-segment:focus{stroke-width:32;opacity:.92}.oc-chart-donut-svg text:first-of-type{fill:var(--ink);font:780 var(--oc-font-size-2xl)/1 var(--oc-font-body)}.oc-chart-donut-svg text:last-of-type{fill:var(--muted);font:760 11px/1 var(--oc-font-body);text-transform:uppercase}.oc-chart-donut-legend{display:grid;gap:var(--oc-space-2)}.oc-chart-donut-key{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:var(--oc-space-2);align-items:center;color:var(--text);font-size:var(--oc-font-size-xs)}.oc-chart-donut-key i{width:10px;height:10px;border-radius:var(--oc-radius-inset);background:var(--oc-chart-tone)}.oc-chart-donut-key span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-chart-donut-key strong{color:var(--ink);font:760 var(--oc-font-size-xs)/1 var(--oc-font-body)}.oc-callout{--callout-surface:var(--paper);background:var(--callout-surface);border-color:var(--line-strong);border-left-color:var(--callout-accent);box-shadow:none}.oc-callout strong:before{background:var(--paper)}:root[data-theme="light"] .oc-callout{background:var(--paper);border-color:var(--line-strong);border-left-color:var(--callout-accent)}:root[data-theme="light"] .oc-callout strong:before{background:var(--paper);box-shadow:0 0 0 3px var(--paper)}
.page-feedback{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px 22px;border-top:1px solid var(--line);margin-top:42px;padding-top:18px}.page-feedback-prompt{display:flex;align-items:center;gap:9px;min-width:0;flex-wrap:wrap}.page-feedback-prompt>span{display:inline-flex;align-items:center;color:var(--text)}.page-feedback-composer{grid-column:1/-1;display:grid;gap:11px}.page-feedback-composer[hidden]{display:none}.page-feedback-composer textarea{width:100%;min-height:110px;resize:vertical;border:1px solid var(--oc-input-border);border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--bg) 80%,var(--paper) 20%);color:var(--ink);padding:13px 14px}.page-feedback-composer textarea:focus{outline:0;border-color:var(--oc-input-focus-border);box-shadow:0 0 0 3px var(--oc-input-focus-ring)}.page-feedback-submit{display:inline-flex;align-items:center;justify-content:center;gap:var(--oc-space-2);justify-self:end;min-height:38px;border:1px solid color-mix(in srgb,var(--brand) 46%,var(--line-strong));border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper) 76%,transparent);color:var(--brand);padding:0 13px;font:800 var(--oc-font-size-xs)/1 var(--oc-font-body);white-space:nowrap}.page-feedback-submit .icon{width:15px;height:15px}.page-feedback-submit:hover{border-color:var(--brand);color:var(--ink);background:color-mix(in srgb,var(--soft) 52%,transparent)}
@media(max-width:620px){.page-feedback{grid-template-columns:1fr;padding:var(--oc-space-4)}.page-feedback-links{margin-left:0}.page-feedback-composer{max-width:none}.page-feedback-submit{width:max-content}}
.docs-chat-message.user a,.docs-chat-message.user a:visited{color:inherit;text-decoration-color:color-mix(in srgb,currentColor 72%,transparent)}.docs-chat-message.user a:hover,.docs-chat-message.user a:focus-visible{color:var(--oc-text-on-accent);text-decoration-color:currentColor}
@media(max-width:1120px){html{scroll-padding-top:calc(var(--sticky-header-h) + 54px)}.header-row{grid-template-columns:auto 1fr auto;padding:0 var(--oc-space-5)}.tabs{padding:0 var(--oc-space-5)}.oc-card-grid.oc-card-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.doc-shell{grid-template-columns:220px minmax(0,1fr);gap:34px;padding-left:24px;padding-right:24px}.sidebar{top:148px;max-height:calc(100vh - 172px);padding-right:4px}.nav-section{margin-bottom:26px}.nav-link{padding:6px 10px;font-size:var(--oc-font-size-sm)}.main{grid-template-columns:minmax(0,1fr)}.toc{position:fixed;left:calc(24px + 220px + 34px);top:calc(var(--sticky-header-h) + 8px);z-index:60;width:max-content;max-width:calc(100vw - 302px);max-height:none;margin:0;padding:0;overflow:visible;background:transparent;color:var(--muted);font-size:var(--oc-font-size-sm);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-4px);transition:opacity var(--oc-duration-fast) var(--oc-ease-out),transform var(--oc-duration-fast) var(--oc-ease-out),visibility var(--oc-duration-fast) var(--oc-ease-out)}.toc.is-visible,.toc[open]{opacity:1;visibility:visible;pointer-events:auto;transform:none}.toc h2{display:none}.toc summary{display:flex;align-items:center;gap:var(--oc-space-2);min-height:34px;padding:0 11px;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper) 90%,transparent);color:var(--ink);font:760 var(--oc-font-size-xs)/1 var(--oc-font-body);cursor:pointer;list-style:none;box-shadow:var(--oc-shadow-md)}.toc summary::-webkit-details-marker{display:none}.toc summary:after{content:"";width:6px;height:6px;border-right:1.25px solid color-mix(in srgb,currentColor 72%,transparent);border-bottom:1.25px solid color-mix(in srgb,currentColor 72%,transparent);transform:rotate(45deg);margin-top:-3px}.toc[open] summary{border-color:color-mix(in srgb,var(--brand) 38%,var(--line-strong));background:color-mix(in srgb,var(--soft) 62%,var(--paper) 38%)}.toc[open] summary:after{transform:rotate(225deg);margin-top:3px}.toc nav{position:absolute;left:0;top:calc(100% + 8px);display:none;width:min(340px,calc(100vw - 302px));max-height:min(58vh,520px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:var(--oc-space-2) 11px var(--oc-space-2) var(--oc-space-2);border:1px solid color-mix(in srgb,var(--line-strong) 82%,var(--brand) 18%);border-radius:var(--oc-radius-surface);background:color-mix(in srgb,var(--paper) 92%,var(--soft) 8%);box-shadow:var(--shadow)}.toc[open] nav{display:grid;gap:2px}.toc a{display:block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--oc-radius-control);padding:var(--oc-space-2) 9px;color:var(--text)}.toc a:hover,.toc a.active{background:var(--soft);color:var(--ink)}.toc-l3{padding-left:18px!important}}@media(max-width:820px){html{scroll-padding-top:calc(var(--sticky-header-h) + 50px)}.site-header{position:sticky}.header-row{height:auto;min-height:0;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"menu brand actions" "search search search";align-items:center;padding:10px 14px var(--oc-space-3);gap:10px var(--oc-space-3)}.header-left{grid-area:brand;justify-self:center;gap:10px;min-width:0}.brand img{width:22px;height:22px}.language-trigger{width:40px;height:40px;padding:0;justify-content:center;border:1px solid var(--line-strong);background:var(--paper)}.language-current,.language-chevron{display:none}.language-menu{left:auto;right:0;transform:none;width:min(390px,calc(100vw - 28px));max-height:min(72vh,620px)}.search-button{grid-area:search;width:100%;height:40px}.header-links{grid-area:actions;justify-self:end;gap:var(--oc-space-2)}.theme-toggle{width:40px;height:40px;border:1px solid var(--line-strong)!important;border-radius:var(--oc-radius-control);background:var(--paper)!important}.nav-toggle{grid-area:menu;display:inline-flex;align-items:center;justify-content:center;justify-self:start;width:40px;height:40px;padding:0}.tabs{display:none}.doc-shell{display:block;padding:26px 20px 86px}.toc{left:20px;top:calc(var(--sticky-header-h) + 8px);max-width:calc(100vw - 40px)}.toc nav{width:min(340px,calc(100vw - 40px));max-height:min(62vh,560px)}.toc summary{min-height:36px}body.nav-open{overflow:hidden}body.nav-open:before{content:"";position:fixed;inset:0;z-index:75;background:color-mix(in srgb,var(--oc-bg-page) 58%,transparent);backdrop-filter:blur(2px)}.sidebar{position:fixed;inset:0 auto 0 0;width:min(360px,calc(100vw - 28px));z-index:90;transform:translateX(calc(-100% - 1px));transition:transform var(--oc-duration-ui) var(--oc-ease-out);background:var(--bg);border-right:1px solid var(--line);padding:18px 18px 28px;max-height:none;box-shadow:var(--oc-shadow-lg);mask-image:none;-webkit-mask-image:none}.sidebar.open{transform:translateX(0)}.sidebar-close{display:flex;align-items:center;justify-content:center;width:100%;height:40px;margin:0 0 18px;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:var(--paper);color:var(--ink);font:760 var(--oc-font-size-sm)/1 var(--oc-font-body)}.breadcrumbs{white-space:normal}.article-meta-row .page-tools{flex:0 0 auto}.breadcrumbs .breadcrumb-group{display:none}.page-tools,.page-feedback{flex-wrap:wrap}.article h1{font-size:28px}.oc-card-grid,.oc-card-group,.oc-card-grid.oc-card-cols-3,.oc-card-grid.oc-card-cols-4,.oc-tile-group,.oc-cta-grid,.oc-stat-grid{grid-template-columns:1fr}.oc-steps{margin-left:18px}.oc-step{padding-left:30px}.oc-tabs,.oc-code-group{margin-left:0;margin-right:0}.oc-tab{padding:18px}.doc pre{white-space:pre-wrap;overflow-wrap:anywhere}.doc pre code{white-space:pre-wrap;min-width:0}.doc .code-line{white-space:pre-wrap;overflow-wrap:anywhere}.oc-code-tabs{overflow-x:auto}.oc-code-tab{flex:0 0 auto}.next{text-align:left}.page-nav{grid-template-columns:1fr}.oc-chart-donut-wrap{grid-template-columns:1fr}.docs-chat,.docs-chat.expanded{right:14px;bottom:14px;width:min(390px,calc(100vw - 28px));height:min(680px,calc(100vh - 28px))}.docs-chat:not(.open):not(.closing){right:14px!important}.docs-chat-launcher{right:0;bottom:0;height:44px;padding:0 14px}.docs-chat-head{min-height:58px;padding:var(--oc-space-3)}.docs-chat-panel{box-shadow:var(--oc-shadow-lg)}}
@media(max-width:1120px){.oc-card-grid.oc-card-cols-4,.oc-card-group.oc-card-cols-4{--oc-card-columns:2;grid-template-columns:repeat(var(--oc-card-columns),minmax(0,1fr))}}@media(max-width:820px){.oc-card-grid,.oc-card-group,.oc-card-grid.oc-card-cols-1,.oc-card-group.oc-card-cols-1,.oc-card-grid.oc-card-cols-2,.oc-card-group.oc-card-cols-2,.oc-card-grid.oc-card-cols-3,.oc-card-group.oc-card-cols-3,.oc-card-grid.oc-card-cols-4,.oc-card-group.oc-card-cols-4{--oc-card-columns:1;grid-template-columns:1fr}}
.oc-mermaid{position:relative}
.oc-mermaid-actions{position:absolute;top:10px;right:10px;z-index:2;display:flex;gap:6px}
.oc-mermaid-expand{display:grid;place-items:center;width:34px;height:34px;border:1px solid color-mix(in srgb,var(--line-strong) 82%,transparent);border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper) 88%,transparent);color:var(--muted);box-shadow:var(--oc-shadow-md);cursor:pointer}
.oc-mermaid-expand:hover,.oc-mermaid-expand:focus-visible{outline:0;border-color:color-mix(in srgb,var(--brand) 46%,var(--line-strong));background:color-mix(in srgb,var(--soft) 66%,var(--paper) 34%);color:var(--ink)}
.oc-mermaid-expand .icon{width:17px;height:17px;min-width:17px;max-width:17px;stroke-width:2.1}
.oc-mermaid-overlay{position:fixed;inset:0;z-index:120;display:none;padding:22px;background:color-mix(in srgb,var(--oc-bg-page) 68%,transparent);backdrop-filter:blur(5px)}
.oc-mermaid-overlay.open{display:grid;grid-template-rows:auto minmax(0,1fr);gap:var(--oc-space-3)}
.oc-mermaid-overlay-head{display:flex;justify-content:flex-end}
.oc-mermaid-overlay-close{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper) 90%,transparent);color:var(--muted);cursor:pointer}
.oc-mermaid-overlay-close:hover,.oc-mermaid-overlay-close:focus-visible{outline:0;border-color:color-mix(in srgb,var(--brand) 46%,var(--line-strong));background:color-mix(in srgb,var(--soft) 64%,var(--paper) 36%);color:var(--ink)}
.oc-mermaid-overlay-close .icon{width:18px;height:18px;min-width:18px;max-width:18px}
.oc-mermaid-overlay-canvas{min-height:0;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line-strong);border-radius:var(--oc-radius-surface);background:color-mix(in srgb,var(--paper) 94%,transparent);padding:var(--oc-space-5);box-shadow:var(--shadow)}
.oc-mermaid-overlay-canvas svg{display:block;width:max-content;min-width:min(1040px,100%);max-width:none;height:auto;margin:auto}
.oc-mermaid-overlay-canvas pre{margin:0;white-space:pre;min-width:max-content}
.has-mermaid-overlay{overflow:hidden}
.language-menu{top:calc(100% + 8px);width:min(270px,calc(100vw - 32px));max-height:min(62vh,430px);padding:6px;border-radius:var(--oc-radius-surface);scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--brand) 58%,transparent) transparent;box-shadow:var(--oc-shadow-lg)}
.language-menu::-webkit-scrollbar{width:8px}
.language-menu::-webkit-scrollbar-track{background:transparent}
.language-menu::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--brand) 58%,transparent);border:2px solid transparent;border-radius:var(--oc-radius-round);background-clip:content-box}
.language-option{grid-template-columns:24px minmax(0,1fr) 18px;gap:var(--oc-space-2);padding:var(--oc-space-2) 10px;border-radius:var(--oc-radius-control);font-size:var(--oc-font-size-md);line-height:1.15}
.language-check{font-size:16px}
@media(max-width:820px){.language-menu{width:min(300px,calc(100vw - 28px));max-height:min(62vh,430px)}.language-native{display:block;position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;font-size:16px;z-index:2;cursor:pointer;-webkit-appearance:none;appearance:none}}
.sidebar-head,.mobile-section-switcher,.sidebar-section-label{display:none}
@media(max-width:820px){
  .header-row{position:relative;grid-template-columns:auto minmax(0,1fr) auto}
  .header-left{position:absolute;grid-area:auto;top:30px;left:50%;width:max-content;transform:translate(-50%,-50%)}
  .brand-tag,.header-links .top-icon-link{display:none}
  .theme-toggle{border:0!important;background:transparent!important}
  .sidebar{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;padding:0 18px 28px}
  .sidebar-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;min-height:64px;margin:0 -2px 14px;padding:10px 2px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(16px)}
  .sidebar-head>strong{color:var(--ink);font:720 var(--oc-font-size-base)/1.2 var(--oc-font-body)}
  .sidebar-close{display:inline-grid;place-items:center;width:40px;height:40px;margin:0;padding:0;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:var(--paper);color:var(--muted);cursor:pointer;transition:color var(--oc-duration-fast) var(--oc-ease-out),border-color var(--oc-duration-fast) var(--oc-ease-out),background var(--oc-duration-fast) var(--oc-ease-out)}
  .sidebar-close:hover,.sidebar-close:focus-visible{border-color:color-mix(in srgb,var(--brand) 44%,var(--line-strong));background:var(--paper-2);color:var(--ink);outline:0}
  .sidebar-close .icon{width:18px;height:18px}
  .mobile-section-switcher{display:block;margin:0 0 24px}
  .mobile-section-switcher summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper) 72%,transparent);cursor:pointer;list-style:none;transition:background var(--oc-duration-fast) var(--oc-ease-out),border-color var(--oc-duration-fast) var(--oc-ease-out)}
  .mobile-section-switcher summary::-webkit-details-marker{display:none}
  .mobile-section-switcher summary:hover,.mobile-section-switcher summary:focus-visible{border-color:color-mix(in srgb,var(--brand) 44%,var(--line-strong));background:var(--paper-2);outline:0}
  .mobile-section-copy{display:grid;gap:2px;min-width:0}
  .mobile-section-label{color:var(--muted);font:750 10px/1.2 var(--oc-font-mono);letter-spacing:.08em;text-transform:uppercase}
  .mobile-section-copy>strong{overflow:hidden;color:var(--ink);font:700 var(--oc-font-size-base)/1.25 var(--oc-font-body);text-overflow:ellipsis;white-space:nowrap}
  .mobile-section-chevron{display:grid;place-items:center;color:var(--muted);transition:transform var(--oc-duration-fast) var(--oc-ease-out),color var(--oc-duration-fast) var(--oc-ease-out)}
  .mobile-section-switcher[open] .mobile-section-chevron{transform:rotate(180deg);color:var(--brand)}
  .mobile-tabs{display:none}
  .mobile-section-switcher[open] .mobile-tabs{display:grid;gap:2px;max-height:min(56vh,500px);margin:8px 0 0;padding:6px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line-strong);border-radius:var(--oc-radius-control);background:color-mix(in srgb,var(--paper) 88%,var(--bg) 12%);box-shadow:var(--oc-shadow-md)}
  .mobile-tab-link{display:flex;align-items:center;min-width:0;min-height:40px;padding:9px 10px;border-radius:var(--oc-radius-control);color:var(--text);font:650 var(--oc-font-size-sm)/1.3 var(--oc-font-body);overflow-wrap:anywhere;transition:background var(--oc-duration-fast) var(--oc-ease-out),color var(--oc-duration-fast) var(--oc-ease-out)}
  .mobile-tab-link:hover,.mobile-tab-link:focus-visible{background:var(--paper-2);color:var(--ink);outline:0}
  .mobile-tab-link.active{background:var(--soft);color:var(--brand)}
  .sidebar-section-label{display:block;margin:0 0 14px;color:var(--muted);font:750 var(--oc-font-size-xs)/1.2 var(--oc-font-mono);letter-spacing:.08em;text-transform:uppercase}
}
@media(max-width:640px){.sidebar{width:100vw;border-right:0}}
.site-footer{border-top:1px solid var(--line);margin-top:var(--oc-space-5)}
.site-footer-inner{max-width:1780px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--oc-space-3) var(--oc-space-5);padding:26px 200px 26px 56px;color:var(--muted);font:500 var(--oc-font-size-xs)/1.6 var(--oc-font-mono)}
.site-footer-note{margin:0}
.site-footer-note a{color:var(--text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.site-footer-note a:hover{color:var(--brand)}
.site-footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.site-footer-links a{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.site-footer-links a:hover{color:var(--ink)}
.site-footer-links .icon{width:14px;height:14px;min-width:14px;max-width:14px}
@media(max-width:820px){.site-footer-inner{flex-direction:column;align-items:flex-start;padding:22px 20px 88px}}
.docs-chat-head{overflow:visible}
.docs-chat-actions{position:relative;z-index:3}
.docs-chat-icon:is(:hover,:focus-visible):not(:disabled):after{content:attr(aria-label);position:absolute;top:calc(100% + 8px);right:0;z-index:80;width:max-content;max-width:min(240px,calc(100vw - 40px));padding:7px 9px;border:1px solid var(--tooltip-border);border-radius:var(--oc-radius-control);background:var(--tooltip-bg);color:var(--tooltip-text);font:760 var(--oc-font-size-xs)/1.25 var(--oc-font-body);box-shadow:var(--shadow);pointer-events:none;white-space:nowrap}
.maturity-hero {
  display: grid;
  gap: var(--oc-space-4);
  margin: 10px 0 38px;
  padding: var(--oc-space-1) 0 26px var(--oc-space-5);
  border-bottom: 1px solid color-mix(in srgb, var(--brand) 22%, transparent);
  border-left: 3px solid var(--brand);
}

.maturity-hero-compact {
  margin-bottom: 34px;
}

.maturity-hero-title {
  max-width: 46rem;
  margin: 0;
  color: var(--ink);
  font: 750 36px / 1.08 var(--oc-font-display);
  letter-spacing: 0;
}

.maturity-hero > p:not(.maturity-kicker):not(.maturity-jump-links) {
  max-width: 58rem;
  margin: 0;
  color: var(--text);
  font: 500 var(--oc-font-size-xl) / 1.65 var(--oc-font-body);
}

.maturity-kicker {
  margin: 0;
  color: var(--brand);
  font: 750 10px / 1.3 var(--oc-font-body);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.maturity-jump-links {
  margin: 0;
  font-size: var(--oc-font-size-sm);
  line-height: 1.5;
}

.maturity-jump-links a {
  color: var(--brand);
  text-decoration: none;
}

.maturity-jump-links a:hover {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.maturity-score-stable,
.maturity-band-stable {
  color: var(--oc-status-success-fg);
}

.maturity-score-beta,
.maturity-band-beta {
  color: var(--oc-status-info-fg);
}

.maturity-score-alpha,
.maturity-band-alpha {
  color: var(--oc-status-warning-fg);
}

.maturity-score-experimental,
.maturity-band-experimental {
  color: var(--oc-status-error-fg);
}

.maturity-score-clawesome,
.maturity-band-clawesome {
  color: var(--oc-accent-secondary);
}

.maturity-level-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--oc-space-2);
  width: max-content;
  max-width: 100%;
  padding: 3px var(--oc-space-2);
  border: 1px solid color-mix(in srgb, currentColor 34%, transparent);
  border-radius: var(--oc-radius-control);
  background: color-mix(in srgb, currentColor 11%, transparent);
  color: inherit;
  font: 750 10px / 1.25 var(--oc-font-body);
  white-space: nowrap;
}

.maturity-level-code {
  font-size: 9px;
  letter-spacing: 0.04em;
  opacity: 0.72;
}

.maturity-level-experimental {
  color: var(--oc-status-error-fg);
}

.maturity-level-alpha {
  color: var(--oc-status-warning-fg);
}

.maturity-level-beta {
  color: var(--oc-status-info-fg);
}

.maturity-level-stable {
  color: var(--oc-status-success-fg);
}

.maturity-level-clawesome {
  color: var(--oc-accent-secondary);
}

.maturity-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 14px 0 20px;
  border-top: 1px solid color-mix(in srgb, var(--brand) 18%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--brand) 18%, transparent);
}

.maturity-summary-item {
  display: grid;
  gap: var(--oc-space-3);
  min-width: 0;
  padding: 18px 20px 18px 0;
}

.maturity-summary-item + .maturity-summary-item {
  padding-left: 20px;
  border-left: 1px solid color-mix(in srgb, var(--brand) 14%, transparent);
}

.maturity-summary-heading {
  display: flex;
  align-items: baseline;
  gap: 9px;
}

.maturity-summary-value {
  display: inline-block;
  color: var(--ink);
  font: 750 30px / 1 var(--oc-font-display);
}

.maturity-summary-heading > span:not(.maturity-summary-value) {
  color: var(--text);
  font: 700 var(--oc-font-size-sm) / 1.2 var(--oc-font-body);
}

.maturity-summary-bar {
  height: 7px;
  overflow: hidden;
  background: color-mix(in srgb, currentColor 14%, transparent);
}

.maturity-summary-bar span {
  display: block;
  width: calc(var(--score) * 1%);
  height: 100%;
  background: currentColor;
}

.maturity-summary-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
}

.maturity-summary-meta span:first-child {
  font-weight: 700;
}

.maturity-summary-meta span:last-child {
  opacity: 0.72;
}

.maturity-summary-meta .maturity-level-pill {
  opacity: 1;
}

.maturity-band-list {
  display: flex;
  margin: 12px 0 30px;
  border-top: 1px solid color-mix(in srgb, var(--brand) 16%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--brand) 16%, transparent);
}

.maturity-band {
  display: grid;
  flex: 1 1 0;
  gap: 3px;
  padding: 10px 12px 11px 0;
}

.maturity-band + .maturity-band {
  padding-left: 12px;
  border-left: 1px solid color-mix(in srgb, var(--brand) 12%, transparent);
}

.maturity-band-title {
  font-size: var(--oc-font-size-xs);
  font-weight: 700;
}

.maturity-band > span:last-child,
.maturity-band span {
  color: inherit;
  font-size: 11px;
  opacity: 0.72;
}

.maturity-band .maturity-level-pill,
.maturity-band .maturity-level-pill span {
  font-size: 10px;
  opacity: 1;
}

.maturity-score {
  display: grid;
  gap: 4px;
  min-width: 0;
  color: inherit;
  font-size: 11px;
  font-weight: 700;
}

.maturity-score-label {
  display: flex;
  justify-content: space-between;
  gap: 6px;
  line-height: 1.2;
}

.maturity-score-label > span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.maturity-score-label > span:last-child {
  flex: 0 0 auto;
}

.maturity-score-label .maturity-level-pill {
  gap: 4px;
  padding: 2px 6px;
  font-size: 9px;
}

.maturity-meter {
  display: inline-block;
  width: 100%;
  height: 3px;
  overflow: hidden;
  background: color-mix(in srgb, currentColor 15%, transparent);
  vertical-align: middle;
}

.maturity-meter > span {
  display: block;
  width: 0;
  height: 100%;
  background: currentColor;
}

.maturity-score-unscored,
.maturity-lts-none {
  color: inherit;
  opacity: 0.52;
}

.maturity-surface-table {
  display: grid;
  gap: 0;
  max-width: 100%;
  margin: 8px 0 22px;
}

.maturity-surface-row {
  display: grid;
  grid-template-columns: minmax(190px, 1.55fr) repeat(3, minmax(110px, 1fr)) minmax(72px, 0.55fr);
  gap: var(--oc-space-3);
  align-items: center;
  min-width: 0;
  padding: 13px 0;
  border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}

.maturity-surface-row > *,
.maturity-category-row > *,
.maturity-readiness-row > * {
  min-width: 0;
}

.maturity-surface-row-header {
  padding: 0 0 9px;
  border-top: 0;
  color: var(--muted);
  font: 750 10px / 1.2 var(--oc-font-body);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.maturity-surface-name {
  display: grid;
  gap: 3px;
  min-width: 0;
  border-bottom: 0 !important;
  text-decoration: none;
}

.maturity-surface-name:hover .maturity-surface-title {
  color: var(--brand);
}

.maturity-surface-title {
  overflow-wrap: anywhere;
  color: var(--ink);
  font: 700 var(--oc-font-size-sm) / 1.25 var(--oc-font-body);
}

.maturity-surface-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.maturity-surface-meta > span:not(.maturity-level-pill) {
  color: var(--muted);
  font-size: 11px;
}

.maturity-surface-meta .maturity-level-pill {
  opacity: 1;
}

.maturity-surface-metric {
  min-width: 0;
}

.maturity-surface-metric-label {
  display: none;
  color: var(--muted);
  font-size: 10px;
  opacity: 0.72;
}

.maturity-surface-support {
  justify-self: start;
}

.maturity-lts {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.maturity-lts::before {
  width: 6px;
  height: 6px;
  border-radius: var(--oc-radius-round);
  background: currentColor;
  content: "";
}

.maturity-lts-partial {
  color: var(--oc-status-warning-fg);
}

.maturity-lts-full {
  color: var(--oc-status-success-fg);
}

.maturity-evidence-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 14px 0 24px;
  border-top: 1px solid color-mix(in srgb, var(--brand) 16%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--brand) 16%, transparent);
}

.maturity-evidence-card {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 14px 16px 14px 0;
}

.maturity-evidence-card + .maturity-evidence-card {
  padding-left: 16px;
  border-left: 1px solid color-mix(in srgb, var(--brand) 12%, transparent);
}

.maturity-evidence-title {
  color: var(--ink);
  font: 700 var(--oc-font-size-sm) / 1.3 var(--oc-font-body);
}

.maturity-evidence-card span {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
}

.maturity-readiness-summary {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: var(--oc-font-size-xs);
}

.maturity-readiness-list,
.maturity-category-list {
  display: grid;
  max-width: 100%;
  margin: 0;
  border-top: 1px solid color-mix(in srgb, var(--brand) 14%, transparent);
}

.maturity-readiness-row {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(120px, 0.8fr) minmax(110px, 0.7fr);
  gap: 14px;
  align-items: center;
  padding: 11px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--brand) 10%, transparent);
  font-size: 11px;
}

.maturity-readiness-row-header,
.maturity-category-row-header {
  padding: 8px 0;
  color: var(--muted);
  font: 750 10px / 1.2 var(--oc-font-body);
  letter-spacing: 0.04em;
  opacity: 0.72;
  text-transform: uppercase;
}

.maturity-readiness-area,
.maturity-category-area {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.maturity-readiness-title,
.maturity-category-title {
  overflow-wrap: anywhere;
  color: var(--ink);
  font-weight: 700;
}

.maturity-readiness-status {
  color: var(--muted);
  font-size: 10px;
  opacity: 0.82;
}

.maturity-readiness-status-ready {
  color: var(--oc-status-success-fg);
}

.maturity-readiness-status-partially-reviewed {
  color: var(--oc-status-warning-fg);
}

.maturity-readiness-status-needs-review {
  color: var(--oc-status-error-fg);
}

.maturity-category-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.55fr) repeat(3, minmax(100px, 1fr)) minmax(140px, 1.2fr);
  gap: var(--oc-space-3);
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid color-mix(in srgb, var(--brand) 11%, transparent);
  font-size: 11px;
}

.maturity-category-area > span:last-child,
.maturity-category-docs {
  color: var(--muted);
  font-size: 10px;
}

.maturity-category-docs {
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.4;
}

.maturity-category-docs a {
  color: var(--brand);
  text-decoration: none;
}

.maturity-category-docs a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.maturity-level-list {
  display: grid;
  margin: 12px 0 28px;
  border-top: 1px solid color-mix(in srgb, var(--brand) 16%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--brand) 16%, transparent);
}

.maturity-level-row {
  display: grid;
  grid-template-columns: minmax(130px, 0.32fr) minmax(0, 1fr);
  gap: var(--oc-space-1) var(--oc-space-4);
  padding: 13px 0;
  border-top: 1px solid color-mix(in srgb, var(--brand) 11%, transparent);
}

.maturity-level-row:first-child {
  border-top: 0;
}

.maturity-level-title {
  grid-row: span 2;
  color: var(--ink);
  font-size: var(--oc-font-size-sm);
  font-weight: 700;
}

.maturity-level-row span,
.maturity-level-promotion {
  color: var(--muted);
  font-size: var(--oc-font-size-xs);
  line-height: 1.45;
}

.maturity-surface-link {
  display: grid;
  gap: var(--oc-space-1);
  margin: 0;
  padding: 11px 0;
  border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);
  text-decoration: none;
}

.maturity-surface-link:hover {
  color: var(--brand);
}

.maturity-surface-link .maturity-surface-title {
  font-size: var(--oc-font-size-sm);
}

.maturity-surface-link > .maturity-surface-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.maturity-surface-link > .maturity-surface-meta > span:not(.maturity-level-pill) {
  color: var(--muted);
  font-size: 11px;
}

.maturity-surface-rollup {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 14px;
  margin: 0 0 14px;
  padding: 9px 0;
  border-top: 1px solid color-mix(in srgb, var(--brand) 13%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--brand) 13%, transparent);
}

.maturity-surface-rollup > span {
  color: var(--ink);
  font-size: 11px;
  font-weight: 700;
}

@media (max-width: 960px) {
  .maturity-summary-grid,
  .maturity-evidence-grid {
    grid-template-columns: 1fr;
  }

  .maturity-summary-item,
  .maturity-summary-item + .maturity-summary-item,
  .maturity-evidence-card,
  .maturity-evidence-card + .maturity-evidence-card {
    padding: 14px 0;
    border-left: 0;
  }

  .maturity-summary-item + .maturity-summary-item,
  .maturity-evidence-card + .maturity-evidence-card {
    border-top: 1px solid color-mix(in srgb, var(--brand) 12%, transparent);
  }

  .maturity-surface-row {
    grid-template-columns: minmax(160px, 1.35fr) repeat(3, minmax(98px, 1fr)) minmax(70px, 0.5fr);
    gap: var(--oc-space-2);
  }

  .maturity-category-row {
    grid-template-columns: minmax(160px, 1.35fr) repeat(3, minmax(86px, 1fr)) minmax(110px, 1fr);
    gap: var(--oc-space-2);
  }
}

@media (max-width: 640px) {
  .maturity-hero {
    padding-left: 14px;
  }

  .maturity-hero-title {
    font-size: 30px;
  }

  .maturity-band-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .maturity-band + .maturity-band {
    padding-left: 0;
    border-left: 0;
  }

  .maturity-band:nth-child(even) {
    padding-left: 12px;
    border-left: 1px solid color-mix(in srgb, var(--brand) 12%, transparent);
  }

  .maturity-surface-row-header {
    display: none;
  }

  .maturity-surface-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 9px var(--oc-space-3);
  }

  .maturity-surface-metric {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 6px;
  }

  .maturity-surface-metric-label {
    display: block;
  }

  .maturity-surface-support {
    justify-self: end;
  }

  .maturity-readiness-row,
  .maturity-category-row {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .maturity-readiness-row-header,
  .maturity-category-row-header {
    display: none;
  }
}

