:root{--navy:#29437e;--bleu:#1880c0;--orange:#d9480f;--navy-clair:#3d5a99;--gris:#f4f6f9;--texte:#1f2937;--muet:#6b7280;--bord:#e5e7eb;--blanc:#fff;--urgent:#b42318;--normal:#d9480f;--planifie:#1880c0;--succes:#15803d;--titres:"Barlow Condensed", "Arial Narrow", sans-serif;--corps:"Barlow", -apple-system, BlinkMacSystemFont, sans-serif;--hex-navy:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='78.0' height='45.03' viewBox='0 0 78.0 45.03'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-opacity='0.07'%3E%3Cpath d='M-26.00 0.00 L-13.00 -22.52 L13.00 -22.52 L26.00 0.00 L13.00 22.52 L-13.00 22.52 Z'/%3E%3Cpath d='M52.00 0.00 L65.00 -22.52 L91.00 -22.52 L104.00 0.00 L91.00 22.52 L65.00 22.52 Z'/%3E%3Cpath d='M-26.00 45.03 L-13.00 22.51 L13.00 22.51 L26.00 45.03 L13.00 67.55 L-13.00 67.55 Z'/%3E%3Cpath d='M52.00 45.03 L65.00 22.51 L91.00 22.51 L104.00 45.03 L91.00 67.55 L65.00 67.55 Z'/%3E%3Cpath d='M13.00 22.52 L26.00 0.00 L52.00 0.00 L65.00 22.52 L52.00 45.04 L26.00 45.04 Z'/%3E%3Cpath d='M13.00 -22.52 L26.00 -45.04 L52.00 -45.04 L65.00 -22.52 L52.00 0.00 L26.00 0.00 Z'/%3E%3Cpath d='M13.00 67.55 L26.00 45.03 L52.00 45.03 L65.00 67.55 L52.00 90.07 L26.00 90.07 Z'/%3E%3C/g%3E%3C/svg%3E");--accent-barres:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 33 40'%3E%3Cg fill='%231880C0'%3E%3Cpath d='M14.6 0 L18.6 0 L4 40 L0 40 Z'/%3E%3Cpath d='M21.6 0 L25.6 0 L11 40 L7 40 Z'/%3E%3Cpath d='M28.6 0 L32.6 0 L18 40 L14 40 Z'/%3E%3C/g%3E%3C/svg%3E")}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--blanc);color:var(--texte);font-family:var(--corps);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}#root{min-height:100dvh}h1,h2,h3,h4{font-family:var(--titres);text-transform:uppercase;letter-spacing:.02em;color:var(--navy);font-weight:700;line-height:1.12}button{font-family:inherit}a{color:var(--bleu)}.refair-barres{align-items:center;gap:6px;display:flex}.refair-barres span{background:var(--navy);width:8px;height:28px;display:block;transform:skew(-20deg)}.refair-barres span:first-child{opacity:.35}.refair-barres span:nth-child(2){opacity:.65}.refair-barres.centre{justify-content:center}.refair-barres.pale span{background:var(--blanc)}.refair-barres.petit span{width:6px;height:20px}.refair-hex{background-color:var(--navy);background-image:linear-gradient(to bottom, #29437e 0%, #29437e00 13%, #29437e00 87%, #29437e 100%), linear-gradient(to right, #29437e 0%, #29437e00 22%, #29437e00 78%, #29437e 100%), var(--hex-navy);color:var(--blanc)}.app{background:var(--gris);flex-direction:column;min-height:100dvh;display:flex}.contenu{flex:1;width:100%;max-width:520px;margin:0 auto;padding:18px 16px 96px}.contenu.large{max-width:960px}.entete{padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));z-index:20;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.entete-marque{align-items:center;gap:10px;display:flex}.entete-marque .refair-barres span{background:var(--blanc)}.entete-marque strong{font-family:var(--titres);letter-spacing:.04em;text-transform:uppercase;font-size:22px;line-height:1;display:block}.entete-marque small{letter-spacing:.08em;text-transform:uppercase;opacity:.75;margin-top:2px;font-size:11px;display:block}.entete-employe{align-items:center;gap:10px;display:flex}.entete-nom{text-align:right;font-size:14px;font-weight:600;line-height:1.2}.entete-nom small{opacity:.75;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:400;display:block}.btn-sortie{background:var(--blanc);color:var(--navy);cursor:pointer;border:none;border-radius:4px;min-height:44px;padding:0 14px;font-size:14px;font-weight:700}.nav-bas{background:var(--blanc);border-top:1px solid var(--bord);padding-bottom:env(safe-area-inset-bottom);z-index:20;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-bas a{min-height:58px;color:var(--muet);font-family:var(--titres);letter-spacing:.06em;text-transform:uppercase;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 2px;font-size:13px;font-weight:600;text-decoration:none;display:flex;position:relative}.nav-bas a .ico{width:24px;height:24px;display:block}.nav-bas a .ico svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.nav-bas a.actif{color:var(--bleu)}.nav-bas a.actif:before{content:"";background:var(--bleu);width:28px;height:3px;margin-left:-14px;position:absolute;top:0;left:50%;transform:skew(-20deg)}.titre-page{margin:4px 0 16px;padding-left:28px;font-size:28px;position:relative}.titre-page:before{content:"";background-image:var(--accent-barres);background-repeat:no-repeat;background-size:contain;width:.84em;height:1em;position:absolute;top:.16em;left:0}.titre-section{letter-spacing:.04em;margin-bottom:12px;font-size:18px;font-weight:600}.sous-texte{color:var(--muet);font-size:14px}.carte{background:var(--blanc);border:1px solid var(--bord);border-radius:8px;margin-bottom:14px;padding:18px 16px;position:relative;overflow:hidden}.carte.accent:before{content:"";background:repeating-linear-gradient(115deg, var(--navy) 0 10px, var(--bleu) 10px 20px);width:100%;height:4px;position:absolute;top:0;left:0}.carte.accent{padding-top:22px}.btn{width:100%;min-height:52px;font-family:var(--corps);cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-size:16px;font-weight:700;text-decoration:none;transition:transform .15s,opacity .15s;display:flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(1px)}.btn-action{background:var(--orange);color:var(--blanc)}.btn-primaire,.btn-marine,.btn-succes{background:var(--navy);color:var(--blanc)}.btn-secondaire{background:var(--blanc);color:var(--navy);border-color:var(--navy)}.btn-fantome{color:var(--navy);border-color:var(--bord);background:0 0}.btn-danger{background:var(--blanc);color:var(--urgent);border-color:var(--urgent)}.btn-blanc{background:var(--blanc);color:var(--navy)}.btn-compact{width:auto;min-height:48px;padding:8px 14px;font-size:14px}.rangee-btn{gap:10px;display:flex}.rangee-btn .btn{flex:1}.champ{margin-bottom:14px}.etiquette{font-family:var(--titres);text-transform:uppercase;letter-spacing:.05em;color:var(--navy);margin-bottom:6px;font-size:14px;font-weight:600;display:block}input[type=text],input[type=number],input[type=email],input[type=date],input[type=time],input[type=month],input[type=datetime-local],input[type=password],select,textarea{width:100%;min-height:50px;font-size:16px;font-family:var(--corps);color:var(--texte);background:var(--blanc);border:1px solid #cbd2dc;border-radius:4px;padding:12px}textarea{resize:vertical;min-height:96px}input:focus,select:focus,textarea:focus{outline:2px solid var(--bleu);outline-offset:1px;border-color:var(--bleu)}.segmente{gap:8px;display:flex}.segmente button{background:var(--blanc);min-height:50px;color:var(--texte);font-family:var(--titres);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;border:1px solid #cbd2dc;border-radius:4px;flex:1;font-size:16px;font-weight:600}.segmente button.actif-urgent{border-color:var(--urgent);background:var(--urgent);color:var(--blanc)}.segmente button.actif-normal{border-color:var(--normal);background:var(--normal);color:var(--blanc)}.segmente button.actif-planifie{border-color:var(--planifie);background:var(--planifie);color:var(--blanc)}.segmente button.actif-neutre{border-color:var(--navy);background:var(--navy);color:var(--blanc)}.case{border:1px solid var(--bord);cursor:pointer;background:var(--blanc);border-radius:4px;align-items:center;gap:12px;min-height:52px;margin-bottom:8px;padding:10px 12px;display:flex}.case input[type=checkbox]{width:24px;height:24px;min-height:24px;accent-color:var(--bleu);flex-shrink:0}.case.cochee{border-color:var(--bleu);background:#eaf4fb}.case-libelle{color:var(--texte);flex:1;font-size:15px}.badge{font-family:var(--titres);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border-radius:3px;padding:3px 9px;font-size:13px;font-weight:700;display:inline-block}.badge-urgent{background:var(--urgent);color:var(--blanc)}.badge-normal{color:var(--normal);background:#fdece4}.badge-planifie{color:var(--planifie);background:#e4f1fa}.badge-en_attente{background:var(--gris);color:var(--muet)}.badge-approuve{color:var(--bleu);background:#e4f1fa}.badge-refuse{color:var(--urgent);background:#fbe9e7}.badge-complete,.badge-disponible{color:var(--succes);background:#e7f3ea}.badge-en_reparation{color:var(--normal);background:#fdece4}.badge-hors_service{color:var(--urgent);background:#fbe9e7}.badge-avertissement{color:var(--normal);background:#fdece4}.badge-depassement{background:var(--urgent);color:var(--blanc)}.bandeau{border-left:3px solid var(--bleu);background:var(--gris);color:var(--texte);border-radius:0 4px 4px 0;margin-bottom:14px;padding:14px 16px;font-size:14.5px;line-height:1.45}.bandeau-erreur{border-left-color:var(--urgent);background:#fbe9e7}.bandeau-succes{border-left-color:var(--succes);background:#e7f3ea}.bandeau-info{border-left-color:var(--bleu)}.bandeau-alerte{border-left-color:var(--orange);background:#fdece4}.ligne-liste{border-bottom:1px solid var(--bord);justify-content:space-between;align-items:center;gap:10px;padding:12px 0;display:flex}.ligne-liste:last-child{border-bottom:none}.refair-liste{padding:0;list-style:none}.refair-liste li{margin-bottom:6px;padding-left:22px;position:relative}.refair-liste li:before{content:"";background:var(--bleu);width:6px;height:13px;position:absolute;top:.45em;left:0;transform:skew(-20deg)}.vide{text-align:center;color:var(--muet);padding:28px 16px;font-size:14.5px}.carte-demande{padding-left:20px}.carte-demande:after{content:"";background:var(--muet);width:5px;position:absolute;top:0;bottom:0;left:0}.carte-demande.prio-urgent:after{background:var(--urgent)}.carte-demande.prio-normal:after{background:var(--normal)}.carte-demande.prio-planifie:after{background:var(--planifie)}.ecran-login{flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.login-logo{text-align:center;margin-bottom:26px}.login-logo .refair-barres{margin:0 auto 14px}.login-logo h1{color:var(--blanc);letter-spacing:.06em;font-size:40px}.login-logo p{font-family:var(--titres);text-transform:uppercase;letter-spacing:.14em;opacity:.8;margin-top:4px;font-size:14px;font-weight:600}.pin-points{justify-content:center;gap:14px;margin-bottom:26px;display:flex}.pin-point{border:2px solid #fff9;width:14px;height:22px;transform:skew(-20deg)}.pin-point.rempli{background:var(--blanc);border-color:var(--blanc)}.pinpad{grid-template-columns:repeat(3,82px);gap:12px;display:grid}.pinpad button{width:82px;height:70px;color:var(--blanc);font-family:var(--titres);cursor:pointer;background:#ffffff14;border:1px solid #ffffff59;border-radius:4px;font-size:30px;font-weight:600}.pinpad button:active{background:#ffffff40}.pinpad button.pin-action{font-family:var(--corps);opacity:.8;background:0 0;border:none;font-size:15px;font-weight:600}.login-erreur{color:#ffd1c7;text-align:center;min-height:22px;margin-top:20px;font-size:14.5px}.login-sous-titre{color:var(--blanc);font-family:var(--titres);text-transform:uppercase;letter-spacing:.08em;text-align:center;margin-bottom:18px;font-size:18px;font-weight:600}.login-lien{color:var(--blanc);opacity:.8;font-family:var(--corps);cursor:pointer;background:0 0;border:none;min-height:44px;margin-top:28px;font-size:15px;text-decoration:underline}.login-pied{font-family:var(--titres);color:var(--blanc);opacity:.85;letter-spacing:.02em;margin-top:36px;font-size:20px;font-style:italic;font-weight:700}.modal-fond{z-index:50;background:#1f293799;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--blanc);width:100%;max-width:520px;max-height:86dvh;padding:22px 16px calc(20px + env(safe-area-inset-bottom));border-radius:8px 8px 0 0;position:relative;overflow-y:auto}.modal:before{content:"";background:repeating-linear-gradient(115deg, var(--navy) 0 10px, var(--bleu) 10px 20px);width:100%;height:4px;position:absolute;top:0;left:0}.modal h3{margin-bottom:14px;font-size:22px}.chips{scrollbar-width:none;gap:8px;margin-bottom:10px;padding-bottom:8px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips button{background:var(--blanc);color:var(--navy);min-height:44px;font-family:var(--titres);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;cursor:pointer;border:1px solid #cbd2dc;border-radius:4px;padding:10px 14px;font-size:14px;font-weight:600}.chips button.actif{background:var(--navy);color:var(--blanc);border-color:var(--navy)}.chips a{text-decoration:none}.etapes{gap:6px;margin-bottom:16px;display:flex}.etape-point{background:var(--bord);flex:1;height:5px;transform:skew(-20deg)}.etape-point.faite{background:var(--bleu)}.quantite{align-items:center;gap:8px;display:flex}.quantite button{background:var(--blanc);width:44px;height:44px;color:var(--navy);cursor:pointer;border:1px solid #cbd2dc;border-radius:4px;font-size:20px}.quantite span{text-align:center;min-width:26px;color:var(--texte);font-weight:700}.chargement{color:var(--muet);justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.chargement.plein-ecran{min-height:100dvh}.tourniquet{gap:5px;display:flex}.tourniquet span{background:var(--navy);width:7px;height:24px;animation:1s ease-in-out infinite pulsation;display:block;transform:skew(-20deg)}.tourniquet span:nth-child(2){animation-delay:.15s}.tourniquet span:nth-child(3){animation-delay:.3s}@keyframes pulsation{0%,to{opacity:.25}50%{opacity:1}}.chiffre-gros{font-family:var(--titres);color:var(--navy);font-size:40px;font-weight:700;line-height:1}.grille-2{grid-template-columns:1fr;gap:14px;display:grid}@media (width>=768px){.grille-2{grid-template-columns:1fr 1fr}.contenu{padding-bottom:32px}.titre-page{font-size:34px}}.point-direct{background:var(--succes);vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:4px;animation:2s ease-out infinite battement;display:inline-block;box-shadow:0 0 #15803d80}@keyframes battement{0%{box-shadow:0 0 #15803d80}70%{box-shadow:0 0 0 8px #15803d00}to{box-shadow:0 0 #15803d00}}@media (prefers-reduced-motion:reduce){.point-direct{animation:none}}
