/**
 * NoziBiz ERP — Thème et styles communs
 *
 * Ce fichier centralise les variables CSS et les styles
 * qui ne peuvent pas être exprimés en utilitaires Tailwind seuls.
 *
 * Thème (13.09.2026) : clair par défaut, dans l'esprit de Docs, ou sombre si
 * l'appareil l'est ou si on l'a choisi (bascule dans la barre latérale, clé
 * localStorage `docsTheme` partagée avec Docs). /assets/js/theme.js pose la
 * classe `dark` sur <html> avant le premier rendu.
 *
 * Les classes des pages ne changent pas : /assets/js/tailwind.config.js fait
 * pointer `dark-*`, `text-white` et les nuances claires des teintes vers les
 * variables `--nz-…` ci-dessous (triplets RGB, pour l'opacité `/50`).
 */

/* ── Thème clair (défaut) ──────────────────────────────── */
:root {
    color-scheme: light;

    /* Échelle neutre : 950 fond de page, 900 barre latérale et champs,
       800 cartes, 700 bordures, 600 bordures de champs, 500-300 textes.
       Contraste renforcé le 13.09.2026 : fond de page nettement plus foncé
       que les cartes, bordures franches. */
    --nz-dark-50:  40 38 34;
    --nz-dark-100: 51 49 44;
    --nz-dark-200: 64 62 57;
    --nz-dark-300: 78 76 71;
    --nz-dark-400: 98 95 89;
    --nz-dark-500: 129 127 121;
    --nz-dark-600: 201 195 184;
    --nz-dark-700: 220 215 206;
    --nz-dark-800: 255 255 255;
    --nz-dark-900: 234 231 225;
    --nz-dark-950: 242 240 235;
    --nz-dark-600-texte: 161 157 149;    /* text-dark-600 : discret mais lisible */
    --nz-dark-800-bord: 230 226 218;     /* border-dark-800 : filet visible sur blanc */

    /* Opacité : les cartes bg-dark-800/50 et les badges bg-*-900/50, translucides
       sur fond noir, deviennent pleins sur fond clair (CSS plafonne à 1) */
    --nz-carte-opacite: 3;
    --nz-teinte-opacite: 2;
    --nz-ombre-carte: 0 1px 2px rgb(40 32 16 / .06), 0 1px 4px rgb(40 32 16 / .05);

    /* Texte principal (classe text-white) : encre */
    --nz-white: 51 49 44;

    /* Repères */
    --nz-selection: 243 227 200;
}

