:root{--fond:#f4f6fa;--carte:#fff;--texte:#14202e;--discret:#556270;--trait:#dce2ea;--primaire:#1b5fa8;--primaire-pale:#e6eef8;--alerte-texte:#8a5a00;--danger:#a32a16;--danger-fond:#fce8e4;--bon:#1f7a4f}*{box-sizing:border-box}html,body{margin:0}body{background:var(--fond);color:var(--texte);font-family:Times New Roman,Times,serif;font-size:17px;line-height:1.45}h1,h2{margin:0}h1{font-size:28px}h2{font-size:19px;margin-bottom:12px}p{margin:0 0 10px}.discret{color:var(--discret);font-size:15px}.page{max-width:1100px;margin:0 auto;padding:24px 16px 48px;display:flex;flex-direction:column;gap:20px}.entete{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-start}.utilisateur{display:flex;flex-direction:column;align-items:flex-end;font-size:14px;color:var(--discret)}.lien{background:none;border:0;color:var(--primaire);text-decoration:underline;cursor:pointer;font:inherit;font-size:14px;min-height:44px}.centre{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.carte{background:var(--carte);border:1px solid var(--trait);border-radius:14px;padding:20px}.carte-login{width:100%;max-width:380px;display:flex;flex-direction:column;gap:12px}label{display:flex;flex-direction:column;gap:4px;font-size:15px}input{font:inherit;padding:10px 12px;border:1px solid var(--trait);border-radius:10px;min-height:44px}.bouton{background:var(--primaire);color:#fff;border:0;border-radius:10px;padding:10px 16px;font:inherit;font-weight:700;cursor:pointer;min-height:44px}.bouton:disabled{opacity:.6}.alerte-erreur{background:var(--danger-fond);color:var(--danger);padding:10px 12px;border-radius:10px}.grille-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.kpi{background:var(--carte);border:1px solid var(--trait);border-radius:14px;padding:16px 20px}.kpi-label{font-size:14px;color:var(--discret)}.kpi-valeur{font-size:34px;font-weight:700}.kpi-alerte{color:var(--alerte-texte)}.onglets{display:flex;flex-wrap:wrap;gap:8px}.onglet{font:inherit;background:#fff;border:1.5px solid var(--trait);color:var(--texte);border-radius:999px;padding:8px 16px;cursor:pointer;min-height:44px}.onglet.actif{background:var(--primaire);border-color:var(--primaire);color:#fff}.statuts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.bon{color:var(--bon)}.alerte{color:var(--danger)}.barres{display:flex;flex-direction:column;gap:9px;font-size:15px}.barre-ligne{display:flex;align-items:center;gap:10px}.barre-nom{flex:0 0 100px}.barre-piste{flex:1;min-width:0}.barre-remplie{height:14px;border-radius:4px;background:var(--primaire)}.barre-valeur{flex:0 0 48px;text-align:right;font-weight:700}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.logo-login{display:block;margin:0 auto 4px;max-width:100%;height:auto}.titre-bloc{display:flex;gap:16px;align-items:flex-start;flex:1 1 520px;min-width:0}.titre-bloc h1{line-height:1.15;margin-bottom:4px}.entete .utilisateur{flex:0 0 auto;text-align:right}.entete .utilisateur .lien{padding:0;min-height:32px}.logo-entete{border-radius:14px;flex:none;width:80px;height:80px;object-fit:contain;background:#fff;border:1px solid var(--trait);padding:4px}.barre-titre{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.barre-titre h2{margin:0}.carte-bj{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(6,78px);gap:6px;max-width:520px;margin:0 auto}.dep{border-radius:10px;padding:8px;display:flex;flex-direction:column;justify-content:center;font-size:14px;line-height:1.2;border:1px solid var(--trait)}.dep strong{font-size:15px}.dep-vide{background:repeating-linear-gradient(45deg,#f1f3f6,#f1f3f6 6px,#e8ebf0 6px,#e8ebf0 12px);color:var(--discret)}.barre-nom-large{flex:0 0 min(280px,42%)}.parcours{display:flex;flex-direction:column;gap:14px}.etape-tete{display:flex;justify-content:space-between;gap:12px;margin-bottom:4px}@media (max-width: 520px){.carte-bj{grid-template-rows:repeat(6,70px)}.dep{font-size:12px;padding:6px}.dep strong{font-size:13px}}
