:root{--od-navy: #0e2a47;--od-navy-2: #123457;--od-teal: #1fb6c9;--od-teal-dark: #0e8fa3;--od-blue: #2a78d6;--od-blue-dark: #1c5cab;--od-violet: #5a6ee0;--od-violet-dark: #3a3aa7;--page: #eef1f5;--surface: #ffffff;--surface-2: #fafbfd;--ink: #0b1a2b;--ink-2: #52617a;--muted: #8a97a8;--line: #e4e9f0;--line-soft: #eef0f4;--good: #0ca30c;--good-ink: #067a06;--good-soft: #e4f5e4;--warn: #f0a417;--warn-ink: #9a6600;--warn-soft: #fdf1dd;--serious: #ec835a;--crit: #d03b3b;--crit-soft: #fbe9e9;--info: #2a78d6;--info-soft: #e7f0fb;--cat-montures: #c0392b;--cat-verres: #8e44ad;--cat-lentilles: #2f77d6;--cat-accessoires: #27ae60;--etape-devis: #8a97a8;--etape-vente: #2a78d6;--etape-encaisse: #1fb6c9;--etape-commande: #5a6ee0;--etape-montage: #f0a417;--etape-livraison: #0ca30c;--etape-sav: #d03b3b;--radius: 16px;--radius-md: 12px;--radius-sm: 9px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(11, 26, 43, .07);--shadow: 0 1px 2px rgba(11, 26, 43, .06), 0 8px 24px rgba(11, 26, 43, .06);--shadow-lg: 0 10px 30px rgba(11, 26, 43, .14);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 22px;--sp-6: 32px;--font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--fs-xs: 11px;--fs-sm: 12.5px;--fs-md: 13.5px;--fs-lg: 15px;--fs-xl: 19px;--fs-2xl: 26px;--rail-w: 76px;--topbar-h: 64px;--content-max: 1500px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--font);background:var(--page);color:var(--ink);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px;color:var(--ink)}h1,h2,h3,h4{margin:0;letter-spacing:-.2px}.tabular{font-variant-numeric:tabular-nums}.app{display:flex;min-height:100vh}.rail{width:var(--rail-w);flex:0 0 var(--rail-w);background:var(--od-navy);display:flex;flex-direction:column;align-items:center;padding:14px 0;gap:6px;position:sticky;top:0;height:100vh;z-index:35}.rail.teinte{background:linear-gradient(#06122461,#06122461),var(--moi-degrade, var(--od-navy))}.rail.teinte .item{color:#ffffffc7}.app.teinte{--page: color-mix(in srgb, var(--moi, #0f2a4a) 5%, #fff);background:var(--page)}.app.teinte .topbar{background:color-mix(in srgb,var(--moi, #0f2a4a) 14%,#fff);border-bottom-color:color-mix(in srgb,var(--moi, #0f2a4a) 26%,#fff)}.rail .logo{width:44px;height:44px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--od-teal),var(--od-teal-dark));display:grid;place-items:center;color:#fff;font-weight:800;font-size:18px;margin-bottom:10px;letter-spacing:-1px;border:0;cursor:pointer;position:relative;transition:.15s}.rail .logo:hover{filter:brightness(1.12)}.rail .logo .tip{position:absolute;left:58px;top:50%;transform:translateY(-50%);background:var(--ink);color:#fff;font-size:var(--fs-sm);font-weight:600;letter-spacing:0;padding:6px 10px;border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:.15s;z-index:40}.rail .logo:hover .tip{opacity:1;left:64px}.rail .item{width:52px;height:48px;border-radius:var(--radius-md);display:grid;place-items:center;color:#9fb4cf;cursor:pointer;position:relative;transition:.15s;border:0;background:transparent}.rail .item svg{width:22px;height:22px}.rail .item:hover{background:#ffffff14;color:#fff}.rail .item.active{background:#1fb6c92e;color:#fff}.rail .item.active:before{content:"";position:absolute;left:-12px;top:9px;width:4px;height:30px;border-radius:4px;background:var(--od-teal)}.rail .item .tip{position:absolute;left:64px;top:50%;transform:translateY(-50%);background:var(--ink);color:#fff;font-size:var(--fs-sm);font-weight:600;padding:6px 10px;border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:.15s;z-index:40}.rail .item:hover .tip{opacity:1;left:70px}.rail .spacer{flex:1}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{background:var(--surface);border-bottom:1px solid var(--line);padding:12px var(--sp-5);display:flex;align-items:center;gap:var(--sp-4);position:sticky;top:0;z-index:30}.brand{display:flex;flex-direction:column;line-height:1.05}.brand b{font-size:16px;letter-spacing:-.3px}.brand span{font-size:11.5px;color:var(--muted);font-weight:600}.content{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-5);max-width:var(--content-max);width:100%;margin:0 auto}.content.content-large{max-width:2200px}.bf{position:fixed;right:22px;bottom:22px;z-index:120}.bf-palette{position:absolute;right:0;bottom:66px;display:flex;flex-direction:column;align-items:flex-end;gap:9px;pointer-events:none}.bf.on .bf-palette{pointer-events:auto}.bf-a{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:11px;padding:11px 18px;color:#fff;font-size:13.5px;font-weight:600;font-family:inherit;white-space:nowrap;cursor:pointer;box-shadow:0 6px 18px #14224242}.bf .bf-a{opacity:0;visibility:hidden;transform:translateY(16px) scale(.92);transition:opacity .16s ease,transform .16s cubic-bezier(.34,1.4,.64,1),visibility 0s linear .16s}.bf.on .bf-a{opacity:1;visibility:visible;transform:translateY(0) scale(1);transition:opacity .16s ease,transform .16s cubic-bezier(.34,1.4,.64,1)}.bf.on .bf-a:disabled{opacity:.45;cursor:not-allowed}.bf-a:hover:not(:disabled){filter:brightness(1.07)}.bf-a .p{font-size:16px;font-weight:700;line-height:1}.bf-rond{width:56px;height:56px;border-radius:50%;border:0;background:var(--od-teal);color:#fff;cursor:pointer;display:grid;place-items:center;flex-shrink:0;box-shadow:0 8px 22px #1fb6c973;transition:transform .2s cubic-bezier(.34,1.4,.64,1),background .15s}.bf-rond:hover{background:var(--od-teal-dark)}.bf.on .bf-rond{transform:rotate(135deg);background:var(--od-navy);box-shadow:0 8px 22px #0e2a4766}@media(max-width:640px){.bf{right:14px;bottom:14px}.bf-rond{width:50px;height:50px}}.main.main-plein{height:100vh;display:flex;flex-direction:column;overflow:hidden}.main.main-plein>.content{flex:1;min-height:0}.content.content-plein{max-width:none;width:100%;margin:0;padding:10px 12px 12px;gap:10px;display:flex;flex-direction:column;overflow:hidden}.search{flex:1;max-width:520px;display:flex;align-items:center;gap:10px;background:var(--page);border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 14px;color:var(--ink-2)}.search svg{width:18px;height:18px;flex:0 0 18px;color:var(--muted)}.search input{border:0;background:transparent;outline:0;flex:1;font-size:14px}.search .kbd{font-size:var(--fs-xs);color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:2px 6px;background:#fff;font-weight:600}.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font-family:inherit;font-weight:700;font-size:var(--fs-md);border-radius:11px;padding:10px 16px;transition:.15s;white-space:nowrap}.btn svg{width:17px;height:17px}.btn:hover{background:var(--page)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--od-blue);border-color:var(--od-blue);color:#fff}.btn-primary:hover{background:var(--od-blue-dark);border-color:var(--od-blue-dark)}.btn-teal{background:var(--od-teal);border-color:var(--od-teal);color:#fff}.btn-teal:hover{background:var(--od-teal-dark);border-color:var(--od-teal-dark)}.btn-good{background:var(--good);border-color:var(--good);color:#fff}.btn-good:hover{filter:brightness(.94)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--page)}.btn-danger{color:var(--crit)}.btn-danger:hover{background:var(--crit-soft);border-color:#f6c9cb}.btn-lg{padding:13px 20px;font-size:var(--fs-lg);border-radius:var(--radius-md)}.btn-block{width:100%;justify-content:center}.iconbtn{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:var(--ink-2);cursor:pointer;position:relative;border:0;background:transparent}.iconbtn:hover{background:var(--page)}.iconbtn svg{width:20px;height:20px}.iconbtn .dot{position:absolute;top:7px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--crit);border:2px solid #fff}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.card-head{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line)}.card-head h3{font-size:14.5px}.card-head .grow{flex:1}.card-head .count{font-size:var(--fs-sm);font-weight:800;color:var(--ink-2);background:var(--page);border-radius:var(--radius-pill);padding:2px 10px}.card-head .link{font-size:var(--fs-sm);color:var(--od-blue);font-weight:700;cursor:pointer}.card-body{padding:18px}.sec-title{display:flex;align-items:center;gap:10px;margin:0 2px 2px}.sec-title h2{font-size:var(--fs-lg)}.sec-title .hint{font-size:var(--fs-sm);color:var(--muted);font-weight:500}.sec-title .line{flex:1;height:1px;background:var(--line)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:var(--radius-pill);background:var(--page);color:var(--ink-2)}.badge-blue{background:var(--info-soft);color:var(--od-blue)}.badge-good{background:var(--good-soft);color:var(--good-ink)}.badge-warn{background:var(--warn-soft);color:var(--warn-ink)}.badge-crit{background:var(--crit-soft);color:var(--crit)}.badge-teal{background:#e5faf8;color:var(--od-teal-dark)}.badge-violet{background:#efeaff;color:var(--od-violet-dark)}.chip{font-size:var(--fs-sm);font-weight:700;border:1px solid var(--line);background:#fff;color:var(--ink-2);border-radius:var(--radius-pill);padding:6px 13px;cursor:pointer;transition:.12s}.chip:hover{border-color:#cfdaea}.chip.on{background:var(--od-navy);color:#fff;border-color:var(--od-navy)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700;padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid var(--line-soft);font-size:var(--fs-md)}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--surface-2)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .clickable{cursor:pointer}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:var(--sp-3)}.field label{font-size:var(--fs-xs);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--od-blue);box-shadow:0 0 0 3px #2a78d61f}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.empty{text-align:center;padding:50px 20px;color:var(--muted)}.empty svg{width:44px;height:44px;opacity:.4;margin-bottom:10px}.empty b{display:block;color:var(--ink-2);margin-bottom:4px}.skeleton{background:linear-gradient(90deg,var(--line-soft) 25%,#f6f8fb 50%,var(--line-soft) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.toast-wrap{position:fixed;bottom:22px;left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{background:var(--ink);color:#fff;padding:11px 18px;border-radius:11px;font-size:var(--fs-md);font-weight:600;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:9px;animation:pop .2s}.toast.ok{background:#15803d}.toast.warn{background:#b45309}.toast.err{background:#b91c1c}@keyframes pop{0%{opacity:0;transform:translateY(8px)}}.banner{background:var(--warn-soft);border:1px solid #f5dda1;color:var(--warn-ink);border-radius:var(--radius);padding:12px 16px;font-size:var(--fs-sm);display:flex;gap:10px;align-items:flex-start}.banner svg{width:18px;height:18px;flex-shrink:0;margin-top:1px}@media(max-width:640px){.rail,.search .kbd{display:none}}.verrou-bandeau{position:fixed;right:18px;bottom:18px;z-index:50;display:inline-flex;align-items:center;gap:8px;background:var(--od-navy);color:#fff;border-radius:var(--radius-pill);padding:7px 8px 7px 14px;font-size:var(--fs-sm);font-weight:700;box-shadow:var(--shadow-lg)}.verrou-bandeau button{border:0;background:#ffffff29;color:#fff;font:inherit;font-weight:700;border-radius:var(--radius-pill);padding:4px 11px;cursor:pointer}.verrou-bandeau button:hover{background:#ffffff47}input[data-secret]{-webkit-text-security:disc;text-security:disc}.rail .item{position:relative}.rail .item .pastille-compteur{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#e5484d;color:#fff;font-size:10.5px;font-weight:800;display:grid;place-items:center;line-height:1}.field-seul{border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 12px;background:var(--surface)}.sig-pad{position:relative;border:1.5px dashed #b8c2d6;border-radius:12px;background:#fff}.sig-pad canvas{display:block;width:100%;touch-action:none;cursor:crosshair;border-radius:12px}.sig-pad-invite{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#9aa6bd;font-size:14px;pointer-events:none}.sig-pad-effacer{position:absolute;right:8px;bottom:8px;border:1px solid #d5dbe7;background:#fff;border-radius:8px;padding:4px 10px;font:inherit;font-size:12px;color:#4b5874;cursor:pointer}.sig-pad-effacer:disabled{opacity:.4;cursor:default}.esp{min-height:100vh;min-height:100dvh;background:var(--page);color:var(--ink);font-family:var(--font);display:flex;flex-direction:column;max-width:560px;margin:0 auto}.esp:not(.app){padding:var(--sp-4);justify-content:center}.esp.app{padding:0}.esp-entete{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:var(--sp-3);padding:calc(var(--sp-4) + env(safe-area-inset-top,0px)) var(--sp-4) var(--sp-5);border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow)}.esp-entete .qui{flex:1;min-width:0;display:flex;flex-direction:column;background:none;border:0;border-radius:0;padding:0;gap:0}.esp-entete .qui small{font-size:var(--fs-sm);opacity:.82}.esp-entete .qui b{font-size:var(--fs-2xl);line-height:1.1;letter-spacing:-.4px}.esp-entete .qui em{font-style:normal;font-size:var(--fs-sm);opacity:.82;margin-top:2px}.esp-verrou{flex:none;border:0;background:#ffffff2e;width:38px;height:38px;border-radius:var(--radius-pill);display:grid;place-items:center}.esp-verrou:active{background:#ffffff4d}.esp-pastille{flex:none;width:46px;height:46px;border-radius:var(--radius-pill);display:grid;place-items:center;font-weight:800;font-size:var(--fs-lg)}.esp-pastille.grand{width:72px;height:72px;font-size:26px;margin:0 auto var(--sp-3)}.esp-vue{flex:1;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);padding-bottom:calc(100px + var(--sp-5) + env(safe-area-inset-bottom,0px))}.esp-nav{position:fixed;z-index:10;left:0;right:0;bottom:calc(8px + env(safe-area-inset-bottom,0px));width:calc(100% - 16px);max-width:544px;margin:0 auto;display:flex;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:30px;padding:4px 2px 10px;box-shadow:0 8px 28px #0b1a2b24}.esp-nav-fleche{flex:none;width:30px;height:48px;border:0;background:none;color:var(--muted);display:grid;place-items:center}.esp-nav-fleche:disabled{opacity:.25}.esp-nav-fleche .rev{display:inline-flex;transform:rotate(180deg)}.esp-nav-piste{flex:1;min-width:0;display:flex;align-items:center;gap:2px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px 0}.esp-nav-piste::-webkit-scrollbar{display:none}.esp-nav-piste.d{-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}.esp-nav-piste.g{-webkit-mask-image:linear-gradient(to left,#000 85%,transparent);mask-image:linear-gradient(to left,#000 85%,transparent)}.esp-nav-piste.g.d{-webkit-mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent)}.esp-nav-piste button{flex:none;width:70px;min-height:58px;scroll-snap-align:center;border:0;background:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:999px;transition:width .2s ease,background .2s ease,color .2s ease}.esp-nav-piste button small{font-size:10.5px;font-weight:600;white-space:nowrap}.esp-nav-piste button.on{width:92px;min-height:66px;color:var(--moi, var(--od-blue));background:color-mix(in srgb,var(--moi, var(--od-blue)) 12%,var(--surface));box-shadow:0 4px 14px color-mix(in srgb,var(--moi, var(--od-blue)) 22%,transparent)}.esp-nav-piste button.on small{font-size:11.5px;font-weight:800}.esp-nav .ic{position:relative;line-height:0}.esp-nav-jauge{position:absolute;left:50%;bottom:5px;transform:translate(-50%);width:64px;height:3px;border-radius:3px;background:var(--line);overflow:hidden}.esp-nav-jauge i{position:absolute;top:0;bottom:0;border-radius:3px;background:var(--moi, var(--od-blue));transition:left .2s ease}.esp-nav .badge{position:absolute;top:-5px;right:-9px;min-width:17px;height:17px;padding:0 4px;border-radius:var(--radius-pill);background:var(--crit);color:#fff;font-size:10px;font-weight:800;font-style:normal;display:grid;place-items:center}.esp-carte{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--sp-3)}.esp-carte>header{display:flex;align-items:center;gap:var(--sp-2);color:var(--ink-2)}.esp-carte>header b{font-size:var(--fs-lg);color:var(--ink)}.esp-carte>header .grow{flex:1}.esp-carte>header small{color:var(--muted);font-size:var(--fs-sm);font-weight:700}.esp-boite{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5);box-shadow:var(--shadow);width:100%}.esp-logo{width:62px;height:62px;border-radius:var(--radius);display:grid;place-items:center;margin:0 auto var(--sp-3);background:linear-gradient(135deg,var(--od-blue),#5b8dff);color:#fff}.esp-titre{display:block;font-size:var(--fs-xl);text-align:center;margin-bottom:var(--sp-2)}.esp-aide{color:var(--ink-2);font-size:var(--fs-sm);line-height:1.55;margin:0 0 var(--sp-4)}.esp-rien{color:var(--muted);font-size:var(--fs-md);margin:0;line-height:1.5}.esp-fin{color:var(--muted);font-size:var(--fs-xs);line-height:1.5;margin:0}.esp-refus{text-align:center;color:var(--crit)}.esp-refus b{display:block;margin:var(--sp-3) 0 var(--sp-2);font-size:var(--fs-lg)}.esp-refus p{color:var(--ink-2);font-size:var(--fs-md);line-height:1.55;margin-bottom:var(--sp-4)}.esp-erreur{background:var(--crit-soft);color:var(--crit);border-radius:var(--radius-sm);padding:var(--sp-3);font-size:var(--fs-md);line-height:1.45;display:flex;flex-direction:column;gap:var(--sp-1)}.esp-erreur b{font-size:var(--fs-lg)}.esp-erreur span{color:var(--ink-2)}.esp-ok{display:flex;align-items:center;gap:var(--sp-2);background:var(--good-soft);color:var(--good-ink);border-radius:var(--radius-sm);padding:var(--sp-3);font-size:var(--fs-md);font-weight:600}.esp-note{background:var(--warn-soft);color:var(--warn-ink);border-radius:var(--radius-sm);padding:var(--sp-3);font-size:var(--fs-sm);line-height:1.55;margin-bottom:var(--sp-3)}.esp-note b{display:block;margin-bottom:var(--sp-1)}.esp-note p{margin:0}.esp-vide{color:var(--muted);font-size:var(--fs-md);text-align:center;padding:var(--sp-4)}.esp-vide.grand{display:flex;flex-direction:column;align-items:center;gap:7px;padding:var(--sp-6) var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.esp-vide .rond{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--good-soft);color:var(--good);margin-bottom:5px}.esp-vide b{font-size:var(--fs-lg);color:var(--ink-2);font-weight:600}.esp-vide small{font-size:var(--fs-sm);color:var(--muted);line-height:1.5;max-width:300px}.esp-gros{min-height:62px;border:0;border-radius:var(--radius-md);background:var(--moi, var(--od-blue));color:#fff;font-size:var(--fs-xl);font-weight:700;box-shadow:var(--shadow)}.esp-gros:active{transform:translateY(1px);filter:brightness(.94)}.esp-gros:disabled{opacity:.55}.esp-petit{min-height:46px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-2);font-size:var(--fs-md);font-weight:600}.esp-lien{display:block;margin:var(--sp-4) auto 0;border:0;background:none;padding:var(--sp-2);color:var(--muted);font-size:var(--fs-sm);text-decoration:underline}.esp-form{display:flex;flex-direction:column;gap:var(--sp-3)}.esp-form label{display:flex;flex-direction:column;gap:var(--sp-1)}.esp-form label>span{font-size:var(--fs-sm);color:var(--ink-2);font-weight:600}.esp-form input,.esp-code input{min-height:50px;padding:0 var(--sp-3);font-size:var(--fs-lg);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink)}.esp-form input:focus{outline:2px solid var(--od-blue);outline-offset:-1px}.esp-form .esp-gros{margin-top:var(--sp-2)}.esp-secret{position:relative;display:flex}.esp-secret input{flex:1;min-width:0;padding-right:56px}.esp-secret .oeil{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:46px;height:42px;border:0;background:none;border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--muted);cursor:pointer}.esp-secret .oeil:hover,.esp-secret .oeil.on{color:var(--od-blue)}.esp-discord{color:var(--crit);font-size:var(--fs-sm);margin-top:calc(-1 * var(--sp-1))}.esp-code{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.esp-code input{flex:1;font-size:var(--fs-xl);letter-spacing:6px;text-align:center}.esp-alerte{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);border-radius:var(--radius);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.esp-alerte .tt{display:flex;align-items:center;gap:var(--sp-2);color:var(--warn-ink)}.esp-alerte .tt .ic{width:34px;height:34px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--surface)}.esp-alerte .tt b{font-size:var(--fs-lg)}.esp-alerte p{margin:0;font-size:var(--fs-md);color:var(--ink-2);line-height:1.5}.esp-alerte .chiffres{display:flex;gap:var(--sp-2);flex-wrap:wrap}.esp-alerte .chiffres span{display:inline-flex;align-items:center;gap:5px;background:var(--surface);border-radius:var(--radius-pill);padding:6px 12px;font-size:var(--fs-sm);font-weight:600;color:var(--warn-ink)}.esp-alerte .choix{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.esp-alerte .choix button{min-height:46px;border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);background:var(--surface);color:var(--warn-ink);border-radius:var(--radius-sm);font-size:var(--fs-md);font-weight:600}.esp-alerte .choix button.annuler{grid-column:1 / -1;border-color:var(--line);color:var(--muted)}.esp-alerte .esp-lien{margin:0 auto;color:var(--warn-ink)}.esp-absent{flex-direction:row;align-items:center;gap:var(--sp-3);background:var(--info-soft);border-color:transparent;color:var(--od-blue-dark)}.esp-absent b{display:block;font-size:var(--fs-md)}.esp-absent small{color:var(--ink-2);font-size:var(--fs-sm)}.esp-pointage{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--sp-3)}.esp-pointage .jalons{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-1);background:var(--surface-2);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-2)}.esp-pointage .jl{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;min-width:0}.esp-pointage .jl .pt{width:9px;height:9px;border-radius:50%;background:var(--line);box-shadow:0 0 0 1px var(--line)}.esp-pointage .jl.ok .pt{background:var(--moi, var(--od-blue));box-shadow:0 0 0 1px var(--moi, var(--od-blue))}.esp-pointage .jl b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums;color:var(--muted)}.esp-pointage .jl.ok b{color:var(--ink)}.esp-pointage .jl small{font-size:10.5px;color:var(--muted);line-height:1.2}.esp-fini{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:56px;border-radius:var(--radius-md);background:var(--good-soft);color:var(--good-ink);font-size:var(--fs-lg);font-weight:700}.esp-lieu{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:var(--fs-sm);line-height:1.45;color:var(--ink-2);background:var(--surface-2);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3)}.esp-lieu .pastille{flex:none;margin-top:4px;width:8px;height:8px;border-radius:50%;background:var(--muted)}.esp-lieu.ok{background:var(--good-soft);color:var(--good-ink)}.esp-lieu.ok .pastille{background:var(--good)}.esp-prevu{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}.esp-compteur{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--ink-2)}.esp-compteur span{font-weight:700;color:var(--ink)}.esp-compteur em{font-style:normal;color:var(--warn-ink)}.esp-raccourcis{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.esp-raccourcis button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);text-align:left}.esp-raccourcis .ic{width:34px;height:34px;border-radius:var(--radius-sm);display:grid;place-items:center;margin-bottom:var(--sp-1)}.esp-raccourcis b{font-size:var(--fs-xl)}.esp-raccourcis small{font-size:var(--fs-sm);color:var(--muted)}.esp-obj{display:flex;flex-direction:column;gap:var(--sp-4)}.esp-obj .ob{display:flex;flex-direction:column;gap:var(--sp-2)}.esp-obj .hd{display:flex;align-items:baseline;gap:var(--sp-2)}.esp-obj .lb{flex:1;font-size:var(--fs-md);color:var(--ink-2)}.esp-obj .vl{font-size:var(--fs-xl);font-variant-numeric:tabular-nums}.esp-obj .jauge{height:8px;border-radius:var(--radius-pill);background:var(--line-soft);overflow:hidden}.esp-obj .jauge span{display:block;height:100%;border-radius:inherit;background:var(--moi, var(--od-blue));transition:width .35s ease}.esp-obj .pd{display:flex;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--ink-2)}.esp-obj .pd em{font-style:normal;color:var(--muted)}.esp-obj .dt{font-size:var(--fs-xs);color:var(--muted);line-height:1.4}.esp-points-carte{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.esp-points-carte>header .va{margin-left:auto;color:var(--muted)}.esp-points{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.esp-points>div{display:flex;flex-direction:column;gap:2px;border-radius:var(--radius-md);padding:var(--sp-3)}.esp-points span{font-size:var(--fs-sm);font-weight:700}.esp-points b{font-size:26px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.esp-points small{font-size:var(--fs-xs);opacity:.8}.esp-points .avenir{background:var(--surface-2);color:var(--ink-2)}.esp-points .avenir b{color:var(--ink)}.esp-points .acquis{background:linear-gradient(135deg,var(--od-violet),var(--od-violet-dark));color:#fff}.esp-retour{display:inline-flex;align-items:center;gap:6px;align-self:flex-start}.esp-mois{display:flex;align-items:center;gap:var(--sp-2)}.esp-mois span{font-size:var(--fs-sm);color:var(--muted);font-weight:700}.esp-mois select{flex:1;min-height:44px;font:inherit;font-size:var(--fs-md);padding:0 var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}.esp-pts{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}.esp-pts b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.esp-pts small{font-size:var(--fs-xs);font-weight:700}.esp-pts.acquis small{color:var(--good-ink)}.esp-pts.avenir b,.esp-pts.avenir small{color:var(--muted)}.esp-pts.perdu b{color:var(--crit);text-decoration:line-through}.esp-pts.perdu small{color:var(--crit)}.esp-ligne .tx>small.esp-attente{color:var(--warn-ink)}.esp-tache{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:62px;text-align:left;padding:var(--sp-3);border:1px solid var(--line);border-left:4px solid var(--c, var(--od-blue));border-radius:var(--radius-md);background:var(--surface)}.esp-tache .cc{flex:none;width:28px;height:28px;border-radius:var(--radius-sm);border:2px solid var(--line);display:grid;place-items:center;color:#fff}.esp-tache .tx{display:flex;flex-direction:column;min-width:0}.esp-tache .tx b{font-size:var(--fs-lg)}.esp-tache .tx small{color:var(--muted);font-size:var(--fs-sm)}.esp-tache.faite{background:var(--good-soft);border-color:var(--good)}.esp-tache.faite .cc{background:var(--good);border-color:var(--good)}.esp-tache.faite .tx b{text-decoration:line-through;color:var(--good-ink)}.esp-mois{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-3);box-shadow:var(--shadow-sm)}.esp-mois button{flex:none;width:40px;height:40px;border-radius:var(--radius-sm);border:0;background:var(--surface-2);color:var(--ink-2);display:grid;place-items:center}.esp-mois button:first-child{transform:scaleX(-1)}.esp-mois .tx{flex:1;text-align:center;display:flex;flex-direction:column}.esp-mois .tx b{font-size:var(--fs-lg);color:var(--moi, var(--od-blue))}.esp-mois .tx small{font-size:var(--fs-sm);color:var(--muted)}.esp-jours{display:flex;flex-direction:column;gap:var(--sp-2)}.esp-jours .jr{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.esp-jours .jr.repos{background:var(--surface-2)}.esp-jours .jr.passe{opacity:.62}.esp-jours .jr.auj{border-color:var(--moi, var(--od-blue));box-shadow:0 0 0 2px color-mix(in srgb,var(--moi, var(--od-blue)) 18%,transparent);opacity:1}.esp-jours .tete{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3);border:0;background:none;text-align:left}.esp-jours .date{flex:none;width:44px;height:44px;border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface-2);color:var(--ink-2)}.esp-jours .jr.auj .date{background:var(--moi, var(--od-blue));color:#fff}.esp-jours .date b{font-size:var(--fs-lg);line-height:1}.esp-jours .date small{font-size:9.5px;text-transform:uppercase;font-weight:700}.esp-jours .tete .tx{flex:1;min-width:0;display:flex;flex-direction:column}.esp-jours .tete .tx b{font-size:var(--fs-md)}.esp-jours .tete .tx small{font-size:var(--fs-sm);color:var(--ink-2);font-variant-numeric:tabular-nums}.esp-jours .jr.repos .tete .tx small{color:var(--muted)}.esp-jours .tc{flex:none;color:#fff;font-size:9.5px;font-weight:800;padding:3px 8px;border-radius:var(--radius-pill)}.esp-jours .po{flex:none;font-size:var(--fs-xs);color:var(--good-ink);font-weight:700}.esp-jours .fl{flex:none;color:var(--muted);line-height:0;transition:transform .2s}.esp-jours .jr.deplie .fl{transform:rotate(180deg)}.esp-jours .detail{border-top:1px solid var(--line-soft);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.esp-jours .st{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:800}.esp-jours .lst{display:flex;flex-direction:column;gap:5px}.esp-jours .te{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);color:var(--good-ink)}.esp-jours .te .pt{width:9px;height:9px;border-radius:50%;flex:none}.esp-jours .te b{flex:none;color:var(--ink);font-weight:600}.esp-jours .te .qui{flex:1;color:var(--muted);font-size:var(--fs-sm)}.esp-jours .te.faite b{text-decoration:line-through;color:var(--muted)}.esp-jours .avec{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.esp-jours .avec .p{width:32px;height:32px;border-radius:var(--radius-pill);display:grid;place-items:center;font-size:var(--fs-sm);font-weight:800}.esp-liste{display:flex;flex-direction:column}.esp-liste.espacee{gap:var(--sp-3)}.esp-liste>.esp-ligne+.esp-ligne{border-top:1px solid var(--line-soft)}.esp-ligne{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;width:100%;border:0;background:none;text-align:left}.esp-ligne .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.esp-ligne .tx>b{font-size:var(--fs-lg)}.esp-ligne .tx>small{font-size:var(--fs-sm);color:var(--muted)}.esp-ligne .mt{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.esp-ligne .geste{display:flex;flex-direction:column;margin-top:5px;border-left:3px solid var(--moi, var(--od-blue));padding-left:var(--sp-2)}.esp-ligne .geste b{font-size:var(--fs-md);color:var(--ink)}.esp-ligne .geste em{font-style:normal;font-size:var(--fs-sm);color:var(--ink-2);line-height:1.45}.esp-ligne.urgent .geste{border-left-color:var(--crit)}.esp-ligne.urgent .geste b{color:var(--crit)}.esp-ligne .etp{align-self:flex-start;margin-top:4px;background:var(--surface-2);color:var(--ink-2);border-radius:var(--radius-pill);padding:3px 10px;font-size:var(--fs-xs);font-weight:700}.esp-ligne .tel{flex:none;width:42px;height:42px;border-radius:var(--radius-pill);display:grid;place-items:center;background:var(--good-soft);color:var(--good-ink)}.esp-ligne.cochable .case{flex:none;width:26px;height:26px;border-radius:var(--radius-sm);border:2px solid var(--line);background:var(--surface)}.esp-ligne.cochable:active .case{background:var(--surface-2)}.esp-ligne .pastille{flex:none;border-radius:var(--radius-pill);padding:3px 9px;font-size:var(--fs-xs);font-weight:700}.esp-ligne .pastille.crit{background:var(--crit-soft);color:var(--crit)}.esp-ligne .pastille.att{background:var(--warn-soft);color:var(--warn-ink)}.esp-ligne .pastille.ok{background:var(--good-soft);color:var(--good-ink)}.esp-ligne .pastille.ko{background:var(--crit-soft);color:var(--crit)}.esp-carte.dossier{gap:var(--sp-2);padding:var(--sp-3) var(--sp-4)}.esp-carte.dossier .esp-ligne{padding:var(--sp-1) 0}.esp-carte.dossier .pied{display:flex;justify-content:space-between;gap:var(--sp-2);border-top:1px solid var(--line-soft);padding-top:var(--sp-2);font-size:var(--fs-xs);color:var(--muted)}.esp-carte.dossier .pied .ok{color:var(--good-ink);font-weight:600}.esp-recherche{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);padding:0 var(--sp-3);min-height:46px;color:var(--muted)}.esp-recherche input{flex:1;border:0;background:none;min-height:44px;font-size:var(--fs-lg);color:var(--ink);outline:none}.esp-recherche button{border:0;background:none;color:var(--muted);padding:6px}.esp-filtres{display:flex;gap:var(--sp-2);overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.esp-filtres::-webkit-scrollbar{display:none}.esp-filtres button{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:var(--radius-pill);padding:8px 14px;font-size:var(--fs-md);font-weight:600}.esp-filtres button span{background:var(--surface-2);color:var(--muted);border-radius:var(--radius-pill);padding:1px 7px;font-size:var(--fs-xs);font-weight:800}.esp-filtres button.on{background:var(--moi, var(--od-blue));border-color:transparent;color:#fff}.esp-filtres button.on span{background:#ffffff40;color:#fff}.esp-totaux{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.esp-totaux div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--sp-3);display:flex;flex-direction:column}.esp-totaux span{font-size:var(--fs-sm);color:var(--muted)}.esp-totaux b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.esp-rangs{display:flex;flex-direction:column}.esp-rangs .rg{display:flex;align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--line-soft);font-size:var(--fs-md)}.esp-rangs .rg:last-child{border-bottom:0}.esp-rangs .k{flex:none;width:46%;color:var(--muted);font-size:var(--fs-sm)}.esp-rangs .v{flex:1;text-align:right;font-weight:600}.esp-chiffres{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.esp-chiffres div{background:var(--surface-2);border-radius:var(--radius-md);padding:var(--sp-3);display:flex;flex-direction:column;align-items:center;text-align:center}.esp-chiffres b{font-size:var(--fs-xl);font-variant-numeric:tabular-nums}.esp-chiffres span{font-size:var(--fs-sm);color:var(--muted)}.esp-viseur{position:relative;width:100%;aspect-ratio:3 / 4;border-radius:var(--radius-md);overflow:hidden;background:#000;box-shadow:var(--shadow)}.esp-viseur video,.esp-viseur canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.esp-viseur video{object-fit:cover}.esp-viseur canvas{pointer-events:none}.esp-retirer{flex:none;width:34px;height:34px;border-radius:var(--radius-pill);border:0;background:var(--surface-2);color:var(--muted);display:grid;place-items:center}.esp-retirer:active{background:var(--crit-soft);color:var(--crit)}.esp-etapes{display:flex;flex-direction:column;gap:var(--sp-2)}.esp-etapes button{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:60px;padding:0 var(--sp-4);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--radius-md);font-size:var(--fs-lg);font-weight:700;text-align:left}.esp-etapes button:active{background:var(--surface-2);transform:translateY(1px)}.esp-etapes button:disabled{opacity:.5}.esp-etapes .combien{margin-left:auto;flex:none;background:var(--info-soft);color:var(--od-blue-dark);border-radius:var(--radius-pill);padding:3px 10px;font-size:var(--fs-xs);font-weight:800}.esp-bilan{background:var(--good-soft);color:var(--good-ink);border:1px solid color-mix(in srgb,var(--good) 35%,transparent);border-radius:var(--radius);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.esp-bilan.partiel{background:var(--warn-soft);color:var(--warn-ink);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.esp-bilan>b{font-size:var(--fs-lg)}.esp-bilan p{margin:0;font-size:var(--fs-sm);line-height:1.5}.esp-bilan p.ok{color:var(--ink-2);font-variant-numeric:tabular-nums}.esp-bilan p.ko{color:var(--crit)}.esp-bilan .esp-petit{margin-top:var(--sp-2)}.esp-bilan p.deja{color:var(--muted)}.esp-case{align-self:flex-start;display:inline-block;margin-top:4px;background:var(--info-soft);color:var(--od-blue-dark);border-radius:var(--radius-pill);padding:2px 9px;font-size:var(--fs-xs);font-weight:800;font-variant-numeric:tabular-nums}.esp-case.orange{background:var(--warn-soft);color:var(--warn-ink)}.esp-case.rouge{background:var(--crit-soft);color:var(--crit)}.esp-etapes button.avec-deja .combien{background:var(--surface-2);color:var(--ink-2)}.esp-recherche input{text-transform:uppercase;letter-spacing:.5px;font-weight:600}.esp-recherche button[type=submit]{flex:none;width:38px;height:38px;border-radius:var(--radius-pill);border:0;background:var(--moi, var(--od-blue));color:#fff;font-size:20px;font-weight:700;line-height:1}.esp-jours .ec{flex:none;border-radius:var(--radius-pill);padding:2px 8px;font-size:10.5px;font-weight:800;font-variant-numeric:tabular-nums}.esp-jours .ec.retard{background:var(--warn-soft);color:var(--warn-ink)}.esp-jours .ec.avance{background:var(--info-soft);color:var(--od-blue-dark)}.esp-jours .ec.pause{background:#f3e8ff;color:#6b21a8}.esp-consigne{display:flex;align-items:flex-start;gap:var(--sp-3);background:var(--info-soft);color:var(--od-blue-dark);border-radius:var(--radius-md);padding:var(--sp-4)}.esp-consigne .ic{flex:none;width:40px;height:40px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--surface)}.esp-consigne b{display:block;font-size:var(--fs-lg)}.esp-consigne small{display:block;margin-top:3px;font-size:var(--fs-sm);color:var(--ink-2);line-height:1.5}.esp-install{position:fixed;z-index:60;left:50%;transform:translate(-50%);bottom:calc(102px + env(safe-area-inset-bottom));width:min(528px,calc(100% - 2 * var(--sp-4)));display:flex;align-items:center;gap:var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg, 0 10px 30px rgba(14, 42, 71, .18));padding:var(--sp-3) var(--sp-4)}.esp-install .ic{width:44px;height:44px;border-radius:10px;flex:none}.esp-install .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.esp-install .tx small{color:var(--ink-2);line-height:1.4}.esp-install .act{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.esp-install .act .btn{min-height:40px}.esp-install .ios-partager{display:inline-block;font-weight:800;color:var(--od-blue, #2a78d6)}@media(max-width:380px){.esp-install{flex-wrap:wrap}.esp-install .act{flex-direction:row;width:100%;justify-content:flex-end}}.esp-scanner-btn{margin-top:var(--sp-2);min-height:48px;align-self:flex-start;display:inline-flex;gap:8px;align-items:center}.esp-scan{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0b1a2c;color:#fff;display:flex;flex-direction:column;gap:var(--sp-3);padding:calc(var(--sp-4) + env(safe-area-inset-top)) var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom))}.esp-scan header{display:flex;align-items:center;justify-content:space-between}.esp-scan-x{background:#ffffff1f;border:0;color:#fff;width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.esp-scan .cadre{position:relative;flex:1;min-height:0;border-radius:16px;overflow:hidden;background:#000}.esp-scan video{width:100%;height:100%;object-fit:cover;display:block}.esp-scan .viseur{position:absolute;left:50%;top:50%;width:62vmin;height:62vmin;max-width:320px;max-height:320px;transform:translate(-50%,-50%);border:3px solid rgba(255,255,255,.85);border-radius:18px;box-shadow:0 0 0 100vmax #00000059}.esp-scan .aide{color:#ffffffb3;text-align:center}.esp-courrier{border-color:var(--od-blue, #2a78d6);box-shadow:0 0 0 3px #2a78d61f}.esp-ligne-btn{width:100%;background:none;border:0;text-align:left;font:inherit;color:inherit;cursor:pointer}.esp-lettre{position:fixed;top:0;right:0;bottom:0;left:0;z-index:85;background:var(--page, #f4f7fc);display:flex;flex-direction:column;gap:var(--sp-3);padding:calc(var(--sp-3) + env(safe-area-inset-top)) var(--sp-3) calc(var(--sp-3) + env(safe-area-inset-bottom))}.esp-lettre header{display:flex;align-items:center;gap:var(--sp-2)}.esp-lettre header b{flex:1;font-size:15px}.esp-lettre header .esp-scan-x{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.esp-lettre iframe{flex:1;min-height:0;width:100%;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.esp-lettre-ok{min-height:52px;font-size:15px;display:inline-flex;gap:8px;align-items:center;justify-content:center}.esp-lettre-lu{text-align:center;color:var(--good-ink);font-weight:700;padding:10px}.esp-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}.esp-modes button{padding:10px 6px;border-radius:10px;border:1px solid var(--line-soft, #e3e7ef);background:#fff;font:inherit;font-weight:600;color:var(--muted, #6b7486)}.esp-modes button.on{background:var(--ink, #1f2b45);border-color:var(--ink, #1f2b45);color:#fff}.esp-tri{display:inline-block;font-weight:600;border-radius:6px;padding:1px 6px}.esp-ligne .tx>small.esp-tri{align-self:flex-start}.esp-tri.rappel{background:#e7f0ff;color:#1d4fd8}.esp-tri.delai{background:#fdf1dd;color:#9a6600}.esp-tri.recyclage{background:#fbe9e9;color:#d03b3b}.esp-tri.neutre{background:#f1f3f7;color:#6b7486}.esp-tri-resume{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 8px}.esp-tri-resume>div:first-child{margin-right:4px}.esp-jours .avec .p.ouvre{box-shadow:0 0 0 2px #fff,0 0 0 4px #16a34a}.esp-jours .avec .p.ferme{box-shadow:0 0 0 2px #fff,0 0 0 4px #dc2626}.esp-oufe{display:flex;gap:14px;margin-top:8px;font-size:12px;color:var(--muted, #6b7280)}.esp-oufe span{display:inline-flex;align-items:center;gap:6px}.esp-oufe span:before{content:"";width:11px;height:11px;border-radius:50%;border:2.5px solid}.esp-oufe .ouvre:before{border-color:#16a34a}.esp-oufe .ferme:before{border-color:#dc2626}.esp-jours .avec{gap:12px;padding:4px}.esp-jours .jr.auj{scroll-margin-top:110px}.esp-cible-qui{margin:0;color:var(--ink-2);font-size:var(--fs-md);display:flex;flex-wrap:wrap;gap:6px;align-items:center}.esp-cible-aide{margin:0;color:var(--muted);font-size:var(--fs-sm);line-height:1.5}.esp-cible .esp-gros{display:inline-flex;align-items:center;justify-content:center;gap:10px}.esp-petit{display:inline-flex;align-items:center;justify-content:center;gap:8px}.esp-trouvee{display:flex;align-items:center;gap:8px;margin:0;background:var(--ok-soft, #e5f7ec);color:var(--ok, #157f3c);border-radius:var(--radius-sm);padding:var(--sp-3);font-weight:800;font-size:var(--fs-md)}.esp-photo{border-radius:var(--radius);overflow:auto;background:#000;max-height:70dvh}.esp-photo-in{position:relative;width:100%;line-height:0}.esp-photo.zoom .esp-photo-in{width:250%}.esp-photo img{width:100%;height:auto;display:block;-webkit-user-select:none;user-select:none}.esp-repere{position:absolute;padding:0;background:none;border:2px solid rgba(37,99,235,.6);border-radius:4px;min-width:18px;min-height:18px}.esp-repere.inconnue{border-color:#78787873;border-style:dashed}.esp-repere.choisie{border-color:var(--od-blue, #2563eb);box-shadow:0 0 0 3px #2563eb80}.esp-repere.cible{border:4px solid #22c55e;border-radius:8px;outline:3px solid rgba(34,197,94,.45);outline-offset:6px;animation:esp-cible 1.1s ease-in-out infinite;z-index:2}@keyframes esp-cible{50%{outline-offset:14px;outline-color:#22c55e1a}}.esp-photo-aide{margin:0;text-align:center;color:var(--muted);font-size:var(--fs-xs)}.esp-deux{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.esp-deux .esp-gros,.esp-deux .esp-petit{display:inline-flex;align-items:center;justify-content:center;gap:8px}.esp-viseur.large{aspect-ratio:4 / 3}.esp-signer{flex:1;overflow:auto;display:flex;flex-direction:column;gap:var(--sp-2)}.esp-code{font:inherit;font-size:22px;letter-spacing:6px;text-align:center;font-variant-numeric:tabular-nums;padding:10px;border:1.5px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.esp-lien{border:0;background:none;color:var(--od-blue, #2563eb);font:inherit;font-size:13px;text-decoration:underline;padding:4px;align-self:center}.esp-note-signature{color:var(--muted);font-size:11.5px;line-height:1.5;text-align:center;margin:4px 0 0}
