/* ─────────────────────────────────────────────────────────────
   find — Design tokens

   ⚠️ SOMBRE, ET DELIBEREMENT. Ce n'est pas une preference : l'ecran
   principal de find est une CARTE, et les tuiles OpenStreetMap sont
   claires. Un chrome clair autour d'elles lui fait concurrence — deux
   surfaces pales qui se disputent le regard, et le point qu'on cherche
   se perd. Sur fond sombre, la carte devient la source de lumiere et
   le marqueur est ce qui brille.

   Le contexte d'usage dit la meme chose : on ouvre find quand quelque
   chose a mal tourne, souvent la nuit, souvent depuis un telephone.

   Pas de bascule clair : un theme qu'on ne maintient qu'a moitie est
   pire que pas de theme. La couleur est explicite partout, jamais
   heritee de l'hote.

   Un seul accent, AMBRE — la seule couleur chaude de l'ecran, donc la
   seule chose qui attire l'oeil. Elle designe la position suivie et
   l'action principale, rien d'autre.

   Police systeme, aucune Google Font : le front ne doit dependre
   d'aucun domaine externe (security-headers).
   ───────────────────────────────────────────────────────────── */

:root {
  color-scheme: dark;

  /* ── Accent unique (ambre) — The One Accent Rule : ≤10 % de l'ecran ──
     Sur fond sombre l'echelle s'inverse : les indices hauts sont les
     tons VIFS (ce qui brille), les bas des fonds teintes discrets. */
  --accent:     oklch(80% 0.155 78);   /* signal : marqueur suivi, focus */
  --accent-2:   oklch(74% 0.165 72);   /* actions primaires */
  --accent-3:   oklch(68% 0.155 68);   /* hover des actions primaires */
  --accent-dim: oklch(34% 0.075 70);   /* bordure d'etat selectionne */
  --accent-bg:  oklch(26% 0.045 70);   /* fond d'etat selectionne */

  /* ⚠️ Le texte pose SUR l'ambre est sombre, jamais blanc : blanc sur
     ambre tourne autour de 2:1 et devient illisible des qu'on baisse la
     luminosite du telephone — c'est-a-dire la nuit, quand on s'en sert. */
  --on-accent:  oklch(18% 0.030 70);

  /* ── Neutres — near-black teinte bleu nuit (chroma ≤ 0.018) ── */
  --bg:        oklch(16%   0.014 265);
  --surface:   oklch(20%   0.016 265);
  --surface-2: oklch(24.5% 0.018 265);
  --border:    oklch(30%   0.018 265);
  --border-2:  oklch(38%   0.020 265);
  --ink:       oklch(95%   0.006 265);
  --slate:     oklch(74%   0.012 265);
  --faint:     oklch(63%   0.012 265);   /* plancher : 4.5:1 sur --bg */

  /* ── Semantique (etats) ──
     Eclaircis pour le fond sombre : les memes teintes en version claire
     tombaient sous 3:1 et le rouge d'alerte ne se voyait plus. */
  /* ⚠️ SECONDE couleur de l'application, et la seule. Elle porte un sens
     distinct de l'ambre : l'ambre dit « ici, maintenant » (l'appareil
     cherche, l'action principale), le pourpre dit « le chemin deja fait »
     sur /resume. Toute troisieme couleur devra se justifier de la meme
     facon, ou la palette se dissout. */
  --trace-passee: oklch(62% 0.190 310);

  --danger:    oklch(72% 0.150 25);
  --danger-bg: oklch(26% 0.060 25);
  --success:   oklch(76% 0.130 160);
  --success-bg:oklch(25% 0.050 160);
  --warn:      oklch(80% 0.130 78);
  --warn-bg:   oklch(27% 0.055 78);

  /* ── Typographie — deux familles, sur un axe de contraste net ──
     Le systeme pour la prose, une mono pour TOUTE donnee mesuree :
     coordonnees, pourcentages, horodatages, identifiants. Ce n'est pas
     decoratif — en tabulaire, deux latitudes s'alignent chiffre a
     chiffre et la difference se lit sans compter les colonnes. */
  --font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
               "Liberation Mono", monospace;
  --fw-regular: 400;
  --fw-medium:  500;
  --fw-semibold: 600;

  --fs-display: clamp(2.25rem, 6vw, 4rem);
  --fs-headline: 1.5rem;
  --fs-title: 1.125rem;
  --fs-body: 1rem;
  --fs-sm: 0.875rem;
  --fs-label: 0.78rem;
  --measure: 68ch;

  /* ── Rayons ──
     ⚠️ Deux echelles, et la regle est explicite : les ACTIONS sont
     douces (on clique dessus), les DONNEES sont vives (on les lit).
     Un tableau de coordonnees aux coins arrondis ressemble a une carte
     de marketing, pas a un releve. */
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-pill: 999px;
  --r-data: 3px;

  /* ── Espacement ── */
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
  --sp-5: 20px; --sp-6: 24px; --sp-8: 32px; --sp-12: 48px; --sp-16: 64px;

  /* ── Elevation ──
     Sur fond sombre une ombre noire ne se voit pas : c'est la BORDURE
     claire qui detache, l'ombre ne fait qu'asseoir. */
  --shadow-hover: 0 1px 3px oklch(0% 0 0 / 0.5);
  --shadow-pop:   0 12px 32px oklch(0% 0 0 / 0.55);
  --glow-accent:  0 0 0 1px var(--accent-dim), 0 0 20px oklch(80% 0.155 78 / 0.15);

  /* ── Motion ── */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --dur: 180ms;
  --dur-fast: 110ms;

  /* ── Z-index semantique ──
     Leaflet monte jusqu'a 1000 pour ses controles : le shell de l'app
     passe au-dessus. */
  --z-map: 0;
  --z-panel: 1100;
  --z-sticky: 1200;
  --z-toast: 1300;
}

@media (prefers-reduced-motion: reduce) {
  :root { --dur: 0ms; --dur-fast: 0ms; }
}
