/* Novialoom — jetons de design. Fichier généré par scripts/build_tokens.py : ne pas modifier à la main.
   Polices (Google Fonts, seul CDN admis) :
   https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,400;0,500;0,600;1,400&family=DM+Mono:wght@400;500&display=swap */

/* 1. Jetons fixes */
:root {
  --nl-ecru: #EDE6D6;
  --nl-papier: #F7F3EA;
  --nl-sable: #E3DAC6;
  --nl-encre: #1C1B18;
  --nl-gris: #5E5848;
  --nl-nuit: #1F1D1A;
  --nl-nuit-2: #2A2723;
  --nl-brique: #A9442A;
  --nl-brique-survol: #8E3822;
  --nl-brique-vive: #C2502E;
  --nl-neutre-50: #F7F3EA;
  --nl-neutre-100: #EDE6D6;
  --nl-neutre-200: #E3DAC6;
  --nl-neutre-300: #D3C9B4;
  --nl-neutre-400: #BFB49C;
  --nl-neutre-500: #8A8170;
  --nl-neutre-600: #5E5848;
  --nl-neutre-700: #4A4538;
  --nl-neutre-800: #2A2723;
  --nl-neutre-900: #1C1B18;
  --nl-comprendre-de: #3D5FA3;
  --nl-comprendre-a: #3D5FA3;
  --nl-comprendre-encre: #3D5FA3;
  --nl-comprendre-clair: #9DB4E8;
  --nl-comprendre-teinte: #DCE2EE;
  --nl-comprendre-sur: #F7F3EA;
  --nl-lab-de: #D39A2C;
  --nl-lab-a: #D39A2C;
  --nl-lab-encre: #7A5408;
  --nl-lab-clair: #EBC064;
  --nl-lab-teinte: #F3E3BD;
  --nl-lab-sur: #1C1B18;
  --nl-arbitrer-de: #C2502E;
  --nl-arbitrer-a: #A9442A;
  --nl-arbitrer-encre: #A9442A;
  --nl-arbitrer-clair: #F0937A;
  --nl-arbitrer-teinte: #F5E3DA;
  --nl-arbitrer-sur: #F7F3EA;
  --nl-construire-de: #33694F;
  --nl-construire-a: #33694F;
  --nl-construire-encre: #33694F;
  --nl-construire-clair: #8CCBA8;
  --nl-construire-teinte: #DCE7DE;
  --nl-construire-sur: #F7F3EA;
  --nl-succes: #33694F;
  --nl-alerte: #7A5408;
  --nl-erreur: #A9442A;
  --nl-info: #3D5FA3;
  --nl-artefact-fond: #1F1D1A;
  --nl-artefact-bord: rgba(237,230,214,.12);
  --nl-artefact-texte: #D3CAB5;
  --nl-artefact-discret: #A39A86;
  --nl-artefact-fort: #F7F3EA;
  --nl-artefact-invite: #9DB4E8;
  --nl-artefact-ok: #8CCBA8;
  --nl-artefact-non: #F0937A;
  --nl-artefact-attente: #EBC064;
  --nl-artefact-attente-fond: rgba(235,192,100,.14);
  --nl-police-display: Jost, "Jost Repli", system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nl-police-body: Jost, "Jost Repli", system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nl-police-mono: 'DM Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --nl-t-12: 12px;
  --nl-t-13: 13px;
  --nl-t-14: 14px;
  --nl-t-15: 15px;
  --nl-t-16: 16px;
  --nl-t-17: 17px;
  --nl-t-18: 18px;
  --nl-t-20: 20px;
  --nl-t-22: 22px;
  --nl-t-24: 24px;
  --nl-t-28: 28px;
  --nl-t-30: 30px;
  --nl-t-40: 40px;
  --nl-t-56: 56px;
  --nl-t-h1: clamp(36px, 4.4vw, 60px);
  --nl-t-h1-lab: clamp(40px, 6.1vw, 88px);
  --nl-t-h2: clamp(30px, 3.05vw, 44px);
  --nl-t-h2-moyen: clamp(26px, 2.6vw, 36px);
  --nl-t-h3: 24px;
  --nl-e1: 4px;
  --nl-e2: 8px;
  --nl-e3: 16px;
  --nl-e4: 24px;
  --nl-e5: 32px;
  --nl-e6: 48px;
  --nl-e7: 64px;
  --nl-e8: 96px;
  --nl-e-12: 12px;
  --nl-r-bouton: 999px;
  --nl-r-tuile: 14px;
  --nl-r-carte: 18px;
  --nl-r-panneau: 24px;
  --nl-r-pastille: 999px;
  --nl-maxw: 1280px;
  --nl-pad: clamp(20px, 5.5vw, 80px);
  --nl-rythme: clamp(64px, 6.7vw, 96px);
  --nl-gouttiere: 24px;
  --nl-mesure: 70ch;
  --nl-cible: 44px;
  --nl-duree: 180ms;
  --nl-courbe: ease;
  --nl-fil-de: #A9442A;
  --nl-fil-a: #A9442A;
  --nl-fil-encre: #1C1B18;
  --nl-fil-clair: #EDE6D6;
  --nl-fil-teinte: #E3DAC6;
  --nl-fil-sur: #F7F3EA;
}

