/*
  Pascale.ai V7 : jetons de design (source : design system "Pascale.ai V7", tokens.json)
  Ordre de chargement : tokens.css -> pascale-v7.css -> bootstrap-v7.css
  Le thème clair est la référence ; le thème sombre s'active avec data-theme="dark" sur la racine
*/
:root {
  color-scheme: light;
  --primary: #ff2aa0;
  --primary-hover: #e0198a;
  --primary-border: #c4157a;
  --primary-deep: #a11244;
  --on-primary: #ffffff;
  --brand-cyan: #2acdff;
  --brand-cyan-deep: #0b6f9e;
  --brand-purple: #522aab;
  --brand-violet: #923fc0;
  --brand-pink: #fa3582;
  --brand-aqua: #00ffff;
  --brand-acid: #e5ff00;
  --page: #ffffff;
  --paper: #f8f8f8;
  --surface: #ffffff;
  --tile: rgba(255,255,255,0.84);
  --field: #fbfaff;
  --button-bg: #ffffff;
  --tint: #fff4f8;
  --wash-cyan: #d6f7ff;
  --wash-pink: #ffe0f0;
  --wash-violet: #f4eeff;
  --ink: #121212;
  --ink-2: #3a3d3f;
  --muted: #5f5f5f;
  --line: #e5e5e5;
  --line-soft: #f0f0f0;
  --tile-border: rgba(82,42,171,0.10);
  --chip-bg: #fff4f8;
  --chip-border: rgba(255,42,160,0.20);
  --chip-ink: #a11244;
  --note-bg: #fbf4ea;
  --note-border: #e8dcc8;
  --note-line: rgba(176,150,110,0.24);
  --note-margin: rgba(250,53,130,0.32);
  --note-ink: #3a2f22;
  --glow-cyan: rgba(42,205,255,0.22);
  --glow-pink: rgba(255,42,160,0.12);
  --dot: rgba(82,42,171,0.13);
  --focus-ring: #0b6f9e;
  --logo-ground: rgba(255,255,255,0);
  --success: #0b7a55;
  --warning: #9a5b00;
  --danger: #c81e3c;
  --subject-maths-from: #2acdff;
  --subject-maths-to: #5b3fd0;
  --subject-francais-from: #ff2aa0;
  --subject-francais-to: #522aab;
  --subject-physique-from: #522aab;
  --subject-physique-to: #0b6f9e;
  --subject-svt-from: #13b88a;
  --subject-svt-to: #0b6f9e;
  --subject-anglais-from: #0b6f9e;
  --subject-anglais-to: #2acdff;
  --subject-amc-from: #3b1f8f;
  --subject-amc-to: #1aa6e0;
  --subject-emc-from: #923fc0;
  --subject-emc-to: #fa3582;
  --subject-ens-sci-from: #140b45;
  --subject-ens-sci-to: #923fc0;
  --subject-espagnol-from: #fa3582;
  --subject-espagnol-to: #ff9a3c;
  --subject-hg-from: #0e8a9e;
  --subject-hg-to: #522aab;
  --subject-ses-from: #522aab;
  --subject-ses-to: #2acdff;
  --subject-philo-from: #2a1060;
  --subject-philo-to: #a11244;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-16: 64px;
  --radius-field: 14px;
  --radius-note: 18px;
  --radius-art: 19px;
  --radius-composer: 22px;
  --radius-card: 24px;
  --radius-tile: 28px;
  --radius-pill: 40px;
  --radius-round: 50%;
  --shadow-tile: 0 1px 2px rgba(18,18,18,0.04), 0 28px 50px -30px rgba(82,42,171,0.40);
  --shadow-card: 0 1px 2px rgba(18,18,18,0.05), 0 22px 40px -26px rgba(82,42,171,0.48);
  --shadow-button: 0 6px 16px -10px rgba(82,42,171,0.45);
  --shadow-cta: 0 16px 30px -12px rgba(255,42,160,0.7), inset 0 1px 0 rgba(255,255,255,0.35);
  --shadow-send: 0 14px 26px -12px rgba(146,63,192,0.75), inset 0 1px 0 rgba(255,255,255,0.3);
  --shadow-composer: 0 20px 40px -28px rgba(146,63,192,0.7);
  --shadow-note: 0 14px 30px -22px rgba(120,80,30,0.5);
  --container: 1160px;
  --touch-target: 44px;
  --button-height-lg: 54px;
  --button-height: 48px;
  --card-min: 150px;
  --font-sans: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-script: Caveat, "Segoe Print", "Bradley Hand", cursive;
}

[data-theme="dark"] {
  color-scheme: dark;
  --primary-deep: #ff8fcd;
  --brand-cyan-deep: #6fdcff;
  --page: #0f0b1d;
  --paper: #151026;
  --surface: #1d1630;
  --tile: rgba(29,22,48,0.86);
  --field: #171127;
  --button-bg: #251c3d;
  --tint: #2a1838;
  --wash-cyan: rgba(42,205,255,0.20);
  --wash-pink: rgba(255,42,160,0.20);
  --wash-violet: rgba(146,63,192,0.26);
  --ink: #f6f3ff;
  --ink-2: #d9d3e8;
  --muted: #aaa3bf;
  --line: #3a2f55;
  --line-soft: #2e2546;
  --tile-border: rgba(255,255,255,0.08);
  --chip-bg: #2a1838;
  --chip-border: rgba(255,143,205,0.26);
  --chip-ink: #ff8fcd;
  --note-bg: #2a2236;
  --note-border: #463a58;
  --note-line: rgba(255,255,255,0.07);
  --note-margin: rgba(255,143,205,0.38);
  --note-ink: #f3eadb;
  --glow-cyan: rgba(42,205,255,0.14);
  --glow-pink: rgba(255,42,160,0.14);
  --dot: rgba(255,255,255,0.07);
  --focus-ring: #6fdcff;
  --logo-ground: rgba(255,255,255,0);
  --success: #5fe0a8;
  --warning: #ffc35a;
  --danger: #ff8a9b;
  --shadow-tile: inset 0 1px 0 rgba(255,255,255,0.05), 0 30px 60px -30px rgba(0,0,0,0.75);
  --shadow-card: 0 24px 44px -26px rgba(0,0,0,0.85);
  --shadow-button: 0 6px 16px -10px rgba(0,0,0,0.6);
}

