:root{
  --cyan:#00B3E4; --ink9:#1A202C; --ink7:#2D3748; --ink6:#4A5568; --ink4:#718096;
  --rule:#CBD5E0; --paper:#FFFFFF;
  --ok:#13612E; --info:#1159AF; --err:#B82105; --warn:#F5A524; --orange:#F7630C;
  --w1:100; --w2:200; --w3:300; --w4:400;
  --content:1250px; --hair:0.8px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink7);
  font-family:Roboto,sans-serif;font-size:15px;font-weight:var(--w3);line-height:24px}
a{color:var(--cyan);text-decoration:none}
a:hover{opacity:.75}
:focus-visible{outline:1px solid var(--cyan);outline-offset:2px}
h1{color:var(--cyan);font-size:35px;font-weight:var(--w1);line-height:1.1;margin:26px 0 10px;letter-spacing:normal}
h2{color:var(--ink9);font-size:22px;font-weight:var(--w2);margin:44px 0 12px}
.note{color:var(--ink6);max-width:70ch}
.muted{color:var(--ink4)}

/* entete centree, comme le site */
header{padding:26px 0 0;text-align:center}
header .lz svg{display:block;margin:0 auto 6px}
header .marque{color:var(--cyan);font-weight:var(--w1);font-size:21px;line-height:1.2}
header .sous{color:var(--ink4);font-size:13px;font-weight:var(--w3)}
nav.top{display:flex;justify-content:center;flex-wrap:wrap;gap:26px;margin:18px 0 0;
  padding:12px 16px;border-bottom:var(--hair) solid var(--rule)}
nav.top a{color:var(--ink9);font-weight:var(--w3)}
nav.top a.on{color:var(--cyan)}
nav.top a:hover{color:var(--cyan);opacity:1}
.session{margin-top:8px;font-size:12px;color:var(--ink4)}
.session a{margin-left:10px}

main{max-width:var(--content);margin:0 auto;padding:8px 24px 90px}
.fade{animation:fade .6s ease-out both}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fade{animation:none}}

/* chiffre heros et rangee de chiffres */
.heros{font-weight:var(--w1);color:var(--cyan);font-size:76px;line-height:1;margin:18px 0 2px}
.heros-l{color:var(--ink6);margin:0 0 8px}
.chiffres{display:flex;flex-wrap:wrap;gap:0;border-top:var(--hair) solid var(--rule);
  border-bottom:var(--hair) solid var(--rule);margin:26px 0 6px}
.chiffres>div{padding:16px 30px 16px 0;margin-right:30px}
.chiffres .v{font-size:30px;font-weight:var(--w1);color:var(--ink9)}
.chiffres .l{color:var(--ink4);font-size:13px}

/* graphiques */
.graphe{margin:26px 0 8px}
.graphe .titre{color:var(--ink9);font-weight:var(--w2);font-size:18px;margin-bottom:8px}
.graphe canvas{max-height:280px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.g3{display:grid;grid-template-columns:2fr 1fr;gap:48px}
@media (max-width:900px){.g2,.g3{grid-template-columns:1fr}.heros{font-size:52px}h1{font-size:28px}}

/* tables */
table{width:100%;border-collapse:collapse;margin-top:8px}
th{font-weight:var(--w3);color:var(--ink9);text-align:left;font-size:14px;
  border-bottom:var(--hair) solid var(--rule);padding:8px 12px 8px 0}
td{border-bottom:var(--hair) solid var(--rule);padding:8px 12px 8px 0;vertical-align:top;color:var(--ink7)}
td a{color:var(--cyan)}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
.tfoot td{border-bottom:0;border-top:var(--hair) solid var(--ink9);font-weight:var(--w4)}

/* losange d'etat */
.d{display:inline-block;width:8px;height:8px;transform:rotate(45deg);margin-right:6px}
.d-actif{background:var(--ok)}
.d-echeance{background:var(--err)}
.d-expire{background:var(--ink4)}
.d-annule{border:var(--hair) solid var(--rule)}
.d-sans_date{border:var(--hair) solid var(--warn)}
.tag{font-size:13px;color:var(--ink4)}
.tag.valide{color:var(--ok)}
.tag.attention{color:var(--err)}

/* barres de fenetres de droits */
.fenetre{position:relative;height:6px;background:#F1F5F9;min-width:120px}
.fenetre>i{position:absolute;inset:0 auto 0 0;display:block}

/* formulaires et boutons */
form.filtres{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin:18px 0 4px}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink6)}
input,select{font:inherit;font-size:16px;color:var(--ink6);padding:6.4px 8px;
  border:var(--hair) solid var(--rule);border-radius:0;background:var(--paper);min-width:130px}
button,.btn{font:inherit;font-size:15px;font-weight:var(--w3);padding:6px 15px;cursor:pointer;
  background:var(--paper);color:var(--cyan);border:var(--hair) solid var(--cyan);border-radius:1px;
  transition:background .18s,color .18s}
