:root{
  --bg:#ffffff; --fg:#222; --muted:#666; --brand:#0a7cff;
  --panel:#f7f9fc; --border:#e5e7eb; --shadow:0 6px 24px rgba(0,0,0,.06);
  --radius:12px;
}
html,body{background:var(--bg);color:var(--fg);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;margin:0;padding:0}
.container{max-width:1200px;margin:0 auto;padding:1rem}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem;margin:1rem 0}
h1,h2,h3{line-height:1.2;margin:.2em 0 .6em}
.table{width:100%;border-collapse:separate;border-spacing:0}
.table th,.table td{padding:.6rem .7rem;border-bottom:1px solid var(--border);text-align:left}
.table th{background:var(--panel);font-weight:600}
/* === Boutons harmonisés === */
.btn,
.btn-secondary,
.btn-danger,
.btn-ghost {
  --btn-bg: var(--brand);
  --btn-fg: #fff;
  --btn-border: transparent;
  --btn-shadow: 0 6px 18px rgba(10,124,255,.25);
  --btn-shadow-hover: 0 8px 22px rgba(10,124,255,.35);
  --btn-radius: 12px;

  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.6rem .95rem; border-radius:var(--btn-radius);
  border:1px solid var(--btn-border); color:var(--btn-fg);
  background: linear-gradient(180deg, #0a7cff 0%, #0568e3 100%);
  text-decoration:none; cursor:pointer; user-select:none;
  box-shadow: var(--btn-shadow);
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease, opacity .12s ease;
}

.btn:hover { transform: translateY(-1px); box-shadow: var(--btn-shadow-hover); }
.btn:active { transform: translateY(0); filter: brightness(.98); }
.btn:focus-visible { outline: 3px solid rgba(10,124,255,.35); outline-offset: 2px; }

/* Secondaire */
.btn-secondary{
  --btn-fg:#0d2a49; --btn-border:#d3dbe6;
  background: linear-gradient(180deg, #f7f9fe 0%, #e9eef7 100%);
  box-shadow: 0 4px 14px rgba(13,42,73,.08);
}
.btn-secondary:hover{ box-shadow: 0 6px 18px rgba(13,42,73,.12); }

/* Danger (suppression) */
.btn-danger{
  --btn-bg:#e11d48; background: linear-gradient(180deg, #ff496b 0%, #e11d48 100%);
  --btn-shadow: 0 6px 18px rgba(225,29,72,.25);
  --btn-shadow-hover: 0 8px 22px rgba(225,29,72,.35);
}
.btn-danger:hover{ transform: translateY(-1px); box-shadow: var(--btn-shadow-hover); }

/* Ghost (lien discret) */
.btn-ghost{
  background: transparent; color:#0d2a49; border:1px dashed #cbd5e1; box-shadow:none;
}
.btn-ghost:hover{ background:#f2f6ff; }

/* Tailles */
.btn-sm{ padding:.45rem .75rem; border-radius:10px; }
.btn-lg{ padding:.75rem 1.15rem; font-size:1.05rem; }

/* Désactivé */
.btn[disabled], .btn-secondary[disabled], .btn-danger[disabled], .btn-ghost[disabled]{
  opacity:.6; cursor:not-allowed; transform:none !important; box-shadow:none !important;
}

/* Petites aides de layout */
.btn-row{ display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; }


a.btn, a.btn-secondary, a.btn-danger, a.btn-ghost,
button.btn, button.btn-secondary, button.btn-danger, button.btn-ghost {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;            /* évite les écarts entre <a> et <button> */
}

/* mêmes métriques et police pour tous les boutons */
.btn, .btn-secondary, .btn-danger, .btn-ghost {
  font: 600 .95rem/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  --btn-h: 36px;
  height: var(--btn-h);
  padding: 0 .95rem;        /* vertical = 0, hauteur fixe */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

/* rangée d’actions dans les tableaux */
.btn-row{ display:flex; gap:.6rem; align-items:center; }

/* corrige le décalage dû au <form> */
.btn-row form{ margin:0; display:flex; align-items:center; }
.btn-row form button{ display:inline-flex; align-items:center; }

/* option: version compacte */
.btn-sm{ --btn-h: 32px; padding:0 .75rem; border-radius:10px; }

.form-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.form-grid label{display:flex;flex-direction:column;gap:4px}
input[type="text"],input[type="number"],textarea,select{border:1px solid var(--border);border-radius:10px;padding:.55rem .7rem;background:#fff}
.alert{padding:.6rem .8rem;border-radius:10px}
.alert-danger{background:#ffe8e8;color:#8b0000;border:1px solid #ffcbcb}
.hint{color:var(--muted);font-size:.92em}
/* supprime les sous-menus locaux qui doublonnent */
.sim-local-menu,.local-sim-menu,.page-submenu{display:none!important}
@media (max-width:900px){ .form-grid{grid-template-columns:1fr} }

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: .75rem;
}
.kpi {
  background: #fff;
  border-radius: 12px;
  padding: .75rem .9rem;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.kpi-label { font-size:.9rem; color:#666; }
.kpi-val { font-size:1.35rem; font-weight:600; margin-top:.15rem; }
.kpi-note { font-size:.8rem; color:#999; }

.kpi-compare .table th, .kpi-compare .table td { vertical-align: middle; }
.hint { color:#777; font-size:.85rem; }
.muted { color:#666; font-size:.95rem; margin-top:-.3rem; }

/* /assets/css/results_kpi.css v18 - petit lifting KPI */
#kpi-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:8px 0}
.kpi{border:1px solid #e5e7eb;border-radius:12px;padding:10px 12px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.kpi .label{font-size:12px;color:#6b7280;margin-bottom:6px}
.kpi .value{font-size:20px;font-weight:600;color:#111827}
.kpi .unit{font-size:12px;color:#9ca3af;margin-left:4px}
.kpi .sub{font-size:12px;color:#6b7280;margin-top:4px}
.kpi .value.kpi-ready{color:#0f172a}
#filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
#filters .block{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid #e5e7eb;border-radius:10px;background:#fafafa}
#series-status{font-size:12px;color:#6b7280;margin-top:6px}
#series-status.ok{color:#14532d}

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px,1fr));
  gap: .75rem;
}
.kpi-grid-compact { grid-template-columns: repeat(6, minmax(0,1fr)); }
@media (max-width: 1200px){ .kpi-grid-compact { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 680px){  .kpi-grid-compact { grid-template-columns: repeat(2, minmax(0,1fr)); } }

.kpi {
  background: #fff;
  border-radius: 12px;
  padding: .8rem .9rem;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
  display:flex; flex-direction:column; justify-content:center; min-height:90px;
}
.kpi-label { font-size:.9rem; color:#666; }
.kpi-val   { font-size:1.35rem; font-weight:600; margin-top:.15rem; }
.kpi-note  { font-size:.8rem; color:#999; }
.hint      { color:#777; font-size:.9rem; }

.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.85rem}
.badge-green{background:#e8f7ee;color:#17653a;border:1px solid #bfe7cf}
.badge-gray{background:#f2f4f7;color:#444;border:1px solid #e5e7eb}

.tabs { display:flex; gap:6px; flex-wrap:wrap; }
.tab { padding:6px 10px; border:1px solid #ddd; border-radius:8px; background:#f8f8f8; cursor:pointer; }
.tab.is-active { background:#fff; border-color:#bbb; font-weight:600; }
.tabpanels .tabpanel { display:none; }
.tabpanels .tabpanel.is-active { display:block; }
.kpi { padding:10px; }
.kpi-title { font-size:12px; color:#666; margin-bottom:4px; }
.kpi-value { font-size:22px; font-weight:700; }
.subtle { text-align:center; color:#666; margin-top:6px; }

/* Impression PDF */
@media print {
  #decision-area .tabs, #decision-area input, #decision-area button { display:none !important; }
  .card { box-shadow:none !important; border:1px solid #ddd; }
  body { background:#fff; }
  .kpi { break-inside:avoid; }
}

/* Grille membres: 1 → 2 → 3 colonnes max */
.cf-grid-members{
  display:grid;
  grid-template-columns: repeat(1, minmax(280px,1fr));
  gap:12px;
}
@media (min-width: 800px){
  .cf-grid-members{ grid-template-columns: repeat(2, minmax(280px,1fr)); }
}
@media (min-width: 1200px){
  .cf-grid-members{ grid-template-columns: repeat(3, minmax(280px,1fr)); }
}
/* Cartes membres confortables */
.cf-member-card{
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
