.card { background:#0b1220; border:1px solid #1f2937; border-radius:0.75rem; padding:1rem; }
.label { display:block; margin-bottom:0.25rem; font-size:0.875rem; color:#9ca3af; }
.input { width:100%; background:#0b0f19; border:1px solid #1f2937; color:#e5e7eb; padding:0.625rem 0.75rem; border-radius:0.5rem; }
.input:focus { outline:none; border-color:#4f46e5; box-shadow:0 0 0 3px rgba(79,70,229,0.25); }
.btn-primary { display:inline-flex; align-items:center; justify-content:center; gap:0.5rem; padding:0.625rem 0.875rem; border-radius:0.5rem; background:#4f46e5; color:white; font-weight:600; }
.btn-primary:hover { background:#4338ca; }
.alert { border-radius:0.5rem; padding:0.75rem 0.875rem; }
.alert-error { background:#3f1d2b; color:#fecdd3; border:1px solid #7f1d1d; }
.nav-link--idle { color:#E5E7EB; }
.nav-link--idle:hover { color:#A5B4FC; background-color:#111827; }
.nav-link--active { color:#E0E7FF; background:linear-gradient(135deg,#312e81 0%,#1f2937 100%); box-shadow:0 0 0 1px #3730a3 inset; font-weight:600; }

/* Le texte du titre a exactement la même taille que l'icône (.icon-lg = 1.75rem) */
.title-lg {
  font-size: 1.75rem;   /* = 28px */
  line-height: 1.75rem; /* aligne parfaitement avec l'icône */
  font-weight: 800;     /* cohérent avec .page-title */
}

/* Layout / titres */
.page-title { display:flex; align-items:center; gap:0.6rem; font-size:1.5rem; font-weight:800; }
.page-subtitle { color:#9ca3af; margin-top:0.15rem; }
.icon-lg { width:1.75rem; height:1.75rem; }

/* Toolbar */
.toolbar { display:flex; align-items:start; justify-content:space-between; gap:1rem; }
.toolbar-right { display:flex; align-items:center; gap:0.5rem; }

/* Cards / Inputs / Buttons (si pas déjà présents) */
.card { background:#0b1220; border:1px solid #1f2937; border-radius:0.75rem; padding:1rem; }
.label { display:block; margin-bottom:0.25rem; font-size:0.875rem; color:#9ca3af; }
.input { width:100%; background:#0b0f19; border:1px solid #1f2937; color:#e5e7eb; padding:0.625rem 0.75rem; border-radius:0.5rem; }
.input:focus { outline:none; border-color:#4f46e5; box-shadow:0 0 0 3px rgba(79,70,229,0.25); }

.btn-primary, .btn-secondary, .btn-icon {
  display:inline-flex; align-items:center; justify-content:center; gap:0.5rem;
  padding:0.55rem 0.85rem; border-radius:0.5rem; font-weight:600;
  border:1px solid transparent;
}
.btn-primary { background:#4f46e5; color:white; }
.btn-primary:hover { background:#4338ca; }
.btn-secondary { background:#0b0f19; color:#e5e7eb; border-color:#374151; }
.btn-secondary:hover { background:#111827; border-color:#4b5563; }
.btn-icon { padding:0.45rem; background:#0b0f19; border:1px solid #374151; color:#e5e7eb; border-radius:0.5rem; }
.btn-icon:hover { background:#111827; border-color:#4b5563; }
.btn-danger { border-color:#7f1d1d !important; color:#fecdd3 !important; }
.btn-danger:hover { background:#3f1d2b; }

/* Table */
.table { width:100%; border-collapse:separate; border-spacing:0; }
.th, .td { text-align:left; padding:0.75rem; border-bottom:1px solid #1f2937; }
.tr:hover .td { background:#0c1322; }

/* Badges / alertes / pagination */
.badge {
  display:inline-flex; align-items:center; gap:0.35rem;
  padding:0.2rem 0.5rem; border-radius:999px; font-size:0.75rem; line-height:1;
  border:1px solid #374151; background:#0b0f19; color:#e5e7eb;
}
.badge-info    { border-color:#1f375e; background:#0b1530; color:#c7d2fe; }

.alert { border-radius:0.5rem; padding:0.75rem 0.875rem; }
.alert-success { background:#0b3328; color:#bbf7d0; border:1px solid #14532d; }
.alert-error   { background:#3f1d2b; color:#fecdd3; border:1px solid #7f1d1d; }

.page-pill, .page-pill-active {
  display:inline-flex; align-items:center; justify-content:center; min-width:2rem;
  padding:0.3rem 0.6rem; border-radius:0.5rem; border:1px solid #374151;
}
.page-pill { color:#e5e7eb; background:#0b0f19; }
.page-pill:hover { background:#111827; border-color:#4b5563; }
.page-pill-active { background:#4f46e5; color:white; border-color:#4f46e5; }

/* ---- Page header ---- */
.title-lg { font-size: 1.75rem; line-height: 1.75rem; font-weight: 800; }
.icon-lg { width: 1.75rem; height: 1.75rem; }
.page-title { display:flex; align-items:center; gap:.6rem; }
.page-subtitle { color:#9ca3af; }

/* ---- Conteneur toasts ---- */
.toast-stack { position: fixed; top: 1rem; right: 1rem; z-index: 50; display: grid; gap: .5rem; }

/* ---- Cards / Entrées / Boutons (si pas déjà dans ton fichier) ---- */
.card { background:#0b1220; border:1px solid #1f2937; border-radius:0.75rem; padding:1rem; }
.label { display:block; margin-bottom:0.25rem; font-size:0.875rem; color:#9ca3af; }
.input { width:100%; background:#0b0f19; border:1px solid #1f2937; color:#e5e7eb; padding:0.625rem 0.75rem; border-radius:0.5rem; }
.input:focus { outline:none; border-color:#4f46e5; box-shadow:0 0 0 3px rgba(79,70,229,0.25); }
.btn-primary, .btn-secondary, .btn-danger {
  display:inline-flex; align-items:center; gap:.5rem; padding:.55rem .85rem;
  border-radius:.5rem; border:1px solid transparent; font-weight:600;
}
.btn-primary { background:#4f46e5; color:#fff; }
.btn-primary:hover { background:#4338ca; }
.btn-secondary { background:#0b0f19; color:#e5e7eb; border-color:#374151; }
.btn-secondary:hover { background:#111827; border-color:#4b5563; }
.btn-danger { background:#3f1d2b; color:#fecdd3; border-color:#7f1d1d; }
.btn-danger:hover { background:#5a2335; }

/* ---- Table ---- */
.table { width:100%; border-collapse:separate; border-spacing:0; }
.th, .td { text-align:left; padding:0.75rem; border-bottom:1px solid #1f2937; }
.tr:hover .td { background:#0c1322; }
.tr-archived { opacity:.9; }

/* ---- Badges ---- */
.badge { display:inline-flex; align-items:center; gap:.35rem; padding:.2rem .5rem; border-radius:999px; font-size:.75rem; line-height:1; border:1px solid #374151; background:#0b0f19; color:#e5e7eb; }
.badge-success { border-color:#14532d; background:#0b3328; color:#bbf7d0; }
.badge-warning { border-color:#92400e; background:#3a2a0a; color:#fde68a; }
.badge-info    { border-color:#1f375e; background:#0b1530; color:#c7d2fe; }
.badge-neutral { border-color:#334155; background:#0b1220; color:#cbd5e1; }
.badge-muted   { border-color:#4b5563; background:#1f2937; color:#e5e7eb; }

/* ---- Alerts ---- */
.alert { border-radius:0.5rem; padding:0.75rem 0.875rem; border:1px solid #374151; background:#0b0f19; color:#e5e7eb; }
.alert-success { border-color:#14532d; background:#0b3328; color:#bbf7d0; }
.alert-info    { border-color:#1e3a8a; background:#0b1530; color:#c7d2fe; }
.alert-warning { border-color:#92400e; background:#3a2a0a; color:#fde68a; }
.alert-error   { border-color:#7f1d1d; background:#3f1d2b; color:#fecdd3; }

/* ---- Pagination ---- */
.page-pill, .page-pill-active {
  display:inline-flex; align-items:center; justify-content:center; min-width:2rem;
  padding:.3rem .6rem; border-radius:.5rem; border:1px solid #374151;
}
.page-pill { color:#e5e7eb; background:#0b0f19; }
.page-pill:hover { background:#111827; border-color:#4b5563; }
.page-pill-active { background:#4f46e5; color:white; border-color:#4f46e5; }

/* ---- Liste projets ---- */
.project-link {
  display:flex; justify-content:space-between; align-items:center;
  border:1px solid transparent; border-radius:.75rem; padding:.5rem .75rem;
}
.project-link:hover { background:#111827; border-color:#374151; }
.project-link--active { background:#0b1530; border-color:#1f375e; }

/* ---- Modales ---- */
.modal-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,.6);
  display:flex; align-items:center; justify-content:center; padding:1rem; z-index:100;
}
.modal-card {
  width: 100%; max-width: 560px; background:#0b1220; color:#e5e7eb;
  border:1px solid #1f2937; border-radius:1rem; padding:1rem;
}
.modal-title { font-size:1.125rem; font-weight:700; margin-bottom:.75rem; }


/* Titres / header */
.section-title { display:flex; align-items:center; justify-content:space-between; gap:.5rem; font-weight:700; margin-bottom:.25rem; }
.title-lg { font-size: 1.75rem; line-height: 1.75rem; font-weight: 800; }
.icon-lg  { width: 1.75rem; height: 1.75rem; }

/* Petits textes */
.muted { color:#94a3b8; font-size:.9rem; }
.cell-mini { white-space:nowrap; }

/* En-têtes de jours */
.day-head { display:flex; flex-direction:column; align-items:center; gap:2px; }
.day-head .dnum { font-weight:700; }
.day-head .dshort { font-size:.75rem; color:#9ca3af; }

/* États jours */
.day-holiday { background:rgba(255,255,255,0.05); }
.day-weekend { background:rgba(255,255,255,0.04); }
.cell-disabled { background:rgba(255,255,255,0.05); color:#9ca3af; }

/* Bandeau d’action collant */
.sticky-actions {
  position: sticky; bottom: 0; display:flex; gap:.5rem; align-items:center; flex-wrap:wrap;
  background:rgba(11,18,32,0.9); padding:.75rem; margin-top:.75rem;
  border-top:1px solid #1f2937; border-radius:0 0 .75rem .75rem;
}