/* ============================================================================================================
   NOUVEAU STYLE — habillage commun des pages qui ne l'avaient pas encore (02/11/2026, demande du propriétaire :
   « regarde s'il y a encore des endroits où le nouveau style n'est pas appliqué et applique »).
   Celui de la Caisse, de la Paie, de la Comptabilité et de Yango Fleet : police Geist, filet fin sans ombre, coins de
   26 px, rubriques et boutons en pilules (la rubrique ouverte et le bouton principal à l'encre), citron pour l'argent
   qui rentre ou ce qui est réussi, rouge pour ce qui sort ou manque, orange pour ce qui approche, gris pour les
   libellés (plus de capitales espacées). Mêmes valeurs que la Caisse (--cxb-*).
   Une page l'adopte en portant la classe « ns-page » sur sa racine (Alertes, Garage, Occupation, Audit, Paramètres,
   Candidatures, Contrôle de conduite, Notifications, Mon compte, Aide, Analyse des versements). Habillage seul :
   chiffres, gestes et identifiants inchangés. Les règles propres d'une page (dans son <style>) gardent le dernier mot.
   La copie d'une tuile qu'on glisse (posée dans <body>) reçoit les mêmes valeurs.
   ============================================================================================================ */

.ns-page,body:has(.ns-page) .gw-fantome{--nsb-carte:var(--bg-secondary,#fff);--nsb-filet:var(--border-color,#E7EAE8);--nsb-gris:#61676C;--nsb-doux:#EEF1EF;--nsb-acc:oklch(0.86 0.2 130);--nsb-acc-t:oklch(0.52 0.15 140);--nsb-neg:oklch(0.63 0.2 25);--nsb-neg-t:oklch(0.55 0.2 25);--nsb-proche:oklch(0.72 0.16 65);--nsb-proche-t:oklch(0.6 0.15 60);--nsb-sur:oklch(0.24 0.06 135);
  font-family:'Geist','Inter',system-ui,sans-serif;font-variant-numeric:tabular-nums}
[data-theme="dark"] :is(.ns-page,body:has(.ns-page) .gw-fantome){--nsb-carte:#12151c;--nsb-filet:rgba(255,255,255,.08);--nsb-gris:#98A2B3;--nsb-doux:rgba(255,255,255,.07);--nsb-acc:oklch(0.89 0.2 128);--nsb-acc-t:oklch(0.89 0.2 128);--nsb-neg:oklch(0.66 0.2 25);--nsb-neg-t:oklch(0.74 0.16 22);--nsb-proche:oklch(0.8 0.14 70);--nsb-proche-t:oklch(0.8 0.14 70)}
.ns-page.ns-page,[data-theme="dark"] .ns-page.ns-page{--fin-positif:var(--nsb-acc-t);--fin-negatif:var(--nsb-neg-t);--fin-line:var(--nsb-filet);--fin-surface:var(--nsb-carte)}
.ns-page :is(h1,h2,h3,h4,h5,button,input,select,textarea,table,summary,label){font-family:inherit}

/* ----- En-tête : titre serré, actions en pilules ----- */
.ns-page :is(.fin-header,.page-header) h1,.ns-page .page-title{font-size:24px;font-weight:600;letter-spacing:-.03em}
.ns-page :is(.fin-header,.page-header) p,.ns-page .page-subtitle{font-size:13px;color:var(--nsb-gris)}
.ns-page :is(.fin-header,.page-header,.page-actions,.fin-actions) :is(.btn,.fin-export summary){height:36px;min-height:36px;padding:0 16px;gap:6px;border-radius:99px;box-shadow:none;font-size:13px;font-weight:500}

/* ----- Boutons : pilules ; principal à l'encre, secondaire à filet, succès en citron ----- */
.ns-page .btn{border-radius:99px;box-shadow:none;font-weight:500}
.ns-page :is(.btn-secondary,.btn-outline,.btn-ghost){border:1px solid var(--nsb-filet);background:var(--nsb-carte);color:var(--text-primary)}
.ns-page :is(.btn-secondary,.btn-outline,.btn-ghost):hover:not([disabled]){background:var(--nsb-doux);color:var(--text-primary)}
.ns-page .btn-primary,[data-theme="light"] .ns-page .btn-primary{border:1px solid var(--text-primary);background:var(--text-primary);color:var(--nsb-carte)}
.ns-page .btn-primary:hover:not([disabled]){filter:brightness(1.12);background:var(--text-primary);color:var(--nsb-carte)}
.ns-page .btn-success{border:1px solid transparent;background:var(--nsb-acc);color:var(--nsb-sur)}
.ns-page .btn-danger{border:1px solid transparent;background:var(--nsb-neg);color:#fff}

/* ----- Rubriques (menu latéral) : une colonne de pilules dans une carte, la rubrique ouverte à l'encre ----- */
.ns-page .fin-sidenav{padding:4px;border:1px solid var(--nsb-filet);border-radius:22px;background:var(--nsb-carte)}
.ns-page .fin-sidenav .tab{gap:8px;padding:8px 10px;border-radius:99px;font-size:13px;font-weight:500;color:var(--nsb-gris);box-shadow:none}
.ns-page .fin-sidenav .tab:hover{background:var(--nsb-doux);color:var(--text-primary)}
.ns-page .fin-sidenav .tab.active,.ns-page .fin-sidenav .tab[aria-selected="true"]{background:var(--text-primary);color:var(--nsb-carte);box-shadow:none}
.ns-page .fin-sidenav .tab iconify-icon,.ns-page .fin-sidenav .tab.active iconify-icon{font-size:16px;color:inherit}
.ns-page .fin-sidenav .tab.active .fin-count{color:inherit;opacity:.65}
.ns-page .fin-sidenav-titre,.ns-page .fin-sidenav .fin-sidenav-titre{font-size:11.5px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--nsb-gris)}
@media(max-width:760px){ .ns-page .fin-sidenav{width:max-content;max-width:100%;border-radius:99px} }

/* ----- Onglets en rangée (Contrôle de conduite, Paramètres…) : une barre de pilules ----- */
.ns-page .tabs,.ns-page .cc-tabs,.ns-page .tab-bar{gap:2px;padding:3px;border:1px solid var(--nsb-filet);border-radius:99px;background:var(--nsb-carte);box-shadow:none}
.ns-page :is(.tabs,.cc-tabs,.tab-bar) :is(.tab,button){height:32px;min-height:32px;padding:0 14px;border:0;border-radius:99px;background:transparent;box-shadow:none;font-size:13px;font-weight:500;color:var(--nsb-gris)}
.ns-page :is(.tabs,.cc-tabs,.tab-bar) :is(.tab,button):hover{color:var(--text-primary);background:transparent}
.ns-page :is(.tabs,.cc-tabs,.tab-bar) :is(.tab.active,button.active,.tab[aria-selected="true"]){background:var(--text-primary);color:var(--nsb-carte)}
.ns-page :is(.tabs,.cc-tabs,.tab-bar) :is(.tab,button)::after{display:none}

/* ----- Titres de rubrique ----- */
.ns-page .fin-section-heading h2,.ns-page .section-title{font-size:17px;font-weight:600;letter-spacing:-.02em}
.ns-page .fin-section-heading p{color:var(--nsb-gris)}

/* ----- Cartes : filet fin, coins de 26 px, sans ombre ----- */
.ns-page :is(.card,.d-card,.chart-card,.cmp-band,.cpt-main,.cpt-info,.fin-guide,.table-container,.settings-card,.empty-state){border:1px solid var(--nsb-filet);border-radius:26px;background:var(--nsb-carte);box-shadow:none}
.ns-page .card .card{border-radius:20px}
.ns-page :is(.card,.d-card):hover{box-shadow:none;transform:none}
.ns-page .card-header{border-bottom-color:var(--nsb-filet)}
.ns-page :is(.card-title,.card-header h3,.d-card h3){font-weight:600;letter-spacing:-.01em}
.ns-page .d-sub{color:var(--nsb-gris)}
/* Bandeau de chiffres : une carte, chiffres serrés, libellés en gris ; trait du haut en citron. */
.ns-page .cmp-band-bar{background:var(--nsb-acc)}
.ns-page .cmp-band-lbl{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--nsb-gris)}
.ns-page .cmp-band-val{font-weight:600;letter-spacing:-.03em}
/* Tuiles d'indicateurs : sans pastille d'icône colorée, le chiffre en grand. */
.ns-page .kpi-card,.ns-page .kpi-card:is(.green,.yellow,.red,.cyan,.orange,.purple,.blue){padding:18px 20px;border:1px solid var(--nsb-filet);border-radius:26px;background:var(--nsb-carte);box-shadow:none}
.ns-page .kpi-card::before,.ns-page .kpi-card::after{display:none}
.ns-page .kpi-card:hover{transform:none;box-shadow:none}
.ns-page .kpi-card .kpi-icon{display:none}
.ns-page .kpi-card .kpi-label{font-size:12.5px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--nsb-gris)}
.ns-page .kpi-card .kpi-value{font-size:26px;font-weight:600;letter-spacing:-.04em;line-height:1.1;color:var(--text-primary)}
@media(max-width:760px){ .ns-page .kpi-card{padding:14px;border-radius:22px} .ns-page .kpi-card .kpi-value{font-size:19px} }

