/* =========================================================
   AIDA hi-fi · design tokens
   1. shadcn/ui default theme (neutral), names and values verbatim
   2. AIDA extensions (palette, status, surfaces, gradients, motion, type)
   Light is :root, dark is .dark on <html> (shadcn convention).
   ========================================================= */

/* ---------- 1. shadcn/ui default theme ---------- */
/* Light mode surfaces are a notch darker than shadcn's defaults (secondary/muted .955, accent .945, border .89, input .87, sidebar .965): at the defaults a card, a rail number or an empty frame could not be told from the page (user, 2026-10-21). */
:root{
  --radius:0.75rem;                 /* shadcn's radius setting: 0.75 instead of the default 0.625, rounder controls (user, 2026-10-20) */
  --background:oklch(1 0 0);
  --foreground:oklch(0.145 0 0);
  --card:oklch(1 0 0);
  --card-foreground:oklch(0.145 0 0);
  --popover:oklch(1 0 0);
  --popover-foreground:oklch(0.145 0 0);
  --primary:oklch(0.205 0 0);
  --primary-foreground:oklch(0.985 0 0);
  --secondary:oklch(0.955 0 0);
  --secondary-foreground:oklch(0.205 0 0);
  --muted:oklch(0.955 0 0);
  --muted-foreground:oklch(0.556 0 0);
  --accent:oklch(0.945 0 0);
  --accent-foreground:oklch(0.205 0 0);
  --destructive:oklch(0.577 0.245 27.325);
  --border:oklch(0.89 0 0);
  --input:oklch(0.87 0 0);
  --ring:oklch(0.708 0 0);
  --chart-1:oklch(0.646 0.222 41.116);
  --chart-2:oklch(0.6 0.118 184.704);
  --chart-3:oklch(0.398 0.07 227.392);
  --chart-4:oklch(0.828 0.189 84.429);
  --chart-5:oklch(0.769 0.188 70.08);
  --sidebar:oklch(0.965 0 0);
  --sidebar-foreground:oklch(0.145 0 0);
  --sidebar-primary:oklch(0.205 0 0);
  --sidebar-primary-foreground:oklch(0.985 0 0);
  --sidebar-accent:oklch(0.935 0 0);
  --sidebar-accent-foreground:oklch(0.205 0 0);
  --sidebar-border:oklch(0.88 0 0);
  --sidebar-ring:oklch(0.708 0 0);
}
.dark{
  --background:oklch(0.145 0 0);
  --foreground:oklch(0.985 0 0);
  --card:oklch(0.205 0 0);
  --card-foreground:oklch(0.985 0 0);
  --popover:oklch(0.205 0 0);
  --popover-foreground:oklch(0.985 0 0);
  --primary:oklch(0.922 0 0);
  --primary-foreground:oklch(0.205 0 0);
  --secondary:oklch(0.269 0 0);
  --secondary-foreground:oklch(0.985 0 0);
  --muted:oklch(0.269 0 0);
  --muted-foreground:oklch(0.708 0 0);
  --accent:oklch(0.269 0 0);
  --accent-foreground:oklch(0.985 0 0);
  --destructive:oklch(0.704 0.191 22.216);
  --border:oklch(1 0 0 / 10%);
  --input:oklch(1 0 0 / 15%);
  --ring:oklch(0.556 0 0);
  --chart-1:oklch(0.488 0.243 264.376);
  --chart-2:oklch(0.696 0.17 162.48);
  --chart-3:oklch(0.769 0.188 70.08);
  --chart-4:oklch(0.627 0.265 303.9);
  --chart-5:oklch(0.645 0.246 16.439);
  --sidebar:oklch(0.205 0 0);
  --sidebar-foreground:oklch(0.985 0 0);
  --sidebar-primary:oklch(0.488 0.243 264.376);
  --sidebar-primary-foreground:oklch(0.985 0 0);
  --sidebar-accent:oklch(0.269 0 0);
  --sidebar-accent-foreground:oklch(0.985 0 0);
  --sidebar-border:oklch(1 0 0 / 10%);
  --sidebar-ring:oklch(0.556 0 0);
}

