/* === Thème Parc Plomion — UI refresh === */

:root {
  --pp-bg: #F6F3EE;
  --pp-primary: #174A96;         /* bleu principal */
  --pp-primary-700: #123773;     /* déclinaison foncée */
  --pp-primary-50: #e8f0fb;      /* déclinaison très claire */
  --pp-text: #1f2937;
  --pp-muted: #6b7280;
  --pp-border: #e5e7eb;
  --pp-success: #2e7d32;
  --pp-danger: #c62828;
  --pp-warning: #b08900;
  --pp-radius: 14px;
  --pp-radius-sm: 10px;
  --pp-shadow: 0 6px 24px rgba(0,0,0,.06), 0 2px 8px rgba(0,0,0,.04);
}

html, body {
  background: var(--pp-bg) !important;
  color: var(--pp-text);
}

/* --- Navbar --- */
.navbar.bg-primary {
  background: var(--pp-primary) !important;
  box-shadow: 0 2px 20px rgba(23,74,150,.15);
}
.navbar .navbar-brand {
  font-weight: 700;
  letter-spacing: .2px;
}
.navbar .nav-link {
  font-weight: 500;
}
.navbar .nav-link.active {
  background: rgba(255,255,255,.16);
  border-radius: 10px;
}

/* --- Cards --- */
.card {
  border: 1px solid var(--pp-border);
  border-radius: var(--pp-radius);
  box-shadow: var(--pp-shadow);
  overflow: hidden;
}
.card-header {
  border-bottom: 1px solid var(--pp-border);
}
.card-header.bg-primary {
  background: var(--pp-primary) !important;
}
.card .form-text {
  color: var(--pp-muted);
}

/* --- Boutons --- */
.btn {
  border-radius: var(--pp-radius-sm);
  font-weight: 600;
}
.btn-primary {
  background: var(--pp-primary);
  border-color: var(--pp-primary);
}
.btn-primary:hover {
  background: var(--pp-primary-700);
  border-color: var(--pp-primary-700);
}
.btn-outline-light {
  border-color: rgba(255,255,255,.6);
}
.btn-outline-light:hover {
  color:#fff;
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.8);
}
.btn-outline-dark {
  border-color: #2f3a4a;
  color: #2f3a4a;
}
.btn-outline-dark:hover {
  background: #2f3a4a;
  color: #fff;
}
.btn-outline-secondary {
  border-color: var(--pp-border);
  color: #374151;
}
.btn-outline-secondary:hover {
  background: #f3f4f6;
  color: #111827;
}

/* --- Formulaires --- */
.form-control,
.form-select {
  border-radius: 12px;
  border-color: var(--pp-border);
}
.form-control:focus,
.form-select:focus {
  border-color: var(--pp-primary);
  box-shadow: 0 0 0 .2rem rgba(23,74,150,.15);
}

/* --- Tableaux --- */
.table {
  --bs-table-striped-bg: #fafafa;
  border-color: var(--pp-border);
}
.table thead th {
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 1;
}
.table td, .table th {
  vertical-align: middle;
}
.table-hover tbody tr:hover {
  background: rgba(23, 74, 150, 0.06) !important; /* hover léger bleu */
}

/* --- Liens de tri --- */
a.sort-link {
  color: var(--pp-primary);
  text-decoration: none;
  font-weight: 600;
}
a.sort-link:hover,
a.sort-link:focus {
  text-decoration: underline;
  text-underline-offset: 3px;
  outline: none;
}

/* --- Badges --- */
.badge-soft,
.badge.badge-soft {
  background: var(--pp-primary-50) !important;
  color: var(--pp-primary-700) !important;
  border-radius: 10px;
  padding: .35rem .6rem;
  font-weight: 600;
}
.badge-soft-gray {
  background: #f3f4f6 !important;
  color: #374151 !important;
  border-radius: 10px;
  padding: .35rem .6rem;
  font-weight: 600;
}

/* --- Résumé filtres --- */
#summaryLine {
  padding: .25rem 0 0 .25rem;
  color: #4b5563;
}

/* --- Toast --- */
#toastHost .toast {
  border-radius: 12px;
  box-shadow: var(--pp-shadow);
}

/* --- Boutons d’action dans les tables --- */
.table .btn.btn-sm {
  border-radius: 10px;
}
.table .btn.btn-sm:hover {
  transform: translateY(-1px);
  transition: transform .12s ease;
}

/* ===== KPI Cards — clean & pro ===== */
.kpi-card{
  background:#fff;
  border:1px solid var(--pp-border);
  border-radius:16px;
  padding:1.1rem 1.2rem;
  display:flex;
  align-items:center;
  gap:1rem;
  box-shadow: var(--pp-shadow);
}
.kpi-card .icon{
  width:52px; height:52px; border-radius:14px;
  display:grid; place-items:center;
  font-size:24px; color:#fff;
  background: linear-gradient(135deg, #174A96 0%, #2a6bcf 100%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.35);
}
.kpi-card .content{ flex:1 1 auto; }
.kpi-card .value{
  font-weight:800; font-size:1.9rem; line-height:1; letter-spacing:.2px;
  color:#0f172a;
}
.kpi-card .label{
  color:var(--pp-muted); margin-top:.2rem; font-size:.92rem;
}
.kpi-card .actions{ margin-left:auto; }

.kpi--rdv .icon{
  background: linear-gradient(135deg, #2a6bcf 0%, #174A96 100%);
}

.kpi-card{ transition: transform .15s ease, box-shadow .2s ease; }
.kpi-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,.08), 0 3px 10px rgba(0,0,0,.06);
}
/* === Dashboard spacing === */
.section {
  margin-bottom: 2rem; /* espace entre sections */
}
.section:last-of-type {
  margin-bottom: 0;
}