/* ----- Champs ----- */
.ns-page :is(.form-control,.filter-select,select,textarea,input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"])){border-color:var(--nsb-filet);border-radius:12px}
.ns-page :is(.search-box,.search-input,.fin-recherche){border-radius:99px}

/* ----- Tableaux : sans cadre dans une carte, en-têtes en gris, lignes à filet. Préfixe :root : plus fort que les
   règles des thèmes clair et sombre de css/components.css ([data-theme] .data-table thead th…). ----- */
:root .ns-page :is(.card,.d-card,.table-container) :is(table,.data-table){border:0;border-radius:0;background:transparent;box-shadow:none}
:root .ns-page :is(table,.data-table) thead th{background:transparent;border-bottom:1px solid var(--nsb-filet);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--nsb-gris)}
:root .ns-page :is(table,.data-table) tbody td{border-bottom:1px solid var(--nsb-filet);color:var(--text-primary)}
:root .ns-page :is(table,.data-table) tbody tr:last-child td{border-bottom:0}
:root .ns-page :is(table,.data-table) tbody tr:hover{background:var(--nsb-doux)}

/* ----- Étiquettes : pilules douces, la couleur dit l'état ----- */
.ns-page .badge{border:0;border-radius:99px;background:var(--nsb-doux);color:var(--text-primary);font-weight:500;letter-spacing:0;text-transform:none}
.ns-page .badge-success{color:var(--nsb-acc-t)} .ns-page .badge-danger{color:var(--nsb-neg-t)} .ns-page .badge-warning{color:var(--nsb-proche-t)}

