/* Combien de jours avant les vacances */
.o-vacances { display: grid; gap: 14px; min-width: 0; }
.o-vacances [hidden] { display: none !important; }
.o-vacances .reglages { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.o-vacances input[type="date"], .o-vacances input[type="time"], .o-vacances input[type="number"] {
  display: block; width: 100%; min-width: 0; min-height: 42px; padding: 8px 12px; border: 1px solid var(--bord); border-radius: var(--rayon-petit);
  background: var(--surface); color: var(--texte); font: inherit; color-scheme: light dark; box-sizing: border-box;
}
.o-vacances input:focus-visible { outline: 3px solid var(--marque); outline-offset: 0; }
.o-vacances-scene { padding: 14px 0 6px; gap: 8px; background: var(--surface); color: var(--texte); min-width: 0; border-top: 1px solid var(--bord); }
.o-vacances-titre { margin: 0; font: 800 clamp(1.4rem, 4.5vw, 2.1rem)/1.2 var(--police); overflow-wrap: anywhere; text-align: center; }
.o-vacances-etat { margin: 0; color: var(--texte-2); }
.o-vacances-scene.jourj .o-vacances-etat { color: var(--ok-texte); background: var(--ok-fond); padding: 4px 14px; border-radius: 999px; font-weight: 700; }
.o-vacances-chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; width: 100%; max-width: 760px; }
.o-vacances-chiffres > div { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 14px 6px 12px; border-radius: var(--rayon); background: var(--surface-2); min-width: 0; }
.o-vacances-chiffres b { font: 800 clamp(2.2rem, 8vw, 4.8rem)/1 var(--police); font-variant-numeric: tabular-nums; letter-spacing: -.03em; color: var(--texte); white-space: nowrap; }
.o-vacances-chiffres .jours b { color: var(--marque); }
.o-vacances-chiffres span { font-size: .9rem; color: var(--texte-2); }
.o-vacances-scene.passe .o-vacances-chiffres b, .o-vacances-scene.vide .o-vacances-chiffres b { color: var(--texte-2); }
.o-vacances-phrase { display: block; font: 700 1.25rem/1.3 var(--police); overflow-wrap: anywhere; text-align: center; }
.o-vacances-phrase:empty, .o-vacances-date:empty { display: none; }
.o-vacances-date { margin: 0; color: var(--texte-2); text-align: center; }
.o-vacances-progres { display: grid; gap: 6px; width: 100%; max-width: 560px; text-align: center; font-size: .92rem; color: var(--texte-2); }
.o-vacances-progres progress { width: 100%; height: 14px; accent-color: var(--marque); }
.o-vacances-progres strong { color: var(--texte); }
.o-vacances-details { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; margin: 0; }
.o-vacances-details > div { padding: 10px 14px; border: 1px solid var(--bord); border-radius: var(--rayon-petit); background: var(--surface); min-width: 0; }
.o-vacances-details dt { font-size: .85rem; color: var(--texte-2); }
.o-vacances-details dd { margin: 2px 0 0; font-weight: 700; font-size: 1.1rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.o-vacances-note { display: block; margin: -4px 0 0; }
.o-vacances-travail { display: grid; gap: 10px; margin: 0; padding: 12px 14px; border: 1px solid var(--bord); border-radius: var(--rayon); min-width: 0; }
.o-vacances-travail legend { padding: 0 6px; font-weight: 600; }
.o-vacances-semaine { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.o-vacances-semaine label.case { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; }
.o-vacances-semaine input { width: 20px; height: 20px; accent-color: var(--marque); }
.o-vacances-conges { display: flex; flex-direction: column; gap: 4px; max-width: 320px; font-size: .88rem; color: var(--texte-2); }
.o-vacances-jalons h3, .o-vacances-liste h3 { margin: 0 0 8px; font-size: 1.05rem; }
.o-vacances-jalons ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.o-vacances-jalons li { display: grid; gap: 4px; padding: 10px 14px; border: 1px solid var(--bord); border-left: 4px solid var(--bord); border-radius: var(--rayon-petit); background: var(--surface); }
.o-vacances-jalons li.passe { background: var(--surface-2); color: var(--texte-2); }
.o-vacances-jalons li.actuel { border-left-color: var(--marque); }
.o-vacances-jalon-tete { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
.o-vacances-jalon-tete strong { color: var(--marque); }
.o-vacances-jalon-tete em { font-style: normal; font-size: .88rem; color: var(--texte-2); }
.o-vacances-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.o-vacances-actions .btn { min-height: 42px; font-weight: 600; }
.o-vacances-actions .tirage-message { font-size: .95rem; color: var(--ok-texte); }
.o-vacances-actions .tirage-message.erreur { color: var(--erreur-texte); }
.o-vacances .tirage-astuce { display: block; margin: 0; }
.o-vacances-liste { display: grid; gap: 8px; padding-top: 14px; border-top: 1px solid var(--bord); }
.o-vacances-liste h3 small { margin-left: 6px; font-weight: 500; color: var(--texte-2); font-variant-numeric: tabular-nums; }
.o-vacances-liste ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.o-vacances-liste ul:empty { display: none; }
.o-vacances-liste li { display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 1px solid var(--bord); border-radius: var(--rayon); background: var(--surface); min-width: 0; }
.o-vacances-liste li.passe { background: var(--surface-2); }
.o-vacances-liste li .btn { align-self: flex-start; }
.o-vacances-ouvrir { display: flex; flex-direction: column; gap: 3px; flex: 1; padding: 0; border: 0; background: none; color: var(--texte); font: inherit; text-align: left; cursor: pointer; min-width: 0; }
.o-vacances-ouvrir:focus-visible { outline: 3px solid var(--marque); outline-offset: 3px; border-radius: var(--rayon-petit); }
.o-vacances-ouvrir strong { font-size: 1.05rem; overflow-wrap: anywhere; }
.o-vacances-ouvrir span { font-size: .88rem; color: var(--texte-2); }
.o-vacances-ouvrir .o-vacances-reste { font-size: 1.1rem; font-weight: 700; color: var(--marque); font-variant-numeric: tabular-nums; }
.o-vacances-liste li.passe .o-vacances-reste { color: var(--texte-2); }
.o-vacances-memoire { padding-top: 10px; }
@media (max-width: 560px) {
  .o-vacances-chiffres { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .o-vacances-chiffres .jours { grid-column: 1 / -1; }
  .o-vacances-chiffres b { font-size: clamp(2rem, 12vw, 3.2rem); }
  .o-vacances-chiffres .jours b { font-size: clamp(3.2rem, 20vw, 5rem); }
  .o-vacances-chiffres span { font-size: .82rem; }
  .o-vacances-actions .btn { flex: 1 1 140px; }
  .o-vacances-actions .tirage-message { flex-basis: 100%; }
}
