/*
Theme/Project: GDSA43
File: gdsa43.css
Purpose: Feuille de style organisée pour les composants institutionnels GDSA43
Version: 1.0.0
*/

/* ==================================================
   01 — VARIABLES GDSA43
   ================================================== */

:root {
  --gdsa-green: #2e7d32;
  --gdsa-green-dark: #1b5e20;
  --gdsa-orange: #ef6c00;
  --gdsa-blue: #1f5f8b;
  --gdsa-yellow: #f3c24f;
  --gdsa-bg-soft: #fffdf7;
  --gdsa-text: #222222;
  --gdsa-muted: #555555;
  --gdsa-border-soft: rgba(160, 120, 40, 0.25);
  --gdsa-radius: 18px;
  --gdsa-radius-small: 10px;
  --gdsa-shadow: 0 8px 22px rgba(0, 0, 0, 0.06);
  --gdsa-shadow-hover: 0 12px 28px rgba(0, 0, 0, 0.10);
}


/* ==================================================
   02 — COMPOSANTS GÉNÉRIQUES
   boutons, alertes, tableaux
   ================================================== */

.gdsa43-button {
  display: inline-block;
  background: var(--gdsa-blue);
  color: #ffffff !important;
  padding: 0.8rem 1.1rem;
  border-radius: 8px;
  text-decoration: none !important;
  font-weight: 700;
}

.gdsa43-button:hover,
.gdsa43-button:focus {
  opacity: 0.9;
}

.gdsa43-alert,
.gdsa43-warning {
  padding: 1rem;
  border-radius: var(--gdsa-radius-small);
  margin: 1.5rem 0;
}

.gdsa43-alert {
  background: #eef7f1;
  border: 1px solid #b7dfc2;
}

.gdsa43-warning {
  background: #fff6e5;
  border: 1px solid #f0c36d;
}

.gdsa43-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
}

.gdsa43-table th,
.gdsa43-table td {
  border: 1px solid #dddddd;
  padding: 0.85rem;
  text-align: left;
  vertical-align: top;
}

.gdsa43-table th {
  background: var(--gdsa-blue);
  color: #ffffff;
}

.gdsa43-table tr:nth-child(even) {
  background: #f7f9fb;
}


/* ==================================================
   03 — PAGE CAMPAGNE FRELON
   ================================================== */

.gdsa43-fa-campagne {
  max-width: 1100px;
  margin: 2rem auto;
  padding: 2rem;
  border-radius: var(--gdsa-radius);
  background: var(--gdsa-bg-soft);
  border: 1px solid var(--gdsa-border-soft);
}

.gdsa43-fa-intro {
  max-width: 850px;
  margin: 0 auto 2rem;
  text-align: center;
}

.gdsa43-fa-intro h2 {
  margin-bottom: 1rem;
  font-size: 1.8rem;
}

.gdsa43-fa-intro p {
  margin: 0.75rem 0;
  line-height: 1.6;
}

.gdsa43-fa-choice {
  font-weight: 700;
  margin-top: 1.5rem;
}

.gdsa43-fa-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}

.gdsa43-fa-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none !important;
  padding: 1.75rem;
  border-radius: var(--gdsa-radius);
  background: #ffffff;
  border: 2px solid rgba(120, 90, 30, 0.25);
  box-shadow: var(--gdsa-shadow);
  color: inherit !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.gdsa43-fa-card:hover,
.gdsa43-fa-card:focus {
  transform: translateY(-3px);
  box-shadow: var(--gdsa-shadow-hover);
}

.gdsa43-fa-card-recensement {
  border-color: var(--gdsa-green);
}

.gdsa43-fa-card-resultats {
  border-color: var(--gdsa-orange);
}

.gdsa43-fa-icon {
  display: block;
  font-size: 2.4rem;
  margin-bottom: 0.75rem;
}

.gdsa43-fa-card-title {
  display: block;
  font-size: 1.25rem;
  font-weight: 800;
  margin-bottom: 0.75rem;
  color: var(--gdsa-text);
}

.gdsa43-fa-card-text {
  display: block;
  line-height: 1.5;
  margin-bottom: 1.25rem;
  color: var(--gdsa-muted);
}

.gdsa43-fa-btn {
  display: inline-block;
  margin-top: auto;
  padding: 0.75rem 1.15rem;
  border-radius: 999px;
  font-weight: 700;
  background: var(--gdsa-green);
  color: #ffffff !important;
}