button:hover,.btn:hover{background:var(--cyan);color:#fff;opacity:1}
.exports{margin-left:auto;display:flex;gap:12px;align-items:center}
.bascule{font-size:13px;margin:2px 0 0}

/* connexion */
.porte{min-height:100vh;display:grid;place-items:center;background:var(--paper)}
.porte form{width:300px;display:flex;flex-direction:column;gap:14px;text-align:center}
.porte h1{font-size:28px;margin:6px 0 2px}
.erreur{color:var(--err);font-size:13px}

footer{max-width:var(--content);margin:0 auto;padding:30px 24px;color:#777;font-size:12px;
  border-top:var(--hair) solid var(--rule);text-align:center}

/* carte du monde */
.carte{margin:6px 0 4px}
.carte svg{width:100%;height:auto;display:block}
.carte svg path{fill:#E2E8F0;stroke:#fff;stroke-width:.5;transition:fill .5s}
.legende{display:flex;gap:22px;margin:6px 0 2px;font-size:13px;color:var(--ink6)}
.legende i{display:inline-block;width:10px;height:10px;transform:rotate(45deg);margin-right:7px}

/* onglets */
.onglets{display:flex;gap:22px;border-bottom:.8px solid var(--rule);margin:22px 0 4px;flex-wrap:wrap}
.onglets button{border:0;background:none;color:var(--ink6);padding:8px 2px;font-weight:var(--w3);
  border-bottom:2px solid transparent;border-radius:0}
.onglets button:hover{background:none;color:var(--cyan)}
.onglets button.on{color:var(--cyan);border-bottom-color:var(--cyan)}
.volet{display:none}
.volet.on{display:block;animation:fade .35s ease-out}

/* aide au survol */
[data-aide]{position:relative;cursor:help;border-bottom:1px dotted var(--rule)}
[data-aide]:hover::after{content:attr(data-aide);position:absolute;left:0;top:calc(100% + 6px);
  z-index:40;background:var(--ink9);color:#fff;font-size:12px;font-weight:300;line-height:18px;
  padding:8px 11px;width:max-content;max-width:320px;white-space:normal;border-radius:1px}
th[data-aide]{cursor:help}

/* recherche dans une table */
.filtre-table{margin:10px 0 0;min-width:240px}

/* comment lire un graphique */
.lire{color:var(--ink4);font-size:12.5px;line-height:19px;margin:6px 0 0;max-width:72ch}
.lire .d{width:7px;height:7px;margin:0 4px 0 8px}

/* sous navigation de section */
.sousnav{display:flex;gap:20px;margin:0 0 14px;border-bottom:.8px solid var(--rule);padding-bottom:0}
.sousnav a{color:var(--ink6);padding:6px 2px;border-bottom:2px solid transparent}
.sousnav a:hover{color:var(--cyan)}
.sousnav a.on{color:var(--cyan);border-bottom-color:var(--cyan)}

/* aujourd'hui */
.salut{font-weight:100;font-size:34px;line-height:44px;color:var(--ink9);margin:6px 0 2px}
.jour{color:var(--ink4);font-size:14px;margin-bottom:24px}
.marche-badge{border:.8px solid var(--rule);padding:14px 18px;display:inline-flex;gap:14px;align-items:baseline;margin:0 0 26px}
.marche-badge .j{color:var(--cyan);font-weight:100;font-size:30px}
.tache{display:flex;gap:16px;align-items:baseline;padding:16px 4px;border-bottom:.8px solid var(--rule);color:inherit;text-decoration:none;transition:background .18s}
.tache:hover{background:#FAFDFF}
.tache .urg{width:9px;height:9px;transform:rotate(45deg);flex:none;position:relative;top:-1px}
.tache .urg.haute{background:#B82105}
.tache .urg.normale{border:1.2px solid var(--cyan)}
.tache .tit{font-weight:200;font-size:18px;color:var(--ink9);min-width:280px}
.tache .det{color:var(--ink6);font-size:13.5px}
.calme{color:var(--ink4);font-weight:200;font-size:20px;padding:30px 0}
.pouls{display:flex;gap:34px;margin-top:30px;border-top:.8px solid var(--rule);padding-top:18px}
.pouls a{color:var(--ink6);font-size:13.5px}
.pouls b{display:block;font-weight:200;font-size:22px;color:var(--ink9)}

/* grille editable du suivi */
.grille-edit .cellule{border:0;border-bottom:1px dashed transparent;background:transparent;
  padding:4px 2px;width:100%;min-width:80px;font:inherit;color:inherit;border-radius:0}
.grille-edit .cellule:hover{border-bottom-color:var(--rule)}
.grille-edit .cellule:focus{outline:none;border-bottom:1.4px solid var(--cyan);background:#FAFDFF}
.grille-edit td.n .cellule{text-align:right}
.grille-edit .cellule.ok{box-shadow:inset -3px 0 0 var(--cyan)}
.grille-edit .cellule.erreur{box-shadow:inset -3px 0 0 #B82105}

.pied{color:#A0AEC0;font-size:11px;text-align:center;padding:22px 0 14px}
.avec-menu{display:flex;gap:30px;align-items:flex-start}
.menu-cote{position:sticky;top:18px;min-width:168px;border:.8px solid var(--rule);padding:14px 16px;display:flex;flex-direction:column;gap:9px}
.menu-cote a{font-size:13px;color:inherit;text-decoration:none;border-bottom:none}
.menu-cote a:hover{color:var(--cyan)}
.contenu-cote{flex:1;min-width:0}
@media (max-width:900px){.avec-menu{display:block}.menu-cote{position:static;flex-direction:row;flex-wrap:wrap;margin:0 0 14px}}
html{scroll-behavior:smooth}