/* ----- Barres, jauges et graphiques : citron qui rentre, rouge qui sort, l'encre pour le reste ----- */
.ns-page .gr-barre{--gr-c:var(--text-primary)}
.ns-page .gr-barre.gr-entree{--gr-c:var(--nsb-acc)} .ns-page .gr-barre.gr-sortie{--gr-c:var(--nsb-neg)}
.ns-page .gr-legende i.gr-entree{--gr-c:var(--nsb-acc)} .ns-page .gr-legende i.gr-sortie{--gr-c:var(--nsb-neg)}
.ns-page :is(.progress-bar,.gw-jauge,.gw-mini-barre){border-radius:99px}
.ns-page .progress-fill.green{background:var(--nsb-acc)}
.ns-page .gb{--gb-atteint:var(--nsb-acc);--gb-proche:var(--nsb-proche);--gb-manque:var(--nsb-neg)}
.ns-page .gb-panneau{border-radius:20px;background:var(--nsb-doux)}

/* ----- Tuiles déplaçables (Garage) ----- */
.ns-page :is(.gw-tuile,.gw-anneau),body:has(.ns-page) .gw-fantome{--gw-vert:var(--nsb-acc-t);--gw-rouge:var(--nsb-neg-t);--gw-proche:var(--nsb-proche-t);--gw-filet:var(--nsb-filet);--gw-piste:var(--nsb-doux)}
.ns-page .gw-tuile,body:has(.ns-page) .gw-fantome{background:var(--nsb-carte);box-shadow:0 0 0 1px var(--nsb-filet)}
.ns-page .gw-tuile .gw-lbl,body:has(.ns-page) .gw-fantome .gw-lbl{font-weight:500;color:var(--nsb-gris)}
.ns-page .gw-tuile .gw-val,body:has(.ns-page) .gw-fantome .gw-val{font-weight:600;letter-spacing:-.045em}
.ns-page .gw-tuile .gw-sub,body:has(.ns-page) .gw-fantome .gw-sub{font-weight:400;color:var(--nsb-gris)}
.ns-page .gw-tuile :is(.gw-jauge,.gw-mini-barre)>i.gw-p-vert,body:has(.ns-page) .gw-fantome :is(.gw-jauge,.gw-mini-barre)>i.gw-p-vert{background:var(--nsb-acc)}
.ns-page .gw-tuile :is(.gw-jauge,.gw-mini-barre)>i.gw-p-rouge,body:has(.ns-page) .gw-fantome :is(.gw-jauge,.gw-mini-barre)>i.gw-p-rouge{background:var(--nsb-neg)}
.ns-page .gw-tuile .gw-p-vert,body:has(.ns-page) .gw-fantome .gw-p-vert{--gw-part:var(--nsb-acc)}
.ns-page .gw-tuile .gw-p-rouge,body:has(.ns-page) .gw-fantome .gw-p-rouge{--gw-part:var(--nsb-neg)}
.ns-page .gw-tuile :is(.gr-barre,.gr-legende i).gr-entree{--gr-c:var(--nsb-acc)} .ns-page .gw-tuile :is(.gr-barre,.gr-legende i).gr-sortie{--gr-c:var(--nsb-neg)}

