/* Tableau mensuel */
.tbl { font-size:.82rem; border-collapse:collapse; width:100%; }
.tbl th { background:#003189; color:#fff; padding:7px 10px; font-weight:500; border:1px solid #002070; text-align:center; white-space:nowrap; }
.tbl th.left { text-align:left; }
.tbl td { padding:4px 8px; border:1px solid #dee2e6; vertical-align:middle; }
.tbl td.lbl { font-weight:600; background:#f0f4ff; color:#003189; white-space:nowrap; }
.tbl td.num { text-align:right; font-family:monospace; }
.tbl td.ctr { text-align:center; }
.tbl td.trav { text-align:center; font-weight:700; color:#198754; }
.tbl tr:hover td { background:#f8f9ff; }
.tbl tr:hover td.lbl { background:#e8eeff; }
.tbl tfoot td { font-weight:700; background:#e0e4f0; border:1px solid #b0b8d8; color:#003189; }
.tbl tfoot td.num { text-align:right; }
.inp-s { width:55px; font-size:.8rem; padding:2px 5px; text-align:center; border:1px solid #ccc; border-radius:4px; }
.inp-m { width:100px; font-size:.8rem; padding:2px 6px; text-align:right; border:1px solid #ccc; border-radius:4px; }
.inp-s:focus,.inp-m:focus { outline:none; border-color:#003189; box-shadow:0 0 0 2px rgba(0,49,137,.12); }
/* Zones résultat */
.zone { border-radius:10px; padding:1.1rem 1.3rem; margin-bottom:.75rem; }
.zone-blue { background:#f0f4ff; border:1px solid #c8d4f5; }
.zone-green { background:#f0fdf4; border:1px solid #a3cfbb; }
.zone-grey { background:#f8f9fa; border:1px solid #dee2e6; }
.zone-title { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#003189; margin-bottom:.6rem; display:flex; align-items:center; gap:6px; }
.res-row { display:flex; justify-content:space-between; align-items:baseline; font-size:.83rem; padding:3px 0; border-bottom:1px solid #e8eaf5; }
.res-row:last-child { border-bottom:none; }
.res-row .l { color:#6c757d; }
.res-row .v { font-weight:600; font-family:monospace; }
.res-total { display:flex; justify-content:space-between; font-weight:700; font-size:1rem; border-top:2px solid #003189; padding-top:5px; margin-top:4px; }
/* Comparaison */
.cmp { border-radius:10px; padding:1.1rem 1.3rem; height:100%; }
.cmp.win { border:2px solid #198754; background:#f0fdf4; }
.cmp.lose { border:1px solid #dee2e6; background:#f8f9fa; opacity:.82; }
.cmp-num { font-size:2rem; font-weight:700; line-height:1.1; }
.eco { background:#d1e7dd; border:1px solid #a3cfbb; border-radius:8px; padding:.75rem 1rem; }
/* Upload zone */
.drop { border:2px dashed #adb5bd; border-radius:8px; padding:.9rem 1rem; text-align:center; cursor:pointer; background:#fafbff; font-size:.8rem; transition:all .15s; }
.drop:hover { border-color:#003189; background:#f0f4ff; }
/* Sections */
.section-lbl { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#6c757d; padding-left:7px; border-left:3px solid #ED2939; margin-bottom:.5rem; }
.step-n { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:#003189; color:#fff; font-size:.72rem; font-weight:700; flex-shrink:0; }
/* TR tooltip */
.tr-note { font-size:.72rem; color:#6c757d; line-height:1.3; }
