:root{--canvas:#0f131c;--carte:#232c3f;--champ:#2c3548;--haut:#39435a;--bordure:#6a7690;--texte:#eaeef6;--attenue:#9aa6bd;--placeholder:#8592a9;--puits:#070a11;--marque:#025cf3;--marque-appui:#0a4fd6;--marque-clair:#3e7cff;--ok:#38d9a9;--alerte:#ffd43b;--danger:#ff8787;--filet:inset 0 1px 0 #ffffff0f;--assise:inset 0 1px 0 #ffffff14, 0 12px 32px -12px #000000a6;--sur-bas:env(safe-area-inset-bottom,0px);--sur-haut:env(safe-area-inset-top,0px);--sortie:cubic-bezier(.16, 1, .3, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;accent-color:var(--marque)}*,:before,:after{box-sizing:border-box}html,body{background:var(--canvas);height:100%;color:var(--texte);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font:400 16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}#tickets{min-height:100%}::selection{color:#fff;background:#3e7cff73}input,textarea{caret-color:var(--marque-clair)}:focus-visible{outline:2px solid var(--marque-clair);outline-offset:2px}button{font:inherit;color:inherit}.ecran{min-height:100dvh;padding:calc(var(--sur-haut) + 8px) 16px 0;flex-direction:column;display:flex}.entete{align-items:center;gap:8px;min-height:56px;display:flex}.entete h1{letter-spacing:-.01em;flex:1;margin:0;font-size:18px;font-weight:700}.entete .compte{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--attenue);font-size:14px;overflow:hidden}.entete h1{flex:none}.entete .compte{text-align:right;flex:1}.bouton-icone{min-width:48px;height:48px;color:var(--attenue);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;padding:0 12px;transition:background-color .15s,color .15s;display:inline-grid}.bouton-icone:hover,.bouton-icone:active{background:var(--carte);color:var(--texte)}.bouton-icone.confirmer{color:var(--danger);background:#ff87871f;font-size:14px;font-weight:600}.liste{flex-direction:column;flex:1;gap:8px;padding-bottom:16px;display:flex}.liste h2{color:var(--attenue);margin:8px 0 4px;font-size:14px;font-weight:600}.lignes{background:var(--carte);box-shadow:var(--filet);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.ligne{grid-template-columns:1fr auto;align-items:center;gap:4px 12px;min-height:64px;padding:10px 16px;display:grid}.ligne+.ligne{border-top:1px solid #ffffff0f}.ligne .qui{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.ligne .quand{color:var(--attenue);text-overflow:ellipsis;white-space:nowrap;grid-column:1;font-size:14px;overflow:hidden}.ligne .somme{font-variant-numeric:tabular-nums;grid-area:1/2;justify-self:end;font-weight:600}.ligne .etat{white-space:nowrap;grid-column:2;justify-self:end;align-items:center;gap:6px;font-size:14px;display:inline-flex}.etat:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.etat.cours{color:var(--marque-clair)}.etat.cours:before{animation:1.6s ease-in-out infinite pouls}.etat.ok{color:var(--ok)}.etat.alerte{color:var(--alerte)}.etat.neutre{color:var(--attenue)}.ligne.locale .quand{color:var(--alerte)}.ligne .reessayer{border:1px solid var(--bordure);background:var(--champ);cursor:pointer;border-radius:10px;grid-area:1/2/span 2;min-height:48px;padding:0 16px;font-weight:600}.ligne .reessayer:active{background:var(--haut)}.ligne .reessayer:disabled{opacity:.6;cursor:progress}.vide{background:var(--carte);box-shadow:var(--filet);color:var(--attenue);text-align:center;border-radius:12px;margin:0;padding:24px 16px}.pied{padding:12px 16px calc(16px + var(--sur-bas));background:linear-gradient(to bottom, #0f131c00, var(--canvas) 24px);margin:0 -16px;position:sticky;bottom:0}.scanner{background:var(--marque);color:#fff;letter-spacing:-.01em;width:100%;height:clamp(168px,34dvh,280px);box-shadow:var(--assise);cursor:pointer;transition:transform .16s var(--sortie), background-color .16s ease;touch-action:manipulation;border:0;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:20px;font-weight:700;display:flex}.scanner:active{background:var(--marque-appui);transform:scale(.98)}.scanner:disabled{cursor:progress;background:var(--marque-appui)}.scanner svg{stroke-width:1.75px;width:48px;height:48px}.compteur{color:var(--attenue);font-variant-numeric:tabular-nums;font-size:14px}.pages{grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 16px;padding:0;list-style:none;display:grid}.pages>li{min-width:0}.ajouter{width:100%}.page{aspect-ratio:3/4;background:var(--puits);box-shadow:var(--filet);border-radius:10px;position:relative;overflow:hidden}.page img{object-fit:cover;width:100%;height:100%;display:block}.page .retirer{cursor:pointer;background:0 0;border:0;place-items:center;width:48px;height:48px;display:grid;position:absolute;top:0;right:0}.page .retirer span{width:28px;height:28px;color:var(--texte);background:#070a11c7;border-radius:50%;place-items:center;display:grid}.page .numero{text-align:center;background:#070a11c7;border-radius:6px;min-width:24px;padding:0 6px;font-size:12px;font-weight:600;position:absolute;bottom:6px;left:6px}.ajouter{aspect-ratio:3/4;border:1.5px dashed var(--bordure);color:var(--texte);cursor:pointer;background:0 0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.ajouter:active{background:var(--carte)}.champ{flex-direction:column;gap:6px;display:flex}.champ label{font-size:14px;font-weight:600}.champ .aide{color:var(--attenue);font-variant-numeric:tabular-nums;align-self:flex-end;font-size:12px}.champ input,.champ textarea{border:1px solid var(--bordure);background:var(--champ);width:100%;min-height:48px;color:var(--texte);font:inherit;border-radius:10px;padding:12px 14px;font-size:16px}.champ textarea{resize:none;min-height:88px}.champ input::placeholder,.champ textarea::placeholder{color:var(--placeholder)}.champ input:focus,.champ textarea:focus{border-color:var(--marque-clair);outline:none;box-shadow:0 0 0 3px #3e7cff40}.principal{background:var(--marque);color:#fff;width:100%;min-height:56px;box-shadow:var(--assise);cursor:pointer;transition:transform .16s var(--sortie), background-color .16s ease;touch-action:manipulation;border:0;border-radius:14px;justify-content:center;align-items:center;gap:10px;font-size:18px;font-weight:700;display:inline-flex}.principal:active{background:var(--marque-appui);transform:scale(.98)}.principal:disabled{cursor:progress;background:var(--marque-appui);opacity:.85}.erreur{color:var(--danger);margin:0;font-size:14px}.connexion{padding-bottom:calc(24px + var(--sur-bas));justify-content:center}.connexion form{flex-direction:column;gap:16px;width:100%;max-width:400px;margin:0 auto;display:flex}.marque{align-items:center;gap:12px;margin-bottom:8px;display:flex}.marque img{border-radius:12px;width:48px;height:48px}.marque h1{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:700}.annonce{left:16px;right:16px;top:calc(var(--sur-haut) + 12px);z-index:10;background:var(--haut);min-height:52px;box-shadow:var(--assise);animation:annonce 2.4s var(--sortie) forwards;border-radius:14px;align-items:center;gap:10px;padding:0 16px;font-weight:600;display:flex;position:fixed}.annonce svg{color:var(--ok);flex:none}.attente{min-height:100dvh;color:var(--attenue);place-items:center;display:grid}.tourne{animation:.9s linear infinite tourne}@keyframes pouls{50%{opacity:.35}}@keyframes tourne{to{transform:rotate(360deg)}}@keyframes annonce{0%{opacity:0;transform:translateY(-16px)}5%,88%{opacity:1;transform:none}to{opacity:0;transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.annonce{animation:none}}.masque{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