/* ---------- 2. AIDA extensions ---------- */
:root{
  /* palette, from the brand swatch (left to right) */
  --p-navy:#010153; --p-cobalt:#0f2cb8; --p-sky:#48a0e8; --p-steel:#3c88ac; --p-ice:#98defb;
  --p-royal:#081dc8; --p-indigo:#4654cd; --p-violet:#5526ca; --p-purple:#5113a8;

  /* radius scale (shadcn v4 derivation) + media */
  --radius-sm:calc(var(--radius) - 4px);
  --radius-md:calc(var(--radius) - 2px);
  --radius-lg:var(--radius);
  --radius-xl:calc(var(--radius) + 4px);
  --radius-2xl:calc(var(--radius) + 8px);   /* the composer */
  --radius-tabs:calc(var(--radius) + 2px);  /* tabs track: the tab inside is --radius, 3px in */
  --radius-dialog:calc(var(--radius) + 10px);
  --radius-media:16px;
  --radius-surface:20px;                    /* alerts, large popovers */
  --radius-bubble:18px; --radius-bubble-tail:6px; /* the user's chat bubble, its corner towards the avatar */
  --radius-xs:4px;                          /* checkboxes, kbd */
  --radius-2xs:2px;                         /* line tabs indicator */
  --radius-mark:.3em;                       /* highlighter */
  --radius-pill:999px;
  --radius-circle:50%;
  --aspect-w:16; --aspect-h:9; --aspect-media:var(--aspect-w)/var(--aspect-h); /* every 16:9 thumbnail, player and stage; 1:1 tiles don't use it */

  /* surfaces between shadcn's: sunken = insets inside a card, faint = quietest text/lines */
  --sunken:oklch(0.955 0 0);
  --faint:oklch(0.7 0 0);
  --overlay:oklch(0 0 0 / 40%);
  --media:oklch(0.17 0 0);           /* behind images/video, same in both themes */
  --paper:oklch(0.995 0 0);          /* sketches stay paper-white in both themes */
  --media-edge:oklch(0 0 0 / 13%);    /* hairline around images, so paper never melts into the page */
  --white:#fff;                      /* text on solid destructive, on media and glass; slider thumbs */
  /* on media (always dark underneath, so the same in both themes) */
  --media-ring:oklch(1 0 0 / 8%);    /* inner hairline */
  --frost:oklch(1 0 0 / 16%); --frost-hover:oklch(1 0 0 / 26%); /* frosted round controls: play, fab */
  --glass-bg:oklch(0 0 0 / 38%); --glass-badge-bg:oklch(0 0 0 / 45%);
  --media-shade:oklch(0 0 0 / 55%);  /* bottom shade under media text */
  --media-text-shadow:0 1px 8px oklch(0 0 0 / 40%);

  /* AIDA (the only coloured accent in the UI) */
  --aida:oklch(0.49 0.2 272);        /* text, icons, focus of AIDA things */
  --aida-strong:var(--p-indigo);     /* filled AIDA surfaces, white text on top */
  --aida-strong-foreground:#fff;
  --aida-soft:color-mix(in oklab,var(--p-indigo) 8%,var(--background));
  --aida-border:color-mix(in oklab,var(--p-indigo) 28%,var(--background));

  /* status: kept apart from the palette so "AIDA" never reads as "status" */
  --success:oklch(0.63 0.13 155);
  --success-foreground:oklch(0.45 0.1 155);
  --success-soft:oklch(0.96 0.03 155);
  --warning:oklch(0.76 0.15 70);
  --warning-foreground:oklch(0.5 0.11 60);
  --warning-soft:oklch(0.96 0.04 85);
  --destructive-foreground:oklch(0.5 0.19 25);
  --destructive-soft:oklch(0.96 0.025 20);
  --info:oklch(0.6 0.13 240);
  --info-foreground:oklch(0.48 0.12 245);
  --info-soft:oklch(0.96 0.025 240);

  /* category tints (lo-fi pastels: mint, yellow, lav, peach, blue) */
  /* collaborator colours: the colourful Tailwind scale (no greys). 200 on light, 950 on dark */
  --user-red:oklch(88.5% 0.062 18.334); --user-orange:oklch(90.1% 0.076 70.697); --user-amber:oklch(92.4% 0.12 95.746); --user-yellow:oklch(94.5% 0.129 101.54); --user-lime:oklch(93.8% 0.127 124.321); --user-green:oklch(92.5% 0.084 155.995); --user-emerald:oklch(90.5% 0.093 164.15); --user-teal:oklch(91% 0.096 180.426); --user-cyan:oklch(91.7% 0.08 205.041); --user-sky:oklch(90.1% 0.058 230.902); --user-blue:oklch(88.2% 0.059 254.128); --user-indigo:oklch(87% 0.065 274.039); --user-violet:oklch(89.4% 0.057 293.283); --user-purple:oklch(90.2% 0.063 306.703); --user-fuchsia:oklch(90.3% 0.076 319.62); --user-pink:oklch(89.9% 0.061 343.231); --user-rose:oklch(89.2% 0.058 10.001);
  --tint-mint:var(--user-emerald); --tint-yellow:var(--user-yellow); --tint-lav:var(--user-violet);
  --tint-peach:var(--user-orange); --tint-blue:var(--user-blue);

  /* elevation */
  --shadow-xs:none;
  --shadow-sm:0 1px 3px 0 oklch(0 0 0 / 10%),0 1px 2px -1px oklch(0 0 0 / 10%);
  --shadow-md:0 4px 6px -1px oklch(0 0 0 / 10%),0 2px 4px -2px oklch(0 0 0 / 10%);
  --shadow-lg:0 10px 15px -3px oklch(0 0 0 / 10%),0 4px 6px -4px oklch(0 0 0 / 10%);
  --shadow-xl:0 24px 48px -12px oklch(0 0 0 / 22%);
  --shadow-selbar:0 12px 40px oklch(0 0 0 / 40%); /* floats over the board, same in both themes */

  /* stacking: inside a component (below/raised over its own backdrop), then app layers */
  --z-below:-1; --z-base:0; --z-raised:1; --z-raised-2:2; /* 2: media corners and play, over the shade */
  --z-handle:6;                      /* resize handles */
  --z-dialog:50;                     /* dialog overlay (shadcn z-50) */

  /* AIDA's blurred gradients (see kit.html › Gradients): strength of the wash, fine grain */
  --presence-a:22%; --wash-o:.32; --grain-o:.1;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");

  /* motion */
  --dur-1:120ms;  /* hover, press, toggles */
  --dur-2:200ms;  /* tooltips, menus, small fades */
  --dur-3:300ms;  /* popovers, dialogs, tray */
  --dur-4:450ms;  /* morphs, space changes */
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-in:cubic-bezier(.7,0,.84,0);
  --ease-in-out:cubic-bezier(.65,0,.35,1);
  /* damped springs (zeta .82 ≈1% overshoot; zeta .72 ≈4% for small tactile things) */
  --ease-spring:linear(0, 0.0272, 0.0949, 0.186, 0.288, 0.392, 0.492, 0.5843, 0.6668, 0.7385, 0.7994, 0.8501, 0.8914, 0.9243, 0.95, 0.9696, 0.9842, 0.9947, 1.0019, 1.0066, 1.0094, 1.0107, 1.0111, 1.0108, 1.01, 1.009, 1.0079, 1.0067, 1.0056, 1.0046, 1.0037, 1.0029, 1.0022, 1.0016, 1.0012, 1.0008, 1);
  --ease-spring-pop:linear(0, 0.0337, 0.1174, 0.2292, 0.3529, 0.4767, 0.5927, 0.6962, 0.7848, 0.8578, 0.9157, 0.9599, 0.992, 1.014, 1.0279, 1.0355, 1.0383, 1.0377, 1.035, 1.031, 1.0263, 1.0215, 1.0169, 1.0128, 1.0092, 1.0062, 1.0038, 1.002, 1.0006, 0.9997, 0.9991, 0.9987, 0.9985, 0.9985, 0.9986, 0.9988, 1);

  /* type */
  --font-sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace;
  --text-2xs:11px; --text-xs:12px; --text-sm:13px; --text-base:14px; --text-md:16px; --text-lg:18px; --text-xl:20px; --text-2xl:24px; --text-3xl:30px;
  --text-badge-glass:10.5px; --text-avatar-sm:10px; --text-avatar-xs:9px; --text-chart-axis:7px; /* one-offs, by component */
  /* camera size badges (text / background) */
  --cam-ecu:#be123c; --cam-ecu-bg:#ffe4e6;  --cam-cu:#c2410c;  --cam-cu-bg:#ffedd5;  --cam-mcu:#b45309; --cam-mcu-bg:#fef3c7;
  --cam-ms:#4d7c0f;  --cam-ms-bg:#ecfccb;   --cam-mws:#0f766e; --cam-mws-bg:#ccfbf1; --cam-ws:#0369a1;  --cam-ws-bg:#e0f2fe;  --cam-ews:#6d28d9; --cam-ews-bg:#ede9fe;
  /* shot role badges: Main / Sup */
  /* highlighter pen: Tailwind yellow-400 with yellow-950 text (one place: kit mark.hl and the app both read these) */
  --highlight:oklch(85.2% 0.199 91.936); --highlight-fg:oklch(28.6% 0.066 53.813);
  --warning-text:oklch(0.555 0.163 48.4); --warning-solid:oklch(0.828 0.189 84.429); --warning-solid-fg:oklch(0.2 0.02 70); --favorite:oklch(0.645 0.246 16.439);
  --role-key:var(--p-violet); --role-key-bg:color-mix(in oklab,var(--p-violet) 11%,transparent); --role-sup:var(--p-steel); --role-sup-bg:color-mix(in oklab,var(--p-sky) 14%,transparent);
}
.dark{
  --warning-text:var(--warning-solid);
  --sunken:oklch(0.17 0 0);
  --faint:oklch(0.46 0 0);
  --overlay:oklch(0 0 0 / 62%);
  --media-edge:oklch(1 0 0 / 7%);
  --tabs-bg:oklch(1 0 0 / 5%); --tab-thumb-bg:oklch(1 0 0 / 14%); /* dark only: light uses muted / background */

  --aida:oklch(0.74 0.13 268);
  --aida-soft:color-mix(in oklab,var(--p-indigo) 16%,var(--background));
  --aida-border:color-mix(in oklab,var(--p-indigo) 50%,var(--background));

  --success:oklch(0.7 0.14 155);
  --success-foreground:oklch(0.8 0.12 155);
  --success-soft:oklch(0.26 0.04 155);
  --warning:oklch(0.78 0.15 72);
  --warning-foreground:oklch(0.84 0.12 80);
  --warning-soft:oklch(0.27 0.045 70);
  --destructive-foreground:oklch(0.78 0.13 22);
  --destructive-soft:oklch(0.26 0.05 22);
  --info:oklch(0.72 0.12 240);
  --info-foreground:oklch(0.8 0.1 240);
  --info-soft:oklch(0.26 0.04 245);

  --user-red:oklch(25.8% 0.092 26.042); --user-orange:oklch(26.6% 0.079 36.259); --user-amber:oklch(27.9% 0.077 45.635); --user-yellow:oklch(28.6% 0.066 53.813); --user-lime:oklch(27.4% 0.072 132.109); --user-green:oklch(26.6% 0.065 152.934); --user-emerald:oklch(26.2% 0.051 172.552); --user-teal:oklch(27.7% 0.046 192.524); --user-cyan:oklch(30.2% 0.056 229.695); --user-sky:oklch(29.3% 0.066 243.157); --user-blue:oklch(28.2% 0.091 267.935); --user-indigo:oklch(25.7% 0.09 281.288); --user-violet:oklch(28.3% 0.141 291.089); --user-purple:oklch(29.1% 0.149 302.717); --user-fuchsia:oklch(29.3% 0.136 325.661); --user-pink:oklch(28.4% 0.109 3.907); --user-rose:oklch(27.1% 0.105 12.094);
  --tint-mint:var(--user-emerald); --tint-yellow:var(--user-yellow); --tint-lav:var(--user-violet);
  --tint-peach:var(--user-orange); --tint-blue:var(--user-blue);

  /* in the dark, depth is mostly borders and lighter surfaces; shadows get deeper to still read */
  --shadow-xs:none;
  --shadow-sm:0 1px 3px 0 oklch(0 0 0 / 40%);
  --shadow-md:0 6px 16px -4px oklch(0 0 0 / 50%);
  --shadow-lg:0 14px 32px -8px oklch(0 0 0 / 60%);
  --shadow-xl:0 30px 60px -12px oklch(0 0 0 / 70%);
  --presence-a:34%; --wash-o:.55; --grain-o:.12;
  --cam-ecu:#fb7185; --cam-ecu-bg:#4c0519;  --cam-cu:#fb923c;  --cam-cu-bg:#431407;  --cam-mcu:#fbbf24; --cam-mcu-bg:#451a03;
  --cam-ms:#a3e635;  --cam-ms-bg:#1a2e05;   --cam-mws:#2dd4bf; --cam-mws-bg:#042f2e; --cam-ws:#38bdf8;  --cam-ws-bg:#082f49;  --cam-ews:#a78bfa; --cam-ews-bg:#2e1065;
  --role-key:color-mix(in oklab,var(--p-violet) 50%,white); --role-key-bg:color-mix(in oklab,var(--p-violet) 24%,transparent); --role-sup:color-mix(in oklab,var(--p-sky) 80%,white); --role-sup-bg:color-mix(in oklab,var(--p-sky) 16%,transparent);
}
