/*
 * assets/style.css
 * Styles de l'outil Promotion Sociale
 * Préfixe : ops- (évite les conflits avec le thème WordPress)
 */

/* ──────────────────────────────────────────────────────────────
   VARIABLES
────────────────────────────────────────────────────────────── */
#outil-ps {
  --ops-bleu:        #1a3a5c;
  --ops-bleu-clair:  #2a5a8c;
  --ops-bleu-pale:   #e8f0f8;
  --ops-vert:        #1a5c3a;
  --ops-vert-pale:   #e8f5ee;
  --ops-ambre:       #7a4a00;
  --ops-ambre-pale:  #fdf3e0;
  --ops-corail:      #6a2a1a;
  --ops-corail-pale: #faeae6;
  --ops-gris-fonce:  #2c2c2c;
  --ops-gris-moyen:  #6b6b6b;
  --ops-gris-clair:  #f4f4f2;
  --ops-bordure:     #d8d8d4;
  --ops-blanc:       #ffffff;
  --ops-rayon:       10px;

  /* Reset de base */
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, sans-serif;
  font-size: 15px;
  color: var(--ops-gris-fonce);
  line-height: 1.6;
  max-width: 860px;
  margin: 0 auto;
  padding: 0 0 40px;
}

#outil-ps *, #outil-ps *::before, #outil-ps *::after {
  box-sizing: border-box;
}

/* ──────────────────────────────────────────────────────────────
   EN-TÊTE
────────────────────────────────────────────────────────────── */
#outil-ps .ops-entete {
  background: var(--ops-bleu);
  color: var(--ops-blanc);
  border-radius: var(--ops-rayon);
  padding: 22px 26px 18px;
  margin-bottom: 16px;
}

#outil-ps .ops-titre {
  font-size: 19px;
  font-weight: 600;
  margin: 0 0 4px;
  line-height: 1.3;
}

#outil-ps .ops-sous-titre {
  font-size: 13px;
  opacity: 0.72;
  margin: 0;
}

/* ──────────────────────────────────────────────────────────────
   SÉLECTEUR D'ÉTABLISSEMENT
────────────────────────────────────────────────────────────── */
#outil-ps .ops-selecteur-zone {
  background: var(--ops-blanc);
  border: 1px solid var(--ops-bordure);
  border-radius: var(--ops-rayon);
  padding: 14px 18px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

#outil-ps .ops-select-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--ops-gris-moyen);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

#outil-ps .ops-select {
  flex: 1;
  min-width: 200px;
  padding: 8px 12px;
  border: 1px solid var(--ops-bordure);
  border-radius: 7px;
  font-size: 14px;
  color: var(--ops-gris-fonce);
  background: var(--ops-blanc);
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b6b6b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  cursor: pointer;
}

#outil-ps .ops-select:focus {
  outline: 2px solid var(--ops-bleu-clair);
  outline-offset: 1px;
}

#outil-ps .ops-badge {
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 20px;
  background: var(--ops-bleu-pale);
  color: var(--ops-bleu);
  font-weight: 500;
}

/* ──────────────────────────────────────────────────────────────
   NAVIGATION À ONGLETS
────────────────────────────────────────────────────────────── */
#outil-ps .ops-nav {
  display: flex;
  gap: 5px;
  margin-bottom: 0;
}

#outil-ps .ops-tab {
  flex: 1;
  padding: 10px 8px;
  border: 1px solid var(--ops-bordure);
  border-bottom: none;
  border-radius: var(--ops-rayon) var(--ops-rayon) 0 0;
  background: var(--ops-gris-clair);
  font-size: 13px;
  font-weight: 500;
  color: var(--ops-gris-moyen);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background 0.15s, color 0.15s;
  line-height: 1.3;
}

#outil-ps .ops-tab:hover {
  background: var(--ops-blanc);
  color: var(--ops-gris-fonce);
}

#outil-ps .ops-tab--actif {
  background: var(--ops-blanc);
  color: var(--ops-gris-fonce);
  font-weight: 600;
  border-bottom: 1px solid var(--ops-blanc);
  margin-bottom: -1px;
  position: relative;
  z-index: 2;
}

#outil-ps .ops-tab[data-module="circulaires"].ops-tab--actif {
  color: var(--ops-bleu);
  border-top: 3px solid var(--ops-bleu);
}

#outil-ps .ops-tab[data-module="vae"].ops-tab--actif {
  color: var(--ops-vert);
  border-top: 3px solid var(--ops-vert);
}

