/* Explora design system — tokens: colour, type, radius, shadow, motion.
   Light ("crema") is the default; dark ("roast") follows the OS unless
   data-theme="light" is set, or is forced with data-theme="dark".
   Tweak the look here first — everything else reads these variables.
   Load order (a contract): tokens → base → shell → components [→ admin].
   Brand colours are injected inline after tokens (shell/_theme.html). */
:root{
  /* Brand defaults — overridden by the inline SiteBranding line that follows this
     file (same specificity, later wins). Kept out of the block below on purpose. */
  --brand:#3150a2;
  --warm:#e56270;
}
:root,
/* Django admin declares its palette on html[data-theme="light"] (more specific
   than :root) and also owns a yellow --accent; repeat the selector so ours wins. */
:root[data-theme="light"]{
  color-scheme: light dark;
  --electric:#22c3ee;
  --caramel:#c67a3c;

  --font:"Inter var",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --display:ui-rounded,"SF Pro Rounded","Nunito","Varela Round",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:ui-monospace,"SF Mono","JetBrains Mono","Cascadia Mono",Menlo,Consolas,monospace;
  --radius:14px; --radius-sm:9px; --radius-lg:20px;
  --side-w:16.25rem;
  --ease:cubic-bezier(.2,.8,.2,1);

  /* light — "crema" */
  --bg:#f4eee5; --bg-dot:rgba(74,50,30,.11);
  --panel:#fffdf9; --panel-glass:rgba(255,253,249,.8); --panel-2:#f4ede3; --field:#fffaf4;
  --ink:#22170f; --ink-2:#4b3b2f; --muted:#7b6a5c;
  --border:#e8dfd3; --border-strong:#d8cab9; --edge:rgba(255,255,255,.9);
  --accent:var(--brand); --accent-ink:#fff; --accent-2:var(--warm);
  --accent-hi:color-mix(in oklab,var(--brand) 58%,var(--electric));
  --glow:color-mix(in oklab,var(--accent-hi) 38%,transparent);
  --good:#23845a; --good-bg:#e2f2e8; --warn:#ad6313; --warn-bg:#fbeedc; --danger:#c0392b;
  --booked:#e05a67; --pencil:#c98a2e;
  --shadow:0 1px 1px rgba(60,35,15,.04),0 10px 30px -14px rgba(60,35,15,.22);
  --shadow-lg:0 30px 80px -24px rgba(40,22,10,.35);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#110d0a; --bg-dot:rgba(255,226,190,.07);
    --panel:#1a1410; --panel-glass:rgba(29,22,17,.74); --panel-2:#221a14; --field:#140f0c;
    --ink:#f5ebdf; --ink-2:#d9cabb; --muted:#a59483;
    --border:#2e241d; --border-strong:#3e3128; --edge:rgba(255,236,214,.07);
    --accent:color-mix(in oklab,var(--brand) 45%,#b9ccff); --accent-ink:#110d0a;
    --accent-hi:color-mix(in oklab,var(--brand) 35%,var(--electric));
    --good:#5cc98f; --good-bg:#13261b; --warn:#e7a95c; --warn-bg:#2b1e10; --danger:#f2786c;
    --pencil:#e0a347;
    --shadow:0 1px 1px rgba(0,0,0,.3),0 14px 34px -16px rgba(0,0,0,.7);
    --shadow-lg:0 30px 90px -20px rgba(0,0,0,.8);
  }
}
:root[data-theme="light"]{color-scheme:light}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#110d0a; --bg-dot:rgba(255,226,190,.07);
  --panel:#1a1410; --panel-glass:rgba(29,22,17,.74); --panel-2:#221a14; --field:#140f0c;
  --ink:#f5ebdf; --ink-2:#d9cabb; --muted:#a59483;
  --border:#2e241d; --border-strong:#3e3128; --edge:rgba(255,236,214,.07);
  --accent:color-mix(in oklab,var(--brand) 45%,#b9ccff); --accent-ink:#110d0a;
  --accent-hi:color-mix(in oklab,var(--brand) 35%,var(--electric));
  --good:#5cc98f; --good-bg:#13261b; --warn:#e7a95c; --warn-bg:#2b1e10; --danger:#f2786c;
  --pencil:#e0a347;
  --shadow:0 1px 1px rgba(0,0,0,.3),0 14px 34px -16px rgba(0,0,0,.7);
  --shadow-lg:0 30px 90px -20px rgba(0,0,0,.8);
}
