/* ── Client themes ──
   Plain CSS, served as-is by the host (no Tailwind/daisyUI build step) and injected after the app stylesheet.
   A theme is selected through <html data-theme> (Dex:UI:Theme → AgentsUIOptions.Theme) and can be switched at runtime
   by changing that attribute; each one ships a matching wwwroot/{name}-logo.png, which the shell uses as brand mark,
   assistant avatar and favicon.

   Every block sets the full daisyUI token set, so each knob is visible and editable per client:
     --color-base-100/200/300 + -content   surfaces (cards / page canvas / borders, hovers) and body text
     --color-primary|secondary|accent|neutral (+ -content)   brand fills and the text on them
     --color-info|success|warning|error (+ -content)         also used as text, so keep ~5:1 against base-100
     --radius-selector | -field | -box     chips, toggles, badges | buttons, inputs | cards, modals, alerts
     --size-selector | -field              scale of those controls (0.25rem is daisyUI's default; 0.21875–0.3125 is sane)
     --border                              border width of all components
     --depth | --noise                     1/0: soft 3D shading on fields and buttons | grain texture on filled surfaces
     --font-sans | --font-mono             app typefaces (load any new family in the @import below)

   The semantic colour that shares a hue with the brand is moved off it, so a success/info alert never reads as brand. */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Roboto:wght@400;500;700&family=Source+Sans+3:wght@400;500;600;700&display=swap');

/* Kosmocar — ink black and logo green (#00a651) on white, pure greys, blocky near-square shapes with a heavier
   outline like the logo, flat (no depth), Source Sans as on kosmocar.gr. Primary is the logo green deepened until
   white text on it holds ~5:1. */
:root:has(input.theme-controller[value=kosmocar]:checked), [data-theme=kosmocar] {
    color-scheme: light;
    --color-base-100: oklch(100% 0 0);
    --color-base-200: oklch(96.5% 0 0);
    --color-base-300: oklch(90% 0 0);
    --color-base-content: oklch(19% 0 0);
    --color-primary: oklch(52% 0.135 152);
    --color-primary-content: oklch(99% 0 0);
    --color-secondary: oklch(19% 0 0);
    --color-secondary-content: oklch(98% 0 0);
    --color-accent: oklch(44% 0.11 152);
    --color-accent-content: oklch(98% 0 0);
    --color-neutral: oklch(19% 0 0);
    --color-neutral-content: oklch(97% 0 0);
    --color-info: oklch(52% 0.12 248);
    --color-info-content: oklch(98% 0.01 248);
    --color-success: oklch(49% 0.08 195);
    --color-success-content: oklch(98% 0.01 195);
    --color-warning: oklch(53% 0.1 70);
    --color-warning-content: oklch(98% 0.01 70);
    --color-error: oklch(49% 0.17 22);
    --color-error-content: oklch(98% 0.01 22);
    --radius-selector: 0.125rem;
    --radius-field: 0.125rem;
    --radius-box: 0.25rem;
    --size-selector: 0.25rem;
    --size-field: 0.25rem;
    --border: 1.5px;
    --depth: 0;
    --noise: 0;
    --font-sans: 'Source Sans 3', ui-sans-serif, system-ui, sans-serif;
}

/* Sfakianakis (BMW) — BMW blue (#1c69d4, pressed #0653b6) on white with the site's greys (#f2f2f2 / #e6e6e6 /
   #262626), dead-square corners and hairline borders per the BMW CI, slightly roomier fields, flat, Inter standing in
   for the proprietary BMW Type. */
:root:has(input.theme-controller[value=sfakianakis]:checked), [data-theme=sfakianakis] {
    color-scheme: light;
    --color-base-100: oklch(100% 0 0);
    --color-base-200: oklch(96.1% 0.002 255);
    --color-base-300: oklch(92.2% 0.003 255);
    --color-base-content: oklch(27% 0.004 255);
    --color-primary: oklch(53.8% 0.18 258);
    --color-primary-content: oklch(99% 0 0);
    --color-secondary: oklch(42% 0.004 255);
    --color-secondary-content: oklch(98% 0 0);
    --color-accent: oklch(46.4% 0.171 258);
    --color-accent-content: oklch(98% 0 0);
    --color-neutral: oklch(27% 0.004 255);
    --color-neutral-content: oklch(97% 0 0);
    --color-info: oklch(50% 0.075 215);
    --color-info-content: oklch(98% 0.01 215);
    --color-success: oklch(49% 0.1 158);
    --color-success-content: oklch(98% 0.01 158);
    --color-warning: oklch(53% 0.1 70);
    --color-warning-content: oklch(98% 0.01 70);
    --color-error: oklch(49% 0.17 22);
    --color-error-content: oklch(98% 0.01 22);
    --radius-selector: 0rem;
    --radius-field: 0rem;
    --radius-box: 0rem;
    --size-selector: 0.25rem;
    --size-field: 0.28125rem;
    --border: 1px;
    --depth: 0;
    --noise: 0;
    --font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
}