/* Teintes : nuances pensées pour un fond noir, remplacées par leur miroir */
html:not(.dark) {
    --nz-slate-100: 15 23 42; --nz-slate-200: 30 41 59; --nz-slate-300: 30 41 59; --nz-slate-400: 51 65 85; --nz-slate-800: 226 232 240; --nz-slate-900: 241 245 249; --nz-slate-950: 248 250 252;
    --nz-gray-100: 17 24 39; --nz-gray-200: 31 41 55; --nz-gray-300: 31 41 55; --nz-gray-400: 55 65 81; --nz-gray-800: 229 231 235; --nz-gray-900: 243 244 246; --nz-gray-950: 249 250 251;
    --nz-red-100: 127 29 29; --nz-red-200: 153 27 27; --nz-red-300: 153 27 27; --nz-red-400: 185 28 28; --nz-red-800: 254 202 202; --nz-red-900: 254 226 226; --nz-red-950: 254 242 242;
    --nz-orange-100: 124 45 18; --nz-orange-200: 154 52 18; --nz-orange-300: 154 52 18; --nz-orange-400: 194 65 12; --nz-orange-800: 254 215 170; --nz-orange-900: 255 237 213; --nz-orange-950: 255 247 237;
    --nz-amber-100: 120 53 15; --nz-amber-200: 146 64 14; --nz-amber-300: 146 64 14; --nz-amber-400: 180 83 9; --nz-amber-800: 253 230 138; --nz-amber-900: 254 243 199; --nz-amber-950: 255 251 235;
    --nz-yellow-100: 113 63 18; --nz-yellow-200: 133 77 14; --nz-yellow-300: 133 77 14; --nz-yellow-400: 161 98 7; --nz-yellow-800: 254 240 138; --nz-yellow-900: 254 249 195; --nz-yellow-950: 254 252 232;
    --nz-lime-100: 54 83 20; --nz-lime-200: 63 98 18; --nz-lime-300: 63 98 18; --nz-lime-400: 77 124 15; --nz-lime-800: 217 249 157; --nz-lime-900: 236 252 203; --nz-lime-950: 247 254 231;
    --nz-green-100: 20 83 45; --nz-green-200: 22 101 52; --nz-green-300: 22 101 52; --nz-green-400: 21 128 61; --nz-green-800: 187 247 208; --nz-green-900: 220 252 231; --nz-green-950: 240 253 244;
    --nz-emerald-100: 6 78 59; --nz-emerald-200: 6 95 70; --nz-emerald-300: 6 95 70; --nz-emerald-400: 4 120 87; --nz-emerald-800: 167 243 208; --nz-emerald-900: 209 250 229; --nz-emerald-950: 236 253 245;
    --nz-teal-100: 19 78 74; --nz-teal-200: 17 94 89; --nz-teal-300: 17 94 89; --nz-teal-400: 15 118 110; --nz-teal-800: 153 246 228; --nz-teal-900: 204 251 241; --nz-teal-950: 240 253 250;
    --nz-cyan-100: 22 78 99; --nz-cyan-200: 21 94 117; --nz-cyan-300: 21 94 117; --nz-cyan-400: 14 116 144; --nz-cyan-800: 165 243 252; --nz-cyan-900: 207 250 254; --nz-cyan-950: 236 254 255;
    --nz-sky-100: 12 74 110; --nz-sky-200: 7 89 133; --nz-sky-300: 7 89 133; --nz-sky-400: 3 105 161; --nz-sky-800: 186 230 253; --nz-sky-900: 224 242 254; --nz-sky-950: 240 249 255;
    --nz-blue-100: 30 58 138; --nz-blue-200: 30 64 175; --nz-blue-300: 30 64 175; --nz-blue-400: 29 78 216; --nz-blue-800: 191 219 254; --nz-blue-900: 219 234 254; --nz-blue-950: 239 246 255;
    --nz-indigo-100: 49 46 129; --nz-indigo-200: 55 48 163; --nz-indigo-300: 55 48 163; --nz-indigo-400: 67 56 202; --nz-indigo-800: 199 210 254; --nz-indigo-900: 224 231 255; --nz-indigo-950: 238 242 255;
    --nz-violet-100: 76 29 149; --nz-violet-200: 91 33 182; --nz-violet-300: 91 33 182; --nz-violet-400: 109 40 217; --nz-violet-800: 221 214 254; --nz-violet-900: 237 233 254; --nz-violet-950: 245 243 255;
    --nz-purple-100: 88 28 135; --nz-purple-200: 107 33 168; --nz-purple-300: 107 33 168; --nz-purple-400: 126 34 206; --nz-purple-800: 233 213 255; --nz-purple-900: 243 232 255; --nz-purple-950: 250 245 255;
    --nz-fuchsia-100: 112 26 117; --nz-fuchsia-200: 134 25 143; --nz-fuchsia-300: 134 25 143; --nz-fuchsia-400: 162 28 175; --nz-fuchsia-800: 245 208 254; --nz-fuchsia-900: 250 232 255; --nz-fuchsia-950: 253 244 255;
    --nz-pink-100: 131 24 67; --nz-pink-200: 157 23 77; --nz-pink-300: 157 23 77; --nz-pink-400: 190 24 93; --nz-pink-800: 251 207 232; --nz-pink-900: 252 231 243; --nz-pink-950: 253 242 248;
    --nz-rose-100: 136 19 55; --nz-rose-200: 159 18 57; --nz-rose-300: 159 18 57; --nz-rose-400: 190 18 60; --nz-rose-800: 254 205 211; --nz-rose-900: 255 228 230; --nz-rose-950: 255 241 242;
}

/* ── Thème sombre (neutres de Docs, sans bleu ardoise) ─── */
@media screen {
    html.dark {
        color-scheme: dark;
        --nz-dark-50:  244 243 240;
        --nz-dark-100: 232 230 225;
        --nz-dark-200: 217 215 210;
        --nz-dark-300: 196 194 188;
        --nz-dark-400: 163 161 155;
        --nz-dark-500: 126 124 119;
        --nz-dark-600: 77 76 72;
        --nz-dark-700: 58 57 54;
        --nz-dark-800: 44 44 42;
        --nz-dark-900: 31 31 30;
        --nz-dark-950: 25 25 25;
        --nz-dark-600-texte: 98 96 92;
        --nz-dark-800-bord: 44 44 42;
        --nz-white: 237 235 230;
        --nz-selection: 92 74 34;
        --nz-carte-opacite: 1;
        --nz-teinte-opacite: 1;
        --nz-ombre-carte: none;
    }
}

