/* ============================================================================
 *  skb-ui.artisan.css — THÈME LOCAL du Cockpit bureau (Pack Artisan). NON synchronisé.
 *  Identité de MARQUE : reprend la charte TonTon / ArtisanApp — VERT forêt + crème,
 *  pour cohérence bureau ↔ terrain (même réseau). Coins doux, Sora + Manrope.
 *  Valeurs alignées sur ArtisanApp/css/style.css (vert #157A46 AA-vérifié : blanc
 *  dessus ≥4.5:1 ET lisible en texte sur crème). Défaut = CLAIR (crème).
 *
 *  ►► THÈME PAR MÉTIER : tout tient dans les DEUX blocs de tokens ci-dessous. Un autre
 *     corps de métier = une copie de ce fichier avec une autre palette de marque
 *     (ou un bloc généré par le futur Brand Kit, doc 45). Le reste ne change pas.
 * ========================================================================== */

/* ───────── Mode SOMBRE (forêt profond) — le toggle nuit reste ───────── */
:root{
  --bg:#12211b; --surface:#1a2e26; --surface-2:#0f1d18;
  --ink:#F8F7F2; --ink-soft:#c9d6cf; --muted:#93a49b; --faint:#7c8d84;
  --line:#ffffff14; --line-strong:#ffffff26;
  --overlay:oklch(0.15 0.03 260 / 0.55);   /* voile modale + scrim tiroir (Brand Kit-overridable ; à réchauffer un jour) */
  --primary:#1E8E5A; --primary-text:#34B57A; --primary-ink:#0b1a14;
  --primary-weak:#34b57a2e; --primary-hover:#34B57A;
  --accent:#157A46; --accent-weak:#1e8e5a2e; --accent-ink:#7FD3A8;
  --success:#1E8E5A; --success-weak:#34b57a2b; --success-ink:#7FD3A8;
  --warn:#c78a2e; --warn-weak:#c78a2e33; --warn-ink:#e6b968;
  --danger:#c14b3d; --danger-weak:#c14b3d33; --danger-ink:#e79a8f;
  --forest:#7FD3A8;
  --font-display:'Sora','Segoe UI',system-ui,sans-serif;
  --font-body:'Manrope','Segoe UI',system-ui,-apple-system,sans-serif;
  --r-sm:10px; --r-md:12px; --r-lg:16px; --r-pill:999px;
  --sh-1:0 1px 2px #06120d5c; --sh-2:0 20px 50px -22px #05100a99;
  --brandgrad:linear-gradient(135deg,#1E8E5A,#123F32);
  --glow:radial-gradient(1100px 460px at 70% -22%,#1e8e5a1f,transparent);
}

/* ───────── Mode CLAIR (crème) — DÉFAUT du cockpit ───────── */
:root[data-theme=light]{
  --bg:#F8F7F2; --surface:#FFFEFB; --surface-2:#EEECE4;
  --ink:#11271E; --ink-soft:#3c4a42; --muted:#5e6a62; --faint:#7c877f;
  --line:#e5e3da; --line-strong:#d2d0c6;
  --primary:#157A46; --primary-text:#157A46; --primary-ink:#FFFEFB;
  --primary-weak:#157a461f; --primary-hover:#0f5f37;
  --accent:#123F32; --accent-weak:#123f3218; --accent-ink:#123F32;
  --success:#157A46; --success-weak:#E7F3EC; --success-ink:#123F32;
  --warn:#B97A1C; --warn-weak:#b97a1c1f; --warn-ink:#8f5c10;
  --danger:#b23a2e; --danger-weak:#b23a2e17; --danger-ink:#b23a2e;
  --forest:#123F32;
  --sh-1:0 1px 2px #2a3a301a; --sh-2:0 18px 45px -20px #1a2b2233;
  --brandgrad:linear-gradient(135deg,#157A46,#123F32);
  --glow:radial-gradient(1100px 460px at 70% -22%,#e7f3ec,transparent);
}

/* ───────── Typo : Sora (titres/chiffres) + Manrope (corps) ───────── */
/* (fontes chargées par <link> Google Fonts dans index.html — zéro build) */
body{font-family:var(--font-body)}
h1,h2,h3,h4,.kpi .n,.d-cli{font-family:var(--font-display)}
.kpi .n{font-variant-numeric:tabular-nums}
/* Titre éditorial en encre PLEINE (le dégradé de la maquette disparaît) */
.bhead .word{background:none;-webkit-background-clip:border-box;background-clip:border-box;-webkit-text-fill-color:var(--ink);color:var(--ink)}

/* ══════════════════════════════════════════════════════════════════════════
 *  STATUTS chantier — mécanique .st-<tone> (§3.1). ⚠ Palette PROVISOIRE avec la marque
 *  verte : à FINALISER en L4 (demande vs assigné : nuancer les verts). Le rouge reste
 *  réservé à l'impayé (seule vraie alerte). Câblage table STATUTS d'app.js = L4.
 * ════════════════════════════════════════════════════════════════════════ */
.st-demande { --st:var(--accent);  --st-weak:var(--accent-weak);  --st-ink:var(--accent-ink) }   /* Demande — forêt profond (entrant) */
.st-aconf   { --st:var(--warn);    --st-weak:transparent;         --st-ink:var(--warn-ink) }      /* À confirmer — ambre CONTOUR (en attente bureau) */
.st-assigne { --st:var(--success); --st-weak:var(--success-weak); --st-ink:var(--success-ink) }   /* Assigné — vert */
.st-planifie{ --st:var(--success); --st-weak:transparent;         --st-ink:var(--success-ink) }   /* Planifié — vert contour */
.st-encours { --st:var(--warn);    --st-weak:var(--warn-weak);    --st-ink:var(--warn-ink) }       /* En cours — ambre */
.st-termine { --st:var(--forest);  --st-weak:var(--success-weak); --st-ink:var(--forest) }         /* Terminé — forêt */
.st-perdu   { --st:var(--muted);   --st-weak:var(--surface-2);    --st-ink:var(--muted) }          /* Perdu — neutre */
.st-impaye  { --st:var(--danger);  --st-weak:var(--danger-weak);  --st-ink:var(--danger-ink) }     /* Impayé — rouge (la SEULE alerte) */

/* Pastille/badge génériques pilotés par les tons ci-dessus (utilisés à partir de L4). */
.spill{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;border-radius:var(--r-pill);
  padding:2px 9px;background:var(--st-weak);color:var(--st-ink);border:1px solid transparent;white-space:nowrap}
.spill.contour{background:transparent;border-color:color-mix(in oklch,var(--st) 55%,transparent)}
.spill .dot,.dot.st{width:8px;height:8px;border-radius:50%;background:var(--st);flex:none}

/* Avatar « non assigné » : cercle pointillé neutre (plus de « ?? » sur fond de statut). */
.who2.unassigned .av,.av.unassigned{background:transparent;color:var(--faint);
  border:1.5px dashed var(--line-strong);font-style:normal}

/* KPI : valeur 0 atténuée (ne crie pas) — classe posée par renderKpis() en L4. */
.kpi.is-zero .n{color:var(--faint)}
