/* ════════════════════════════════════════════════════════════════
   POLISH v1 — raffinement visuel (charge en dernier)
   Conserve l'identité navy / lime / CCTV, ne fait que l'affiner.
   Cibles : KPIs du tableau de bord, tableaux/listes, finition globale.
   ════════════════════════════════════════════════════════════════ */

/* ── Finition globale ──────────────────────────────────────────── */
html{scroll-behavior:smooth;}
body{text-rendering:optimizeLegibility;}

/* Sélection de texte aux couleurs de la marque */
::selection{background:rgba(58,170,53,.22);color:var(--navy-900);}

/* Anneau de focus clavier cohérent (accessibilité + finition) */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--lime-500);
  outline-offset:2px;
  border-radius:6px;
}

/* Chiffres alignés (tabular) partout où l'on affiche des compteurs */
.stat-num,.dash-hud-num,.kpi-num,.inv-stat-num,.rep-stat-num{
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
}

/* ── KPIs / cartes de statistiques ─────────────────────────────── */
.stat-card{
  position:relative;
  overflow:hidden;
  border-left-width:4px;
  border-color:#e2e9f2;
  border-left-color:var(--navy);
  box-shadow:0 1px 2px rgba(13,23,33,.05),0 6px 16px rgba(13,23,33,.05);
  transition:box-shadow .22s cubic-bezier(.4,0,.2,1),
             transform .22s cubic-bezier(.4,0,.2,1),
             border-color .22s;
}
/* Halo de couleur discret dans le coin, selon l'accent de la carte */
.stat-card::after{
  content:'';position:absolute;top:-34px;right:-34px;
  width:104px;height:104px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,51,102,.07),transparent 68%);
  pointer-events:none;transition:opacity .22s;
}
.stat-card.green::after {background:radial-gradient(circle,rgba(58,170,53,.10),transparent 68%);}
.stat-card.red::after   {background:radial-gradient(circle,rgba(204,34,0,.09),transparent 68%);}
.stat-card.amber::after {background:radial-gradient(circle,rgba(230,126,0,.10),transparent 68%);}
.stat-card.teal::after  {background:radial-gradient(circle,rgba(0,168,156,.10),transparent 68%);}

.stat-card:hover{
  transform:translateY(-3px);
  box-shadow:0 2px 4px rgba(13,23,33,.06),0 16px 32px rgba(0,26,61,.14);
}
.stat-card:hover::after{opacity:1.35;}

.stat-num{letter-spacing:-.6px;}
.stat-lbl{
  text-transform:uppercase;
  letter-spacing:.6px;
  font-weight:600;
  font-size:10.5px;
  color:var(--ink-500);
}

/* ── Tableaux / listes ─────────────────────────────────────────── */
.table-wrap{
  border-color:#e2e9f2;
  box-shadow:0 1px 2px rgba(13,23,33,.04),0 8px 22px rgba(13,23,33,.05);
}
.table-head{
  background:linear-gradient(180deg,#f4f7fb,#eef2f7);
  letter-spacing:.9px;
  color:var(--ink-500);
}
.table-row{
  padding-top:13px;
  padding-bottom:13px;
  transition:background .14s ease,box-shadow .14s ease;
}
/* Survol : fond légèrement teinté + filet d'accent à gauche */
.table-row:hover{
  background:#eef4fb !important;
  box-shadow:inset 3px 0 0 var(--navy-600);
}

/* ── États vides plus chaleureux ───────────────────────────────── */
.empty-state{line-height:1.6;}
.empty-state-icon{opacity:.5;}

/* ── Boutons : un peu plus de présence et de profondeur ────────── */
.btn-primary{
  background:linear-gradient(180deg,var(--navy-600),var(--navy-700));
  box-shadow:0 1px 2px rgba(0,26,61,.18),0 2px 6px rgba(0,26,61,.12);
}
.btn-primary:hover{
  background:linear-gradient(180deg,var(--navy-500),var(--navy-600));
  box-shadow:0 6px 18px rgba(0,51,102,.30);
  transform:translateY(-1px);
}
.btn-primary:active{transform:translateY(0) scale(.98);}

.btn-outline{transition:all .16s cubic-bezier(.4,0,.2,1);}
.btn-outline:hover{
  box-shadow:0 3px 10px rgba(0,51,102,.10);
  transform:translateY(-1px);
}

.btn-green:hover{box-shadow:0 3px 10px rgba(58,170,53,.28);}

/* ── Onglets de filtre actifs : petite ombre pour les détacher ─── */
.filter-btn{transition:all .16s cubic-bezier(.4,0,.2,1);}
.filter-btn:hover:not(.active){border-color:var(--navy-500);color:var(--navy);}
.filter-btn.active{
  background:linear-gradient(180deg,var(--navy-600),var(--navy-700));
  box-shadow:0 3px 10px rgba(0,51,102,.22);
}

/* ── Champs de saisie : focus plus net aux couleurs marque ─────── */
.filter-input:focus,
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--navy-500);
  box-shadow:0 0 0 3px rgba(26,107,176,.14);
}

/* ── Badges : micro-pastille de statut pour une lecture rapide ─── */
.badge{box-shadow:0 1px 1px rgba(13,23,33,.04);}
.badge-done::before,.badge-pending::before,
.badge-low::before,.badge-empty::before,.badge-ok::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:currentColor;flex-shrink:0;opacity:.85;
}

/* ── Respect des préférences de mouvement réduit ───────────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    transition-duration:.001ms !important;
  }
  html{scroll-behavior:auto;}
}

