/* TSB design system / first page migration / v0.2 / 2026-09-07.
 * Payouts and the live map share this source. Other routes opt in after review.
 * Sources and pending choices: design-manifest.md and chaos-to-canon.md.
 * Opt-in scope prevents collision with the existing assets/tokens.css.
 */
.tsb-design-system {
  /* PRIMITIVES — public-shell.css, tokens.css, hub-v3.css, public-company.css */
  --primitive-color-ink-1000: #050505;
  --primitive-color-ink-950: #060606;
  --primitive-color-ink-900: #0b0b0b;
  --primitive-color-ink-850: #0d0d0d;
  --primitive-color-ink-800: #101010;
  --primitive-color-ink-750: #111111;
  --primitive-color-ink-700: #151515;
  --primitive-color-white: #ffffff;
  --primitive-color-text-public: #f3f4f3;
  --primitive-color-text-index: #f5f5f5;
  --primitive-color-text-app: #f0f0f0;
  --primitive-color-text-muted: #a1a1aa;
  --primitive-color-text-app-muted: #adadad;
  --primitive-color-text-dim: #71717a;
  --primitive-color-mint-500: #00f0c2;
  --primitive-color-mint-300: #36ffd8;
  --primitive-color-teal-500: #4dab9a;
  --primitive-color-teal-400: #5bc4b0;
  --primitive-color-teal-200: #9fe4d8;
  --primitive-color-teal-100: #d2fff8;
  --primitive-color-mint-active: #7ae8d2;
  --primitive-color-on-primary: #04130f;
  --primitive-color-green-500: #22c55e;
  --primitive-color-green-300: #4ade80;
  --primitive-color-red-500: #ef4444;
  --primitive-color-red-300: #f87171;
  --primitive-color-amber-500: #f59e0b;
  --primitive-color-amber-300: #f5c85c;
  --primitive-color-blue-300: #60a5fa;
  --primitive-color-rank-gold: #d8b85f;
  --primitive-color-rank-silver: #b8c5ca;
  --primitive-color-rank-bronze: #bd7e59;
  --primitive-color-rank-gold-surface: rgba(216,184,95,.055);
  --primitive-color-paper: #f6f5f1;
  --primitive-color-paper-soft: #efeee9;
  --primitive-color-paper-text: #0b0e0d;
  --primitive-color-paper-muted: #5f6662;
  --primitive-color-paper-mint: #257568;
  --primitive-color-paper-positive: #166534;
  --primitive-color-paper-negative: #991b1b;
  --primitive-color-paper-warning: #92400e;
  --primitive-color-paper-info: #1d4ed8;
  --primitive-color-media-base: #050706;
  --primitive-color-media-card: #0b0d0c;
  --primitive-color-media-raised: #101311;
  --primitive-color-line-soft: rgba(255,255,255,.065);
  --primitive-color-line: rgba(255,255,255,.105);
  --primitive-color-line-strong: rgba(255,255,255,.17);
  --primitive-color-line-paper: rgba(11,14,13,.14);
  --primitive-color-line-paper-strong: rgba(11,14,13,.3);
  --primitive-color-positive-bg: rgba(34,197,94,.1);
  --primitive-color-negative-bg: rgba(248,113,113,.12);
  --primitive-color-warning-bg: rgba(245,200,92,.12);
  --primitive-color-info-bg: rgba(96,165,250,.1);
  --primitive-app-action-bg: linear-gradient(180deg,rgba(77,171,154,.16),rgba(77,171,154,.08));
  --primitive-app-action-hover: linear-gradient(180deg,rgba(77,171,154,.24),rgba(77,171,154,.13));
  --primitive-app-action-active: rgba(77,171,154,.24);
  --primitive-app-action-border: rgba(77,171,154,.42);
  --primitive-color-accent-bg: rgba(0,240,194,.08);
  --primitive-color-control-hover: rgba(255,255,255,.04);
  --primitive-color-control-paper-hover: rgba(11,14,13,.04);
  --primitive-font-sans: 'Instrument Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --primitive-font-mono: 'DM Mono', ui-monospace, monospace;
  --primitive-font-legacy-mono: 'JetBrains Mono', ui-monospace, monospace;
  --primitive-weight-regular: 400;
  --primitive-weight-medium: 500;
  --primitive-weight-label: 600;
  --primitive-weight-editorial: 650;
  --primitive-weight-strong: 700;
  --primitive-weight-section: 720;
  --primitive-weight-display: 760;
  --primitive-weight-index: 790;
  --primitive-size-10: 10px;
  --primitive-size-11: 11px;
  --primitive-size-12: 12px;
  --primitive-size-13: 13px;
  --primitive-size-14: 14px;
  --primitive-size-15: 15px;
  --primitive-size-16: 16px;
  --primitive-size-17: 17px;
  --primitive-size-18: 18px;
  --primitive-size-20: 20px;
  --primitive-size-24: 24px;
  --primitive-size-28: 28px;
  --primitive-size-32: 32px;
  --primitive-size-38: 38px;
  --primitive-size-40: 40px;
  --primitive-size-42: 42px;
  --primitive-size-78: 78px;
  --primitive-size-46: 46px;
  --primitive-size-48: 48px;
  --primitive-size-50: 50px;
  --primitive-size-54: 54px;
  --primitive-size-58: 58px;
  --primitive-size-60: 60px;
  --primitive-space-1: 4px;
  --primitive-space-2: 8px;
  --primitive-space-3: 12px;
  --primitive-space-4: 16px;
  --primitive-space-5: 20px;
  --primitive-space-6: 24px;
  --primitive-space-7: 28px;
  --primitive-space-8: 32px;
  --primitive-space-10: 40px;
  --primitive-space-12: 48px;
  --primitive-space-16: 64px;
  --primitive-space-half: 2px;
  --primitive-space-micro: 6px;
  --primitive-space-tight: 10px;
  --primitive-space-compact: 14px;
  --primitive-space-control: 18px;
  --primitive-radius-inner: 7px;
  --primitive-radius-control: 8px;
  --primitive-radius-action: 9px;
  --primitive-radius-app: 10px;
  --primitive-radius-card: 12px;
  --primitive-radius-interactive: 14px;
  --primitive-radius-proof: 20px;
  --primitive-radius-pill: 999px;
  --primitive-line-display: .99;
  --primitive-line-index: .98;
  --primitive-line-chapter: .96;
  --primitive-line-media: .94;
  --primitive-line-title: 1.2;
  --primitive-line-body: 1.5;
  --primitive-line-reading: 1.68;
  --primitive-line-caption: 1.3;
  --primitive-line-control: 1;
  --primitive-tracking-display: -.055em;
  --primitive-tracking-heading: -.035em;
  --primitive-tracking-label: .12em;
  --primitive-stroke: 1px;
  --primitive-icon-stroke: 1.8;
  --primitive-focus-width: 2px;
  --primitive-focus-offset: 3px;
  --primitive-shadow-card: none;
  --primitive-shadow-float: 0 8px 32px rgba(0,0,0,.5);
  --primitive-shadow-cta: 0 0 24px rgba(0,240,194,.14);
  --primitive-shadow-paper: 0 4px 16px rgba(11,14,13,.08);
  --primitive-duration-fast: 120ms;
  --primitive-duration-normal: 200ms;
  --primitive-ease-out: cubic-bezier(.16,1,.3,1);
  --primitive-disabled-opacity: .45;
  /* Responsive decisions: documentation/runtime input; var() cannot be used in @media. */
  --breakpoint-narrow: 380px;
  --breakpoint-award: 520px; /* Existing award artwork changes size at this width. */
  --breakpoint-small: 640px;
  --breakpoint-medium: 860px;
  --breakpoint-wide: 1180px;
  --width-page: 1520px;
  --width-composition: 1280px;
  --width-reading: 780px;
  --width-reading-wide: 840px;
  --width-media: 1380px;
  --width-card-min: 280px;
  --width-table-min: 560px;
  --width-nav: 228px;
  --width-swatch: 180px;
  --width-mobile-preview: 390px;
  --height-swatch: 80px;
  --height-preview: 844px;
  /* SEMANTIC — usage, independent of literal color names */
  /* Select affordance: prop-segment.css:493; compact journal.css:438. */
  --select-chevron-size: var(--primitive-size-16);
  --select-chevron-stroke: 1.8;
  --select-chevron-inset: var(--primitive-space-4);
  /* Menu rhythm: journal.css:1372–1452; single-line list, not field-height rows. */
  --select-menu-min-width: 260px;
  --select-menu-max-width: 360px;
  --select-menu-gap: var(--primitive-space-micro);
  --select-menu-padding: var(--space-sm);
  --select-option-font: var(--primitive-size-14);
  --select-option-line: 1.25;
  --select-option-pad-block: var(--space-sm);
  --select-option-pad-inline: var(--primitive-space-tight);
  --select-option-radius: var(--primitive-radius-control);
  --select-menu-max-height: 260px;
  --select-menu-layer: 20;
  --select-menu-bg: var(--color-surface-card);
  --select-menu-text: var(--color-text);
  --native-color-scheme: dark;
  --color-primary: var(--primitive-color-mint-500);
  --color-primary-hover: var(--primitive-color-mint-300);
  --color-primary-active: var(--primitive-color-mint-active);
  --color-on-primary: var(--primitive-color-on-primary);
  --color-surface-page: var(--primitive-color-ink-1000);
  --color-surface-card: var(--primitive-color-ink-900);
  --color-surface-raised: var(--primitive-color-ink-800);
  --color-surface-control: var(--primitive-color-ink-700);
  --color-surface-hover: var(--primitive-color-control-hover);
  --color-text: var(--primitive-color-text-public);
  --color-text-muted: var(--primitive-color-text-muted);
  --color-text-decorative: var(--primitive-color-text-dim);
  --color-accent: var(--color-primary);
  --color-accent-soft: var(--primitive-color-accent-bg);
  --color-border: var(--primitive-color-line);
  --color-border-soft: var(--primitive-color-line-soft);
  --color-border-strong: var(--primitive-color-line-strong);
  --color-positive: var(--primitive-color-green-300);
  --color-negative: var(--primitive-color-red-300);
  --color-warning: var(--primitive-color-amber-300);
  --color-info: var(--primitive-color-blue-300);
  --color-positive-surface: var(--primitive-color-positive-bg);
  --color-negative-surface: var(--primitive-color-negative-bg);
  --color-warning-surface: var(--primitive-color-warning-bg);
  --color-info-surface: var(--primitive-color-info-bg);
  --color-focus: var(--color-primary);
  --color-partner: var(--color-accent);
  --font-family: var(--primitive-font-sans);
  --font-family-data: var(--primitive-font-mono);
  --font-h1: var(--primitive-size-58);
  --font-h2: var(--primitive-size-38);
  --font-h3: var(--primitive-size-24);
  --font-h4: var(--primitive-size-20);
  --font-h5: var(--primitive-size-18);
  --font-h6: var(--primitive-size-16);
  --font-body: var(--primitive-size-16);
  --font-body-small: var(--primitive-size-14);
  --font-caption: var(--primitive-size-12);
  --font-label: var(--primitive-size-12);
  --font-metric: var(--primitive-size-28);
  --font-weight-body: var(--primitive-weight-regular);
  --font-weight-h1: var(--primitive-weight-display);
  --font-weight-heading: var(--primitive-weight-section);
  --font-weight-label: var(--primitive-weight-label);
  --line-height-h1: var(--primitive-line-display);
  --line-height-heading: var(--primitive-line-title);
  --line-height-body: var(--primitive-line-body);
  --line-height-reading: var(--primitive-line-reading);
  --line-height-caption: var(--primitive-line-caption);
  --tracking-h1: var(--primitive-tracking-display);
  --tracking-heading: var(--primitive-tracking-heading);
  --tracking-label: var(--primitive-tracking-label);
  --space-2xs: var(--primitive-space-half);
  --space-xs: var(--primitive-space-1);
  --space-sm: var(--primitive-space-2);
  --space-md: var(--primitive-space-4);
  --space-lg: var(--primitive-space-6);
  --space-xl: var(--primitive-space-8);
  --space-2xl: var(--primitive-space-12);
  --space-section: var(--primitive-space-16);
  --space-content: var(--primitive-space-4);
  --space-card: var(--primitive-space-6);
  --space-table-block: var(--primitive-space-4);
  --space-table-inline: var(--primitive-space-5);
  --radius-card: var(--primitive-radius-card);
  --radius-control: var(--primitive-radius-control);
  --radius-action: var(--primitive-radius-action);
  --radius-inner: var(--primitive-radius-inner);
  --radius-proof: var(--primitive-radius-proof);
  --radius-pill: var(--primitive-radius-pill);
  --shadow-card: var(--primitive-shadow-card);
  --shadow-float: var(--primitive-shadow-float);
  --shadow-cta: var(--primitive-shadow-cta);
  --stroke-width: var(--primitive-stroke);
  --icon-stroke: var(--primitive-icon-stroke);
  --focus-width: var(--primitive-focus-width);
  --focus-offset: var(--primitive-focus-offset);
  --duration-fast: var(--primitive-duration-fast);
  --duration-normal: var(--primitive-duration-normal);
  --ease-out: var(--primitive-ease-out);
  --opacity-disabled: var(--primitive-disabled-opacity);
  /* COMPONENT — specific decisions, alias semantic tokens by default */
  --entity-logo-size: var(--primitive-size-46); /* Flagship table frame: one public size, including mobile. */
  --entity-logo-art: var(--primitive-size-38); /* Larger mark inside the same frame. */
  --button-font: var(--primitive-size-15);
  --button-height: var(--primitive-size-50);
  --button-pad-inline: var(--primitive-space-4);
  --button-radius: var(--radius-control);
  --button-weight: var(--primitive-weight-strong);
  --button-primary-bg: var(--color-primary);
  --button-primary-text: var(--color-on-primary);
  --button-primary-hover: var(--color-primary-hover);
  --button-primary-active: var(--color-primary-active);
  --button-primary-border: var(--color-primary);
  --button-tinted-bg: var(--color-accent-soft);
  --button-tinted-text: var(--color-accent);
  --button-tinted-border: var(--color-border-strong);
  --button-tinted-hover-bg: var(--color-surface-hover);
  --button-compact-height: var(--primitive-size-40);
  --button-compact-font: var(--primitive-size-14);
  --button-compact-pad-inline: var(--space-sm);
  --button-compact-gap: var(--space-xs);
  --card-bg: var(--color-surface-card);
  --card-border: var(--color-border);
  --card-padding: var(--space-card);
  --card-radius: var(--radius-card);
  --table-font: var(--font-body-small);
  --table-cell-block: var(--space-table-block);
  --table-cell-inline: var(--space-table-inline);
  --badge-font: var(--primitive-size-11);
  --badge-padding-block: var(--space-xs);
  --badge-padding-inline: var(--space-sm);
  --badge-radius: var(--radius-pill);
  --disclosure-font: var(--font-body-small);
  --disclosure-bg: var(--color-surface-raised);
  --disclosure-icon-size: var(--primitive-size-18);
  --prop-page-nav-reserve: calc(var(--primitive-space-16) + var(--primitive-space-12));
  --prop-page-nav-reserve-small: calc(var(--primitive-space-16) + var(--primitive-space-6));
  --prop-hero-padding-start: var(--primitive-space-6);
  --hero-font: var(--font-h1);
  --hero-line: var(--line-height-h1);
  --hero-weight: var(--font-weight-h1);
  --hero-padding: var(--space-2xl);
  --faq-padding: var(--space-md);
  --fact-list-min-column: var(--width-swatch);
  --compact-offer-icon-size: var(--primitive-size-32);
  --compact-offer-icon-padding: var(--space-sm);
  --compact-offer-min-height: var(--primitive-size-78);
  --field-height: var(--primitive-size-54);
  --field-font: var(--font-body);
  --metric-card-padding: var(--primitive-space-4) var(--primitive-space-5);
  --button-hero-height: var(--primitive-size-60);
  --button-hero-radius: var(--radius-action);
  --page-hero-min-height: min(620px,70vh);
  /* Decision-directory record: identity + fit + facts + action + evidence. */
  --record-surface: var(--color-surface-card);
  --record-surface-hover: var(--color-surface-hover);
  --record-surface-open: var(--color-surface-raised);
  --record-border: var(--color-border);
  --record-border-strong: var(--color-border-strong);
  --record-identity-min-width: 180px;
  --record-identity-width: 240px;
  --record-fit-width: 108px;
  --record-facts-min-width: 420px;
  --record-action-min-width: 220px;
  --record-commercial-width: 210px;
  --record-main-padding: var(--space-md);
  --record-evidence-padding: var(--space-sm) var(--space-md);
  --record-detail-padding: var(--space-md);
  --record-radius: var(--radius-card);
  --record-min-height: 144px;
  --record-hover-lift: -1px;
  --record-status-width: 126px;
  --record-rule-link-min-height: 112px;
  --record-note-label-min-width: var(--width-swatch);
  --filter-menu-width: 520px;
  --filter-menu-columns: 3;
  --filter-chip-height: var(--primitive-size-32);
  --filter-search-min-width: 300px;
  --sort-control-width: 220px;
  --sort-control-max-width: 260px;
  --load-more-control-min-width: 260px;
  --segment-nav-height: var(--primitive-size-50);
  --segment-nav-item-min-width: 124px;
  /* Comparison ledger: dense evidence tables that become flat records below wide. */
  --comparison-ledger-min-width: 1120px;
  --comparison-identity-width: 220px;
  --comparison-model-width: 150px;
  --comparison-loss-width: 180px;
  --comparison-drawdown-width: 180px;
  --comparison-evidence-width: 190px;
  --comparison-actions-width: 210px;
  --comparison-cell-padding: var(--space-lg) var(--space-md);
  --comparison-row-min-height: 156px;
  --comparison-mobile-gap: var(--space-lg);
  --comparison-mobile-section-gap: var(--space-md);
  --comparison-spread-identity-width: 210px;
  --comparison-spread-market-width: 180px;
  --comparison-spread-lens-width: 180px;
  --comparison-spread-check-width: 250px;
  --comparison-spread-evidence-width: 180px;
  --comparison-spread-actions-width: 220px;
  /* Ranking ledger: preserves the flagship seven-zone scan at wide desktop. */
  --ranking-ledger-min-width: 1320px;
  --ranking-identity-width: 300px;
  --ranking-fit-width: 110px;
  --ranking-limits-width: 280px;
  --ranking-platforms-width: 140px;
  --ranking-scale-width: 150px;
  --ranking-offer-width: 170px;
  --ranking-actions-width: 180px;
  --ranking-cell-padding: var(--space-lg) var(--space-md);
  --ranking-row-min-height: 132px;
  --ranking-record-columns: minmax(0,1.15fr) minmax(0,.85fr);
  --ranking-record-mobile-columns: repeat(2,minmax(0,1fr));
  --ranking-fit-tile-size: var(--space-section);
  --ranking-platform-mark-size: var(--primitive-size-38);
  --ranking-platform-art-size: var(--primitive-size-28);
  --ranking-hero-columns: minmax(0,1.16fr) minmax(420px,.84fr);
  --ranking-market-columns: repeat(3,minmax(0,1fr));
  --ranking-discovery-columns: repeat(2,minmax(0,1fr));
  --ranking-editorial-columns: repeat(2,minmax(0,1fr));
  --ranking-sticky-offset: 112px;
  --ranking-rank-first: var(--primitive-color-rank-gold);
  --ranking-rank-second: var(--primitive-color-rank-silver);
  --ranking-rank-third: var(--primitive-color-rank-bronze);
  --ranking-first-surface: var(--primitive-color-rank-gold-surface);
  --guide-ledger-columns-wide: var(--primitive-size-32) minmax(128px,.42fr) minmax(160px,.58fr) minmax(220px,1fr) auto;
  --guide-ledger-columns-medium: var(--primitive-size-32) minmax(120px,.4fr) minmax(0,.6fr);
  --spread-hero-columns: minmax(0,1.12fr) minmax(var(--width-card-min),.88fr);
  --spread-method-columns: minmax(0,.9fr) minmax(0,1.1fr);
  --spread-verification-columns: minmax(var(--width-card-min),.7fr) minmax(0,1.3fr);
  --density-regular: 1;
  --density-compact: .875;
  --density: var(--density-regular);
  /* Protected expressive variants — never flatten these into one H1. */
  --display-app: clamp(24px,1.45vw,28px);
  --display-index: clamp(60px,5vw,76px);
  --display-about: clamp(58px,4.5vw,68px);
  --display-media: clamp(46px,5.1vw,72px);
  --display-chapter: clamp(52px,4.1vw,64px);
  --space-index-major: clamp(144px,9.5vw,168px);
  --space-index-standard: clamp(96px,7vw,120px);
  --space-company-section: clamp(80px,6vw,96px);
}
/* Density is not a global transform: selected roles change explicitly. */
.tsb-design-system[data-density="compact"] {
  --density: var(--density-compact);
  --entity-logo-size: var(--primitive-size-38);
  --entity-logo-art: calc(var(--primitive-size-38) - var(--primitive-space-2));
  --font-h1: var(--display-app);
  --font-weight-h1: var(--primitive-weight-editorial);
  --font-h2: var(--primitive-size-20);
  --font-h3: var(--primitive-size-18);
  --font-h4: var(--primitive-size-16);
  --font-h5: var(--primitive-size-15);
  --font-h6: var(--primitive-size-14);
  --font-body: var(--primitive-size-15);
  --font-body-small: var(--primitive-size-14);
  --font-caption: var(--primitive-size-13);
  --font-label: var(--primitive-size-12);
  --font-metric: var(--primitive-size-24);
  --line-height-h1: var(--primitive-line-control);
  --space-content: var(--primitive-space-tight);
  --space-card: var(--primitive-space-compact);
  --space-table-block: var(--primitive-space-tight);
  --space-table-inline: var(--primitive-space-compact);
  --radius-card: var(--primitive-radius-app);
  --radius-control: var(--primitive-radius-app);
  --button-height: var(--primitive-size-42);
  --button-font: var(--primitive-size-14);
  --field-height: var(--primitive-size-42);
  --hero-padding: var(--space-lg);
  --faq-padding: var(--primitive-space-3);
}
.tsb-design-system[data-theme="app"] {
  --color-primary: var(--primitive-color-teal-400);
  --color-primary-hover: var(--primitive-color-teal-200);
  --color-primary-active: var(--primitive-color-teal-500);
  --color-surface-card: var(--primitive-color-ink-850);
  --color-text: var(--primitive-color-text-app);
  --color-text-muted: var(--primitive-color-text-app-muted);
  --color-accent: var(--primitive-color-teal-500);
  --button-primary-bg: var(--primitive-app-action-bg);
  --button-primary-hover: var(--primitive-app-action-hover);
  --button-primary-active: var(--primitive-app-action-active);
  --button-primary-text: var(--primitive-color-teal-200);
  --button-primary-border: var(--primitive-app-action-border);
  --shadow-cta: none;
}
.tsb-design-system[data-theme="paper"] {
  --native-color-scheme: light;
  --color-surface-page: var(--primitive-color-paper);
  --color-surface-card: var(--primitive-color-white);
  --color-surface-raised: var(--primitive-color-paper-soft);
  --color-surface-control: var(--primitive-color-white);
  --color-surface-hover: var(--primitive-color-control-paper-hover);
  --color-text: var(--primitive-color-paper-text);
  --color-text-muted: var(--primitive-color-paper-muted);
  --color-primary: var(--primitive-color-paper-mint);
  --color-primary-hover: var(--primitive-color-paper-text);
  --color-primary-active: var(--primitive-color-paper-muted);
  --color-on-primary: var(--primitive-color-white);
  --color-border: var(--primitive-color-line-paper);
  --color-border-soft: var(--primitive-color-line-paper);
  --color-border-strong: var(--primitive-color-line-paper-strong);
  --color-positive: var(--primitive-color-paper-positive);
  --color-negative: var(--primitive-color-paper-negative);
  --color-warning: var(--primitive-color-paper-warning);
  --color-info: var(--primitive-color-paper-info);
  --shadow-float: var(--primitive-shadow-paper);
  --shadow-cta: none;
}
.tsb-design-system[data-theme="media"] {
  --color-surface-page: var(--primitive-color-media-base);
  --color-surface-card: var(--primitive-color-media-card);
  --color-surface-raised: var(--primitive-color-media-raised);
}