/* Impression : toujours en clair, même depuis le thème sombre */
@media print {
    html.dark {
        --nz-slate-100: 15 23 42; --nz-slate-200: 30 41 59; --nz-slate-300: 30 41 59; --nz-slate-400: 51 65 85; --nz-slate-800: 226 232 240; --nz-slate-900: 241 245 249; --nz-slate-950: 248 250 252;
        --nz-gray-100: 17 24 39; --nz-gray-200: 31 41 55; --nz-gray-300: 31 41 55; --nz-gray-400: 55 65 81; --nz-gray-800: 229 231 235; --nz-gray-900: 243 244 246; --nz-gray-950: 249 250 251;
        --nz-red-100: 127 29 29; --nz-red-200: 153 27 27; --nz-red-300: 153 27 27; --nz-red-400: 185 28 28; --nz-red-800: 254 202 202; --nz-red-900: 254 226 226; --nz-red-950: 254 242 242;
        --nz-orange-100: 124 45 18; --nz-orange-200: 154 52 18; --nz-orange-300: 154 52 18; --nz-orange-400: 194 65 12; --nz-orange-800: 254 215 170; --nz-orange-900: 255 237 213; --nz-orange-950: 255 247 237;
        --nz-amber-100: 120 53 15; --nz-amber-200: 146 64 14; --nz-amber-300: 146 64 14; --nz-amber-400: 180 83 9; --nz-amber-800: 253 230 138; --nz-amber-900: 254 243 199; --nz-amber-950: 255 251 235;
        --nz-yellow-100: 113 63 18; --nz-yellow-200: 133 77 14; --nz-yellow-300: 133 77 14; --nz-yellow-400: 161 98 7; --nz-yellow-800: 254 240 138; --nz-yellow-900: 254 249 195; --nz-yellow-950: 254 252 232;
        --nz-lime-100: 54 83 20; --nz-lime-200: 63 98 18; --nz-lime-300: 63 98 18; --nz-lime-400: 77 124 15; --nz-lime-800: 217 249 157; --nz-lime-900: 236 252 203; --nz-lime-950: 247 254 231;
        --nz-green-100: 20 83 45; --nz-green-200: 22 101 52; --nz-green-300: 22 101 52; --nz-green-400: 21 128 61; --nz-green-800: 187 247 208; --nz-green-900: 220 252 231; --nz-green-950: 240 253 244;
        --nz-emerald-100: 6 78 59; --nz-emerald-200: 6 95 70; --nz-emerald-300: 6 95 70; --nz-emerald-400: 4 120 87; --nz-emerald-800: 167 243 208; --nz-emerald-900: 209 250 229; --nz-emerald-950: 236 253 245;
        --nz-teal-100: 19 78 74; --nz-teal-200: 17 94 89; --nz-teal-300: 17 94 89; --nz-teal-400: 15 118 110; --nz-teal-800: 153 246 228; --nz-teal-900: 204 251 241; --nz-teal-950: 240 253 250;
        --nz-cyan-100: 22 78 99; --nz-cyan-200: 21 94 117; --nz-cyan-300: 21 94 117; --nz-cyan-400: 14 116 144; --nz-cyan-800: 165 243 252; --nz-cyan-900: 207 250 254; --nz-cyan-950: 236 254 255;
        --nz-sky-100: 12 74 110; --nz-sky-200: 7 89 133; --nz-sky-300: 7 89 133; --nz-sky-400: 3 105 161; --nz-sky-800: 186 230 253; --nz-sky-900: 224 242 254; --nz-sky-950: 240 249 255;
        --nz-blue-100: 30 58 138; --nz-blue-200: 30 64 175; --nz-blue-300: 30 64 175; --nz-blue-400: 29 78 216; --nz-blue-800: 191 219 254; --nz-blue-900: 219 234 254; --nz-blue-950: 239 246 255;
        --nz-indigo-100: 49 46 129; --nz-indigo-200: 55 48 163; --nz-indigo-300: 55 48 163; --nz-indigo-400: 67 56 202; --nz-indigo-800: 199 210 254; --nz-indigo-900: 224 231 255; --nz-indigo-950: 238 242 255;
        --nz-violet-100: 76 29 149; --nz-violet-200: 91 33 182; --nz-violet-300: 91 33 182; --nz-violet-400: 109 40 217; --nz-violet-800: 221 214 254; --nz-violet-900: 237 233 254; --nz-violet-950: 245 243 255;
        --nz-purple-100: 88 28 135; --nz-purple-200: 107 33 168; --nz-purple-300: 107 33 168; --nz-purple-400: 126 34 206; --nz-purple-800: 233 213 255; --nz-purple-900: 243 232 255; --nz-purple-950: 250 245 255;
        --nz-fuchsia-100: 112 26 117; --nz-fuchsia-200: 134 25 143; --nz-fuchsia-300: 134 25 143; --nz-fuchsia-400: 162 28 175; --nz-fuchsia-800: 245 208 254; --nz-fuchsia-900: 250 232 255; --nz-fuchsia-950: 253 244 255;
        --nz-pink-100: 131 24 67; --nz-pink-200: 157 23 77; --nz-pink-300: 157 23 77; --nz-pink-400: 190 24 93; --nz-pink-800: 251 207 232; --nz-pink-900: 252 231 243; --nz-pink-950: 253 242 248;
        --nz-rose-100: 136 19 55; --nz-rose-200: 159 18 57; --nz-rose-300: 159 18 57; --nz-rose-400: 190 18 60; --nz-rose-800: 254 205 211; --nz-rose-900: 255 228 230; --nz-rose-950: 255 241 242;
    }
}