/* ----- Suivi et sécurité (Contrôle de conduite, et les écrans de la même famille « fleet-module ») ----- */
.ns-page.fleet-module,.ns-page .fleet-module,[data-theme="dark"] .ns-page.fleet-module,[data-theme="dark"] .ns-page .fleet-module{--fleet-ink:var(--text-primary);--fleet-muted:var(--nsb-gris);--fleet-line:var(--nsb-filet);--fleet-paper:var(--nsb-carte);--fleet-wash:var(--nsb-doux)}
.ns-page .fleet-heading{margin-bottom:18px}
.ns-page .fleet-heading h1{margin:0 0 4px;font-family:inherit;font-size:24px;font-weight:600;letter-spacing:-.03em;line-height:1.25}
.ns-page .fleet-heading h1 span{color:inherit}
.ns-page .fleet-heading p{font-size:13px;color:var(--nsb-gris)}
.ns-page .fleet-eyebrow{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}
.ns-page .fleet-control-emblem{display:none}
.ns-page .fleet-primary{height:36px;padding:0 16px;border-radius:99px;background:var(--text-primary);color:var(--nsb-carte);font-size:13px;font-weight:500}
.ns-page .fleet-primary:hover{background:var(--text-primary);filter:brightness(1.12)}
.ns-page .fleet-tabs{gap:2px;width:max-content;max-width:100%;margin-bottom:16px;padding:3px;border:1px solid var(--nsb-filet);border-radius:99px;background:var(--nsb-carte)}
.ns-page .fleet-tabs a{height:32px;padding:0 14px;border:0;border-radius:99px;font-size:13px;font-weight:500;color:var(--nsb-gris)}
.ns-page .fleet-tabs a iconify-icon{font-size:16px}
.ns-page .fleet-tabs a:hover{color:var(--text-primary)}
:root .ns-page .fleet-tabs a.is-active,:root:not([data-theme="light"]) .ns-page .fleet-tabs a.is-active{background:var(--text-primary);color:var(--nsb-carte);border-bottom-color:transparent}
.ns-page .fleet-stat,.ns-page .fleet-stat:is(.coral,.mint,.blue,.amber){border:1px solid var(--nsb-filet);border-radius:26px;background:var(--nsb-carte);color:var(--text-primary)}
.ns-page .fleet-stat:hover{transform:none;border-color:var(--nsb-filet)}
.ns-page .fleet-stat > span iconify-icon,.ns-page .fleet-stat > small iconify-icon{color:var(--nsb-gris)}
.ns-page .fleet-stat > strong{font-weight:600;letter-spacing:-.04em}
/* Rubriques internes du Contrôle de conduite */
.ns-page .cc-tabs{display:inline-flex;flex-wrap:nowrap;width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none;margin-bottom:16px}
.ns-page .cc-tabs::-webkit-scrollbar,.ns-page .fleet-tabs::-webkit-scrollbar{display:none}
.ns-page .fleet-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.ns-page :is(.cc-tabs .cc-tab,.fleet-tabs a){flex-shrink:0;white-space:nowrap}
.ns-page .cc-tabs .cc-tab{display:inline-flex;align-items:center;gap:6px;margin:0;border:0}
.ns-page .cc-tabs .cc-tab.active{color:var(--nsb-carte);border-bottom-color:transparent}
.ns-page .cc-tabs .cc-tab iconify-icon{font-size:15px}
.ns-page :is(.cc-kpi,.cc-zone-card){border:1px solid var(--nsb-filet);border-radius:26px;background:var(--nsb-carte);box-shadow:none}
.ns-page :is(.cc-kpi,.cc-zone-card):hover{transform:none;box-shadow:none}
.ns-page .cc-kpi-icon{display:none}
.ns-page .cc-kpi-label{font-size:12.5px;font-weight:400;color:var(--nsb-gris)}
.ns-page .cc-kpi-val{font-size:26px;font-weight:600;letter-spacing:-.04em}
.ns-page .cc-kpi-sub{color:var(--nsb-gris)}
.ns-page .cc-filter-row{padding:0;border:0;background:transparent}
.ns-page .cc-filter-select{height:34px;padding:0 14px;border:1px solid var(--nsb-filet);border-radius:99px;background:var(--nsb-carte);font-size:12.5px;font-weight:500}
.ns-page :is(.cc-cat-badge,.cc-stat-badge,.cc-type-badge){font-weight:500;border-radius:99px}
.ns-page .cc-toggle.active{background:var(--nsb-acc)}
.ns-page .cc-top-rank{background:var(--nsb-doux);color:var(--text-primary)}
.ns-page .cc-nul{color:var(--text-muted)}