.tsb-design-system[data-viewport="small"]:not([data-density="compact"]) {
  --font-h1: var(--primitive-size-40);
  --hero-padding: var(--space-lg);
}

/* Rich offer roles: hub-v3.css 612–1013. Keep character; do not flatten to ds-card.
   Public surfaces/geometry retained; text uses readable semantic roles (review required). */
.tsb-design-system {
 --offer-surface: #0c0d0d;
 --offer-featured-surface: #0c0e0e;
 --offer-code-surface: rgba(255,255,255,.018);
 --offer-partner-border: rgba(0,240,194,.34);
 --offer-featured-border: rgba(0,240,194,.42);
 --offer-padding: var(--primitive-space-control);
 --offer-logo-supporting: 56px;
 --offer-logo-featured: 68px;
 --offer-title-supporting: 16.5px;
 --offer-title-featured: 21px;
 --offer-weight: 680;
 --offer-primary-height: 78px;
 --offer-flag-height: 34px;
 --offer-discount-featured: clamp(30px,2.6vw,38px);
 --offer-public-stage-columns: minmax(0,1.18fr) minmax(0,1.82fr);
 --offers-hero-columns: minmax(0,1.16fr) minmax(360px,.84fr);
 --offers-editorial-columns: minmax(300px,.78fr) minmax(0,1.22fr);
 --offer-public-brief-columns: minmax(180px,.72fr) minmax(0,1.28fr);
 --offer-public-mid-columns: minmax(180px,.66fr) minmax(0,1.34fr);
 --offer-public-ledger-columns: minmax(200px,240px) minmax(230px,.82fr) minmax(360px,1.35fr) 180px;
 --offer-public-lead-value: clamp(42px,3.8vw,58px);
 --offer-public-brief-value: clamp(26px,2.2vw,34px);
 --offer-public-code-width: 184px;
 --offer-public-row-min-height: 154px;
 --faq-control-min-height: 58px;
}
.tsb-design-system[data-density="compact"] {
 --offer-padding: var(--primitive-space-compact);
 --offer-logo-supporting: var(--primitive-size-40);
 --offer-logo-featured: var(--primitive-size-54);
 --offer-title-supporting: var(--primitive-size-14);
 --offer-title-featured: var(--primitive-size-18);
 --offer-discount-featured: var(--primitive-size-28);
 --offer-primary-height: var(--primitive-size-60);
 --compact-offer-icon-size: var(--primitive-size-28);
 --compact-offer-icon-padding: var(--space-xs);
 --compact-offer-min-height: var(--primitive-size-60);
}
.tsb-design-system[data-theme="paper"] {
 --offer-surface: var(--color-surface-card);
 --offer-featured-surface: var(--color-surface-raised);
 --offer-code-surface: var(--color-surface-control);
 --offer-partner-border: var(--color-border-strong);
 --offer-featured-border: var(--color-accent);
}
.tsb-design-system[data-theme="app"] {
 --offer-partner-border: var(--primitive-app-action-border);
 --offer-featured-border: var(--primitive-app-action-border);
}

