@font-face{font-family:Montserrat;font-weight:400;font-style:normal;font-display:swap;src:url(/polices/Montserrat-400-normal.woff2) format("woff2")}@font-face{font-family:Montserrat;font-weight:500;font-style:normal;font-display:swap;src:url(/polices/Montserrat-500-normal.woff2) format("woff2")}@font-face{font-family:Montserrat;font-weight:600;font-style:normal;font-display:swap;src:url(/polices/Montserrat-600-normal.woff2) format("woff2")}@font-face{font-family:Montserrat;font-weight:700;font-style:normal;font-display:swap;src:url(/polices/Montserrat-700-normal.woff2) format("woff2")}@font-face{font-family:Montserrat;font-weight:800;font-style:normal;font-display:swap;src:url(/polices/Montserrat-800-normal.woff2) format("woff2")}:root{--marine: #253066;--marine-fonce: #1a2350;--marine-moyen: #4e5884;--marine-clair: #9ca3c8;--orange: #ef7216;--orange-clair: #f4914a;--orange-pale: #fce3cf;--ciel: #e3f0f6;--ciel-fonce: #c9dce7;--blanc: #ffffff;--succes: #177a45;--danger: #c62828;--ombre-panneau: 0 10px 30px -14px rgba(26, 35, 80, .35);font-family:Montserrat,system-ui,Segoe UI,Roboto,sans-serif;color:var(--marine);background:var(--ciel);-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input{font-family:inherit}:focus-visible{outline:3px solid var(--marine);outline-offset:3px}.entete :focus-visible,.onglets :focus-visible,.resultat:focus-visible,.qr :focus-visible{outline-color:var(--blanc)}.ecran{max-width:480px;margin:0 auto;padding:0 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.ecran--centre{min-height:100vh;padding-top:16px;justify-content:center;align-items:stretch;text-align:center}.entete{margin:0 -16px;padding:16px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;background:var(--marine);color:var(--blanc);border-radius:0 0 32px 32px}.entete__point{margin:8px 0 0;font-size:1.15rem;font-weight:700}.entete__site,.entete__info{margin:0;font-size:.8rem;color:var(--marine-clair)}.entete__agent{margin:0;font-size:.9rem;font-weight:600;align-self:center}.entete__etat{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}.logo{display:inline-flex;align-items:center;gap:10px}.logo__symbole{display:block;height:36px;width:auto}.logo__nom{font-size:14px;line-height:1;font-weight:400;white-space:nowrap}.logo__nom b{font-weight:700}.logo--grand{flex-direction:column;align-self:center;gap:12px}.logo--grand .logo__symbole{height:88px}.logo--grand .logo__nom{font-size:21px}.logo__signature{display:block;margin-top:4px;font-size:8px;line-height:1;font-weight:600;white-space:nowrap}.accroche{margin:0;font-weight:500}.pastille{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:9999px;font-weight:700;font-size:.9rem;color:var(--blanc);white-space:nowrap}.pastille:before{content:"";width:8px;height:8px;border-radius:9999px;background:var(--blanc)}.pastille--ok{background:var(--succes)}.pastille--hors{background:var(--danger)}.pastille--hors:before{background:transparent;box-shadow:inset 0 0 0 2px var(--blanc)}.carte{background:var(--blanc);border-radius:28px;padding:20px;text-align:left;box-shadow:var(--ombre-panneau)}h1{margin:0;font-size:26px;line-height:30px;font-weight:800;text-transform:uppercase}.titre-section{margin:0 0 10px;font-size:16px;line-height:22px;font-weight:700;text-transform:uppercase}.discret{margin:4px 0 12px;color:var(--marine-moyen)}.info{overflow-wrap:anywhere;margin:12px 0 0;padding:12px;background:var(--ciel);border-radius:12px;font-size:.95rem}.erreur{margin:0;padding:12px;border-radius:12px;background:#fde8e8;color:var(--danger);font-weight:700}.alerte{margin:0;padding:12px 16px;border-radius:12px;background:var(--danger);color:var(--blanc);font-weight:700}.alerte p{margin:0 0 10px}.alerte .bouton{width:100%}.oui{color:var(--succes)}.non{color:var(--danger)}.formulaire{display:flex;flex-direction:column;gap:14px}.formulaire label{display:flex;flex-direction:column;gap:6px;font-weight:600}.formulaire input{font-size:1.1rem;padding:14px;border:2px solid var(--marine-moyen);border-radius:12px;color:var(--marine)}.bouton{min-height:56px;padding:14px 24px;border-radius:9999px;border:0;font-size:1.05rem;font-weight:700;cursor:pointer}.bouton:disabled{background:var(--ciel-fonce);color:var(--marine-moyen);cursor:not-allowed}.bouton--principal{background:var(--orange);color:var(--marine-fonce)}.bouton--principal:hover:not(:disabled){background:var(--orange-clair)}.bouton--marine{background:var(--marine);color:var(--blanc)}.bouton--marine:hover{background:var(--marine-fonce)}.bouton--secondaire{background:var(--blanc);color:var(--marine);box-shadow:inset 0 0 0 2px var(--marine)}.bouton--choix{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:var(--ciel);color:var(--marine);text-align:left;border-radius:24px}.bouton--choix span{font-size:.9rem;font-weight:500;color:var(--marine-moyen)}.liste-boutons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.lien{background:none;border:0;padding:12px 4px;color:var(--marine);font-size:1rem;font-weight:600;text-decoration:underline;cursor:pointer}.pied{display:flex;justify-content:space-between;flex-wrap:wrap}.onglets{display:grid;grid-template-columns:1fr 1fr;background:var(--marine);border-radius:9999px;padding:4px}.onglet{min-height:48px;border:0;border-radius:9999px;background:transparent;color:var(--blanc);font-size:.95rem;font-weight:700;cursor:pointer}.onglet--actif{background:var(--blanc);color:var(--marine)}.zone-scan{background:var(--blanc);border-radius:28px;padding:22px 20px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;box-shadow:var(--ombre-panneau)}.zone-scan__titre{margin:0;font-size:1.2rem;line-height:1.25;font-weight:800;text-transform:uppercase}.zone-scan__etat{margin:0;color:var(--marine-moyen)}.cible{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;background:var(--ciel);color:var(--marine)}.cible--actif{animation:pulsation 1.6s ease-in-out infinite;background:var(--orange-pale)}@keyframes pulsation{50%{box-shadow:0 0 0 14px #ef721640}}.actions{width:100%;display:grid;gap:10px}.presence{text-align:center}.presence__cours{margin:0;font-size:1.2rem;font-weight:800}.presence__compteur{margin:8px 0;font-size:1.1rem}.presence__compteur strong{display:block;font-size:3rem;font-weight:800;font-variant-numeric:tabular-nums}.simulateur,.historique{list-style:none;margin:0;padding:0}.simulateur li+li{margin-top:8px}.simulateur__carte{width:100%;min-height:56px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 16px;border:0;border-radius:12px;background:var(--ciel);font-size:1rem;font-weight:700;color:var(--marine);text-align:left;cursor:pointer}.simulateur__attendu{font-size:.8rem;font-weight:500;color:var(--marine-moyen)}.simulateur__copier{min-height:44px;padding:4px;border:0;background:none;color:var(--marine);font-size:.9rem;font-weight:600;text-decoration:underline;cursor:pointer}.historique li{padding:8px 0;border-bottom:1px solid var(--ciel-fonce);font-weight:600}.historique__heure{color:var(--marine-moyen);font-variant-numeric:tabular-nums;font-weight:500}.resultat{position:fixed;inset:0;z-index:20;border:0;padding:32px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--blanc);text-align:center;font:inherit;cursor:pointer}.resultat--ok{background:var(--succes)}.resultat--refus{background:var(--danger)}.resultat__titre{font-size:2.4rem;font-weight:800;line-height:1.05;text-transform:uppercase}.resultat__motif{font-size:1.4rem;font-weight:800;background:#0000002e;padding:8px 16px;border-radius:12px}.resultat__identite{display:flex;flex-direction:column;align-items:center;gap:10px}.resultat__photo{width:120px;height:150px;border-radius:14px;object-fit:cover;border:4px solid var(--blanc)}.resultat__photo--initiales{display:grid;place-items:center;background:var(--blanc);color:var(--marine);font-size:2.6rem;font-weight:800}.resultat__nom{font-size:1.4rem;font-weight:700;line-height:1.2}.resultat__detail{font-size:1.1rem;font-weight:500}.resultat__presence{font-size:1.2rem;font-weight:800;background:var(--blanc);color:var(--succes);padding:8px 16px;border-radius:9999px}.resultat__pied{margin-top:8px;font-size:.9rem}.qr{position:fixed;inset:0;z-index:15;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:20px}.qr__video{width:100%;max-width:480px;border-radius:16px}.qr__viseur{position:absolute;width:220px;height:220px;border:4px solid var(--orange);border-radius:18px;pointer-events:none}.qr__aide,.qr__erreur{color:var(--blanc);font-size:1.1rem;text-align:center}