/* ── Texte blanc réel sur fond saturé ──────────────────── */
/* text-white vaut l'encre en clair ; sur un bouton plein (500-700, nuances
   qui ne changent pas de thème) ou au survol d'un fond plein, il redevient
   blanc. Une couleur posée en style inline (choisie en base) le demande par
   la classe `nz-sur-couleur`. */
:where([class~="bg-slate-500"],[class~="bg-slate-600"],[class~="bg-slate-700"],[class~="bg-gray-500"],
[class~="bg-gray-600"],[class~="bg-gray-700"],[class~="bg-red-500"],[class~="bg-red-600"],
[class~="bg-red-700"],[class~="bg-orange-500"],[class~="bg-orange-600"],[class~="bg-orange-700"],
[class~="bg-amber-500"],[class~="bg-amber-600"],[class~="bg-amber-700"],[class~="bg-yellow-500"],
[class~="bg-yellow-600"],[class~="bg-yellow-700"],[class~="bg-lime-500"],[class~="bg-lime-600"],
[class~="bg-lime-700"],[class~="bg-green-500"],[class~="bg-green-600"],[class~="bg-green-700"],
[class~="bg-emerald-500"],[class~="bg-emerald-600"],[class~="bg-emerald-700"],[class~="bg-teal-500"],
[class~="bg-teal-600"],[class~="bg-teal-700"],[class~="bg-cyan-500"],[class~="bg-cyan-600"],
[class~="bg-cyan-700"],[class~="bg-sky-500"],[class~="bg-sky-600"],[class~="bg-sky-700"],
[class~="bg-blue-500"],[class~="bg-blue-600"],[class~="bg-blue-700"],[class~="bg-indigo-500"],
[class~="bg-indigo-600"],[class~="bg-indigo-700"],[class~="bg-violet-500"],[class~="bg-violet-600"],
[class~="bg-violet-700"],[class~="bg-purple-500"],[class~="bg-purple-600"],[class~="bg-purple-700"],
[class~="bg-fuchsia-500"],[class~="bg-fuchsia-600"],[class~="bg-fuchsia-700"],[class~="bg-pink-500"],
[class~="bg-pink-600"],[class~="bg-pink-700"],[class~="bg-rose-500"],[class~="bg-rose-600"],
[class~="bg-rose-700"]),
.nz-sur-couleur {
    --nz-white: 255 255 255;
}
:where([class~="hover:bg-slate-500"]:hover,[class~="hover:bg-slate-600"]:hover,[class~="hover:bg-slate-700"]:hover,[class~="hover:bg-gray-500"]:hover,
[class~="hover:bg-gray-600"]:hover,[class~="hover:bg-gray-700"]:hover,[class~="hover:bg-red-500"]:hover,[class~="hover:bg-red-600"]:hover,
[class~="hover:bg-red-700"]:hover,[class~="hover:bg-orange-500"]:hover,[class~="hover:bg-orange-600"]:hover,[class~="hover:bg-orange-700"]:hover,
[class~="hover:bg-amber-500"]:hover,[class~="hover:bg-amber-600"]:hover,[class~="hover:bg-amber-700"]:hover,[class~="hover:bg-yellow-500"]:hover,
[class~="hover:bg-yellow-600"]:hover,[class~="hover:bg-yellow-700"]:hover,[class~="hover:bg-lime-500"]:hover,[class~="hover:bg-lime-600"]:hover,
[class~="hover:bg-lime-700"]:hover,[class~="hover:bg-green-500"]:hover,[class~="hover:bg-green-600"]:hover,[class~="hover:bg-green-700"]:hover,
[class~="hover:bg-emerald-500"]:hover,[class~="hover:bg-emerald-600"]:hover,[class~="hover:bg-emerald-700"]:hover,[class~="hover:bg-teal-500"]:hover,
[class~="hover:bg-teal-600"]:hover,[class~="hover:bg-teal-700"]:hover,[class~="hover:bg-cyan-500"]:hover,[class~="hover:bg-cyan-600"]:hover,
[class~="hover:bg-cyan-700"]:hover,[class~="hover:bg-sky-500"]:hover,[class~="hover:bg-sky-600"]:hover,[class~="hover:bg-sky-700"]:hover,
[class~="hover:bg-blue-500"]:hover,[class~="hover:bg-blue-600"]:hover,[class~="hover:bg-blue-700"]:hover,[class~="hover:bg-indigo-500"]:hover,
[class~="hover:bg-indigo-600"]:hover,[class~="hover:bg-indigo-700"]:hover,[class~="hover:bg-violet-500"]:hover,[class~="hover:bg-violet-600"]:hover,
[class~="hover:bg-violet-700"]:hover,[class~="hover:bg-purple-500"]:hover,[class~="hover:bg-purple-600"]:hover,[class~="hover:bg-purple-700"]:hover,
[class~="hover:bg-fuchsia-500"]:hover,[class~="hover:bg-fuchsia-600"]:hover,[class~="hover:bg-fuchsia-700"]:hover,[class~="hover:bg-pink-500"]:hover,
[class~="hover:bg-pink-600"]:hover,[class~="hover:bg-pink-700"]:hover,[class~="hover:bg-rose-500"]:hover,[class~="hover:bg-rose-600"]:hover,
[class~="hover:bg-rose-700"]:hover) {
    --nz-white: 255 255 255;
}