/* The BMW look is clean flat surfaces: drop the dotted "graph paper" texture of the conversation canvas. */
[data-theme=sfakianakis] .dex-canvas {
    background-image: none;
}

/* Papadopoulos — a dark theme, like papadopoulos-sa.gr: near-black teal-tinted surfaces with the site's teal
   (#1cb495) at full brightness under dark text, a lighter mint (#1fcaa7) as accent, soft 6px corners, depth and
   grain on, Roboto. On a dark base the surfaces step up in lightness (200 is the canvas, 100 the cards, 300 the
   borders and hovers) and the semantic colours are light, since they are read as text on those surfaces. */
:root:has(input.theme-controller[value=papadopoulos]:checked), [data-theme=papadopoulos] {
    color-scheme: dark;
    --color-base-100: oklch(22% 0.012 190);
    --color-base-200: oklch(17.5% 0.012 190);
    --color-base-300: oklch(31% 0.014 190);
    --color-base-content: oklch(93% 0.008 180);
    --color-primary: oklch(68.9% 0.126 174);
    --color-primary-content: oklch(17% 0.03 175);
    --color-secondary: oklch(36% 0.03 185);
    --color-secondary-content: oklch(95% 0.01 180);
    --color-accent: oklch(76% 0.13 172);
    --color-accent-content: oklch(17% 0.03 175);
    --color-neutral: oklch(30% 0.014 190);
    --color-neutral-content: oklch(94% 0.008 180);
    --color-info: oklch(76% 0.1 240);
    --color-info-content: oklch(18% 0.03 240);
    --color-success: oklch(79% 0.15 135);
    --color-success-content: oklch(18% 0.03 135);
    --color-warning: oklch(81% 0.13 80);
    --color-warning-content: oklch(18% 0.03 80);
    --color-error: oklch(71% 0.17 22);
    --color-error-content: oklch(17% 0.03 22);
    --radius-selector: 1rem;
    --radius-field: 0.375rem;
    --radius-box: 0.5rem;
    --size-selector: 0.25rem;
    --size-field: 0.25rem;
    --border: 1px;
    --depth: 1;
    --noise: 1;
    --font-sans: 'Roboto', ui-sans-serif, system-ui, sans-serif;
}

/* Papadakis Bros (MAN / Mercedes-Benz trucks & buses) — papadakisbros.com is black on white with red kept to the
   brand marks (logo, wordmark, header stripes, timeline years). So the controls are black like the site's black menu
   button and outlined CTAs, and the logo red (#dc1f2d) is the accent (citation numbers). Pure #000 text, the site's
   #f3f3f3 panels and #dfdede rules, square everything, flat, Montserrat standing in for the site's Gotham. Error is a
   darker red than the brand so an alert never reads as brand. */
:root:has(input.theme-controller[value=papadakis]:checked), [data-theme=papadakis] {
    color-scheme: light;
    --color-base-100: oklch(100% 0 0);
    --color-base-200: oklch(96.4% 0.001 30);
    --color-base-300: oklch(90.1% 0.002 30);
    --color-base-content: oklch(0% 0 0);
    --color-primary: oklch(0% 0 0);
    --color-primary-content: oklch(100% 0 0);
    --color-secondary: oklch(57.3% 0.219 25);
    --color-secondary-content: oklch(100% 0 0);
    --color-accent: oklch(57.3% 0.219 25);
    --color-accent-content: oklch(100% 0 0);
    --color-neutral: oklch(0% 0 0);
    --color-neutral-content: oklch(100% 0 0);
    --color-info: oklch(50% 0.09 240);
    --color-info-content: oklch(98% 0.01 240);
    --color-success: oklch(49% 0.1 155);
    --color-success-content: oklch(98% 0.01 155);
    --color-warning: oklch(53% 0.1 70);
    --color-warning-content: oklch(98% 0.01 70);
    --color-error: oklch(44% 0.16 20);
    --color-error-content: oklch(98% 0.01 20);
    --radius-selector: 0rem;
    --radius-field: 0rem;
    --radius-box: 0rem;
    --size-selector: 0.25rem;
    --size-field: 0.28125rem;
    --border: 1px;
    --depth: 0;
    --noise: 0;
    --font-sans: 'Montserrat', ui-sans-serif, system-ui, sans-serif;
}