.gdsa43-fa-card-resultats .gdsa43-fa-btn {
  background: var(--gdsa-orange);
}


/* ==================================================
   04 — BLOC SIGNALEMENT
   ================================================== */

.gdsa43-signalement-box {
  background: #f7faf7;
  border-left: 5px solid var(--gdsa-green);
  padding: 25px;
  margin: 30px 0;
  border-radius: var(--gdsa-radius-small);
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.06);
}

.gdsa43-signalement-box p {
  margin-bottom: 15px;
  line-height: 1.7;
}

.gdsa43-signalement-btn {
  display: inline-block;
  background: var(--gdsa-green);
  color: #ffffff !important;
  text-decoration: none !important;
  font-weight: 700;
  font-size: 1.05rem;
  padding: 16px 28px;
  border-radius: 8px;
  border: 2px solid var(--gdsa-green);
  transition: all 0.25s ease;
  box-shadow: 0 4px 12px rgba(46, 125, 50, 0.25);
}

.gdsa43-signalement-btn:hover,
.gdsa43-signalement-btn:focus {
  background: var(--gdsa-green-dark);
  border-color: var(--gdsa-green-dark);
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(27, 94, 32, 0.30);
}

.gdsa43-signalement-btn::before {
  content: "⚠ ";
  font-size: 1.1em;
}


/* ==================================================
   05 — PAGE RÉGLEMENTAIRE
   ================================================== */

.gdsa43-reglementaire {
  max-width: 980px;
  margin: 0 auto;
  padding: 2rem 1rem;
  line-height: 1.65;
}

.gdsa43-reglementaire h1 {
  font-size: 2rem;
  margin-bottom: 0.5rem;
}

.gdsa43-reglementaire h2 {
  margin-top: 2rem;
  border-left: 5px solid var(--gdsa-blue);
  padding-left: 0.75rem;
}


/* ==================================================
   06 — RESPONSIVE
   ================================================== */

@media (max-width: 760px) {
  .gdsa43-fa-campagne {
    padding: 1.25rem;
  }

  .gdsa43-fa-actions {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .gdsa43-signalement-btn {
    display: block;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
  }
}
/* Tableau de bord institutionnel 2.12.0 — indicateurs publics agrégés. */
.gdsa43-card-metrics{display:flex;flex-wrap:wrap;gap:.65rem;margin:1rem 0;position:relative;z-index:2}
.gdsa43-card-metric{flex:1 1 8rem;min-width:0;padding:.75rem;border:1px solid #dfe7dd;border-radius:.8rem;background:#f8faf7}
.gdsa43-card-metric-value{display:block;color:#174f2b;font-size:clamp(1.35rem,2.5vw,1.9rem);line-height:1.1}
.gdsa43-card-metric-label{display:block;margin-top:.25rem;color:#435448;font-size:.88rem;line-height:1.3}
.gdsa43-card-status{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:.38rem .7rem;border-radius:999px;font-weight:800;font-size:.82rem;line-height:1.25}
.gdsa43-card-status--upcoming{background:#e9eff8;color:#244f7a}
.gdsa43-card-status--active,.gdsa43-card-status--closing{background:#e4f3e8;color:#174f2b}
.gdsa43-card-status--closing{box-shadow:inset 0 0 0 1px #d09b18}
.gdsa43-card-status--closed{background:#f5eedc;color:#6c5114}
.gdsa43-card-status--published{background:#174f2b;color:#fff}
.gdsa43-card-status--archived,.gdsa43-card-status--unavailable{background:#ecefec;color:#4d5b51}
.gdsa43-card-meta{flex-basis:100%;margin:0!important;color:#435448!important;font-size:.92rem;line-height:1.45}
.gdsa43-card-updated{display:block;flex-basis:100%;color:#667267}
.gdsa43-card-unavailable{flex-basis:100%;margin:0!important;padding:.7rem;border-left:3px solid #789084;color:#4d5b51!important;background:#f5f7f3}
@media(max-width:680px){.gdsa43-card-metrics{display:grid;grid-template-columns:1fr}.gdsa43-card-metric{width:100%}.gdsa43-card-status,.gdsa43-card-meta,.gdsa43-card-updated,.gdsa43-card-unavailable{grid-column:1}}
