/* ============================================================
   harmonize.css — Harmonisation visuelle charte Schneider
   ADDITIF : chargé APRÈS style.css. Ne touche JAMAIS :
   body / background / .topbar / .brand-logo / .brand-name / nav-layout.
   ============================================================ */

:root {
  --se-green: #3DCD58;
  --se-green-dk: #009530;
  --se-ink: #0f2d23;
  --se-card-bd: #e6ece9;
  --se-card-sh: 0 1px 4px rgba(16,42,30,.07);
  --se-card-radius: 14px;
}

/* ---- Boutons d'action principaux -> vert Schneider ----
   (on cible uniquement les boutons de soumission/CTA, PAS les pills de filtre) */
button[type="submit"],
.page-card form > button,
.btn-primary,
.monthly-command-card button,
.team-command-card button {
  background: linear-gradient(90deg, var(--se-green), var(--se-green-dk)) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 2px 8px rgba(0,149,48,.22);
}
button[type="submit"]:hover,
.btn-primary:hover { filter: brightness(.96); }

/* ---- Onglet de navigation actif -> pastille verte ---- */
.nav-link.active {
  background: linear-gradient(90deg, var(--se-green), var(--se-green-dk)) !important;
  color: #fff !important;
}

/* ---- Unification de TOUTES les variantes de cartes KPI ---- */
.stat-card, .kpi-card, .rh-kpi-card, .pro-kpi, .mini-kpi, .team-kpi,
.unified-kpi, .hub-tile, .hub-status-card, .rh-pro-card, .manager-card {
  background: #ffffff !important;
  border: 1px solid var(--se-card-bd) !important;
  border-radius: var(--se-card-radius) !important;
  box-shadow: var(--se-card-sh) !important;
}
.stat-card strong, .kpi-card strong, .rh-kpi-card strong, .pro-kpi strong,
.mini-kpi strong, .team-kpi strong, .unified-kpi strong, .rh-pro-card strong {
  color: var(--se-ink) !important;
}
/* liseré vert discret en haut des cartes chiffres */
.stat-card, .kpi-card, .rh-kpi-card, .unified-kpi, .pro-kpi, .mini-kpi, .team-kpi {
  border-top: 3px solid var(--se-green) !important;
}

/* ---- En-têtes de section : petit accent vert à gauche ---- */
.employee-page-head, .hub-head, .manager-compliance-head, .matching-head,
.rh-pro-head, .rh-section-title, .pro-section-title, .team-table-title {
  border-left: 5px solid var(--se-green);
  padding-left: 12px;
}

