/* ════════════════════════════════════════════════════
   QAIRE — Override Bootstrap/Theme tokens + typographie
   À charger APRÈS style-preset.css
   Source de vérité : ~/kDrive/Qaire/brandbook/design-tokens.md
   ════════════════════════════════════════════════════ */

/* ── Fonts Fontshare (Cabinet Grotesk + General Sans) + Google (JetBrains Mono) ── */
@import url('https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@400,500,700,800,900&f[]=general-sans@400,500,600,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  /* Familles de fonts Qaire */
  --qaire-font-display: 'Cabinet Grotesk', 'Inter', system-ui, -apple-system, sans-serif;
  --qaire-font-body: 'General Sans', 'Inter', system-ui, -apple-system, sans-serif;
  --qaire-font-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Mono', 'Source Code Pro', monospace;
  /* Qaire palette (brandbook) */
  --qaire-purple: #7C3AED;
  --qaire-purple-deep: #6D28D9;
  --qaire-purple-light: #A78BFA;
  --qaire-purple-soft: #EDE9FE;
  --qaire-purple-mist: #F5F3FF;
  --qaire-ink: #0A0A0A;

  /* Override Bootstrap font tokens */
  --bs-body-font-family: 'General Sans', 'Inter', system-ui, -apple-system, sans-serif;
  --bs-font-sans-serif: 'General Sans', 'Inter', system-ui, -apple-system, sans-serif;
  --bs-font-monospace: 'JetBrains Mono', ui-monospace, monospace;

  /* Override Bootstrap primary (était #4680ff) */
  --bs-primary: #7C3AED;
  --bs-primary-rgb: 124, 58, 237;
  --bs-primary-text-emphasis: #4C1D95;
  --bs-primary-bg-subtle: #EDE9FE;
  --bs-primary-border-subtle: #C4B5FD;

  /* Liens / focus */
  --bs-link-color: #7C3AED;
  --bs-link-color-rgb: 124, 58, 237;
  --bs-link-hover-color: #6D28D9;
  --bs-link-hover-color-rgb: 109, 40, 217;
}

/* Dark mode app : on rééquilibre le purple pour rester lisible */
[data-bs-theme="dark"] {
  --bs-primary-text-emphasis: #C4B5FD;
  --bs-primary-bg-subtle: #2E1065;
  --bs-primary-border-subtle: #5B21B6;
  --bs-link-color: #A78BFA;
  --bs-link-hover-color: #C4B5FD;
}

/* Boutons primary explicites (au cas où Bootstrap utilise les valeurs hex en dur quelque part) */
.btn-primary {
  --bs-btn-bg: #7C3AED;
  --bs-btn-border-color: #7C3AED;
  --bs-btn-hover-bg: #6D28D9;
  --bs-btn-hover-border-color: #6D28D9;
  --bs-btn-active-bg: #5B21B6;
  --bs-btn-active-border-color: #5B21B6;
  --bs-btn-disabled-bg: #A78BFA;
  --bs-btn-disabled-border-color: #A78BFA;
}

.btn-outline-primary {
  --bs-btn-color: #7C3AED;
  --bs-btn-border-color: #7C3AED;
  --bs-btn-hover-bg: #7C3AED;
  --bs-btn-hover-border-color: #7C3AED;
  --bs-btn-active-bg: #6D28D9;
  --bs-btn-active-border-color: #6D28D9;
}

/* Background utility */
.bg-primary { background-color: #7C3AED !important; }
.text-primary { color: #7C3AED !important; }
.border-primary { border-color: #7C3AED !important; }

/* Logo lockup dans la sidebar — remplit l'espace disponible du m-header (~232×42) */
.pc-sidebar .m-header .b-brand,
.pc-header .m-header .b-brand { display: block; line-height: 0; }
.pc-sidebar .m-header .logo-lg,
.pc-header .m-header .logo-lg {
  height: 44px;
  width: auto;
  max-width: 100%;
  display: block;
}
/* Login / register : le lockup peut être plus généreux */
.auth-content .logo,
.auth-wrapper .logo,
img.logo[src*="logo-dark"],
img.logo[src*="logo-white"] {
  height: 56px;
  width: auto;
  max-width: 100%;
}

/* ════════════════════════════════════════════════════
   TYPOGRAPHIE
   ════════════════════════════════════════════════════ */

/* Body en General Sans (override Inter du theme par défaut) */
body {
  font-family: var(--qaire-font-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Titres en Cabinet Grotesk Black, tracking serré */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
  font-family: var(--qaire-font-display);
  font-weight: 800;
  letter-spacing: -0.02em;
}

/* Très grands titres : tracking encore plus serré + line-height tight */
h1, .h1, .display-1, .display-2, .display-3 {
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1.05;
}

/* Brand wordmark dans la sidebar (si jamais affiché en texte) */
.b-brand,
.brand-name,
.qaire-brand {
  font-family: var(--qaire-font-display);
  font-weight: 900;
  letter-spacing: -0.03em;
}

/* Boutons : on garde le poids medium en General Sans pour cohérence */
.btn,
button {
  font-family: var(--qaire-font-body);
  font-weight: 600;
  letter-spacing: -0.005em;
}

/* Badges, labels uppercase courts : style "tag" du brandbook */
.badge {
  font-family: var(--qaire-font-body);
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* Valeurs numériques (montants, stats) en mono */
.qaire-mono,
.font-mono,
code,
kbd,
samp,
pre {
  font-family: var(--qaire-font-mono);
}

/* Inputs lisibles */
input, textarea, select {
  font-family: var(--qaire-font-body);
}
