/* Copied unchanged from Bench (github.com/blgilman81 Bench repo, apps/web/app/styles/tokens.css, commit 5d29098, 2026-11-13). Update by copying again; don't edit here. */
/* the app tokens — brand: brand-claude/BRAND.md (Brian, Nov 1 2026, #109/PR #113) + direction-v1 (source of truth: design/direction-v1.md §2). Status: Ready.
   Section A is verbatim from the direction. Section B adds derived values the direction names in prose.
   Section C maps the pre-direction variable names onto the new values so 006/008/018 restyle without rewrites. */
/* A — direction §2 (verbatim) */
:root {
  /* Type */
  --font: var(--font-figtree, 'Figtree'), system-ui, sans-serif; /* self-hosted via next/font/local in app/layout.tsx; no Google Fonts */
  /* Color: neutrals */
  --ink: #14181F; --ink-2: #3B4250; --muted: #5D6470;
  --line: #E2DED3; --line-soft: #EEEBE3; --line-strong: #8C8B86;
  --surface: #FFFFFF; --surface-2: #FBFAF6; --chip: #F3F1EA;
  /* Nov 1 brand (BRAND.md §4): page base = paper, cards stay white, chip = chalk */
  --bg: #FBFAF6;
  /* Color: roles */
  --primary: #0F2340; --primary-hover: #0A1830; --primary-soft: #E3E9F2;
  --warn-bg: #FBF1CC; --danger: #B42318;
  /* Team palette */
  --team-1: #1D4ED8; --team-2: #8B1E3F; --team-3: #0E7490; --team-4: #6D28D9; --team-5: #A16207;
  --team-6: #15803D; --team-7: #A21CAF; --team-8: #57534E; /* Nov 1: teams 6-8 finalized (system.md log) */
  --team-1-light: var(--team-1); --team-2-light: var(--team-2); --team-3-light: var(--team-3); --team-4-light: var(--team-4); --team-5-light: var(--team-5);
  --team-6-light: var(--team-6); --team-7-light: var(--team-7); --team-8-light: var(--team-8);
  /* Shape */
  --r-chip: 999px; --r-input: 12px; --r-btn: 12px; --r-card: 16px; --r-hero: 20px;
  --shadow-card: 0 1px 2px rgba(0,0,0,.06), 0 6px 20px rgba(0,0,0,.08);
}
/* B — derived (named in direction prose, or needed for a11y/motion) */
:root {
  --warn-text: #4A3800;  /* 9.99:1 on --warn-bg */
  --warn-icon: #7A5A00;  /* 5.64:1 on --warn-bg */
  --warn-dot:  #E8C547;  /* floodlight: marker/dot only, 1.68:1 on white, never text, never the only signal */
  --danger-soft: #F7E1DE;
  --focus: #0F2340;      /* 2px navy focus ring + 2px offset (15:1 on paper) */
  /* Spacing: 4px base; common steps 8,12,16,20,24,32 */
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 20px; --s-6: 24px; --s-8: 32px; --s-10: 40px; --s-12: 48px;
  /* Type scale (direction table) */
  /* Web app weight step (Brian, Nov 2026): headings, buttons and labels one step lighter. Body/meta stay 500;
     12px status/overline labels keep 700 (too thin at 600). .lp (public landing) resets these to the original weights. */
  --fw-800: 700; --fw-700: 600; --fw-600: 500;
  --t-title-phone: var(--fw-800) 28px/34px var(--font); --ls-title-phone: -0.02em;
  --t-title-desk: var(--fw-800) 40px/46px var(--font);  --ls-title-desk: -0.025em;
  --t-section: var(--fw-800) 21px/28px var(--font);
  --t-card: var(--fw-800) 16.5px/22px var(--font);
  --t-body: 500 15px/22px var(--font);
  --t-meta: 500 13px/18px var(--font);
  --t-over: 700 12.5px/16px var(--font); --ls-over: .06em;
  --t-status: 700 12px/16px var(--font);
  /* Sizes */
  --h-btn: 48px; --h-btn-dense: 40px; --h-chip: 40px; --h-tap: 44px; --h-rsvp: 48px; --h-search: 48px;
  --band: 112px;
  /* Motion */
  --dur-fast: 120ms; --dur: 200ms; --ease: cubic-bezier(.2,0,0,1);
  /* Wow pass (Nov 2): web fallbacks of the shared native springs (design/native/motion-haptics.md §1): tap = --dur-fast, settle = --dur */
  --dur-glide: 300ms;    /* navigation, sheets */
  --dur-reward: 300ms;   /* real wins only: RSVP Going, paid, shift claimed */
  --ease-reward: cubic-bezier(.34,1.56,.64,1); /* one visible overshoot */
  --ease-exit: cubic-bezier(.4,0,1,1);
  --press-scale: .96;
  --dur-crossfade: 150ms; /* wow (a): reduced-motion navigation cross-fade; intentionally NOT zeroed below */
}
@media (prefers-reduced-motion: reduce) {
  :root { --dur-fast: 0ms; --dur: 0ms; --dur-glide: 0ms; --dur-reward: 0ms; --press-scale: 1; }
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}
/* C — legacy aliases (pre-direction names → direction values) */
:root {
  --color-bg: var(--surface); --color-bg-subtle: var(--surface-2); --color-surface: var(--surface);
  --color-border: var(--line); --color-border-strong: var(--line-strong);
  --color-text: var(--ink); --color-text-muted: var(--muted); --color-text-dim: var(--muted);
  --color-brand: var(--primary); --color-brand-hover: var(--primary-hover); --color-brand-tint: var(--primary-soft); --color-on-brand: #fff;
  --color-success: var(--primary); --color-success-tint: var(--primary-soft);
  --color-warning: var(--warn-icon); --color-warning-tint: var(--warn-bg); --color-warning-text: var(--warn-text);
  --color-danger: var(--danger); --color-danger-tint: var(--danger-soft);
  --color-info: var(--ink-2); --color-info-tint: var(--chip); --color-focus: var(--focus);
  --font-sans: var(--font); --font-num: var(--font); --num-features: "tnum" 1;
  --space-half: 4px; --space-1: 8px; --space-2: 16px; --space-3: 24px; --space-4: 32px; --space-5: 40px; --space-6: 48px;
  --text-xs: 12px/16px; --text-sm: 13px/18px; --text-body: 15px/22px; --text-h3: 17px/22px; --text-h2: 21px/28px;
  --weight-regular: 400; --weight-medium: 500; --weight-semibold: 600; --weight-bold: 700; --weight-heavy: 800;
  --radius-sm: 8px; --radius-md: var(--r-input); --radius-lg: var(--r-card); --radius-xl: var(--r-hero); --radius-pill: var(--r-chip);
  --shadow-1: 0 1px 2px rgba(0,0,0,.06); --shadow-2: var(--shadow-card); --shadow-3: 0 12px 40px rgba(0,0,0,.16);
  --control-h: var(--h-btn); --tap-min: var(--h-tap);
}
[data-density="dense"] { --h-btn: var(--h-btn-dense); --control-h: var(--h-btn-dense); }