/* ---- Tableaux : en-tête teinté Schneider, cohérent partout ---- */
.table-wrapper th, table th,
.auto-table th, .compact-table th, .matching-table th,
.team-compliance-table th, .team-table th, .employee-table th,
.employee-week-table th, .employee-summary-table th {
  background: #eef8f1 !important;
  color: var(--se-ink) !important;
  border-bottom: 2px solid var(--se-green) !important;
}
.auto-table tbody tr:hover td,
.team-compliance-table tbody tr:hover td,
.matching-table tbody tr:hover td { background: #f3fbf5; }

/* ---- Badges / pastilles : style cohérent ---- */
.badge { border-radius: 999px; font-weight: 800; }
.badge.success, .badge.ok { background:#e3f7e8 !important; color:#0a6b2c !important; }

/* ---- Panneaux "page-card" : coins et ombre cohérents ---- */
.page-card { border-radius: 18px !important; box-shadow: 0 10px 36px rgba(0,0,0,.18) !important; }

/* ---- Boutons export déjà verts : rester cohérents ---- */
.xlsx-btn { box-shadow: 0 2px 8px rgba(0,149,48,.22); }


/* === v9 : polish additif (n'altere ni fond ni logo) === */
.usyn-sec h3, .rh-section-title, .pro-section-title {
  text-transform: uppercase; letter-spacing: .03em; font-size: 13px;
  color: var(--se-green-dk, #009530); font-weight: 800;
}
.usyn-card, .usyn-sec .usyn-card { border-radius: 12px !important; }
.page-card + .page-card { margin-top: 16px; }
.status-filter-bar button { border-radius: 999px; font-weight: 700; }
.status-filter-bar button.active { box-shadow: 0 2px 8px rgba(0,149,48,.18); }
section, .page-card { transition: box-shadow .2s ease; }


/* === v11 : rondeur et douceur du haut de page (employe + conformite) === */
select[name="month"]{
  border-radius:12px !important; padding:11px 14px !important;
  border:1px solid #d7e3dc !important; background:#fff !important;
  box-shadow:0 1px 3px rgba(16,42,30,.05);
}
button[type="submit"]{ border-radius:12px !important; }
.employee-month-form{ gap:12px !important; }
.employee-month-form button[type="submit"]{ padding:12px 24px !important; }
.identity-card{
  border-radius:16px !important;
  box-shadow:0 1px 4px rgba(16,42,30,.07) !important;
  border:1px solid var(--se-card-bd,#e6ece9) !important;
}
.employee-page-header{ border-radius:18px !important; }
.page-actions-sticky .btn-secondary-link{ border-radius:999px !important; }
.monthly-command-card{ border-radius:16px !important; }


/* === v12 : harmonisation page Conformite (bloc KPI + tableau) === */
.team-command-card, .team-table-card{
  border-radius:18px !important;
  box-shadow:0 1px 4px rgba(16,42,30,.07) !important;
}
.team-command-metrics .metric{
  border-radius:14px !important;
  box-shadow:0 1px 4px rgba(16,42,30,.06) !important;
  border:1px solid rgba(16,42,30,.06) !important;
}
.team-command-metrics .metric strong{ font-weight:800; }
.team-command-main{ border-radius:14px !important; }
.team-table-wrap{ border-radius:0 0 14px 14px; overflow:hidden; }
.team-compliance-table th{ background:#eef8f1 !important; border-bottom:2px solid var(--se-green,#3DCD58) !important; }
.team-compliance-table tbody tr:hover td{ background:#f3fbf5; }


/* === v18 : boutons refus d'anomalie === */
.anomaly-refuse-form{ margin-top:6px; }
.anomaly-refuse-btn{ background:#b91c1c; color:#fff; border:none; border-radius:8px;
  padding:5px 10px; font-size:12px; font-weight:700; cursor:pointer; }
.anomaly-refuse-btn:hover{ filter:brightness(1.08); }
.anomaly-cancel-btn{ background:#6b7280; color:#fff; border:none; border-radius:8px;
  padding:4px 9px; font-size:11px; font-weight:700; cursor:pointer; margin-top:4px; }
.anomaly-refused-badge{ display:inline-block; margin-top:6px; background:#eef2f7;
  color:#334155; border:1px solid #cbd5e1; border-radius:8px; padding:4px 8px; font-size:11px; font-weight:700; }


/* === v18b : bouton refus discret et integre === */
.anomaly-refuse-btn{ background:transparent !important; color:#b91c1c !important;
  border:1px solid #e3b3b3 !important; border-radius:6px !important;
  padding:2px 8px !important; font-size:11px !important; font-weight:600 !important; }
.anomaly-refuse-btn:hover{ background:#fdecec !important; }
.anomaly-cancel-btn{ background:transparent !important; color:#475569 !important;
  border:1px solid #cbd5e1 !important; border-radius:6px !important;
  padding:2px 7px !important; font-size:10px !important; font-weight:600 !important; }
.anomaly-cancel-btn:hover{ background:#f1f5f9 !important; }
.anomaly-refused-badge{ background:transparent !important; border:none !important;
  color:#64748b !important; padding:2px 0 !important; font-size:10px !important; }

/* === v18d : statut forced (anomalies forcees) en bleu === */
.team-pill.level-forced{ background:#e6f0fb !important; color:#1e4d8b !important; border:1px solid #b6d2f0 !important; }
.team-member-row.level-forced td{ background:#f2f8ff !important; }
.forced-badge{ display:inline-block; background:#e6f0fb; color:#1e4d8b; border:1px solid #b6d2f0; border-radius:999px; padding:1px 7px; font-size:11px; font-weight:700; }
