/* RIC Bio12 — hérite des polices du thème ; reprend les repères de l'ancien agenda
   (bandeau de date, liseré de couleur par loge) pour ne pas dépayser les FF∴ et SS∴. */

.ric-bio12,
.ric-porte {
  --ric-encre: #1f2430;
  --ric-doux: #5f6675;
  --ric-filet: #d6d9df;
  --ric-fond: #f5f6f8;
  --ric-alerte: #a3261b;
  color: var(--ric-encre);
}

/* ---------- Formulaire d'accès ---------- */
.ric-porte { max-width: 38em; margin: 0 auto; }
.ric-porte-texte p { margin: 0 0 1em; line-height: 1.65; color: var(--ric-doux); }
.ric-champs { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin-top: 1.5em; }
.ric-champs label { display: flex; flex-direction: column; gap: 4px; flex: 1 1 11em; }
.ric-champs span { font-size: .9em; }
.ric-champs input {
  font: inherit;
  padding: .6em .7em;
  border: 1px solid #9aa0ab;
  border-radius: 3px;
  background: #fff;
  letter-spacing: .04em;
}
.ric-captcha { margin-top: 1.2em; }
.ric-envoi { margin: 1.2em 0 0; }
.ric-envoi button { font: inherit; padding: .65em 1.6em; cursor: pointer; }
.ric-erreur { color: var(--ric-alerte); font-weight: 600; }
.ric-porte :focus-visible,
.ric-bio12 :focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/* ---------- Agenda ---------- */
.ric-confidentiel { font-size: .9em; color: var(--ric-doux); text-align: center; margin-bottom: 2em; }
.ric-barre { display: flex; align-items: center; justify-content: space-between; gap: 1em; }
.ric-bio12 .ric-barre > * { margin-top: 0; margin-bottom: 0; }
.ric-mois { margin: 0; text-align: center; text-transform: none; }
.ric-mois::first-letter { text-transform: uppercase; }
.ric-bio12 .ric-nav {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  margin: 0; padding: 0; width: 1.6em; height: 1.6em;
  font-size: 1.8em; line-height: 1; background: none; border: 0; box-shadow: none;
  cursor: pointer; color: inherit;
}
.ric-filtres { display: flex; justify-content: flex-end; align-items: center; gap: .5em; margin: 1em 0 1.5em; font-size: .9em; }
.ric-bio12 .ric-filtres label { display: inline; margin: 0; white-space: nowrap; }
.ric-bio12 .ric-filtres select { font: inherit; width: auto; max-width: 16em; margin: 0; padding: .2em .4em; }

