/*
  Colour tokens: the single source of colour for every cabinet component.
  Components use roles (surface, line, danger-soft...), never raw hex values, so the
  dark theme is obtained by redefining the roles below instead of per-widget fixes.
  Loaded first on every page (cabinet, landing, admin); see docs/UI-SYSTEM.md,
  section 8 "Цвета и темы". The dark values apply when theme.js sets data-theme.
*/
:root {
  color-scheme: light;
  --page:#fcfcfc; --surface:#fff; --surface-muted:#f1f2f4; --surface-hover:#e7e9ec;
  /* Small secondary text also clears normal-text contrast on neutral hover. */
  --ink:#202329; --muted:#606975; --line:#dcdde0; --line-strong:#b9bdc5;
  --inverse:#202329; --inverse-hover:#373d46; --on-inverse:#fff;
  --lemon:#f5ff37; --accent:var(--lemon); --on-accent:#202329;
  --accent-soft:#f9fbdc; --accent-line:#cfd46a; --accent-ink:#676b00;
  /* Original pupil coral. Choices have a pale wash and warm-neutral outline,
     never a red attention border; danger roles remain independent. */
  --context-selected:#ff998d; --context-selected-soft:#ffebe5;
  --context-selected-line:#ddcec8; --context-selected-hover:#ffded5;
  --on-context-selected:#202329; --coral:var(--context-selected);
  --danger-soft:#fff0ee; --danger-line:#d8574b; --danger-ink:#b3362d;
  /* Emergency border glow matches the calendar's overlapping-lesson stripe. */
  --danger-glow:0 0 6px 1px color-mix(in srgb,var(--danger-line) 75%,transparent),0 0 12px 2px color-mix(in srgb,var(--danger-line) 35%,transparent);
  --danger-surface-glow:inset 0 0 0 1px var(--danger-line),var(--danger-glow);
  --warning-soft:#fff3d6; --warning-line:#c69a28; --warning-ink:#825000;
  --success-soft:#e4f4ed; --success-line:#6fb391; --success-ink:#147651;
  --info-soft:#e7eefc; --info-line:#8babd8; --info-ink:#1f5fcc;
  --draft-soft:#f1edf8; --draft-line:#afa0c9; --draft-ink:#655180;
  --chart-received:#c8db00;
  --brand-surface:#202329; --brand-surface-hover:#373d46; --brand-surface-line:#202329; --on-brand:#fff; --on-brand-muted:#aeb4be;
  --logo-backdrop:#202329; --logo-stone:#fff; --logo-sprout:#f5ff37;
  --detail-glass:color-mix(in srgb,var(--surface) 46%,transparent);
  --detail-glass-edge:color-mix(in srgb,var(--ink) 10%,transparent);
  --detail-glass-highlight:color-mix(in srgb,var(--surface) 80%,transparent);
  --detail-glass-shadow:color-mix(in srgb,var(--ink) 14%,transparent);
}
:root[data-theme="dark"] {
  color-scheme:dark;
  --page:#191c21; --surface:#22262d; --surface-muted:#282d35; --surface-hover:#343a45;
  --ink:#e5e7eb; --muted:#afb7c3; --line:#3c424d; --line-strong:#5b6472;
  --inverse:#e5e7eb; --inverse-hover:#ffffff; --on-inverse:#191c21;
  --on-accent:#191c21;
  --context-selected:#e6a296; --context-selected-soft:#38312e;
  --context-selected-line:#685d58; --context-selected-hover:#453a35;
  --on-context-selected:#202329; --coral:var(--context-selected);
  --accent-soft:#2a2d1e; --accent-line:#6b7128; --accent-ink:#e1ea74;
  --danger-soft:#3b2729; --danger-line:#a4544b; --danger-ink:#ffa194;
  --danger-glow:0 0 6px 1px color-mix(in srgb,var(--danger-line) 75%,transparent),0 0 12px 2px color-mix(in srgb,var(--danger-line) 35%,transparent);
  --danger-surface-glow:inset 0 0 0 1px var(--danger-line),var(--danger-glow);
  --warning-soft:#3a3020; --warning-line:#8f6f2e; --warning-ink:#f1d193;
  --success-soft:#1f3a2e; --success-line:#3f7a5e; --success-ink:#88dbb3;
  --info-soft:#232f45; --info-line:#48628f; --info-ink:#a5c4ff;
  --draft-soft:#302b3d; --draft-line:#78658e; --draft-ink:#cdbbe5;
  --chart-received:#c8db00;
  --brand-surface:#2f343d; --brand-surface-hover:#3b424d; --brand-surface-line:#4a515d;
  --logo-backdrop:var(--lemon); --logo-stone:#202329; --logo-sprout:#202329;
  --detail-glass:color-mix(in srgb,var(--surface) 68%,transparent);
  --detail-glass-edge:color-mix(in srgb,var(--ink) 16%,transparent);
  --detail-glass-highlight:color-mix(in srgb,var(--ink) 8%,transparent);
  --detail-glass-shadow:color-mix(in srgb,var(--page) 70%,transparent);
}
