:root, .light {
  --radius: 0.5rem;
  /* primitives: ramps */
  --violet-1: #0E0059; --violet-2: oklch(0.245 0.139 273.3); --violet-3: oklch(0.270 0.134 273.3); --violet-4: oklch(0.310 0.134 273.3); --violet-5: oklch(0.330 0.145 273.3); --violet-6: oklch(0.370 0.134 274.3); --violet-7: oklch(0.500 0.120 275.3); --violet-8: oklch(0.570 0.130 277.3); --violet-9: oklch(0.620 0.150 278.3); --violet-10: oklch(0.660 0.140 280.3); --violet-11: oklch(0.860 0.040 280.3); --violet-12: oklch(0.970 0.015 291.0);
  --orange-1: oklch(0.991 0.004 34.3); --orange-2: oklch(0.981 0.009 41.9); --orange-3: oklch(0.958 0.022 42.6); --orange-4: oklch(0.934 0.035 41.9); --orange-5: oklch(0.909 0.049 40.2); --orange-6: oklch(0.887 0.063 42.9); --orange-7: oklch(0.851 0.085 41.4); --orange-8: oklch(0.790 0.127 41.5); --orange-9: #EF5F18; --orange-10: #F36D32; --orange-11: oklch(0.52 0.17 40); --orange-12: oklch(0.239 0.073 41.2);
  --lavender-1: oklch(0.985 0.008 290.0); --lavender-2: oklch(0.975 0.014 290.0); --lavender-3: oklch(0.965 0.022 280.3); --lavender-4: oklch(0.950 0.025 280.3); --lavender-5: oklch(0.930 0.035 280.3); --lavender-6: oklch(0.900 0.040 280.3); --lavender-7: oklch(0.860 0.055 280.3); --lavender-8: oklch(0.790 0.080 280.3); --lavender-9: oklch(0.600 0.150 280.3); --lavender-10: oklch(0.560 0.150 280.3); --lavender-11: oklch(0.350 0.145 275.3); --lavender-12: oklch(0.230 0.122 273.3);
  --neutral-1: oklch(0.992 0.003 286.4); --neutral-2: oklch(0.983 0.003 286.4); --neutral-3: oklch(0.962 0.006 285); --neutral-4: oklch(0.935 0.009 285); --neutral-5: oklch(0.911 0.005 286.3); --neutral-6: oklch(0.886 0.005 286.3); --neutral-7: oklch(0.850 0.007 286.3); --neutral-8: oklch(0.790 0.007 286.2); --neutral-9: oklch(0.60 0.012 285); --neutral-10: oklch(0.560 0.010 285.0); --neutral-11: oklch(0.519 0.006 286.2); --neutral-12: oklch(0.240 0.004 286.1);
  --green-1: oklch(0.991 0.005 150.0); --green-2: oklch(0.982 0.011 150.0); --green-3: oklch(0.958 0.023 149.4); --green-4: oklch(0.934 0.036 150.0); --green-5: oklch(0.910 0.050 150.0); --green-6: oklch(0.886 0.063 150.0); --green-7: oklch(0.851 0.083 150.0); --green-8: oklch(0.791 0.113 150.0); --green-9: oklch(0.640 0.150 150.2); --green-10: oklch(0.605 0.150 150.0); --green-11: oklch(0.519 0.134 150.1); --green-12: oklch(0.240 0.060 150.0);
  --amber-1: oklch(0.991 0.005 70.0); --amber-2: oklch(0.982 0.011 70.0); --amber-3: oklch(0.958 0.024 71.5); --amber-4: oklch(0.934 0.036 70.0); --amber-5: oklch(0.910 0.050 70.0); --amber-6: oklch(0.886 0.064 70.0); --amber-7: oklch(0.851 0.083 70.0); --amber-8: oklch(0.791 0.114 70.0); --amber-9: oklch(0.700 0.152 70.2); --amber-10: oklch(0.665 0.151 70.0); --amber-11: oklch(0.539 0.117 69.7); --amber-12: oklch(0.240 0.061 70.0);
  --crimson-1: oklch(0.991 0.006 15.0); --crimson-2: oklch(0.982 0.015 15.0); --crimson-3: oklch(0.955 0.02 15); --crimson-4: oklch(0.934 0.050 15.0); --crimson-5: oklch(0.910 0.069 15.0); --crimson-6: oklch(0.886 0.088 15.0); --crimson-7: oklch(0.851 0.116 15.0); --crimson-8: oklch(0.791 0.158 15.0); --crimson-9: oklch(0.56 0.21 15); --crimson-10: oklch(0.525 0.210 15.0); --crimson-11: oklch(0.52 0.19 15); --crimson-12: oklch(0.240 0.084 15.0);
  --blue-1: oklch(0.991 0.005 258.0); --blue-2: oklch(0.982 0.013 258.0); --blue-3: oklch(0.958 0.020 257.5); --blue-4: oklch(0.934 0.043 258.0); --blue-5: oklch(0.910 0.059 258.0); --blue-6: oklch(0.886 0.076 258.0); --blue-7: oklch(0.851 0.099 258.0); --blue-8: oklch(0.791 0.135 258.0); --blue-9: oklch(0.560 0.180 258.0); --blue-10: oklch(0.525 0.180 258.0); --blue-11: oklch(0.531 0.161 257.9); --blue-12: oklch(0.240 0.072 258.0);
  --brand-white: #FFFFFF; --brand-orange: #EF5F18; --brand-violet: #0E0059; --brand-ink: #0E0059;
  /* primary button fill: darker than orange-9 so the white label passes WCAG AA (5.0:1) */
  --orange-btn: #C2460A; --orange-btn-hover: #A83B07; --orange-btn-active: #943406;
  /* semantic + component roles (K3) */
  --background: var(--neutral-3);
  --foreground: var(--neutral-12);
  --card: oklch(1.000 0 0);  /* ≈ neutral-1, ΔE 0.9 */
  --card-foreground: var(--neutral-12);
  --popover: oklch(1.000 0 0);  /* ≈ neutral-1, ΔE 0.9 */
  --popover-foreground: var(--neutral-12);
  --primary: var(--orange-btn);
  --primary-foreground: var(--brand-white);
  --primary-hover: var(--orange-btn-hover);
  --primary-active: var(--orange-btn-active);
  --primary-text: var(--lavender-11);
  --primary-soft: var(--lavender-4);
  --primary-soft-foreground: var(--lavender-11);
  --secondary: oklch(0.959 0.005 275.0);  /* ≈ neutral-3, ΔE 0.3 */
  --secondary-foreground: var(--neutral-12);
  --muted: oklch(0.959 0.005 275.0);  /* ≈ neutral-3, ΔE 0.3 */
  --muted-foreground: var(--neutral-11);
  --accent: oklch(0.959 0.005 275.0);  /* ≈ neutral-3, ΔE 0.3 */
  --accent-foreground: var(--neutral-12);
  --destructive: var(--crimson-9);
  --destructive-foreground: #FFFFFF;  /* ≈ neutral-1, ΔE 0.9 */
  --border: var(--neutral-6);
  --border-strong: var(--neutral-7);
  --input: var(--neutral-9);
  --ring: var(--violet-1);
  --success: var(--green-11);
  --success-soft: var(--green-3);
  --success-solid: var(--green-9);
  --warning: var(--amber-11);
  --warning-soft: var(--amber-3);
  --warning-solid: var(--amber-9);
  --danger: var(--crimson-11);
  --danger-soft: var(--crimson-3);
  --danger-solid: var(--crimson-9);
  --info: var(--blue-11);
  --info-soft: var(--blue-3);
  --info-solid: var(--blue-9);
  --sidebar: var(--sb);
  --sidebar-foreground: var(--sb-fg);
  --sidebar-accent: var(--sb-hover);
  --sidebar-accent-foreground: var(--sb-strong);
  --sidebar-border: var(--sb-border);
  --sidebar-primary: var(--orange-9);
  --sidebar-primary-foreground: var(--neutral-12);
  --sidebar-ring: var(--orange-9);
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
  --col-neutral: var(--neutral-4);
  --lead-bg: var(--card);
  --a-pill-on-bg: var(--lavender-5);
  --a-pill-on-fg: var(--violet-1);
  --a-val-bg: var(--lavender-4);
  --a-val-fg: var(--violet-1);
  --a-sel-bg: var(--lavender-2);
  --a-sel-ring: var(--violet-1);
  --a-panel-head: var(--violet-1);
  --a-av-fg: var(--lavender-11);
  --prob: var(--lavender-9);
  --pal-chart-bar: var(--lavender-6);
  --pal-chart-on: var(--violet-1);
  --sb: var(--violet-1);
  --sb-fg: var(--violet-11);
  --sb-strong: var(--brand-white);
  --sb-hover: var(--violet-3);
  --sb-border: var(--violet-4);
  --nav-on-bg: var(--lavender-5);
  --nav-on-fg: var(--violet-1);
  --mark-bg: var(--lavender-5);
  --mark-fg: var(--violet-1);
  --sb-av-bg: var(--violet-4);
  --sb-av-fg: var(--violet-11);
  --hero-bg: var(--violet-1);
  --hero-fg: var(--brand-white);
  --hero-muted: var(--violet-11);
  --hero-rule: color-mix(in oklab, var(--brand-white) 16%, transparent);
  --hero-av: var(--violet-5);
  --hero-btn-bg: var(--orange-btn);
  --hero-btn-fg: var(--brand-white);
  --hero-btn2-border: color-mix(in oklab, var(--brand-white) 40%, transparent);
  --hero-chip-bg: var(--lavender-5);
  --hero-chip-fg: var(--violet-1);
  --st-new: oklch(0.660 0.025 275.3);
  --st-new-chip: oklch(0.915 0.011 285);
  --st-new-ink: oklch(0.43 0.020 285);
  --st-contact: oklch(0.660 0.140 282.3);
  --st-contact-chip: oklch(0.915 0.059 282.3);
  --st-contact-ink: oklch(0.360 0.125 282.3);
  --st-meet: var(--orange-9);
  --st-meet-chip: oklch(0.915 0.065 42);
  --st-meet-ink: oklch(0.43 0.130 42);
  --st-offer: oklch(0.66 0.140 80);
  --st-offer-chip: oklch(0.915 0.059 80);
  --st-offer-ink: oklch(0.43 0.112 80);
  --st-won: oklch(0.66 0.110 168);
  --st-won-chip: oklch(0.915 0.046 168);
  --st-won-ink: oklch(0.43 0.088 168);
  --stage-meet: var(--st-meet-ink);
  --stage-meet-soft: var(--st-meet-chip);
  --own-mz-bg: oklch(0.92 0.045 205);
  --own-mz-fg: oklch(0.45 0.10 205);
  --own-dz-bg: oklch(0.92 0.045 140);
  --own-dz-fg: oklch(0.45 0.10 140);
  --own-eb-bg: oklch(0.92 0.045 340);
  --own-eb-fg: oklch(0.45 0.10 340);
  --success-border: var(--green-7);
  --success-foreground: var(--neutral-12);
  --warning-border: var(--amber-7);
  --warning-foreground: var(--neutral-12);
  --danger-border: var(--crimson-7);
  --danger-foreground: #FFFFFF;
  --info-border: var(--blue-7);
  --info-foreground: #FFFFFF;
  --chart-1: oklch(0.620 0.140 42.0);
  --chart-2: oklch(0.620 0.140 275.3);
  --chart-3: oklch(0.620 0.140 190.0);
  --chart-4: oklch(0.620 0.140 90.0);
  --chart-5: oklch(0.620 0.140 345.0);
  --chart-6: oklch(0.620 0.140 245.0);
  --chart-funnel-1: oklch(0.750 0.090 278.3);
  --chart-funnel-2: oklch(0.660 0.120 278.3);
  --chart-funnel-3: oklch(0.570 0.140 278.3);
  --chart-funnel-4: oklch(0.480 0.140 278.3);
  --chart-funnel-5: oklch(0.320 0.145 278.3);
  --ph-fg: var(--brand-white);
  --ph-muted: var(--violet-11);
  --ph-btn-bg: var(--violet-3);
  --ph-btn-fg: var(--brand-white);
  --ph-btn-border: var(--violet-6);
  --ph-av-bg: var(--lavender-5);
  --ph-av-fg: var(--violet-1);
  --dot: var(--lavender-7);
}

