/* Page « Santé du service » (carte #61) : servie par la vigie
   elle-même (serveur.py). Contrastes au moins 4,5:1 ; l'état se lit
   aussi en mot. L'infobulle de chaque signal s'ouvre au-dessus de la
   ligne, au survol de la cellule et au focus de la pastille (cible de
   24 px) : vers le haut, elle reste dans la section, dont le défilement
   horizontal couperait sinon le bas du tableau. */
body { margin: 0 auto; max-width: 80rem; padding: 1rem; font-family: system-ui, sans-serif;
       line-height: 1.5; color: #1a1a1a; background: #ffffff; }
h1 { margin-top: 0.25rem; }
.general { padding: 1rem; border: 2px solid #1a7f37; border-radius: 0.5rem; }
.general.etat-alerte { border-color: #b3261e; }
section { margin-block: 2rem; overflow-x: auto; }
table { border-collapse: collapse; width: 100%; }
caption { text-align: left; font-weight: 600; padding-block: 0.5rem; }
th, td { text-align: left; vertical-align: top; padding: 0.5rem; border-bottom: 1px solid #c4c4c4; }
tr.etat-alerte td:nth-child(2) { color: #b3261e; font-weight: 700; }
tr.etat-normal td:nth-child(2) { color: #1a7f37; }
a { color: #0b57d0; }
a:focus-visible { outline: 3px solid #0b57d0; outline-offset: 2px; }
.cache { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%);
         white-space: nowrap; }
th[scope="row"] { position: relative; }
.info { display: inline-block; width: 1.5rem; height: 1.5rem; margin-left: 0.25rem;
        border: 2px solid #0b57d0; border-radius: 50%; box-sizing: border-box;
        color: #0b57d0; font: italic 700 0.875rem/1.25rem Georgia, serif; text-align: center;
        cursor: help; }
.info:focus-visible { outline: 3px solid #0b57d0; outline-offset: 2px; }
.bulle { display: none; position: absolute; z-index: 1; bottom: 100%; left: 0;
         width: max-content; max-width: min(20rem, 80vw); padding: 0.5rem 0.75rem;
         border-radius: 0.375rem; background: #1a1a1a; color: #ffffff;
         font-weight: 400; line-height: 1.4; }
th[scope="row"]:hover > .bulle, .info:focus + .bulle { display: block; }
