:root{--nuit: #022052;--jaune: #fbaf03;--encre: #0b1b33;--ardoise: #5a6b85;--brume: #e2e8f2;--ciel: #f4f7fb;--blanc: #ffffff;--vert: #1e8e5a;--rouge: #c0392b;--colonne: 34rem;--rayon: 14px;--barre: 4.5rem}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ciel);color:var(--encre);font-family:Archivo,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.chiffre{font-variant-numeric:tabular-nums}.coquille{max-width:var(--colonne);margin:0 auto;min-height:100%;background:var(--ciel);padding-bottom:calc(var(--barre) + env(safe-area-inset-bottom,0px) + 1rem)}.entete{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1.25rem;background:var(--nuit);color:var(--blanc)}.entete__marque{display:flex;align-items:center;gap:.6rem;font-weight:800;letter-spacing:-.01em}.entete__entreprise{font-size:.85rem;font-weight:500;color:#b9c6dc;text-align:right;line-height:1.2}.page{padding:1.25rem}.page__titre{margin:0 0 .25rem;font-size:1.6rem;font-weight:800;letter-spacing:-.02em;line-height:1.15}.page__sous-titre{margin:0 0 1.5rem;color:var(--ardoise)}.carte{background:var(--blanc);border:1px solid var(--brume);border-radius:var(--rayon);padding:1rem 1.1rem}.carte+.carte{margin-top:.85rem}.carte--action{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.carte--action:hover{border-color:var(--nuit)}.carte--action:focus-visible{outline:3px solid var(--jaune);outline-offset:2px}.ligne{display:flex;flex-direction:column;gap:5px;padding-top:3px}.ligne__trait{width:3px;height:11px;border-radius:2px;background:var(--brume)}.ligne__trait--fait{background:var(--jaune)}.ligne__trait--echec{background:var(--rouge)}.ligne__trait--vif{background:var(--jaune);animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.ligne__trait--vif{animation:none}}.etat{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--ciel);color:var(--nuit);border:1px solid var(--brume)}.etat--livre{background:#e8f5ee;color:var(--vert);border-color:#c3e4d2}.etat--echec{background:#fdecea;color:var(--rouge);border-color:#f5c9c4}.etat--route{background:#fff5e0;color:#8a6100;border-color:#f7dfa8}.devis{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;background:var(--nuit);color:var(--blanc);border-radius:var(--rayon);border-left:5px solid var(--jaune)}.devis__montant{font-size:1.75rem;font-weight:800;letter-spacing:-.02em}.devis__detail{font-size:.85rem;color:#b9c6dc}.barre{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--colonne);display:grid;grid-template-columns:repeat(3,1fr);background:var(--blanc);border-top:1px solid var(--brume);padding-bottom:env(safe-area-inset-bottom,0px);z-index:20}.barre__bouton{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;font:inherit;font-size:.82rem;font-weight:600;color:var(--ardoise);height:var(--barre);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;cursor:pointer;border-top:3px solid transparent}.barre__bouton--actif{color:var(--nuit);border-top-color:var(--jaune)}.barre__bouton:focus-visible{outline:3px solid var(--jaune);outline-offset:-3px}.vide{text-align:center;padding:3rem 1.5rem;color:var(--ardoise)}.vide__titre{font-weight:700;font-size:1.05rem;color:var(--encre);margin-bottom:.35rem}.connexion{min-height:100%;display:flex;flex-direction:column;justify-content:center;max-width:var(--colonne);margin:0 auto;padding:2rem 1.5rem;background:var(--nuit);color:var(--blanc)}.connexion__titre{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;margin:0 0 .4rem}.connexion__intro{color:#b9c6dc;margin:0 0 2rem}.connexion__carte{background:var(--blanc);border-radius:var(--rayon);padding:1.25rem}.connexion__pied{margin-top:1.5rem;font-size:.85rem;color:#8fa2be}.vitesse{display:flex;gap:6px;margin-bottom:1.25rem}.vitesse span{height:5px;border-radius:3px;background:var(--jaune)}.vitesse span:nth-child(1){width:14px;opacity:.35}.vitesse span:nth-child(2){width:26px;opacity:.6}.vitesse span:nth-child(3){width:44px}
