/* FLIQ Corporate Identity 7.1 — Impact Edition
   Production aliases intentionally repair source contrast through existing CI primitives. */

@font-face {
  font-family: "Sora";
  src: url("./assets/ci-7.1/fonts/Sora-Variable.ttf") format("truetype-variations");
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("./assets/ci-7.1/fonts/Inter-Variable.ttf") format("truetype-variations");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  color-scheme: light;

  --fliq-ink-950: #07110f;
  --fliq-ink-900: #0e1513;
  --fliq-ink-800: #1c2522;
  --fliq-ink-700: #303a36;
  --fliq-ink-600: #4a5652;
  --fliq-ink-500: #66716d;
  --fliq-mist-300: #c4ceca;
  --fliq-mist-200: #d9e0dd;
  --fliq-mist-100: #edf1ef;
  --fliq-mist-50: #f6f8f7;
  --fliq-white: #ffffff;
  --fliq-mint-700: #007a5e;
  --fliq-mint-600: #00a87a;
  --fliq-mint-500: #00c98f;
  --fliq-mint-400: #2ae6af;
  --fliq-mint-100: #bdf6e3;
  --fliq-mint-50: #e9fff7;
  --fliq-status-success-indicator: #0f8f65;
  --fliq-status-warning-indicator: #a85f00;
  --fliq-status-danger-indicator: #c74343;
  --fliq-status-info-indicator: #246bce;

  --fliq-canvas: var(--fliq-mist-50);
  --fliq-surface: var(--fliq-white);
  --fliq-surface-raised: var(--fliq-white);
  --fliq-surface-muted: var(--fliq-mist-100);
  --fliq-text-primary: var(--fliq-ink-950);
  --fliq-text-secondary: var(--fliq-ink-600);
  --fliq-text-tertiary: var(--fliq-ink-500);
  --fliq-border-subtle: var(--fliq-mist-200);
  --fliq-border-control: var(--fliq-ink-500);
  --fliq-primary-action-bg: var(--fliq-ink-950);
  --fliq-primary-action-fg: var(--fliq-white);
  --fliq-focus: var(--fliq-mint-700);
  --fliq-brand-accent: var(--fliq-mint-700);
  --fliq-status-surface: var(--fliq-mist-50);
  --fliq-status-success-fg: var(--fliq-mint-700);
  --fliq-status-warning-fg: var(--fliq-status-warning-indicator);
  --fliq-status-danger-fg: var(--fliq-status-danger-indicator);
  --fliq-status-info-fg: var(--fliq-status-info-indicator);

  /* Fixed inverse/shell aliases for dark chrome embedded in otherwise light views. */
  --fliq-ink-surface: var(--fliq-ink-950);
  --fliq-ink-surface-muted: var(--fliq-ink-900);
  --fliq-ink-surface-raised: var(--fliq-ink-800);
  --fliq-ink-boundary: var(--fliq-ink-700);
  --fliq-inverse-text-primary: var(--fliq-mist-50);
  --fliq-inverse-text-secondary: var(--fliq-mist-300);
  --fliq-inverse-boundary: color-mix(in srgb, var(--fliq-mist-50) 22%, transparent);
  --fliq-overlay-scrim: color-mix(in srgb, var(--fliq-ink-950) 72%, transparent);
  --fliq-overlay-scrim-soft: color-mix(in srgb, var(--fliq-ink-950) 48%, transparent);
  --fliq-export-surface: var(--fliq-white);
  --fliq-export-ink: var(--fliq-ink-950);

  --fliq-font-display: "Sora", Arial, sans-serif;
  --fliq-font-ui: "Inter", Arial, sans-serif;
  --fliq-font-weight-regular: 400;
  --fliq-font-weight-semibold: 600;
  --fliq-font-weight-bold: 700;
  --fliq-font-weight-extrabold: 800;
  --fliq-type-meta-size: 12px;
  --fliq-type-meta-line: 16px;
  --fliq-type-label-size: 14px;
  --fliq-type-label-line: 20px;
  --fliq-type-body-size: 16px;
  --fliq-type-body-line: 24px;
  --fliq-type-section-size: 20px;
  --fliq-type-section-line: 26px;
  --fliq-type-h3-size: 24px;
  --fliq-type-h3-line: 30px;
  --fliq-type-h2-size: 32px;
  --fliq-type-h2-line: 38px;
  --fliq-type-display-size: clamp(44px, 5vw, 72px);
  --fliq-type-display-line: 0.96;
  --fliq-type-metric-size: 40px;
  --fliq-type-metric-line: 44px;

  --fliq-space-4: 4px;
  --fliq-space-8: 8px;
  --fliq-space-12: 12px;
  --fliq-space-16: 16px;
  --fliq-space-20: 20px;
  --fliq-space-24: 24px;
  --fliq-space-32: 32px;
  --fliq-space-40: 40px;
  --fliq-space-48: 48px;
  --fliq-space-64: 64px;
  --fliq-space-80: 80px;
  --fliq-space-96: 96px;
  --fliq-radius-control: 12px;
  --fliq-radius-card: 20px;
  --fliq-radius-panel: 28px;
  --fliq-radius-pill: 999px;
  --fliq-grid-columns-desktop: 12;
  --fliq-grid-columns-tablet: 8;
  --fliq-grid-columns-mobile: 4;
  --fliq-content-max: 1440px;
  --fliq-target-min: 44px;
  --fliq-target-workout: 56px;

  --fliq-motion-micro: 140ms;
  --fliq-motion-standard: 220ms;
  --fliq-motion-navigation: 320ms;
  --fliq-ease-enter: cubic-bezier(0.2, 0.8, 0.2, 1);
  --fliq-ease-exit: cubic-bezier(0.4, 0, 1, 1);

  --fliq-gradient-brand: linear-gradient(135deg, #007a5e 0%, #2ae6af 100%);
  --fliq-gradient-ink: linear-gradient(135deg, #07110f 0%, #1c2522 100%);
  --fliq-gradient-pearl: linear-gradient(180deg, #ffffff 0%, #d9e0dd 100%);
  --fliq-shadow-xs: 0 1px 2px rgba(7, 17, 15, 0.06);
  --fliq-shadow-sm: 0 4px 12px rgba(7, 17, 15, 0.08);
  --fliq-shadow-md: 0 12px 28px rgba(7, 17, 15, 0.12);
  --fliq-shadow-lg: 0 24px 56px rgba(7, 17, 15, 0.16);
  --fliq-shadow-logo: 0 3px 10px rgba(7, 17, 15, 0.18);
  --fliq-shadow-app-icon: 0 20px 56px rgba(7, 17, 15, 0.28);

  --fliq-product-vivid: var(--fliq-mint-400);
  --fliq-product-text-on-light: var(--fliq-mint-700);
  --fliq-product-tint-light: var(--fliq-mint-50);
  --fliq-product-tint-dark: #0d2a22;
  --fliq-product-on-vivid: var(--fliq-ink-950);
  --fliq-product-gradient: var(--fliq-gradient-brand);
  --fliq-product-accent: var(--fliq-product-text-on-light);
  --fliq-product-tint: var(--fliq-product-tint-light);

  --fliq-workspace-vivid: #45b7ff;
  --fliq-workspace-text-on-light: #006b8f;
  --fliq-workspace-tint-light: #eaf7ff;
  --fliq-workspace-tint-dark: #102b3a;
  --fliq-workspace-on-vivid: var(--fliq-ink-950);
  --fliq-workspace-gradient: linear-gradient(135deg, #006b8f 0%, #45b7ff 100%);
  --fliq-workspace-accent: var(--fliq-workspace-text-on-light);
  --fliq-workspace-tint: var(--fliq-workspace-tint-light);

  /* Approved primary-training-type palette. Keep this mapping identical in every app. */
  --fliq-training-type-bmx-track-vivid: #c0a6e8;
  --fliq-training-type-bmx-track-text-on-light: #7251a2;
  --fliq-training-type-bmx-track-tint-light: #f2edf8;
  --fliq-training-type-bmx-track-tint-dark: #292133;
  --fliq-training-type-bmx-sprint-wattbike-vivid: #a6b2e8;
  --fliq-training-type-bmx-sprint-wattbike-text-on-light: #4f5f9e;
  --fliq-training-type-bmx-sprint-wattbike-tint-light: #eef0f8;
  --fliq-training-type-bmx-sprint-wattbike-tint-dark: #222837;
  --fliq-training-type-wattbike-vivid: #80b8d9;
  --fliq-training-type-wattbike-text-on-light: #2e6f99;
  --fliq-training-type-wattbike-tint-light: #eaf2f7;
  --fliq-training-type-wattbike-tint-dark: #1b2c36;
  --fliq-training-type-gym-vivid: #cea2bf;
  --fliq-training-type-gym-text-on-light: #80526f;
  --fliq-training-type-gym-tint-light: #f6eef3;
  --fliq-training-type-gym-tint-dark: #2e222a;
  --fliq-training-type-endurance-vivid: #7cc1b7;
  --fliq-training-type-endurance-text-on-light: #2e756d;
  --fliq-training-type-endurance-tint-light: #eaf4f2;
  --fliq-training-type-endurance-tint-dark: #1a2d2b;
  --fliq-training-type-athletics-vivid: #a5bac8;
  --fliq-training-type-athletics-text-on-light: #566e7f;
  --fliq-training-type-athletics-tint-light: #eef2f5;
  --fliq-training-type-athletics-tint-dark: #202a31;
  --fliq-training-type-other-vivid: var(--fliq-mist-300);
  --fliq-training-type-other-text-on-light: var(--fliq-ink-600);
  --fliq-training-type-other-tint-light: var(--fliq-mist-100);
  --fliq-training-type-other-tint-dark: var(--fliq-ink-800);
  --fliq-training-type-bmx-track-accent: var(--fliq-training-type-bmx-track-text-on-light);
  --fliq-training-type-bmx-track-tint: var(--fliq-training-type-bmx-track-tint-light);
  --fliq-training-type-bmx-sprint-wattbike-accent: var(--fliq-training-type-bmx-sprint-wattbike-text-on-light);
  --fliq-training-type-bmx-sprint-wattbike-tint: var(--fliq-training-type-bmx-sprint-wattbike-tint-light);
  --fliq-training-type-wattbike-accent: var(--fliq-training-type-wattbike-text-on-light);
  --fliq-training-type-wattbike-tint: var(--fliq-training-type-wattbike-tint-light);
  --fliq-training-type-gym-accent: var(--fliq-training-type-gym-text-on-light);
  --fliq-training-type-gym-tint: var(--fliq-training-type-gym-tint-light);
  --fliq-training-type-endurance-accent: var(--fliq-training-type-endurance-text-on-light);
  --fliq-training-type-endurance-tint: var(--fliq-training-type-endurance-tint-light);
  --fliq-training-type-athletics-accent: var(--fliq-training-type-athletics-text-on-light);
  --fliq-training-type-athletics-tint: var(--fliq-training-type-athletics-tint-light);
  --fliq-training-type-other-accent: var(--fliq-training-type-other-text-on-light);
  --fliq-training-type-other-tint: var(--fliq-training-type-other-tint-light);
}

[data-fliq-product="training-hub"] {
  --fliq-product-vivid: #2ae6af;
  --fliq-product-text-on-light: #007a5e;
  --fliq-product-tint-light: #e9fff7;
  --fliq-product-tint-dark: #0d2a22;
  --fliq-product-gradient: linear-gradient(135deg, #007a5e 0%, #2ae6af 100%);
}

[data-fliq-product="planiq"] {
  --fliq-product-vivid: #c3a6ff;
  --fliq-product-text-on-light: #6e47c5;
  --fliq-product-tint-light: #f4f0ff;
  --fliq-product-tint-dark: #231b3a;
  --fliq-product-gradient: linear-gradient(135deg, #6e47c5 0%, #c3a6ff 100%);
}

[data-fliq-product="timingiq"] {
  --fliq-product-vivid: #78a2ff;
  --fliq-product-text-on-light: #244eba;
  --fliq-product-tint-light: #eef3ff;
  --fliq-product-tint-dark: #152343;
  --fliq-product-gradient: linear-gradient(135deg, #244eba 0%, #78a2ff 100%);
}

[data-fliq-product="raceiq"] {
  --fliq-product-vivid: #ff8f82;
  --fliq-product-text-on-light: #b73528;
  --fliq-product-tint-light: #fff1ef;
  --fliq-product-tint-dark: #3a1c1a;
  --fliq-product-gradient: linear-gradient(135deg, #b73528 0%, #ff8f82 100%);
}

[data-fliq-product="easy-timing"] {
  --fliq-product-vivid: #52dfff;
  --fliq-product-text-on-light: #006e86;
  --fliq-product-tint-light: #eafbff;
  --fliq-product-tint-dark: #102f37;
  --fliq-product-gradient: linear-gradient(135deg, #006e86 0%, #52dfff 100%);
}

[data-fliq-product="gateiq"] {
  --fliq-product-vivid: #e4c064;
  --fliq-product-text-on-light: #7d5a00;
  --fliq-product-tint-light: #f7f2e3;
  --fliq-product-tint-dark: #2e2715;
  --fliq-product-gradient: linear-gradient(135deg, #7d5a00 0%, #e4c064 100%);
}

[data-fliq-workspace="wahoo"] {
  --fliq-workspace-vivid: #45b7ff;
  --fliq-workspace-text-on-light: #006b8f;
  --fliq-workspace-tint-light: #eaf7ff;
  --fliq-workspace-tint-dark: #102b3a;
  --fliq-workspace-gradient: linear-gradient(135deg, #006b8f 0%, #45b7ff 100%);
}

[data-fliq-workspace="wattbike"] {
  --fliq-workspace-vivid: #ffb866;
  --fliq-workspace-text-on-light: #8a4b00;
  --fliq-workspace-tint-light: #fff5e8;
  --fliq-workspace-tint-dark: #342510;
  --fliq-workspace-gradient: linear-gradient(135deg, #8a4b00 0%, #ffb866 100%);
}

[data-fliq-workspace="gymaware"] {
  --fliq-workspace-vivid: #b6e83a;
  --fliq-workspace-text-on-light: #4d6b00;
  --fliq-workspace-tint-light: #f4fbdd;
  --fliq-workspace-tint-dark: #22300d;
  --fliq-workspace-gradient: linear-gradient(135deg, #4d6b00 0%, #b6e83a 100%);
}

[data-training-type="bmx_track"] {
  --fliq-training-type-accent: var(--fliq-training-type-bmx-track-accent);
  --fliq-training-type-tint: var(--fliq-training-type-bmx-track-tint);
  --fliq-training-type-marker-width: 10px;
  --fliq-training-type-marker-height: 10px;
  --fliq-training-type-marker-radius: 2px;
  --fliq-training-type-marker-rotation: 0deg;
  --fliq-training-type-marker-fill: var(--fliq-training-type-accent);
  --fliq-training-type-marker-border-style: solid;
}

[data-training-type="bmx_sprint_wattbike"] {
  --fliq-training-type-accent: var(--fliq-training-type-bmx-sprint-wattbike-accent);
  --fliq-training-type-tint: var(--fliq-training-type-bmx-sprint-wattbike-tint);
  --fliq-training-type-marker-width: 10px;
  --fliq-training-type-marker-height: 10px;
  --fliq-training-type-marker-radius: 999px;
  --fliq-training-type-marker-rotation: 0deg;
  --fliq-training-type-marker-fill: var(--fliq-training-type-accent);
  --fliq-training-type-marker-border-style: solid;
}

[data-training-type="wattbike"] {
  --fliq-training-type-accent: var(--fliq-training-type-wattbike-accent);
  --fliq-training-type-tint: var(--fliq-training-type-wattbike-tint);
  --fliq-training-type-marker-width: 14px;
  --fliq-training-type-marker-height: 6px;
  --fliq-training-type-marker-radius: 999px;
  --fliq-training-type-marker-rotation: 0deg;
  --fliq-training-type-marker-fill: var(--fliq-training-type-accent);
  --fliq-training-type-marker-border-style: solid;
}

[data-training-type="gym"] {
  --fliq-training-type-accent: var(--fliq-training-type-gym-accent);
  --fliq-training-type-tint: var(--fliq-training-type-gym-tint);
  --fliq-training-type-marker-width: 8px;
  --fliq-training-type-marker-height: 8px;
  --fliq-training-type-marker-radius: 2px;
  --fliq-training-type-marker-rotation: 45deg;
  --fliq-training-type-marker-fill: var(--fliq-training-type-accent);
  --fliq-training-type-marker-border-style: solid;
}

[data-training-type="endurance"] {
  --fliq-training-type-accent: var(--fliq-training-type-endurance-accent);
  --fliq-training-type-tint: var(--fliq-training-type-endurance-tint);
  --fliq-training-type-marker-width: 5px;
  --fliq-training-type-marker-height: 12px;
  --fliq-training-type-marker-radius: 999px;
  --fliq-training-type-marker-rotation: 0deg;
  --fliq-training-type-marker-fill: var(--fliq-training-type-accent);
  --fliq-training-type-marker-border-style: solid;
}

[data-training-type="athletics"] {
  --fliq-training-type-accent: var(--fliq-training-type-athletics-accent);
  --fliq-training-type-tint: var(--fliq-training-type-athletics-tint);
  --fliq-training-type-marker-width: 12px;
  --fliq-training-type-marker-height: 5px;
  --fliq-training-type-marker-radius: 2px;
  --fliq-training-type-marker-rotation: 0deg;
  --fliq-training-type-marker-fill: var(--fliq-training-type-accent);
  --fliq-training-type-marker-border-style: solid;
}

[data-training-type="other"] {
  --fliq-training-type-accent: var(--fliq-training-type-other-accent);
  --fliq-training-type-tint: var(--fliq-training-type-other-tint);
  --fliq-training-type-marker-width: 10px;
  --fliq-training-type-marker-height: 10px;
  --fliq-training-type-marker-radius: 2px;
  --fliq-training-type-marker-rotation: 0deg;
  --fliq-training-type-marker-fill: transparent;
  --fliq-training-type-marker-border-style: dashed;
}

[data-fliq-theme="dark"],
.fliq-theme-dark {
  color-scheme: dark;
  --fliq-canvas: var(--fliq-ink-950);
  --fliq-surface: var(--fliq-ink-900);
  --fliq-surface-raised: var(--fliq-ink-800);
  --fliq-surface-muted: var(--fliq-ink-800);
  --fliq-text-primary: var(--fliq-mist-50);
  --fliq-text-secondary: var(--fliq-mist-300);
  --fliq-text-tertiary: var(--fliq-mist-300);
  --fliq-border-subtle: var(--fliq-ink-700);
  --fliq-border-control: var(--fliq-ink-500);
  --fliq-primary-action-bg: var(--fliq-mist-50);
  --fliq-primary-action-fg: var(--fliq-ink-950);
  --fliq-focus: var(--fliq-mint-400);
  --fliq-brand-accent: var(--fliq-mint-400);
  --fliq-status-surface: var(--fliq-ink-800);
  --fliq-status-success-fg: var(--fliq-mist-50);
  --fliq-status-warning-fg: var(--fliq-mist-50);
  --fliq-status-danger-fg: var(--fliq-mist-50);
  --fliq-status-info-fg: var(--fliq-mist-50);
  --fliq-product-accent: var(--fliq-product-vivid);
  --fliq-product-tint: var(--fliq-product-tint-dark);
  --fliq-workspace-accent: var(--fliq-workspace-vivid);
  --fliq-workspace-tint: var(--fliq-workspace-tint-dark);
  --fliq-training-type-bmx-track-accent: var(--fliq-training-type-bmx-track-vivid);
  --fliq-training-type-bmx-track-tint: var(--fliq-training-type-bmx-track-tint-dark);
  --fliq-training-type-bmx-sprint-wattbike-accent: var(--fliq-training-type-bmx-sprint-wattbike-vivid);
  --fliq-training-type-bmx-sprint-wattbike-tint: var(--fliq-training-type-bmx-sprint-wattbike-tint-dark);
  --fliq-training-type-wattbike-accent: var(--fliq-training-type-wattbike-vivid);
  --fliq-training-type-wattbike-tint: var(--fliq-training-type-wattbike-tint-dark);
  --fliq-training-type-gym-accent: var(--fliq-training-type-gym-vivid);
  --fliq-training-type-gym-tint: var(--fliq-training-type-gym-tint-dark);
  --fliq-training-type-endurance-accent: var(--fliq-training-type-endurance-vivid);
  --fliq-training-type-endurance-tint: var(--fliq-training-type-endurance-tint-dark);
  --fliq-training-type-athletics-accent: var(--fliq-training-type-athletics-vivid);
  --fliq-training-type-athletics-tint: var(--fliq-training-type-athletics-tint-dark);
  --fliq-training-type-other-accent: var(--fliq-training-type-other-vivid);
  --fliq-training-type-other-tint: var(--fliq-training-type-other-tint-dark);
}

:where([data-fliq-theme], .fliq-theme-dark) :focus-visible,
:where(.fliq-focusable):focus-visible {
  outline: 3px solid var(--fliq-focus);
  outline-offset: 2px;
  box-shadow: 0 0 0 2px var(--fliq-canvas);
}

.fliq-type-display {
  font-family: var(--fliq-font-display);
  font-size: var(--fliq-type-display-size);
  font-weight: var(--fliq-font-weight-bold);
  letter-spacing: -0.04em;
  line-height: var(--fliq-type-display-line);
}

.fliq-type-metric {
  font-family: var(--fliq-font-display);
  font-size: var(--fliq-type-metric-size);
  font-variant-numeric: tabular-nums;
  font-weight: var(--fliq-font-weight-bold);
  line-height: var(--fliq-type-metric-line);
}

.fliq-type-ui {
  font-family: var(--fliq-font-ui);
  font-size: var(--fliq-type-body-size);
  line-height: var(--fliq-type-body-line);
}

.fliq-touch-target {
  min-block-size: var(--fliq-target-min);
  min-inline-size: var(--fliq-target-min);
}

.fliq-workout-target {
  min-block-size: var(--fliq-target-workout);
  min-inline-size: var(--fliq-target-workout);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
