/* Uplix V1 — généré depuis tokens.json par construire_v1.py */
:root, [data-theme="light"] {
  --text-primary: #141414;
  --text-title-alt: #1D1D1D;
  --text-body: #3F3F46;
  --text-secondary: #6B7380;
  --text-muted: #8A94A6;
  --text-on-ink: #FFFFFF;
  --text-ink-muted: #B8BCC4;
  --text-gris-fonts: #4A4A4A;
  --surface-page: #FFFFFF;
  --surface-intercalaire: #EEF1F5;
  --surface-tile: #F4F5F7;
  --surface-ink: #111214;
  --surface-ink-alt: #141414;
  --surface-card: #FFFFFF;
  --surface-047-tile: rgba(255,255,255,0.14);
  --surface-068: #FFD000;
  --border-card: #E3E6EB;
  --divider: rgba(20,20,20,0.10);
  --track: #E5E8ED;
  --track-alt: #ECEEF1;
  --bar-neutral: #9AA6B8;
  --header-separator: rgba(20,20,20,0.20);
  --header-client: rgba(63,63,70,0.75);
  --switcher-bg: #F1F4FA;
  --switcher-border: rgba(20,20,20,0.06);
  --switcher-tab-inactive: #3F3F46;
  --breadcrumb-section: #0061DB;
  --breadcrumb-arrow: #3F3F46;
  --breadcrumb-subsection: #141414;
  --footer-mention: #6B7380;
  --pillar-seo: #00BB52;
  --pillar-geo: #FFCE00;
  --pillar-geo-accent: #FFD000;
  --pillar-geo-text: #D9A800;
  --pillar-data: #FF5D42;
  --brand-blue: #0061DB;
  --accent-cyan: #06B2E9;
  --accent-cyan-library: #00B4ED;
  --alert-orange: #FF671F;
  --alert-orange-number: #FF6B1F;
  --status-yes-bg: #E3F6EB;
  --status-no-bg: #FFE6DA;
  --status-unknown-bg: #ECEEF1;
  --status-unknown-fg: #6B7380;
  --pill-geo-bg: #FFF6CC;
  --pill-geo-fg: #8A6E00;
  --fil-future: #9EA6B2;
  --fil-future-ring: #DBDEE3;
  --fil-adn-active: #141414;
  --fil-adn-connector: #9EA6B2;
  --halo-blue: rgba(0,97,219,0.12);
  --halo-green: rgba(0,187,82,0.12);
  --halo-yellow: rgba(255,208,0,0.32);
  --halo-cyan: rgba(6,178,233,0.24);
  --mask-blur-fill: rgba(255,255,255,0.35);
  --browser-dot-red: #FF5E57;
  --browser-dot-yellow: #FFBD2E;
  --browser-dot-green: #29C740;
  --logo-fake-mark: #C9CED8;
  --logo-fake-text: #9EA6B2;
  --intent-bar-informational: #0061DB;
  --on-pillar: #FFFFFF;
  --on-pillar-geo: #141414;
  --breadcrumb-section-geo: #D9A800;
  --status-glyph-no: #FF671F;
  --status-glyph-yes: #00BB52;
  --media-section-inactive: #B6BDC9;
  --pill-outline-blue: #3D8BFF;
  --surface-strate-sombre: #010101;
  --text-accent-on-dark: #6AA8FF;
  --ascii-glyph-clair: #FEFEFE;
  --ascii-glyph-sombre: #5D626B;
}
[data-theme="dark"] {
  --text-primary: #FFFFFF;
  --text-title-alt: #1D1D1D;
  --text-body: rgba(255,255,255,0.72);
  --text-secondary: #8A8F98;
  --text-muted: rgba(255,255,255,0.60);
  --text-on-ink: #FFFFFF;
  --text-ink-muted: #B8BCC4;
  --text-dark-subtle: rgba(255,255,255,0.62);
  --text-gris-fonts: #4A4A4A;
  --surface-page: #000000;
  --surface-intercalaire: #EEF1F5;
  --surface-tile: #1A1C20;
  --surface-ink: #111214;
  --surface-ink-alt: #141414;
  --surface-card: #FFFFFF;
  --surface-047-tile: rgba(255,255,255,0.14);
  --surface-068: #FFD000;
  --border-card: #2A2D33;
  --divider: #2A2D33;
  --divider-hub: rgba(255,255,255,0.18);
  --track: #E5E8ED;
  --track-alt: #ECEEF1;
  --bar-neutral: #9AA6B8;
  --header-separator: rgba(255,255,255,0.25);
  --header-client: rgba(255,255,255,0.70);
  --switcher-bg: rgba(255,255,255,0.10);
  --switcher-border: rgba(255,255,255,0.10);
  --switcher-tab-inactive: rgba(255,255,255,0.62);
  --breadcrumb-section: #FFFFFF;
  --breadcrumb-arrow: rgba(255,255,255,0.62);
  --breadcrumb-subsection: #FFFFFF;
  --footer-mention: rgba(255,255,255,0.60);
  --pillar-seo: #00BB52;
  --pillar-geo: #FFCE00;
  --pillar-geo-accent: #FFD000;
  --pillar-geo-text: #FFD000;
  --pillar-data: #FF5D42;
  --brand-blue: #0061DB;
  --accent-cyan: #06B2E9;
  --accent-cyan-library: #00B4ED;
  --accent-green-dark: #00D966;
  --alert-orange: #FF671F;
  --alert-orange-number: #FF6B1F;
  --status-yes-bg: #E3F6EB;
  --status-no-bg: #FFE6DA;
  --status-unknown-bg: #ECEEF1;
  --status-unknown-fg: #6B7380;
  --pill-geo-bg: #FFF6CC;
  --pill-geo-fg: #8A6E00;
  --fil-future: #9EA6B2;
  --fil-future-ring: #DBDEE3;
  --fil-adn-active: #141414;
  --fil-adn-connector: #9EA6B2;
  --halo-blue: rgba(0,97,219,0.12);
  --halo-green: rgba(0,187,82,0.12);
  --halo-yellow: rgba(255,208,0,0.32);
  --halo-cyan: rgba(6,178,233,0.24);
  --mask-blur-fill: rgba(255,255,255,0.35);
  --browser-dot-red: #FF5E57;
  --browser-dot-yellow: #FFBD2E;
  --browser-dot-green: #29C740;
  --logo-fake-mark: #C9CED8;
  --logo-fake-text: #9EA6B2;
  --intent-bar-informational: #0061DB;
  --on-pillar: #FFFFFF;
  --on-pillar-geo: #141414;
  --breadcrumb-section-geo: #FFCE00;
  --status-glyph-no: #FF671F;
  --status-glyph-yes: #00BB52;
  --media-section-inactive: #B6BDC9;
  --pill-outline-blue: #3D8BFF;
  --block-number-inactive: #5A6270;
  --block-active-stroke: rgba(0,187,82,0.60);
  --surface-strate-sombre: #010101;
  --text-accent-on-dark: #6AA8FF;
  --ascii-glyph-clair: #FEFEFE;
  --ascii-glyph-sombre: #5D626B;
}
:root {
  --slide-width: 1920px;
  --slide-height: 1080px;
  --margin-x: 90px;
  --header-y: 36px;
  --header-height: 48px;
  --title-y: 126px;
  --subtitle-offset: 66px;
  --content-top: 255px;
  --content-top-alt: 300px;
  --content-bottom-max: 993px;
  --footer-y: 1005px;
  --footer-height: 30px;
  --gutter: 30px;
  --row-gap-signals: 9px;
  --pad-tile: 27px;
  --pad-glass-059: 36px;
  --pad-glass-015: 42px;
  --pad-card-dark: 40px;
  --pad-block-dark: 28px;
  --pad-bandeau-x: 42px;
  --pad-047-tile-x: 24px;
  --switcher-pad: 6px;
  --switcher-gap: 3px;
  --breadcrumb-gap: 10.5px;
  --fil-gap: 12px;
  --fil-connector: 21px;
  --pill-pad-y: 8px;
  --pill-pad-x: 16px;
  --etiquette-pad-left: 6px;
  --etiquette-pad-right: 18px;
  --etiquette-gap: 12px;
  --radius-glass: 24px;
  --radius-tile: 18px;
  --radius-card-dark: 30px;
  --radius-block-dark: 22px;
  --radius-bandeau: 24px;
  --radius-row: 20px;
  --radius-browser: 22.17px;
  --radius-047-tile: 19.65px;
  --radius-pill: 100px;
  --radius-switcher: 999px;
  --radius-etiquette: 72px;
  --radius-pastille: 13.5px;
  --radius-bar: 7.5px;
  --radius-ds-card: 24px;
  --radius-header-component: 5px;
  --shadow-glass: 0 20px 48px 0 rgba(26,31,64,0.10), inset 0 2px 2px 0 rgba(255,255,255,0.90);
  --shadow-soft: 0 12px 36px 0 rgba(26,38,77,0.06);
  --shadow-browser: 0 19px 50.67px 0 rgba(0,0,0,0.18);
  --shadow-panel-047: 0 18px 48px 0 rgba(0,0,0,0.18);
  --blur-glass: 35px;
  --blur-halo: 65px;
  --blur-halo-015: 55px;
  --blur-mask: 7px;
  --surface-page-gradient: linear-gradient(180deg, #000000 0%, #232323 100%);
  --surface-047: linear-gradient(150.64deg, #0A7D43 14.64%, #059E48 85.36%);
  --glass-fill: linear-gradient(141.98deg, rgba(255,255,255,0.62) 14.286%, rgba(255,255,255,0.22) 85.714%);
  --glass-stroke: linear-gradient(141.98deg, rgba(255,255,255,1) 14.286%, rgba(255,255,255,0.35) 85.714%);
  --surface-hero: linear-gradient(180deg, #CCD0D8 0%, #EEEFF1 100%);
  --font-sans: "Poppins", sans-serif;
  --font-mono: "JetBrains Mono", monospace;
  --font-mono-v2: "Roboto Mono", monospace;
}
.ty-title-slide { font-family: var(--font-sans); font-size: 45px; font-weight: 400; line-height: 56px; }
.ty-title-ds { font-family: var(--font-sans); font-size: 66px; font-weight: 400; }
.ty-title-ds-light-doc { font-family: var(--font-sans); font-size: 45px; font-weight: 300; }
.ty-intercalaire-entry { font-family: var(--font-sans); font-size: 30px; font-weight: 400; }
.ty-subtitle { font-family: var(--font-sans); font-size: 21px; font-weight: 400; }
.ty-subtitle-hub { font-family: var(--font-sans); font-size: 20px; font-weight: 400; }
.ty-body-bandeau { font-family: var(--font-sans); font-size: 21px; font-weight: 400; line-height: 30px; }
.ty-body-row { font-family: var(--font-sans); font-size: 19px; font-weight: 400; }
.ty-body-tile { font-family: var(--font-sans); font-size: 18px; font-weight: 400; }
.ty-body-card-dark { font-family: var(--font-sans); font-size: 17px; font-weight: 400; }
.ty-body-bar-label { font-family: var(--font-sans); font-size: 16.5px; font-weight: 400; }
.ty-body-047 { font-family: var(--font-sans); font-size: 16.14px; font-weight: 400; line-height: 23.4px; }
.ty-caption { font-family: var(--font-sans); font-size: 18px; font-weight: 400; }
.ty-card-title-dark { font-family: var(--font-sans); font-size: 32px; font-weight: 500; }
.ty-card-title-ink { font-family: var(--font-sans); font-size: 25px; font-weight: 500; }
.ty-card-title-intent { font-family: var(--font-sans); font-size: 24px; font-weight: 500; }
.ty-block-title-dark { font-family: var(--font-sans); font-size: 23px; font-weight: 500; }
.ty-card-title-glass { font-family: var(--font-sans); font-size: 22.5px; font-weight: 500; }
.ty-item-title-hub { font-family: var(--font-sans); font-size: 22px; font-weight: 500; }
.ty-item-title { font-family: var(--font-sans); font-size: 21px; font-weight: 500; }
.ty-value-bar { font-family: var(--font-sans); font-size: 16.5px; font-weight: 500; }
.ty-tile-047-title { font-family: var(--font-sans); font-size: 18.25px; font-weight: 600; }
.ty-etiquette { font-family: var(--font-sans); font-size: 24px; font-weight: 600; line-height: 1.48; }
.ty-kpi-xl { font-family: var(--font-sans); font-size: 78px; font-weight: 300; }
.ty-kpi-l { font-family: var(--font-sans); font-size: 48px; font-weight: 300; }
.ty-kpi-m { font-family: var(--font-sans); font-size: 36px; font-weight: 300; }
.ty-header-client { font-family: var(--font-sans); font-size: 18px; font-weight: 500; }
.ty-header-breadcrumb { font-family: var(--font-sans); font-size: 18px; font-weight: 500; }
.ty-header-tab { font-family: var(--font-sans); font-size: 16.5px; font-weight: 500; }
.ty-footer-mention { font-family: var(--font-sans); font-size: 13.5px; font-weight: 400; }
.ty-fil-label-active { font-family: var(--font-sans); font-size: 15px; font-weight: 500; }
.ty-fil-label { font-family: var(--font-sans); font-size: 15px; font-weight: 400; }
.ty-fil-number { font-family: var(--font-sans); font-size: 12.75px; font-weight: 500; }
.ty-fil-adn-label { font-family: var(--font-sans); font-size: 16.5px; font-weight: 500; }
.ty-fil-adn-number { font-family: var(--font-sans); font-size: 13.5px; font-weight: 500; }
.ty-mono-label { font-family: var(--font-mono); font-size: 15px; font-weight: 400; }
.ty-mono-label-bold { font-family: var(--font-mono); font-size: 15px; font-weight: 700; }
.ty-mono-kicker { font-family: var(--font-mono); font-size: 15px; font-weight: 400; }
.ty-mono-section-index { font-family: var(--font-mono); font-size: 16.5px; font-weight: 400; }
.ty-mono-caption { font-family: var(--font-mono); font-size: 14px; font-weight: 400; }
.ty-mono-small { font-family: var(--font-mono); font-size: 13.5px; font-weight: 400; }
.ty-mono-047-label { font-family: var(--font-mono); font-size: 14.74px; font-weight: 700; }
.ty-mono-browser-bar { font-family: var(--font-mono); font-size: 15.83px; font-weight: 400; }
.ty-kicker-v2 { font-family: var(--font-mono-v2); font-size: 18px; font-weight: 400; }
.ty-label-v2 { font-family: var(--font-mono-v2); font-size: 16.5px; font-weight: 400; }