#outil-ps .ops-tab[data-module="dossiers"].ops-tab--actif {
  color: var(--ops-ambre);
  border-top: 3px solid var(--ops-ambre);
}

#outil-ps .ops-tab-icone {
  font-size: 15px;
}

/* ──────────────────────────────────────────────────────────────
   PANNEAU DE MODULE
────────────────────────────────────────────────────────────── */
#outil-ps .ops-panneau {
  background: var(--ops-blanc);
  border: 1px solid var(--ops-bordure);
  border-radius: 0 0 var(--ops-rayon) var(--ops-rayon);
  padding: 24px 24px 28px;
  min-height: 300px;
}

#outil-ps .ops-module {
  display: none;
}

#outil-ps .ops-module--actif {
  display: block;
}

/* ──────────────────────────────────────────────────────────────
   EN-TÊTE DE MODULE
────────────────────────────────────────────────────────────── */
#outil-ps .ops-module-entete {
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ops-bordure);
}

#outil-ps .ops-module-titre {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 4px;
}

#outil-ps .ops-module-titre--bleu  { color: var(--ops-bleu); }
#outil-ps .ops-module-titre--vert  { color: var(--ops-vert); }
#outil-ps .ops-module-titre--ambre { color: var(--ops-ambre); }

#outil-ps .ops-module-desc {
  font-size: 13px;
  color: var(--ops-gris-moyen);
  margin: 0;
  max-width: 560px;
}

/* ──────────────────────────────────────────────────────────────
   CHAMPS DE FORMULAIRE
────────────────────────────────────────────────────────────── */
#outil-ps .ops-champ {
  margin-bottom: 14px;
}

#outil-ps .ops-label {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: var(--ops-gris-moyen);
  margin-bottom: 5px;
}

#outil-ps .ops-optionnel {
  font-weight: 400;
  font-style: italic;
}

#outil-ps .ops-input,
#outil-ps .ops-textarea {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--ops-bordure);
  border-radius: 7px;
  font-size: 14px;
  color: var(--ops-gris-fonce);
  background: var(--ops-blanc);
  font-family: inherit;
  resize: vertical;
  transition: border-color 0.15s;
}

#outil-ps .ops-input:focus,
#outil-ps .ops-textarea:focus {
  outline: 2px solid var(--ops-bleu-clair);
  outline-offset: 1px;
  border-color: var(--ops-bleu-clair);
}

/* ──────────────────────────────────────────────────────────────
   BOUTONS
────────────────────────────────────────────────────────────── */
#outil-ps .ops-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 16px;
  border-radius: 7px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background 0.15s, transform 0.1s;
  font-family: inherit;
}

#outil-ps .ops-btn:active        { transform: scale(0.98); }
#outil-ps .ops-btn:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

#outil-ps .ops-btn--bleu        { background: var(--ops-bleu);  color: var(--ops-blanc); }
#outil-ps .ops-btn--bleu:hover  { background: var(--ops-bleu-clair); }
#outil-ps .ops-btn--vert        { background: var(--ops-vert);  color: var(--ops-blanc); }
#outil-ps .ops-btn--vert:hover  { background: #1e6b44; }
#outil-ps .ops-btn--ambre       { background: var(--ops-ambre); color: var(--ops-blanc); }
#outil-ps .ops-btn--ambre:hover { background: #8a5400; }

#outil-ps .ops-btn--secondaire {
  background: var(--ops-blanc);
  color: var(--ops-gris-fonce);
  border-color: var(--ops-bordure);
}
#outil-ps .ops-btn--secondaire:hover { background: var(--ops-gris-clair); }

#outil-ps .ops-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

#outil-ps .ops-groupe-boutons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}

/* ──────────────────────────────────────────────────────────────
   FILTRES THÉMATIQUES (Module Circulaires)
────────────────────────────────────────────────────────────── */
#outil-ps .ops-filtres {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

#outil-ps .ops-tag {
  padding: 5px 11px;
  border-radius: 20px;
  border: 1px solid var(--ops-bordure);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  background: var(--ops-blanc);
  color: var(--ops-gris-moyen);
  transition: background 0.12s, border-color 0.12s, color 0.12s;
  font-family: inherit;
}

#outil-ps .ops-tag:hover,
#outil-ps .ops-tag--actif {
  background: var(--ops-bleu-pale);
  border-color: var(--ops-bleu-clair);
  color: var(--ops-bleu);
}

