.rse { --accent: #5a3d82; --accent-clair: #efeaf7; }
.rse .titre-page { margin-bottom: 17px; }
.rse-regles { padding-block: 11px; margin-bottom: 17px; }
.rse-onglets { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--bordure); }
.rse-onglets button { color: var(--secondaire); background: transparent; border: 0; border-bottom: 2px solid transparent; padding: 8px 11px; cursor: pointer; font-weight: 700; }
.rse-onglets [aria-selected='true'] { color: var(--accent); border-bottom-color: var(--accent); }
.rse-regle { padding-top: 10px; line-height: 1.4; }
.rse-source { margin-top: 6px; }
.rse-grille { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(290px, 1fr); align-items: start; gap: 18px; }
.rse-titre { flex-wrap: wrap; }
.rse-outils { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; align-items: end; }
.rse-outils input[type='datetime-local'] { min-height: 38px; }
.rse-exercices { grid-template-columns: minmax(0, 1fr) auto; margin-top: 10px; }
.rse-exercices .bouton { min-height: 38px; }
.rse .bouton-principal:not(:disabled):hover { background: #402763; }
.rse-legende { display: flex; gap: 5px 11px; flex-wrap: wrap; margin-top: 16px; color: var(--secondaire); font-size: .79rem; }
.rse [data-activite='conduite'] { --activite: #604189; }
.rse [data-activite='travail'] { --activite: #b2712f; }
.rse [data-activite='disponibilite'] { --activite: #496b82; }
.rse [data-activite='repos'] { --activite: #498474; }
.rse-legende span::before { content: ''; display: inline-block; width: 9px; height: 9px; margin-inline-end: 4px; background: var(--activite); border-radius: 2px; }
.rse-frise { display: grid; gap: 5px; margin-top: 8px; max-height: 195px; overflow: auto; scrollbar-gutter: stable; }
.rse-frise-ligne { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); gap: 8px; align-items: center; }
.rse-frise-ligne > span { color: var(--secondaire); font-size: .82rem; font-variant-numeric: tabular-nums; }
.rse-frise-barre { position: relative; height: 18px; border-radius: 3px; overflow: hidden; background: repeating-linear-gradient(to right, #e9e7ed 0 calc(25% - 1px), #c9c4d2 calc(25% - 1px) 25%); }
.rse-frise-barre button { position: absolute; top: 0; bottom: 0; border: 0; padding: 0; background: var(--activite); cursor: pointer; }
.rse-frise-barre button[data-ecart] { border-bottom: 4px solid #8b211c; background-image: repeating-linear-gradient(135deg, transparent 0 4px, #ffffff75 4px 6px); }
.rse-frise-barre button:focus-visible { z-index: 1; outline: 2px solid white; outline-offset: -2px; }
.rse-format { margin-top: 14px; }
.rse-entete-lignes, .rse-ligne { display: grid; grid-template-columns: minmax(70px, .73fr) minmax(112px, 1.4fr) minmax(60px, .78fr) 28px; align-items: center; gap: 7px; }
.rse-entete-lignes { font-size: .78rem; color: var(--secondaire); padding: 0 4px; margin: 10px 0 4px; }
.rse-activites { display: grid; gap: 3px; max-height: 430px; overflow: auto; padding: 2px 4px 4px; scrollbar-gutter: stable; }
.rse-ligne { padding: 4px; border-inline-start: 3px solid var(--activite); background: #f6f6f8; border-radius: 4px; }
.rse-ligne[data-ecart] { background: #fbeeea; border-inline-start-color: var(--alerte); }
.rse-ligne[data-ecart] time { color: var(--alerte); text-decoration: underline 2px; text-underline-offset: 3px; }
.rse-ligne time { font-size: .84rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.rse-ligne select, .rse-ligne input { width: 100%; min-width: 0; padding: 4px; border: 1px solid #c6c8cf; background: #fff; color: var(--encre); border-radius: 5px; font-size: .88rem; }
.rse-ligne input[aria-invalid='true'] { border-color: var(--alerte); }
.rse-ligne button { background: transparent; border: 0; color: var(--secondaire); cursor: pointer; padding: 4px 2px; font-size: 1.05rem; }
.rse-ligne .rse-compensation-saisie { grid-column: 2 / -1; font-size: .77rem; color: var(--secondaire); display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.rse-compensation-saisie input { width: 64px; }
.rse-ajouts { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.rse-ajouts .bouton { font-size: .82rem; padding: 5px 7px; }
.rse-resultats { position: static; }
.rse-bilan { border-radius: 8px; padding: 9px 10px; font-weight: 700; background: var(--accent-clair); color: var(--accent); }
.rse-bilan[data-etat='ecart'] { background: #fbeeea; color: var(--alerte); }
.rse-bilan[data-etat='ok'] { background: #e8f1ed; color: #245a4a; }
.rse-totaux, .rse-compensations ul { display: grid; gap: 5px; list-style: none; margin: 10px 0; padding: 0; }
.rse-totaux li { display: flex; justify-content: space-between; gap: 7px; border-bottom: 1px solid var(--bordure); padding-bottom: 4px; font-size: .91rem; }
.rse-totaux strong { white-space: nowrap; }
.rse-infractions { display: grid; gap: 6px; }
.rse-infraction { text-align: left; padding: 7px 8px; border: 1px solid #e7c4be; border-radius: 6px; background: #fff9f7; color: #832b25; cursor: pointer; display: grid; gap: 3px; font-size: .89rem; line-height: 1.3; }
.rse-infraction span { color: #715553; font-size: .79rem; }
.rse-compensations { margin-top: 11px; padding-top: 9px; border-top: 1px solid var(--bordure); }
.rse-compensations h3 { font-size: .97rem; margin-bottom: 4px; }
.rse-compensations li { font-size: .86rem; }
@media (max-width: 840px) {
  .rse-grille { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 410px) {
  .rse-onglets button { padding-inline: 5px; font-size: .86rem; }
  .rse-entete-lignes, .rse-ligne { gap: 4px; grid-template-columns: minmax(58px, .75fr) minmax(99px, 1.25fr) minmax(46px, .65fr) 22px; }
  .rse-outils:not(.rse-exercices) { grid-template-columns: minmax(0, 1fr); }
}