/* Composites (les dégradés ne peuvent pas être des jetons) */
:root {
  --grad: linear-gradient(90deg, var(--brand-aqua) 14.3%, var(--brand-violet) 49%, var(--brand-pink) 85.7%);
  --grad-cta: linear-gradient(90deg, var(--primary) 0%, var(--brand-purple) 100%);
  --grad-btn: linear-gradient(90deg, #0b6f9e 14.3%, #923fc0 49%, #d01f6b 85.7%);
  --grad-text: var(--grad-btn);
  --page-bg:
    radial-gradient(1100px 700px at -10% -8%, var(--wash-cyan) 0%, rgba(214,247,255,0) 62%),
    radial-gradient(900px 760px at -18% 58%, var(--wash-cyan) 0%, rgba(214,247,255,0) 60%),
    radial-gradient(1000px 700px at 110% -6%, var(--wash-pink) 0%, rgba(255,224,240,0) 62%),
    radial-gradient(900px 820px at 112% 82%, var(--wash-violet) 0%, rgba(244,238,255,0) 60%),
    var(--page);
  --sheen:
    radial-gradient(circle at 50% 32%, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 58%),
    radial-gradient(rgba(255,255,255,0.16) 1px, transparent 1.5px) 0 0 / 14px 14px;
  --mascot-bg:
    radial-gradient(circle at 22% 18%, var(--wash-cyan) 0%, rgba(214,247,255,0) 58%),
    radial-gradient(circle at 84% 88%, var(--wash-pink) 0%, rgba(255,224,240,0) 58%),
    linear-gradient(160deg, var(--surface) 0%, var(--wash-violet) 100%);
  --ease: cubic-bezier(.22, 1, .36, 1);
}
[data-theme="dark"] { --grad-text: var(--grad); }

/*
  Jetons dérivés propres à l'application (absents du design system, construits à partir des jetons ci-dessus)
*/
:root {
  --field-border: rgba(82, 42, 171, 0.22);
  --field-border-hover: rgba(82, 42, 171, 0.38);
  --success-bg: #e9f6f0;
  --success-border: rgba(11, 122, 85, 0.24);
  --warning-bg: #fdf4e5;
  --warning-border: rgba(154, 91, 0, 0.24);
  --danger-bg: #fdedf0;
  --danger-border: rgba(200, 30, 60, 0.24);
  --info-bg: #e9f5fb;
  --info-border: rgba(11, 111, 158, 0.22);
  --hover-wash: rgba(82, 42, 171, 0.06);
  --shadow-pop: 0 1px 2px rgba(18, 18, 18, 0.05), 0 30px 60px -28px rgba(82, 42, 171, 0.45);
  --backdrop: rgba(27, 15, 58, 0.45);
  --sidebar-surface: rgba(255, 255, 255, 0.72);
  --sidebar-surface-solid: rgba(255, 255, 255, 0.96);
  --sidebar-foot-surface: rgba(255, 255, 255, 0.9);
  --sidebar-shadow: 18px 0 40px -34px rgba(82, 42, 171, 0.45);
  --topbar-surface: rgba(255, 255, 255, 0.82);
  --line-strong: #d6d3de;
  --link-hover: #7d0e35;
  --violet-ink: #5b33c4;
  --ink-inverse: #ffffff;
  --success-ink: #075a3f;
  --warning-ink: #6e4100;
  --danger-ink: #9b1730;
  --topbar-height: 0px;
}
[data-theme="dark"] {
  --field-border: rgba(255, 255, 255, 0.16);
  --field-border-hover: rgba(255, 255, 255, 0.28);
  --success-bg: rgba(95, 224, 168, 0.12);
  --warning-bg: rgba(255, 195, 90, 0.12);
  --danger-bg: rgba(255, 138, 155, 0.12);
  --info-bg: rgba(111, 220, 255, 0.12);
  --success-border: rgba(95, 224, 168, 0.30);
  --warning-border: rgba(255, 195, 90, 0.30);
  --danger-border: rgba(255, 138, 155, 0.32);
  --info-border: rgba(111, 220, 255, 0.28);
  --hover-wash: rgba(255, 255, 255, 0.06);
  --shadow-pop: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 30px 60px -28px rgba(0, 0, 0, 0.8);
  --backdrop: rgba(6, 4, 14, 0.62);
  --sidebar-surface: rgba(29, 22, 48, 0.82);
  --sidebar-surface-solid: rgba(21, 16, 38, 0.97);
  --sidebar-foot-surface: rgba(24, 18, 42, 0.92);
  --sidebar-shadow: 18px 0 40px -30px rgba(0, 0, 0, 0.7);
  --topbar-surface: rgba(15, 11, 29, 0.82);
  --line-strong: #4d3f70;
  --link-hover: #ffb8de;
  --violet-ink: #b9a2ff;
  --ink-inverse: #0f0b1d;
  --success-ink: var(--success);
  --warning-ink: var(--warning);
  --danger-ink: var(--danger);
}