/* ──────────────────────────────────────────────────────────────
   ZONE CACHÉE (recherche circulaire)
────────────────────────────────────────────────────────────── */
#outil-ps .ops-zone-cachee {
  display: none;
  margin-top: 14px;
  padding: 16px;
  background: var(--ops-gris-clair);
  border-radius: 8px;
  border: 1px solid var(--ops-bordure);
}

/* ──────────────────────────────────────────────────────────────
   LISTE DES DOSSIERS (Module Dossiers)
────────────────────────────────────────────────────────────── */
#outil-ps .ops-liste-dossiers {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

#outil-ps .ops-dossier-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 13px;
  border: 1px solid var(--ops-bordure);
  border-radius: 7px;
  font-size: 13px;
  background: var(--ops-blanc);
  gap: 10px;
}

#outil-ps .ops-dossier-nom {
  font-weight: 500;
}

#outil-ps .ops-statut {
  font-size: 11px;
  padding: 3px 9px;
  border-radius: 12px;
  font-weight: 500;
  white-space: nowrap;
}

#outil-ps .ops-statut--inchange { background: var(--ops-vert-pale);   color: var(--ops-vert); }
#outil-ps .ops-statut--modifie  { background: var(--ops-ambre-pale);  color: var(--ops-ambre); }
#outil-ps .ops-statut--nouveau  { background: var(--ops-bleu-pale);   color: var(--ops-bleu); }
#outil-ps .ops-statut--supprime { background: var(--ops-corail-pale); color: var(--ops-corail); }

/* ──────────────────────────────────────────────────────────────
   ALERTE ÉTABLISSEMENT NON SÉLECTIONNÉ
────────────────────────────────────────────────────────────── */
#outil-ps .ops-alerte {
  text-align: center;
  padding: 36px 20px;
  color: var(--ops-gris-moyen);
  font-size: 14px;
}

#outil-ps .ops-alerte-icone {
  display: block;
  font-size: 28px;
  margin-bottom: 8px;
}

/* ──────────────────────────────────────────────────────────────
   ZONE DE RÉSULTAT
────────────────────────────────────────────────────────────── */
#outil-ps .ops-resultat {
  margin-top: 22px;
}

#outil-ps .ops-resultat-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--ops-gris-moyen);
  margin: 0 0 8px;
}

#outil-ps .ops-resultat-contenu {
  background: var(--ops-gris-clair);
  border: 1px solid var(--ops-bordure);
  border-radius: var(--ops-rayon);
  padding: 16px 18px;
  font-size: 14px;
  line-height: 1.75;
  white-space: pre-wrap;
  min-height: 60px;
}

/* Animation de chargement */
#outil-ps .ops-chargement {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--ops-gris-moyen);
}

#outil-ps .ops-points {
  display: flex;
  gap: 4px;
}

#outil-ps .ops-points span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ops-gris-moyen);
  animation: ops-rebond 1.2s infinite;
}

#outil-ps .ops-points span:nth-child(2) { animation-delay: 0.2s; }
#outil-ps .ops-points span:nth-child(3) { animation-delay: 0.4s; }

@keyframes ops-rebond {
  0%, 60%, 100% { transform: translateY(0);    opacity: 0.4; }
  30%            { transform: translateY(-5px); opacity: 1;   }
}

/* ──────────────────────────────────────────────────────────────
   PIED DE PAGE
────────────────────────────────────────────────────────────── */
#outil-ps .ops-pied {
  text-align: center;
  font-size: 11px;
  color: var(--ops-gris-moyen);
  margin-top: 24px;
  padding-top: 14px;
  border-top: 1px solid var(--ops-bordure);
}

#outil-ps .ops-pied a {
  color: var(--ops-gris-moyen);
}

/* ──────────────────────────────────────────────────────────────
   RESPONSIVE MOBILE
────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  #outil-ps .ops-panneau  { padding: 16px; }
  #outil-ps .ops-entete   { padding: 16px; }
  #outil-ps .ops-titre    { font-size: 16px; }
  #outil-ps .ops-tab span:last-child { display: none; }  /* masquer le libellé, garder l'icône */
  #outil-ps .ops-tab-icone { font-size: 18px; }
  #outil-ps .ops-groupe-boutons { flex-direction: column; }
  #outil-ps .ops-btn      { justify-content: center; }
}
