/* =============================================================
   PadelScout — Design tokens (spec §7)
   Style: Linear / Pipedrive / Vercel — dense but airy.
   ============================================================= */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap");

:root {
  /* ---- Brand ---- */
  --ps-navy:        #0F2A47;   /* bleu nuit — nav, headers, CTA sérieux */
  --ps-navy-700:    #163a5f;
  --ps-navy-600:    #1d4972;
  --ps-navy-ink:    #0a1d33;
  --ps-green:       #39B54A;   /* vert padel — succès, Vendu */
  --ps-green-ink:   #2c9a3c;
  --ps-green-soft:  #e7f6ea;

  /* ---- Scoring tiers ---- */
  --tier-cold:      #94A3B8;
  --tier-warm:      #FBBF24;
  --tier-hot-a:     #F59E0B;
  --tier-hot-b:     #EF4444;
  --tier-super:     #B91C1C;
  --tier-super-2:   #7F1D1D;

  /* ---- Sources d'identité ---- */
  --src-sirene:     #1E40AF;
  --src-linkedin:   #0077B5;
  --src-presse:     #F97316;
  --src-bodacc:     #7C3AED;
  --src-permis:     #92400E;

  /* ---- Pipeline stages ---- */
  --stage-none:     #94A3B8;
  --stage-contact:  #2563EB;
  --stage-rdv:      #7C3AED;
  --stage-devis:    #F97316;
  --stage-vendu:    #39B54A;
  --stage-perdu:    #EF4444;

  /* ---- Neutrals (slightly warm) ---- */
  --bg:             #EEF0F3;
  --surface:        #FFFFFF;
  --surface-2:      #F7F8FA;
  --surface-3:      #F1F3F6;
  --line:           #E4E7EC;
  --line-2:         #D3D8E0;
  --ink-1:          #15212E;   /* primary text */
  --ink-2:          #5B6776;   /* secondary text */
  --ink-3:          #8A94A2;   /* tertiary */
  --ink-4:          #AEB6C1;   /* quaternary / disabled */

  /* ---- Type ---- */
  --font-ui:   "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* ---- Radii ---- */
  --r-sm: 6px;
  --r-md: 8px;
  --r-lg: 10px;   /* cards */
  --r-xl: 14px;
  --r-pill: 999px;

  /* ---- Shadows (subtiles) ---- */
  --sh-1: 0 1px 2px rgba(15,42,71,.06), 0 1px 1px rgba(15,42,71,.04);
  --sh-2: 0 2px 8px -2px rgba(15,42,71,.10), 0 1px 3px rgba(15,42,71,.06);
  --sh-3: 0 12px 28px -8px rgba(15,42,71,.20), 0 4px 10px -4px rgba(15,42,71,.10);
  --sh-pop: 0 16px 40px -10px rgba(10,29,51,.28), 0 6px 14px -6px rgba(10,29,51,.16);

  /* ---- Layout ---- */
  --sidebar-w: 232px;
  --header-h: 60px;
  --ease: cubic-bezier(.2,.7,.3,1);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-ui);
  background: var(--bg);
  color: var(--ink-1);
  font-size: 14px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.tnum { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; }
.mono { font-family: var(--font-mono); }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #cbd2dc; border-radius: 999px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background: #b3bcc9; background-clip: padding-box; }
::-webkit-scrollbar-track { background: transparent; }

:focus-visible { outline: 2px solid var(--ps-navy-600); outline-offset: 2px; border-radius: 4px; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; }

/* tiny shared animations */
@keyframes ps-spin { to { transform: rotate(360deg); } }
@keyframes ps-blink { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .25; transform: scale(.6); } }
@keyframes ps-ping { 0% { transform: scale(.7); opacity: .7; } 80%,100% { transform: scale(2.4); opacity: 0; } }
@keyframes ps-fadeup { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ps-slidein { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: translateX(0); } }
@keyframes ps-pop { 0% { transform: scale(.9); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
@keyframes ps-shimmer { 0% { background-position: -400px 0; } 100% { background-position: 400px 0; } }
.skeleton {
  background: linear-gradient(90deg, #eceff3 25%, #f4f6f9 50%, #eceff3 75%);
  background-size: 800px 100%;
  animation: ps-shimmer 1.3s infinite linear;
  border-radius: 6px;
}