/* 2. Thème clair (défaut). .nl-clair rétablit le clair à l'intérieur d'une zone sombre. */
:root,
.nl-clair,
[data-theme="light"] {
  --nl-fond: #EDE6D6;
  --nl-fond-2: #F7F3EA;
  --nl-surface: #F7F3EA;
  --nl-surface-2: #E3DAC6;
  --nl-filet: #D3C9B4;
  --nl-filet-fort: #BFB49C;
  --nl-trait: #1C1B18;
  --nl-texte: #1C1B18;
  --nl-texte-2: #4A4538;
  --nl-texte-3: #5E5848;
  --nl-titre-fort: #1C1B18;
  --nl-lien: #A9442A;
  --nl-lien-survol: #1C1B18;
  --nl-focus: #1C1B18;
  --nl-verre: rgba(237,230,214,.90);
  --nl-verre-filet: #D3C9B4;
  --nl-champ-bord: #7E7563;
  --nl-btn-2-fond: transparent;
  --nl-btn-2-bord: #1C1B18;
  --nl-btn-2-texte: #1C1B18;
  --nl-ombre: none;
  --nl-ombre-survol: 0 1px 2px rgba(28,27,24,.08), 0 10px 30px rgba(28,27,24,.08);
  --nl-ombre-action: none;
  --nl-statut-specifie-fond: rgba(94,88,72,.12);
  --nl-statut-specifie-texte: #4A4538;
  --nl-statut-developpement-fond: #F3E3BD;
  --nl-statut-developpement-texte: #7A5408;
  --nl-statut-extraction-fond: #DCE2EE;
  --nl-statut-extraction-texte: #3D5FA3;
  --nl-statut-interne-fond: rgba(28,27,24,.08);
  --nl-statut-interne-texte: #1C1B18;
  --nl-statut-publie-fond: #DCE7DE;
  --nl-statut-publie-texte: #33694F;
  --nl-statut-prevue-bord: #7E7563;
  --nl-statut-prevue-texte: #4A4538;
  --nl-avalider-fond: #F6E7C1;
  --nl-avalider-bord: #7A5408;
  --nl-avalider-texte: #5A3D05;
  --nl-comprendre-texte: var(--nl-comprendre-encre);
  --nl-lab-texte: var(--nl-lab-encre);
  --nl-arbitrer-texte: var(--nl-arbitrer-encre);
  --nl-construire-texte: var(--nl-construire-encre);
  --nl-fil-texte: var(--nl-fil-encre);
}

