@font-face { font-family: Poppins; src: url('/brand/poppins-400.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: Poppins; src: url('/brand/poppins-500.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: Poppins; src: url('/brand/poppins-600.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: Poppins; src: url('/brand/poppins-700.woff2') format('woff2'); font-weight: 700; font-display: swap; }

:root {
  color-scheme: light;
  --brand: #E31B1B;
  --brand-hover: #C21515;
  --brand-deep: #A90A0A;
  --brand-soft: #FDECEC;
  --on-brand: #FFFFFF;
  --navy: #0B1629;
  --navy-700: #1E3358;
  --on-navy: #FFFFFF;
  --on-navy-muted: #A9B4C8;
  --bg: #F5F7FA;
  --surface: #FFFFFF;
  --surface-alt: #EEF1F6;
  --border: #D9DFE8;
  --border-strong: #7F8BA2;
  --ink: #0B1629;
  --ink-muted: #55627A;
  --ink-subtle: #646F85;
  --focus: #2563EB;
  --success: #137033;
  --success-soft: #E7F6EC;
  --warning: #B45309;
  --warning-soft: #FEF3E2;
  --danger: #9F1239;
  --danger-soft: #FDEBF0;
  --on-danger: #FFFFFF;
  --info: #1D4ED8;
  --info-soft: #E8EFFD;
  --chart-1: #E31B1B;
  --chart-2: #1E3358;
  --chart-3: #D97706;
  --chart-4: #0E7490;
  --chart-5: #8C98AE;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-full: 9999px;
  --shadow-card: 0 1px 2px rgba(11,22,41,.06), 0 1px 3px rgba(11,22,41,.08);
  --shadow-pop: 0 8px 24px rgba(11,22,41,.16);
  --scrim: rgba(11,22,41,.65);
  --document-white: #FFFFFF;
  --document-black: #000000;
  --document-ink: #0B1629;
  --document-muted: #55627A;
  --document-border: #D9DFE8;
  --document-surface-alt: #EEF1F6;
  --document-highlight: #A90A0A;
  --font-sans: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --brand: #F25151;
  --brand-hover: #F47070;
  --brand-deep: #F78C8C;
  --brand-soft: #3A1520;
  --on-brand: #0B1629;
  --navy-700: #22396A;
  --bg: #08111F;
  --surface: #0F1C33;
  --surface-alt: #16264A;
  --border: #2A3B5E;
  --border-strong: #5F7091;
  --ink: #EEF1F6;
  --ink-muted: #A3AEC2;
  --ink-subtle: #7F8BA3;
  --focus: #6B9BFF;
  --success: #4ADE80;
  --success-soft: #10301E;
  --warning: #FBBF24;
  --warning-soft: #33270C;
  --danger: #FB7185;
  --danger-soft: #3A1222;
  --on-danger: #0B1629;
  --info: #7DA2FF;
  --info-soft: #13234A;
  --chart-1: #F25151;
  --chart-2: #8FA6D6;
  --chart-3: #F5B451;
  --chart-4: #4FC3DA;
  --chart-5: #5F7091;
  --shadow-card: none;
  --shadow-pop: 0 8px 24px rgba(0,0,0,.34);
}

body { margin: 0; background: var(--bg); color: var(--ink); font: 400 15px/24px var(--font-sans); }
h1 { font: 700 28px/36px var(--font-sans); }
h2 { font: 600 22px/30px var(--font-sans); }
h3 { font: 600 18px/26px var(--font-sans); }
small, .small { font-size: 12px; line-height: 16px; }
:where(button, a, input, textarea, select, summary, [tabindex]):focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
:where(input, select, textarea) { accent-color: var(--brand); }
:where(input, textarea)::placeholder { color: var(--ink-subtle); opacity: 1; }
:where(input, textarea, select)[aria-invalid="true"] { border-color: var(--danger); }
:where(input, textarea, select):user-invalid { border-color: var(--danger); }
:where(input, textarea, select):disabled { background: var(--surface-alt); }
.theme-toggle { display: inline-grid; place-items: center; flex: 0 0 auto; width: 36px; height: 36px; padding: 0; border-radius: var(--radius-md); border: 1px solid var(--border-strong); color: var(--ink); background: var(--surface); }
.theme-toggle:hover { background: var(--surface-alt); }
.theme-toggle svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.theme-toggle .theme-sun, [data-theme="dark"] .theme-toggle .theme-moon { display: none; }
[data-theme="dark"] .theme-toggle .theme-sun { display: block; }
.form-error:not(:empty)::before { content: "⚠"; margin-inline-end: var(--space-2); }

/* The landing page demonstrates independent palettes for school documents. */
.forest,.paper[data-palette="foret"] { --swatch:#0D675D; --wash:#E4F2E9; --accent:#B67025; }
.indigo,.paper[data-palette="indigo"] { --swatch:#243B78; --wash:#EAF0FF; --accent:#6D4BBC; }
.copper,.paper[data-palette="cuivre"] { --swatch:#823C2A; --wash:#FAEDE3; --accent:#B96C2D; }