/* D — Oct 31 2026 · off-white base, tinted surfaces, marketing navy/teal, theme-agnostic "on" colors */
:root {
  color-scheme: light;
  --bg: #FBFAF6;            /* page base = brand paper */
  --tint-navy:  #EEF1F6;    /* tinted section / panel (brand family) */
  --on-primary: #FFFFFF; --link: #0F2340; --chip-selected: #0F2340; --warn-meta: #7A6A40; --warn-action-bg: #FFFFFF; --warn-action-text: #0F2340; --primary-soft-text: var(--ink); --team-band: var(--team); --team-light: var(--team); --on-primary-soft: var(--ink); --on-fill: #FFFFFF; /* on-fill = text on team/kid fills, both themes */
  --on-strong: #FFFFFF;     /* text/icons on ink, primary, danger and team fills */
  --elev-1: #FFFFFF;        /* raised (cards, sheets, menus) */
  --elev-2: #FFFFFF;        /* popovers above cards */
  --scrim: rgba(15,17,20,.45);
  /* Marketing only (landing, public site, emails): never inside the signed-in app */
  --navy: #0F2340; --navy-2: #2E4A6F; --navy-muted: #B8C7DA;
}

/* F — Nov 1 2026 brand (BRAND.md §4, verbatim) + floodlight role tokens + kid palette */
:root {
  --sl-navy: #0F2340; --sl-navy-hover: #0A1830; --sl-navy-2: #2E4A6F; --sl-navy-soft: #E3E9F2;
  --sl-chalk: #F3F1EA; --sl-paper: #FBFAF6; --sl-ink: #14181F; --sl-ink-2: #3B4250; --sl-muted: #5D6470;
  --sl-line: #E2DED3; --sl-line-strong: #8C8B86;
  --sl-flood: #E8C547; --sl-flood-bg: #FBF1CC; --sl-flood-text: #4A3800; --sl-flood-icon: #7A5A00;
  --sl-danger: #B42318; --sl-danger-soft: #F7E1DE; --sl-white: #FFFFFF; --sl-font: var(--font);
  /* Floodlight = changed / urgent / live ONLY (active-tab bar, moved highlight, urgent pin) */
  --flood: #E8C547; --on-flood: #0F2340;
  /* Kid palette (049/046/047): fills with --on-strong text + initial; never green/amber/red; cycles after 8 */
  --kid-1: #A12D79; --kid-2: #1F5FAE; --kid-3: #157171; --kid-4: #743C98;
  --kid-5: #8E3B5F; --kid-6: #3F309E; --kid-7: #5C5650; --kid-8: #9C54A1;
  --kid-1-light: var(--kid-1); --kid-2-light: var(--kid-2); --kid-3-light: var(--kid-3); --kid-4-light: var(--kid-4); --kid-5-light: var(--kid-5); --kid-6-light: var(--kid-6); --kid-7-light: var(--kid-7); --kid-8-light: var(--kid-8);
}
/* G — Nov 3 2026 ADOPTED by Design (CEO-delegated) (offwhite-compare): softer surface tiers from PR #194 spike, light only. Dark unchanged. */
:root {
  --bg: #EFECE6; --surface-2: #EFECE6;      /* page base (was #FBFAF6) */
  --surface: #FAF8F4; --elev-1: #FAF8F4;    /* cards, sheets, bars (was #FFFFFF) */
  --elev-2: #FFFFFF;                        /* menus/popovers stay white, one step above cards */
  --surface-sunken: #E8E5DE;                /* NEW: date boxes, inactive segments on cards; never team-colour text on it */
  --line-strong: #7A7974;                   /* was #8C8B86 (2.89:1 on new bg fails 3:1); 3.70 bg / 4.11 card */
}
/* E — dark theme: BRAND-AMENDMENT-1-DARK.md rev 2 (Brian, Nov 1, #109). Final; replaces rev 1. Auto via OS; <html data-theme=dark|light> forces for mockups. */
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  color-scheme: dark;
  /* BRAND-AMENDMENT-1-DARK.md rev 2 §3 + final/tokens-dark.css, copied exactly */
  --bg:#0B1220; --surface-2:#0B1220; --surface:#131C2E; --chip:#182338; --chip-selected:#2A3A5C;
  --ink:#EEF0F4; --ink-2:#C9CFDA; --muted:#A3ABB9;
  --line:#26324A; --line-soft:#1C2740; --line-strong:#7D8799;
  --primary:#F3F1EA; --on-primary:#0F2340; --primary-hover:#FFFFFF; --link:#A9C1EC;
  --primary-soft:#1F2E4A; --primary-soft-text:#D6E2F7; --on-primary-soft:var(--primary-soft-text); /* alias: our name */
  --warn-bg:#2E2608; --warn-text:#F3D97A; --warn-meta:#D9C98F; --warn-icon:#E8C547; --warn-dot:#E8C547;
  --warn-action-bg:#F3D97A; --warn-action-text:#2E2608;
  --danger:#FF8A7A; --danger-soft:#3A1512; --focus:#A9C1EC;
  --shadow-card:none; --shadow-1:none; --shadow-3:0 12px 40px rgba(0,0,0,.6); /* cards use 1px --line border instead (components.css) */
  --flood:#E8C547; --on-flood:#0F2340;
  /* §4 team colours: per-element --team -> derived band/light */
  --team-band:color-mix(in srgb, var(--team) 45%, #131C2E); --team-light:color-mix(in srgb, var(--team) 45%, #FFFFFF);
  /* §4 table values. --team-N = band (fills, white text); --team-N-light = dots/text */
  --team-1:#18327A; --team-2:#491D36; --team-3:#11445A; --team-4:#3C217B; --team-5:#533C1C; --team-6:#144935; --team-7:#531C68; --team-8:#32353C;
  --team-1-light:#99AFED; --team-2-light:#CB9AA9; --team-3-light:#93C0CD; --team-4-light:#BD9EEE; --team-5-light:#D5B88F; --team-6-light:#96C6A8; --team-7-light:#D599DB; --team-8-light:#B3B2AF;
  /* kids: §4 formula applied to the kid palette. --kid-N = band (fills), --kid-N-light = dots/text */
  --kid-1:#532450; --kid-2:#183A68; --kid-3:#14424C; --kid-4:#3F2A5E; --kid-5:#4A2A44; --kid-6:#272560; --kid-7:#34363D; --kid-8:#513562;
  --kid-1-light:#D5A0C3; --kid-2-light:#9AB7DB; --kid-3-light:#96BFBF; --kid-4-light:#C0A7D1; --kid-5-light:#CCA7B7; --kid-6-light:#A9A2D3; --kid-7-light:#B6B3B0; --kid-8-light:#D2B2D5;
  /* Design-derived (not in the amendment; flagged) */
  --elev-1:#131C2E; --elev-2:#182338; --surface-sunken:#182338; --on-strong:#0F2340; --on-fill:#FFFFFF; --tint-navy:#1F2E4A; --scrim:rgba(0,0,0,.6);
}}
[data-theme="dark"] {
  color-scheme: dark;
  /* BRAND-AMENDMENT-1-DARK.md rev 2 §3 + final/tokens-dark.css, copied exactly */
  --bg:#0B1220; --surface-2:#0B1220; --surface:#131C2E; --chip:#182338; --chip-selected:#2A3A5C;
  --ink:#EEF0F4; --ink-2:#C9CFDA; --muted:#A3ABB9;
  --line:#26324A; --line-soft:#1C2740; --line-strong:#7D8799;
  --primary:#F3F1EA; --on-primary:#0F2340; --primary-hover:#FFFFFF; --link:#A9C1EC;
  --primary-soft:#1F2E4A; --primary-soft-text:#D6E2F7; --on-primary-soft:var(--primary-soft-text); /* alias: our name */
  --warn-bg:#2E2608; --warn-text:#F3D97A; --warn-meta:#D9C98F; --warn-icon:#E8C547; --warn-dot:#E8C547;
  --warn-action-bg:#F3D97A; --warn-action-text:#2E2608;
  --danger:#FF8A7A; --danger-soft:#3A1512; --focus:#A9C1EC;
  --shadow-card:none; --shadow-1:none; --shadow-3:0 12px 40px rgba(0,0,0,.6); /* cards use 1px --line border instead (components.css) */
  --flood:#E8C547; --on-flood:#0F2340;
  /* §4 team colours: per-element --team -> derived band/light */
  --team-band:color-mix(in srgb, var(--team) 45%, #131C2E); --team-light:color-mix(in srgb, var(--team) 45%, #FFFFFF);
  /* §4 table values. --team-N = band (fills, white text); --team-N-light = dots/text */
  --team-1:#18327A; --team-2:#491D36; --team-3:#11445A; --team-4:#3C217B; --team-5:#533C1C; --team-6:#144935; --team-7:#531C68; --team-8:#32353C;
  --team-1-light:#99AFED; --team-2-light:#CB9AA9; --team-3-light:#93C0CD; --team-4-light:#BD9EEE; --team-5-light:#D5B88F; --team-6-light:#96C6A8; --team-7-light:#D599DB; --team-8-light:#B3B2AF;
  /* kids: §4 formula applied to the kid palette. --kid-N = band (fills), --kid-N-light = dots/text */
  --kid-1:#532450; --kid-2:#183A68; --kid-3:#14424C; --kid-4:#3F2A5E; --kid-5:#4A2A44; --kid-6:#272560; --kid-7:#34363D; --kid-8:#513562;
  --kid-1-light:#D5A0C3; --kid-2-light:#9AB7DB; --kid-3-light:#96BFBF; --kid-4-light:#C0A7D1; --kid-5-light:#CCA7B7; --kid-6-light:#A9A2D3; --kid-7-light:#B6B3B0; --kid-8-light:#D2B2D5;
  /* Design-derived (not in the amendment; flagged) */
  --elev-1:#131C2E; --elev-2:#182338; --surface-sunken:#182338; --on-strong:#0F2340; --on-fill:#FFFFFF; --tint-navy:#1F2E4A; --scrim:rgba(0,0,0,.6);
}
/* Legacy alias for the brand-on color follows the theme */
:root, [data-theme="dark"] { --color-on-brand: var(--on-strong); --color-bg: var(--bg); }

/* Public landing page keeps its original weights (weight step is web-app only). */
.lp{--fw-800:800;--fw-700:700;--fw-600:600;
  --t-title-phone:800 28px/34px var(--font);--t-title-desk:800 40px/46px var(--font);--t-section:800 21px/28px var(--font);--t-card:800 16.5px/22px var(--font)}
