:root{--marine-900: #0B1B33;--marine-800: #12294F;--marine-600: #1E3A66;--marine-100: #E7ECF4;--vert-700: #3E7A28;--vert-600: #5FA83D;--vert-100: #E9F5E2;--statut-ok: #2E9E4F;--statut-ok-fond: #E4F6EA;--statut-attention: #DE8A1E;--statut-attention-fond: #FBEEDD;--statut-alerte: #D64545;--statut-alerte-fond: #FBE7E7;--blanc: #FFFFFF;--fond: #F4F6F9;--bordure: #DDE3EC;--texte: #1C2733;--texte-att: #5B6675;--police: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--taille-titre: 1.75rem;--taille-section: 1.25rem;--taille-corps: 1rem;--taille-petite: .875rem;--espace-1: .5rem;--espace-2: .75rem;--espace-3: 1rem;--espace-4: 1.5rem;--espace-5: 2rem;--rayon: 14px;--rayon-petit: 8px;--cible-tactile: 48px;--ombre: 0 2px 10px rgba(11, 27, 51, .08)}*{box-sizing:border-box}html,body,#root{height:100%;overflow-x:hidden}body{margin:0;font-family:var(--police);background:var(--fond);color:var(--texte);font-size:var(--taille-corps);line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select{font-family:inherit;font-size:inherit}:focus-visible{outline:3px solid var(--vert-600);outline-offset:2px}.ecran{max-width:480px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;background:var(--blanc)}.ecran-contenu{flex:1;padding:var(--espace-4) var(--espace-3) var(--espace-5)}.entete{background:var(--marine-800);color:var(--blanc);padding:var(--espace-3);display:flex;align-items:center;gap:var(--espace-2);position:sticky;top:0;z-index:10}.entete h1{font-size:var(--taille-section);margin:0;font-weight:600}.entete-sous-titre{font-size:var(--taille-petite);color:var(--marine-100);margin:2px 0 0}.entete-retour{background:none;border:none;color:var(--blanc);width:var(--cible-tactile);height:var(--cible-tactile);display:flex;align-items:center;justify-content:center;margin-left:calc(var(--espace-2) * -1);border-radius:50%;cursor:pointer;font-size:1.4rem}.entete-retour:hover{background:#ffffff1f}.entete-selecteur-ecole{display:block;width:100%;background:var(--marine-100);color:var(--marine-800);border:none;border-radius:0;padding:6px var(--espace-3);font-size:var(--taille-petite);font-weight:600}.bouton{display:inline-flex;align-items:center;justify-content:center;gap:var(--espace-1);min-height:var(--cible-tactile);padding:0 var(--espace-4);border-radius:var(--rayon-petit);border:none;font-size:1.0625rem;font-weight:600;cursor:pointer;width:100%;transition:transform .05s ease,opacity .15s ease}.bouton:active{transform:scale(.98)}.bouton:disabled{opacity:.5;cursor:not-allowed}.bouton-principal{background:var(--marine-800);color:var(--blanc)}.bouton-principal:hover:not(:disabled){background:var(--marine-600)}.bouton-accent{background:var(--vert-600);color:var(--blanc)}.bouton-accent:hover:not(:disabled){background:var(--vert-700)}.bouton-discret{background:var(--marine-100);color:var(--marine-800)}.bouton-discret:hover:not(:disabled){background:#d9e1ee}.bouton-texte{background:none;color:var(--marine-800);text-decoration:underline;padding:var(--espace-1);min-height:auto;width:auto}.bouton-action{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:999px;border:none;font-size:var(--taille-petite);font-weight:600;cursor:pointer;min-height:auto;width:auto;white-space:nowrap}.bouton-action-modifier{background:var(--marine-100);color:var(--marine-800)}.bouton-action-modifier:hover{background:#d9e1ee}.bouton-action-supprimer{background:#fde8e8;color:var(--statut-alerte)}.bouton-action-supprimer:hover{background:#fbd5d5}.bouton-rond{width:64px;height:64px;border-radius:50%;border:none;font-size:1.6rem;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--blanc)}.bouton-rond-confirmer{background:var(--statut-ok)}.bouton-rond-infirmer{background:var(--statut-alerte)}.champ{margin-bottom:var(--espace-3)}.champ label{display:block;font-size:var(--taille-petite);font-weight:600;color:var(--texte-att);margin-bottom:var(--espace-1)}.champ input,.champ select{width:100%;min-height:var(--cible-tactile);padding:0 var(--espace-3);border:1.5px solid var(--bordure);border-radius:var(--rayon-petit);background:var(--blanc);color:var(--texte)}.champ input:focus,.champ select:focus{border-color:var(--marine-600)}.champ-erreur{color:var(--statut-alerte);font-size:var(--taille-petite);margin-top:4px}.carte{background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--rayon);padding:var(--espace-3);margin-bottom:var(--espace-2)}.carte-ligne{display:flex;align-items:center;justify-content:space-between;gap:var(--espace-2)}.carte-titre{font-weight:600;margin:0 0 2px}.carte-detail{font-size:var(--taille-petite);color:var(--texte-att);margin:0}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:var(--taille-petite);font-weight:700;white-space:nowrap}.badge:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.badge-ok{background:var(--statut-ok-fond);color:var(--statut-ok)}.badge-attention{background:var(--statut-attention-fond);color:var(--statut-attention)}.badge-alerte{background:var(--statut-alerte-fond);color:var(--statut-alerte)}.badge-neutre{background:var(--marine-100);color:var(--marine-800)}.pile{display:flex;flex-direction:column;gap:var(--espace-2)}.ligne{display:flex;align-items:center;gap:var(--espace-2);min-width:0}.ligne>*{min-width:0}.ligne-entre{display:flex;align-items:center;justify-content:space-between}.texte-att{color:var(--texte-att)}.texte-petit{font-size:var(--taille-petite)}.texte-centre{text-align:center}.pleine-largeur{width:100%}.chargement{display:flex;align-items:center;justify-content:center;padding:var(--espace-5);color:var(--texte-att)}.vide{text-align:center;padding:var(--espace-5) var(--espace-3);color:var(--texte-att)}.pinpad-points{display:flex;justify-content:center;gap:var(--espace-2);margin:var(--espace-4) 0}.pinpad-point{width:18px;height:18px;border-radius:50%;border:2px solid var(--bordure);background:transparent;transition:background .15s ease,border-color .15s ease}.pinpad-point-rempli{background:var(--marine-800);border-color:var(--marine-800)}.pinpad-point-erreur{background:var(--statut-alerte);border-color:var(--statut-alerte)}.pinpad-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--espace-2);max-width:320px;margin:0 auto;width:100%}.pinpad-touche{aspect-ratio:1;border-radius:50%;border:none;background:var(--marine-100);color:var(--marine-800);font-size:1.5rem;font-weight:600;cursor:pointer}.pinpad-touche:active{background:var(--vert-100)}.pinpad-touche-oublie{font-size:.68rem;font-weight:600;line-height:1.15;padding:0 4px}.nav-bas{position:sticky;bottom:0;display:flex;overflow-x:auto;scrollbar-width:none;background:var(--blanc);border-top:1px solid var(--bordure);box-shadow:0 -2px 10px #0b1b330f;padding-bottom:env(safe-area-inset-bottom,0);z-index:20}.nav-bas::-webkit-scrollbar{display:none}.nav-bas-onglet{flex:1 0 auto;min-width:76px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px 8px;text-decoration:none;color:var(--texte-att);font-size:.75rem;font-weight:600;white-space:nowrap;background:none;border:none;font-family:inherit;cursor:pointer;min-height:auto;width:auto}.nav-bas-icone{font-size:1.25rem;line-height:1}.nav-bas-onglet-actif{color:var(--marine-800)}.nav-bas-onglet-actif .nav-bas-icone{transform:translateY(-1px)}.grille-cartes{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--espace-3)}.carte-carree{aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--espace-2);padding:var(--espace-3);min-width:0;background:var(--blanc);border:1.5px solid var(--bordure);border-radius:var(--rayon-grand, 16px);text-decoration:none;color:var(--texte);cursor:pointer;transition:transform .1s ease,box-shadow .15s ease}.carte-carree:active{transform:scale(.97)}.carte-carree:hover{box-shadow:0 4px 14px #0b1b331a;border-color:var(--marine-600)}.carte-carree-icone{font-size:2.2rem;line-height:1}.carte-carree-titre{font-weight:700;font-size:.95rem;margin:0;overflow-wrap:break-word;word-break:break-word;max-width:100%}.carte-carree-detail{font-size:.78rem;color:var(--texte-att);margin:0;overflow-wrap:break-word;word-break:break-word;max-width:100%}.ecran-avec-nav-bas{padding-bottom:0}