/* 3. Thème sombre : une section (.nl-sombre) ou toute l'interface ([data-theme="dark"]). */
.nl-sombre,
[data-theme="dark"] {
  --nl-fond: #1F1D1A;
  --nl-fond-2: #2A2723;
  --nl-surface: rgba(237,230,214,.06);
  --nl-surface-2: rgba(237,230,214,.10);
  --nl-filet: #3A3631;
  --nl-filet-fort: #57514A;
  --nl-trait: #EDE6D6;
  --nl-texte: #EDE6D6;
  --nl-texte-2: #D3CAB5;
  --nl-texte-3: #BDB4A0;
  --nl-titre-fort: #EDE6D6;
  --nl-lien: #EBC064;
  --nl-lien-survol: #F7F3EA;
  --nl-focus: #EBC064;
  --nl-verre: rgba(31,29,26,.90);
  --nl-verre-filet: #3A3631;
  --nl-champ-bord: #8A8170;
  --nl-btn-2-fond: transparent;
  --nl-btn-2-bord: #EDE6D6;
  --nl-btn-2-texte: #EDE6D6;
  --nl-ombre: none;
  --nl-ombre-survol: 0 10px 30px rgba(0,0,0,.32);
  --nl-ombre-action: none;
  --nl-statut-specifie-fond: rgba(237,230,214,.12);
  --nl-statut-specifie-texte: #D3CAB5;
  --nl-statut-developpement-fond: rgba(235,192,100,.18);
  --nl-statut-developpement-texte: #EBC064;
  --nl-statut-extraction-fond: rgba(157,180,232,.18);
  --nl-statut-extraction-texte: #9DB4E8;
  --nl-statut-interne-fond: rgba(237,230,214,.14);
  --nl-statut-interne-texte: #EDE6D6;
  --nl-statut-publie-fond: rgba(140,203,168,.18);
  --nl-statut-publie-texte: #8CCBA8;
  --nl-statut-prevue-bord: #8A8170;
  --nl-statut-prevue-texte: #D3CAB5;
  --nl-avalider-fond: rgba(235,192,100,.16);
  --nl-avalider-bord: #EBC064;
  --nl-avalider-texte: #F3E3BD;
  --nl-comprendre-texte: var(--nl-comprendre-clair);
  --nl-lab-texte: var(--nl-lab-clair);
  --nl-arbitrer-texte: var(--nl-arbitrer-clair);
  --nl-construire-texte: var(--nl-construire-clair);
  --nl-fil-texte: var(--nl-fil-clair);
}

/* 4. Rubrique courante : poser data-fil sur la page, la section ou la carte. */
[data-fil="comprendre"] {
  --nl-fil-de: var(--nl-comprendre-de);
  --nl-fil-a: var(--nl-comprendre-a);
  --nl-fil-encre: var(--nl-comprendre-encre);
  --nl-fil-clair: var(--nl-comprendre-clair);
  --nl-fil-teinte: var(--nl-comprendre-teinte);
  --nl-fil-sur: var(--nl-comprendre-sur);
  --nl-fil-texte: var(--nl-fil-encre);
}

[data-fil="lab"] {
  --nl-fil-de: var(--nl-lab-de);
  --nl-fil-a: var(--nl-lab-a);
  --nl-fil-encre: var(--nl-lab-encre);
  --nl-fil-clair: var(--nl-lab-clair);
  --nl-fil-teinte: var(--nl-lab-teinte);
  --nl-fil-sur: var(--nl-lab-sur);
  --nl-fil-texte: var(--nl-fil-encre);
}

[data-fil="arbitrer"] {
  --nl-fil-de: var(--nl-arbitrer-de);
  --nl-fil-a: var(--nl-arbitrer-a);
  --nl-fil-encre: var(--nl-arbitrer-encre);
  --nl-fil-clair: var(--nl-arbitrer-clair);
  --nl-fil-teinte: var(--nl-arbitrer-teinte);
  --nl-fil-sur: var(--nl-arbitrer-sur);
  --nl-fil-texte: var(--nl-fil-encre);
}

[data-fil="construire"] {
  --nl-fil-de: var(--nl-construire-de);
  --nl-fil-a: var(--nl-construire-a);
  --nl-fil-encre: var(--nl-construire-encre);
  --nl-fil-clair: var(--nl-construire-clair);
  --nl-fil-teinte: var(--nl-construire-teinte);
  --nl-fil-sur: var(--nl-construire-sur);
  --nl-fil-texte: var(--nl-fil-encre);
}

/* data-fil dans (ou sur) une zone sombre : le texte de rubrique passe en version claire. */
.nl-sombre[data-fil],
.nl-sombre [data-fil],
[data-theme="dark"] [data-fil],
[data-theme="dark"][data-fil] {
  --nl-fil-texte: var(--nl-fil-clair);
}

.nl-clair[data-fil],
.nl-clair [data-fil] {
  --nl-fil-texte: var(--nl-fil-encre);
}