.dark {
  /* primitives: ramps */
  --violet-1: #0E0059; --violet-2: oklch(0.245 0.139 273.3); --violet-3: oklch(0.270 0.134 273.3); --violet-4: oklch(0.310 0.134 273.3); --violet-5: oklch(0.330 0.145 273.3); --violet-6: oklch(0.370 0.134 274.3); --violet-7: oklch(0.500 0.120 275.3); --violet-8: oklch(0.500 0.120 275.3); --violet-9: oklch(0.620 0.140 278.3); --violet-10: oklch(0.670 0.130 280.3); --violet-11: oklch(0.860 0.040 280.3); --violet-12: #F1EFFA;
  --orange-1: oklch(0.176 0.005 39.3); --orange-2: oklch(0.212 0.012 36.5); --orange-3: oklch(0.252 0.026 42.7); --orange-4: oklch(0.286 0.042 40.5); --orange-5: oklch(0.317 0.059 40.4); --orange-6: oklch(0.352 0.075 41.1); --orange-7: oklch(0.402 0.097 41.7); --orange-8: oklch(0.487 0.133 41.3); --orange-9: #F2703A; --orange-10: #F5834F; --orange-11: oklch(0.78 0.13 50); --orange-12: oklch(0.947 0.027 40.2);
  --lavender-1: oklch(0.190 0.020 288.0); --lavender-2: oklch(0.220 0.030 277.3); --lavender-3: oklch(0.265 0.050 275.3); --lavender-4: oklch(0.280 0.050 275.3); --lavender-5: oklch(0.310 0.055 275.3); --lavender-6: oklch(0.340 0.050 275.3); --lavender-7: oklch(0.400 0.070 277.3); --lavender-8: oklch(0.490 0.090 278.3); --lavender-9: oklch(0.800 0.090 279.3); --lavender-10: oklch(0.850 0.070 280.3); --lavender-11: oklch(0.870 0.060 280.3); --lavender-12: oklch(0.950 0.020 290.0);
  --neutral-1: oklch(0.175 0.012 285); --neutral-2: oklch(0.203 0.012 285); --neutral-3: oklch(0.215 0.014 285); --neutral-4: oklch(0.245 0.015 285); --neutral-5: oklch(0.287 0.007 285.9); --neutral-6: oklch(0.353 0.005 286.1); --neutral-7: oklch(0.403 0.005 286.2); --neutral-8: oklch(0.487 0.006 286.2); --neutral-9: oklch(0.510 0.005 271.3); --neutral-10: oklch(0.571 0.006 286.2); --neutral-11: oklch(0.781 0.006 286.3); --neutral-12: oklch(0.947 0.004 286.3);
  --green-1: oklch(0.178 0.004 150.0); --green-2: oklch(0.213 0.009 150.0); --green-3: oklch(0.252 0.021 150.7); --green-4: oklch(0.287 0.032 150.0); --green-5: oklch(0.318 0.045 150.0); --green-6: oklch(0.352 0.057 150.0); --green-7: oklch(0.402 0.074 150.0); --green-8: oklch(0.487 0.101 150.0); --green-9: oklch(0.600 0.135 150.2); --green-10: oklch(0.640 0.135 150.0); --green-11: oklch(0.760 0.122 149.8); --green-12: oklch(0.948 0.054 150.0);
  --amber-1: oklch(0.178 0.004 70.0); --amber-2: oklch(0.213 0.010 70.0); --amber-3: oklch(0.251 0.021 66.6); --amber-4: oklch(0.287 0.035 70.0); --amber-5: oklch(0.318 0.048 70.0); --amber-6: oklch(0.352 0.060 70.0); --amber-7: oklch(0.402 0.079 70.0); --amber-8: oklch(0.487 0.108 70.0); --amber-9: oklch(0.699 0.144 70.1); --amber-10: oklch(0.739 0.144 70.0); --amber-11: oklch(0.781 0.130 70.2); --amber-12: oklch(0.948 0.058 70.0);
  --crimson-1: oklch(0.178 0.006 15.0); --crimson-2: oklch(0.213 0.014 15.0); --crimson-3: oklch(0.27 0.05 15); --crimson-4: oklch(0.287 0.048 15.0); --crimson-5: oklch(0.318 0.066 15.0); --crimson-6: oklch(0.352 0.084 15.0); --crimson-7: oklch(0.402 0.110 15.0); --crimson-8: oklch(0.487 0.150 15.0); --crimson-9: oklch(0.56 0.20 15); --crimson-10: oklch(0.600 0.200 15.0); --crimson-11: oklch(0.75 0.15 15); --crimson-12: oklch(0.948 0.080 15.0);
  --blue-1: oklch(0.178 0.005 258.0); --blue-2: oklch(0.213 0.011 258.0); --blue-3: oklch(0.254 0.024 256.4); --blue-4: oklch(0.287 0.039 258.0); --blue-5: oklch(0.318 0.053 258.0); --blue-6: oklch(0.352 0.068 258.0); --blue-7: oklch(0.402 0.089 258.0); --blue-8: oklch(0.487 0.121 258.0); --blue-9: oklch(0.560 0.162 257.8); --blue-10: oklch(0.600 0.162 258.0); --blue-11: oklch(0.780 0.113 258.1); --blue-12: oklch(0.948 0.065 258.0);
  --brand-white: #FFFFFF; --brand-orange: #EF5F18; --brand-violet: #0E0059; --brand-ink: #0E0059;
  /* primary button fill: darker than orange-9 so the white label passes WCAG AA (5.0:1) */
  --orange-btn: #C2460A; --orange-btn-hover: #A83B07; --orange-btn-active: #943406;
  /* semantic + component roles (K3) */
  --background: var(--neutral-1);
  --foreground: var(--neutral-12);
  --card: var(--neutral-3);
  --card-foreground: var(--neutral-12);
  --popover: oklch(0.25 0.014 285);  /* ≈ neutral-4, ΔE 0.5 */
  --popover-foreground: var(--neutral-12);
  --primary: var(--orange-btn);
  --primary-foreground: var(--brand-white);
  --primary-hover: var(--orange-btn-hover);
  --primary-active: var(--orange-btn-active);
  --primary-text: var(--lavender-11);
  --primary-soft: var(--lavender-4);
  --primary-soft-foreground: var(--lavender-11);
  --secondary: oklch(0.253 0.006 286.0);  /* ≈ neutral-4, ΔE 1.2 */
  --secondary-foreground: var(--neutral-12);
  --muted: oklch(0.253 0.006 286.0);  /* ≈ neutral-4, ΔE 1.2 */
  --muted-foreground: var(--neutral-11);
  --accent: var(--neutral-5);
  --accent-foreground: var(--neutral-12);
  --destructive: var(--crimson-9);
  --destructive-foreground: #FFFFFF;  /* component value (nearest violet-12, ΔE 4.6) */
  --border: var(--neutral-6);
  --border-strong: var(--neutral-7);
  --input: var(--neutral-9);
  --ring: var(--lavender-9);
  --success: var(--green-11);
  --success-soft: var(--green-3);
  --success-solid: var(--green-9);
  --warning: var(--amber-11);
  --warning-soft: var(--amber-3);
  --warning-solid: var(--amber-9);
  --danger: var(--crimson-11);
  --danger-soft: var(--crimson-3);
  --danger-solid: var(--crimson-9);
  --info: var(--blue-11);
  --info-soft: var(--blue-3);
  --info-solid: var(--blue-9);
  --sidebar: var(--sb);
  --sidebar-foreground: var(--sb-fg);
  --sidebar-accent: var(--sb-hover);
  --sidebar-accent-foreground: var(--sb-strong);
  --sidebar-border: var(--sb-border);
  --sidebar-primary: oklch(0.663 0.177 41.5);  /* ≈ orange-9, ΔE 3.0 */
  --sidebar-primary-foreground: oklch(0.179 0.006 285.8);  /* ≈ neutral-1, ΔE 0.7 */
  --sidebar-ring: oklch(0.663 0.177 41.5);  /* ≈ orange-9, ΔE 3.0 */
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
  --col-neutral: var(--neutral-2);
  --lead-bg: var(--neutral-4);
  --a-pill-on-bg: var(--lavender-10);
  --a-pill-on-fg: var(--brand-violet);
  --a-val-bg: var(--lavender-5);
  --a-val-fg: var(--lavender-12);
  --a-sel-bg: var(--lavender-4);
  --a-sel-ring: var(--lavender-10);
  --a-panel-head: var(--violet-1);
  --a-av-fg: var(--lavender-11);
  --prob: var(--lavender-9);
  --pal-chart-bar: var(--lavender-6);
  --pal-chart-on: var(--lavender-9);
  --sb: var(--violet-1);
  --sb-fg: var(--violet-11);
  --sb-strong: var(--violet-12);
  --sb-hover: var(--violet-3);
  --sb-border: var(--violet-6);
  --nav-on-bg: var(--lavender-10);
  --nav-on-fg: var(--brand-violet);
  --mark-bg: var(--lavender-10);
  --mark-fg: var(--brand-violet);
  --sb-av-bg: var(--violet-5);
  --sb-av-fg: var(--violet-11);
  --hero-bg: var(--violet-1);
  --hero-fg: var(--violet-12);
  --hero-muted: var(--violet-11);
  --hero-rule: color-mix(in oklab, var(--brand-white) 14%, transparent);
  --hero-av: var(--violet-7);
  --hero-btn-bg: var(--orange-btn);
  --hero-btn-fg: var(--brand-white);
  --hero-btn2-border: color-mix(in oklab, var(--brand-white) 35%, transparent);
  --hero-chip-bg: var(--lavender-10);
  --hero-chip-fg: var(--brand-violet);
  --st-new: oklch(0.740 0.023 275.3);
  --st-new-chip: oklch(0.33 0.010 285);
  --st-new-ink: oklch(0.87 0.015 285);
  --st-contact: oklch(0.740 0.126 282.3);
  --st-contact-chip: oklch(0.330 0.056 282.3);
  --st-contact-ink: oklch(0.870 0.084 282.3);
  --st-meet: var(--orange-9);
  --st-meet-chip: oklch(0.33 0.060 42);
  --st-meet-ink: oklch(0.87 0.100 42);
  --st-offer: oklch(0.74 0.126 80);
  --st-offer-chip: oklch(0.33 0.056 80);
  --st-offer-ink: oklch(0.87 0.084 80);
  --st-won: oklch(0.74 0.099 168);
  --st-won-chip: oklch(0.33 0.044 168);
  --st-won-ink: oklch(0.87 0.066 168);
  --stage-meet: var(--st-meet-ink);
  --stage-meet-soft: var(--st-meet-chip);
  --own-mz-bg: oklch(0.33 0.05 205);
  --own-mz-fg: oklch(0.88 0.06 205);
  --own-dz-bg: oklch(0.33 0.05 140);
  --own-dz-fg: oklch(0.88 0.06 140);
  --own-eb-bg: oklch(0.33 0.05 340);
  --own-eb-fg: oklch(0.88 0.06 340);
  --success-border: var(--green-7);
  --success-foreground: var(--neutral-1);
  --warning-border: var(--amber-7);
  --warning-foreground: var(--neutral-1);
  --danger-border: var(--crimson-7);
  --danger-foreground: #FFFFFF;
  --info-border: var(--blue-7);
  --info-foreground: #FFFFFF;
  --chart-1: oklch(0.660 0.130 42.0);
  --chart-2: oklch(0.660 0.130 275.3);
  --chart-3: oklch(0.660 0.130 190.0);
  --chart-4: oklch(0.660 0.130 90.0);
  --chart-5: oklch(0.660 0.130 345.0);
  --chart-6: oklch(0.660 0.130 245.0);
  --chart-funnel-1: oklch(0.380 0.134 278.3);
  --chart-funnel-2: oklch(0.540 0.130 278.3);
  --chart-funnel-3: oklch(0.630 0.130 278.3);
  --chart-funnel-4: oklch(0.720 0.110 278.3);
  --chart-funnel-5: oklch(0.810 0.080 278.3);
  --ph-fg: var(--violet-12);
  --ph-muted: var(--violet-11);
  --ph-btn-bg: var(--violet-2);
  --ph-btn-fg: var(--violet-12);
  --ph-btn-border: var(--violet-7);
  --ph-av-bg: var(--lavender-10);
  --ph-av-fg: var(--brand-violet);
  --dot: var(--lavender-9);
}

