/* La semaine du directeur sportif : styles propres à cette page (la barre et l'agent viennent de tresorerie.css). */
.ds-page { max-width: 1240px; margin: clamp(24px, 6vh, 56px) auto 60px; padding: 0 clamp(16px, 4vw, 40px); }
.ds-etapes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.ds-scene { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 10px; align-items: start; }
.ds-plan { min-height: 420px; }
.ac-lit-de { font: 500 12px/1 var(--mono); color: #a3a09a; margin-top: 14px; }

/* Le planning : courts en colonnes, heures en lignes */
.ds-grille { display: grid; grid-template-columns: 44px repeat(5, minmax(0, 1fr)); gap: 6px; margin-top: 14px; }
.ds-court { font: 500 10px/1.2 var(--mono); text-transform: uppercase; letter-spacing: .04em; color: var(--soft); padding-bottom: 4px; }
.ds-h { font: 500 11px/1 var(--mono); color: var(--soft); display: flex; align-items: center; grid-column: 1; }
.ds-vide { border-radius: 12px; background: repeating-linear-gradient(45deg, #f4f2ee, #f4f2ee 6px, #f8f7f4 6px, #f8f7f4 12px); }
.ds-bloc { position: relative; z-index: 1; display: grid; gap: 4px; align-content: start; padding: 10px; border-radius: 12px; background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow); font-size: 12px; transition: border-color .3s, background-color .3s; }
.ds-bloc b { font-weight: 600; font-size: 13px; line-height: 1.2; }
.ds-coach { font: 500 11px/1 var(--mono); color: var(--soft); }
.ds-coach.nouveau { color: #276b3c; }
.ds-bloc.vise { border: 2px solid var(--clay); }
.ds-bloc.remplace { border: 2px solid #3f9a5a; background: #f1f8f3; }
.ds-bloc.deplace { border: 2px solid #3f9a5a; background: #f1f8f3; }
.ds-bloc.annule { background: #fbeee4; border: 1px dashed #e8c3b0; box-shadow: none; }
.ds-bloc.annule b { text-decoration: line-through; color: #a5461f; }
.ds-prev { font: 500 10px/1.3 var(--mono); color: #a5461f; }

/* L'agent : candidats, vérifications */
.ds-sous { font: 500 11px/1 var(--mono); text-transform: uppercase; letter-spacing: .04em; color: #a3a09a; margin-top: 14px; }
.ds-cand { width: 100%; border-collapse: collapse; margin-top: 8px; font-size: 13px; animation: apparait .4s var(--ease) both; }
.ds-cand td { padding: 6px 8px 6px 0; border-top: 1px solid #2a2824; color: #d9d6d0; }
.ds-cand tr.pick td { color: #9fd6ae; font-weight: 500; }
.ds-cand tr.no td { color: #77746d; }
.ds-check { list-style: none; display: grid; gap: 6px; margin-top: 12px; color: #9fd6ae; font-size: 14px; animation: apparait .4s var(--ease) both; }
.ds-groupes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.ds-groupes .gboite .gpuces { flex-direction: row; }
.ds-equipe, .ds-heures { margin-top: 14px; }
.ds-rep { display: inline-block; min-width: 34px; text-align: center; font: 500 12px/1 var(--mono); padding: 5px 8px; border-radius: 99px; background: #f1efea; color: var(--soft); }
.ds-rep.v { background: #e1f1e5; color: #276b3c; }
.ds-rep.x { background: #fbe3dc; color: #a5361f; }
.ds-equipe tr.pick td { font-weight: 600; }
.ds-heures .moins { color: #a5361f; }
.ds-heures .pluss { color: #276b3c; }
.ds-heures b.change { color: var(--clay); }

@media (max-width: 960px) { .ds-scene { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) {
  .ds-etapes { grid-column: 1 / -1; }
  .ds-grille { grid-template-columns: 34px repeat(5, minmax(84px, 1fr)); overflow-x: auto; }
  .ds-plan { overflow-x: auto; }
  .ds-groupes { grid-template-columns: minmax(0, 1fr); }
}