/* Preserved prop shell roles — migrate by component, do not flatten into the palette. */
.tsb-design-system {
  --award-tooltip-weight: 650;
  --prop-footer-secondary-weight: 680;
  --award-layer: 100000;
  --prop-footer-margin: clamp(18px, 2.5vw, 36px);
  --prop-footer-hero-height: clamp(210px, 18vw, 240px);
  --prop-footer-space-start: clamp(34px, 4vw, 46px);
  --prop-footer-space-end: clamp(34px, 4vw, 44px);
  --prop-footer-action-border: rgba(0,240,194,.72);
  --prop-footer-action-border-hover: rgba(0,240,194,.88);
  --prop-footer-secondary-border-hover: rgba(0,240,194,.46);
  --prop-footer-secondary-border: rgba(255,255,255,.16);
  --prop-footer-secondary-bg: rgba(255,255,255,.025);
  --prop-footer-secondary-text: rgba(245,245,245,.86);
  --prop-footer-action-text: #050507;
  --award-group-gap: 6px;
  --award-offset-inline: -5px;
  --award-offset-block: calc(var(--space-sm) * -1);
  --award-logo-size: 24px;
  --award-shadow: drop-shadow(0 3px 4px rgba(0,0,0,.78));
  --award-shadow-hover: drop-shadow(0 5px 7px rgba(0,0,0,.88));
  --award-ink: #bdd8cd;
  --award-ink-gold: #d2b36c;
  --award-ink-neutral: #b7c3c8;
  --award-tooltip-max-width: calc(100vw - var(--primitive-size-24));
  --award-tooltip-columns: 30px minmax(0,1fr);
  --award-tooltip-gap: 8px;
  --award-tooltip-padding: 6px 11px 6px 6px;
  --award-tooltip-radius: var(--radius-lg);
  --award-tooltip-mark-size: 30px;
  --award-tooltip-border: var(--stroke-width) solid rgba(255,255,255,.16);
  --award-tooltip-bg: rgba(17,20,18,.96);
  --award-tooltip-shadow: 0 18px 44px rgba(0,0,0,.58), 0 6px 14px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.07), 0 0 0 1px rgba(210,179,108,.07);
  --award-tooltip-text: #f3f7f5;
  --award-transition: filter 160ms ease, transform 120ms ease-out;
  --award-focus-outline: var(--focus-width) solid currentColor;
}