.ric-jour { margin: 0 0 2em; border-top: 1px solid var(--ric-encre); }
.ric-jour > h3 {
  display: inline-flex; align-items: center; gap: .8em;
  margin: 0 0 1em; padding: .3em .6em;
  font-size: 1em; color: #fff; background: var(--ric-encre);
}
.ric-jour > h3::first-letter { text-transform: uppercase; }
.ric-aujourdhui { border-top-color: #1d5fa8; }
.ric-aujourdhui > h3 { background: #1d5fa8; }
.ric-auj { font-weight: 400; font-size: .85em; }
.ric-bio12 .ric-nav:disabled { opacity: .25; cursor: default; }

.ric-tenue {
  margin: 0 0 1.2em 1.2em;
  padding: .2em 0 .2em 1em;
  border-left: 4px solid var(--ric-loge, var(--ric-filet));
}
.ric-tenue h4 { margin: 0 0 .3em; font-size: 1em; display: flex; flex-wrap: wrap; gap: .6em; align-items: baseline; }
.ric-tenue h4 a { color: inherit; text-decoration: none; }
.ric-obed { font-weight: 400; font-size: .88em; color: var(--ric-doux); }
.ric-tenue h4 a:hover { text-decoration: underline; }
.ric-ligne { margin: 0 0 .5em; display: flex; flex-wrap: wrap; gap: .5em 1em; align-items: baseline; color: var(--ric-doux); }
.ric-degre {
  padding: .05em .55em; border: 1px solid var(--ric-loge, var(--ric-filet)); border-radius: 1em;
  color: var(--ric-encre); font-size: .9em;
}
.ric-odj { margin: .3em 0 .6em 1.1em; padding: 0; line-height: 1.55; }
.ric-pied { margin: 0; font-size: .9em; color: var(--ric-doux); display: flex; flex-wrap: wrap; gap: .3em 1.2em; }
.ric-itineraire { white-space: nowrap; font-weight: 600; margin-left: .3em; }
.ric-itineraire::before { content: "⤴ "; font-weight: 400; }
.ric-infos { margin-top: .5em; font-size: .92em; }
.ric-infos .ric-contacts { margin: .3em 0; }
.ric-infos .ric-contacts li { grid-template-columns: 5.5em 1fr; padding: .25em 0; }
.ric-infos .ric-consignes { margin: .4em 0 0; }
.ric-qui { color: var(--ric-doux); margin-right: .4em; }
.ric-infos .ric-coord { display: inline-flex; }
.ric-annulee h4, .ric-annulee .ric-ligne, .ric-annulee .ric-odj { text-decoration: line-through; }
.ric-etiquette-annulee, .ric-etiquette {
  font-size: .75em; font-weight: 600; text-decoration: none; padding: .1em .5em;
  border: 1px solid currentColor; border-radius: 2px;
}
.ric-etiquette-annulee { color: var(--ric-alerte); }
.ric-vide { color: var(--ric-doux); font-style: italic; text-align: center; padding: 2em 0; }

/* ---------- Carte ---------- */
.ric-carte-bloc, .ric-annuaire-bloc { margin-top: 3em; }
.ric-carte { height: 420px; border: 1px solid var(--ric-filet); }
.ric-bulle ul { margin: .5em 0 0; padding: 0; list-style: none; }
.ric-bulle li { padding-left: .6em; margin-bottom: .3em; border-left: 3px solid var(--ric-loge); }

/* ---------- Annuaire : une loge par ligne, pleine largeur ---------- */
.ric-annuaire { display: flex; flex-direction: column; gap: 1.2em; }
.ric-fiche {
  padding: 1.1em 1.4em; border: 1px solid var(--ric-filet); border-left: 5px solid var(--ric-loge, var(--ric-filet));
  line-height: 1.55;
}
.ric-fiche:target, .ric-fiche:focus { outline: 2px solid var(--ric-loge); outline-offset: 2px; }
.ric-fiche h3 { margin: 0 0 .2em; font-size: 1.1em; display: flex; flex-wrap: wrap; gap: .6em; align-items: baseline; }
.ric-fiche p { margin: 0 0 .35em; }
.ric-ident { color: var(--ric-doux); margin-bottom: .6em !important; }
.ric-bio12 .ric-contacts { list-style: none; margin: .7em 0; padding: 0; }
.ric-contacts li {
  display: grid; grid-template-columns: 11.5em 1fr; gap: .1em 1em;
  margin: 0; padding: .4em 0; border-top: 1px solid var(--ric-filet);
}
.ric-contacts li:last-child { border-bottom: 1px solid var(--ric-filet); }
.ric-fonction { color: var(--ric-doux); font-size: .92em; }
.ric-coord { display: flex; flex-wrap: wrap; gap: .1em 1.4em; }
.ric-coord a { overflow-wrap: anywhere; }
.ric-nom { font-weight: 600; }
.ric-consignes { font-size: .92em; padding: .5em .8em; background: var(--ric-fond); }
.ric-sommeil { opacity: .7; }

@media (max-width: 600px) {
  .ric-tenue { margin-left: .4em; }
  .ric-contacts li { grid-template-columns: 1fr; }
  .ric-fiche { padding: 1em; }
}
@media print {
  .ric-bio12 { display: none; } /* pas d'impression de données confidentielles */
}