/* ── Base ──────────────────────────────────────────────── */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
::selection {
    background: rgb(var(--nz-selection));
}

/* Cartes (fond dark-800 + bordure) : ombre légère en clair, aucune en sombre.
   Un élément qui porte déjà une ombre Tailwind (modale, menu) garde la sienne. */
:is([class~="bg-dark-800/50"], [class~="bg-dark-800/30"], [class~="bg-dark-800"]):is(.border, .border-dark-700):not([class*="shadow"]) {
    box-shadow: var(--nz-ombre-carte);
}

/* ── Barre latérale ────────────────────────────────────── */
.sidebar-link.active {
    background-color: rgb(var(--nz-dark-700) / .75);
    color: rgb(var(--nz-white));
}
.sidebar-link.active svg {
    color: rgb(var(--nz-white));
}
html.dark .nz-theme-moon { display: none; }
html:not(.dark) .nz-theme-sun { display: none; }

/* ── Input number spinners ─────────────────────────────── */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
input[type=number] {
    -moz-appearance: textfield;
}

/* ── Scrollbar subtile (webkit) ────────────────────────── */
.overflow-y-auto::-webkit-scrollbar {
    width: 6px;
}
.overflow-y-auto::-webkit-scrollbar-track {
    background: transparent;
}
.overflow-y-auto::-webkit-scrollbar-thumb {
    background: rgb(var(--nz-dark-600));
    border-radius: 9999px;
}
.overflow-y-auto::-webkit-scrollbar-thumb:hover {
    background: rgb(var(--nz-dark-500));
}

/* ── Animations ────────────────────────────────────────── */
@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes slideUp {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.animate-fade-in {
    animation: fadeIn 200ms ease-out;
}

.animate-slide-up {
    animation: slideUp 0.25s ease-out;
}

/* ── Print ─────────────────────────────────────────────── */
@media print {
    #sidebar,
    #sidebar-overlay,
    #nz-entete-mobile {
        display: none !important;
    }
    main {
        margin-left: 0 !important;
    }
}
