/* Heures décimales : styles propres à l'outil. */
.o-heures-decimales { display: grid; gap: 26px; min-width: 0; }
.o-heures-decimales [hidden] { display: none !important; }
.o-heures-decimales-bloc { display: grid; gap: 12px; min-width: 0; }
.o-heures-decimales-bloc + .o-heures-decimales-bloc { padding-top: 22px; border-top: 1px solid var(--bord); }
.o-heures-decimales h2 { margin: 0; font-size: 1.2rem; }
.o-heures-decimales-conv { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: end; gap: 12px; }
.o-heures-decimales-conv label, .o-heures-decimales-lot { display: flex; flex-direction: column; gap: 4px; min-width: 0; font-size: .88rem; color: var(--texte-2); }
.o-heures-decimales-conv input { font: 600 1.35rem var(--mono); min-height: 52px; }
.o-heures-decimales-fleche { padding-bottom: 12px; font-size: 1.4rem; color: var(--texte-2); }
.o-heures-decimales-aide, .o-heures-decimales-lot small { margin: 0; font-size: .85rem; color: var(--texte-2); }
.o-heures-decimales input:focus-visible, .o-heures-decimales textarea:focus-visible, .o-heures-decimales select:focus-visible { outline: 3px solid var(--marque); outline-offset: 0; }
.o-heures-decimales input[aria-invalid="true"] { border-color: var(--erreur-texte); outline: 1px solid var(--erreur-texte); }
.o-heures-decimales-resultat {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 4px 22px; padding: 14px 16px;
  border-radius: var(--rayon); background: var(--surface-2); color: var(--texte); font-variant-numeric: tabular-nums; text-align: center;
}
.o-heures-decimales-resultat strong { font-size: 1.7rem; line-height: 1.25; overflow-wrap: anywhere; }
.o-heures-decimales-resultat strong:empty { display: none; }
.o-heures-decimales-resultat span { font: 600 1rem var(--mono); color: var(--texte-2); }
.o-heures-decimales-resultat span:empty { display: none; }
.o-heures-decimales-resultat:has(strong:empty):has(span:empty) { display: none; }
.o-heures-decimales .o-heures-decimales-erreur { margin: 0; color: var(--erreur-texte); font-size: .95rem; }
.o-heures-decimales-erreur:empty { display: none; }
.o-heures-decimales-min { display: flex; flex-direction: column; gap: 4px; margin: 0; font-size: .88rem; color: var(--texte-2); }
.o-heures-decimales-min output { display: flex; align-items: center; min-height: 42px; font: 600 1.05rem var(--mono); color: var(--texte); }
.o-heures-decimales textarea { min-height: 140px; font: 1rem var(--mono); }
.o-heures-decimales-defile { overflow-x: auto; min-width: 0; }
.o-heures-decimales-table { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; }
.o-heures-decimales-table th, .o-heures-decimales-table td { padding: 5px 10px; border-bottom: 1px solid var(--bord); text-align: right; }
.o-heures-decimales-table th:first-child, .o-heures-decimales-table td:first-child { text-align: left; }
.o-heures-decimales-table thead th { font-size: .82rem; font-weight: 600; color: var(--texte-2); }
.o-heures-decimales-table td { font-family: var(--mono); }
.o-heures-decimales-table tfoot th, .o-heures-decimales-table tfoot td { font-weight: 700; border-bottom: 0; border-top: 2px solid var(--bord); }
.o-heures-decimales-refus td { color: var(--erreur-texte); }
.o-heures-decimales-table tr.actif td { background: var(--surface-2); color: var(--marque-fort); font-weight: 700; }
.o-heures-decimales-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.o-heures-decimales-montant { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 14px; margin: 0; padding: 10px 14px; border-radius: var(--rayon-petit); background: var(--surface-2); }
.o-heures-decimales-montant > span { color: var(--texte-2); font-size: .92rem; }
.o-heures-decimales-montant output { color: var(--texte); text-align: right; font-variant-numeric: tabular-nums; }
.o-heures-decimales-montant small { font: 500 .85rem var(--mono); color: var(--texte-2); }
.o-heures-decimales-montant strong { font: 700 1.2rem var(--mono); }
.o-heures-decimales-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px 18px; }
.o-heures-decimales-grille td, .o-heures-decimales-grille th { padding: 3px 8px; }
.o-heures-decimales .o-heures-decimales-avis { display: block; }
@media (max-width: 560px) {
  .o-heures-decimales-conv { grid-template-columns: minmax(0, 1fr); }
  .o-heures-decimales-fleche { display: none; }
  .o-heures-decimales-resultat strong { font-size: 1.4rem; }
}
