/* ============================================================================
 * ATØMIQ Portail — Styles spécifiques
 * On ne modifie JAMAIS le framework. On surcharge / on complète ici.
 * ========================================================================== */

/* Police du portail (surcharge du token du framework) */
:root { --font-sans: 'Manrope', system-ui, sans-serif; }

/* Valeur par défaut de la couleur "accent" (secondaire).
 * applyBranding() la réécrit avec la couleur du cabinet. */
:root {
  --color-accent-2: var(--brand-red, #FF0505);
  --color-accent-2-subtle: rgba(255, 5, 5, 0.12);
}

/* ── Empty state (non fourni par le framework) ──────────────────────────── */
.empty-state { display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:var(--space-2); padding:var(--space-10) var(--space-4); text-align:center; color:var(--color-text-muted); }
.empty-state-icon { width:40px; height:40px; opacity:.5; margin-bottom:var(--space-2); }
.empty-state-title { font-weight:var(--font-medium); color:var(--color-text-secondary); }
.empty-state-desc  { font-size:var(--text-sm); }

/* ── Grille clé/valeur pour les fiches ──────────────────────────────────── */
.kv-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr)); gap:var(--space-4); }
.kv { display:flex; flex-direction:column; gap:2px; }
.kv-label { font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); }
.kv-value { font-size:var(--text-sm); color:var(--color-text-primary); font-weight:var(--font-medium); word-break:break-word; }

/* Ligne de stats (dashboard) */
.stat-row { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px,1fr)); gap:var(--space-4); }

/* Pastille "accent secondaire" utilisable dans les graphes/surbrillances */
.dot-accent-2 { color:var(--color-accent-2); }
.bar-accent-2 { background:var(--color-accent-2); }

/* ── Page de connexion ──────────────────────────────────────────────────── */
.login-page { min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:var(--space-6); }
.login-card { width:100%; max-width:400px; }
.login-logo { text-align:center; margin-bottom:var(--space-6); }
.login-logo-img { height:36px; margin-bottom:var(--space-4); }
.login-title { font-size:var(--text-2xl); font-weight:var(--font-bold); }
.login-subtitle { color:var(--color-text-secondary); font-size:var(--text-sm); margin-top:var(--space-1); }
.theme-btn-login { position:fixed; top:var(--space-4); right:var(--space-4); }

/* Petit swatch pour l'éditeur de branding */
.color-field { display:flex; align-items:center; gap:var(--space-3); }
.color-field input[type="color"] { width:44px; height:38px; padding:2px; border:1px solid var(--color-border);
  border-radius:var(--radius-md); background:var(--color-bg-secondary); cursor:pointer; }

/* Surcharge du style de la sidebar */
.sidebar-header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: var(--space-4);
  border-bottom: 1px solid var(--color-border);
  max-height: 3.75rem;
}
.sidebar-brand {
  display: flex;
  align-items: center;
}
.sidebar-logo-full {
  width: 130px;
  height: auto;
  max-height: 40px;
  gap: var(--space-2);
}
.sidebar-toggle {
  margin-left: auto;
}

/* Nom du cabinet affiché dans la sidebar quand il n'y a pas de logo */
.sidebar-cabinet-name {
  font-size: var(--text-lg);
  font-weight: var(--font-bold);
  color: var(--color-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Champ clé/valeur (fiche entité) */
.kv-label {
  display: block;
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
  margin-bottom: 2px;
}
.kv-value {
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  margin: 0;
}

/* Taille du logo dans la sidebar */
.logo-full { 
  width: 130px; 
  height: auto; 
  max-height: 40px; 
}

/* Taille du logo sur la page de login (plus grand, mais raisonnable) */
.logo-login { 
  width: auto;  
  max-width: 220px; 
  margin: 0 auto var(--space-6); 
  display: block;

}

/* Bascule light/dark de nos propres logos (aucun conflit framework) */
.brand-logo-light { display: none; }
.brand-logo-dark  { display: block; }
[data-theme="dark"] .brand-logo-light { display: block; }
[data-theme="dark"] .brand-logo-dark  { display: none; }

/* Bouton d'upload à l'état désactivé (aucun fichier sélectionné) */
.btn-upload:disabled {
  background: var(--gray-300);
  color: var(--gray-500);
  cursor: not-allowed;
  border : none
}