/* MonSerrurier — feuille de style unique (v3, 5.11.2026).
   Identité « l'appli de dépannage » : thème clair, blanc et gris très clair, orange sécurité + noir,
   coins très arrondis, grosses cibles tactiles, barre d'action collante sur mobile. Police : Urbanist (OFL). */
@font-face{font-family:"Urbanist";src:url("/assets/fonts/urbanist-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{
  --ink:#111111;--ink-2:#2a2d33;--paper:#ffffff;--card:#ffffff;--gris:#f3f4f6;--gris-2:#e8eaee;--line:#e3e5e9;--mute:#5f6672;
  --brass:#ff5a1f;--brass-2:#ff7a47;--brass-d:#c2410c;--orange-bg:#fff1ea;
  --green:#047857;--green-bg:#e7f6ef;--red:#b42318;--red-bg:#fdecea;--bleu:#1d4ed8;--bleu-bg:#e8efff;
  --r:22px;--r-m:16px;--r-s:12px;
  --sh:0 1px 2px rgba(17,17,17,.05),0 10px 30px -16px rgba(17,17,17,.22);
  --sh-l:0 2px 6px rgba(17,17,17,.06),0 24px 60px -28px rgba(17,17,17,.35);
  --f:"Urbanist",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"Urbanist",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
fieldset{min-width:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f);font-size:17.5px;line-height:1.6;font-weight:500;overflow-wrap:break-word;font-variant-numeric:tabular-nums}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration-color:var(--brass);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--brass-d)}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:8px}
h1,h2,h3{line-height:1.1;letter-spacing:-.025em;font-weight:800;margin:0 0 .5em}
h1{font-size:clamp(2.05rem,7vw,3.7rem)}
h2{font-size:clamp(1.55rem,4.4vw,2.3rem)}
h3{font-size:1.22rem;letter-spacing:-.01em}
p{margin:0 0 1em}
strong,b{font-weight:800}
.wrap{width:min(1160px,100% - 32px);margin-inline:auto}
.narrow{width:min(760px,100% - 32px);margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;z-index:99;border-radius:12px;font-weight:800}
.skip:focus{left:8px;color:#fff}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mono{font-weight:800;letter-spacing:.01em}

/* ---- En-tête ---- */
.top{background:rgba(255,255,255,.94);backdrop-filter:saturate(1.6) blur(10px);-webkit-backdrop-filter:saturate(1.6) blur(10px);position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:10px;min-height:66px}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:800;font-size:1.3rem;letter-spacing:-.035em;white-space:nowrap}
.logo:hover{color:var(--ink)}
.logo-t span{color:var(--brass-d)}
.logo svg{flex:none}
.tel117{margin-left:auto;display:none;align-items:center;justify-content:center;min-width:48px;height:44px;padding:0 12px;border-radius:99px;background:var(--red-bg);color:var(--red);font-weight:800;text-decoration:none;font-size:.95rem}
.tel117::before{content:"Police\00a0";font-weight:600}
@media (max-width:400px){.tel117::before{content:none}.logo{font-size:1.18rem}}
.nav{margin-left:auto;display:flex;align-items:center;gap:2px}
.nav a{color:var(--ink);text-decoration:none;font-weight:700;font-size:.98rem;padding:10px 13px;border-radius:99px}
.nav a:hover,.nav a[aria-current=page]{background:var(--gris);color:var(--ink)}
.nav .btn{margin-left:8px}
.nav a.btn-brass,.nav a.btn-brass:hover{color:var(--ink);background:var(--brass)}
.nav a.btn-brass:hover{background:var(--brass-2)}
.burger{display:none;align-items:center;gap:8px;background:var(--gris);border:0;color:var(--ink);font:800 .95rem var(--f);height:44px;padding:0 16px;border-radius:99px;cursor:pointer}
.burger span{width:16px;height:2px;background:currentColor;box-shadow:0 -5px 0 currentColor,0 5px 0 currentColor;border-radius:2px}
@media (max-width:1000px){
  .burger{display:inline-flex}
  .tel117{display:inline-flex}
  .nav{display:none;position:absolute;left:12px;right:12px;top:calc(100% + 8px);background:#fff;flex-direction:column;align-items:stretch;padding:10px;border-radius:var(--r);box-shadow:var(--sh-l);border:1px solid var(--line)}
  .nav.ouvert{display:flex}
  .nav a{padding:15px 16px;font-size:1.08rem;border-radius:14px}
  .nav .btn{margin:6px 0 0;justify-content:center}
}

/* ---- Boutons ---- */
.btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:800 1.04rem/1.15 var(--f);text-decoration:none;border:0;border-radius:var(--r-m);padding:15px 22px;min-height:52px;cursor:pointer;transition:transform .12s ease,background .12s ease,box-shadow .12s ease;text-align:center;letter-spacing:-.01em}
.btn small{font-weight:600;font-size:.8rem;opacity:.8}
.btn:active{transform:scale(.98)}
.btn-brass{background:var(--brass);color:var(--ink);box-shadow:0 8px 20px -10px rgba(255,90,31,.8)}
.btn-brass:hover{background:var(--brass-2);color:var(--ink)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:var(--ink-2);color:#fff}
.btn-ghost{background:var(--gris);color:var(--ink)}
.btn-ghost:hover{background:var(--gris-2);color:var(--ink)}
.btn-sm{padding:10px 16px;min-height:44px;font-size:.95rem;border-radius:var(--r-s)}
.btn-lg{padding:18px 26px;min-height:60px;font-size:1.12rem;border-radius:18px}
.btn-bloc{display:flex;width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.btn-red{background:var(--red);color:#fff}

/* ---- Héros « appli » ---- */
.hero{background:linear-gradient(180deg,var(--gris) 0,var(--gris) 72%,#fff 100%);padding:26px 0 34px;position:relative}
.hero h1{max-width:15ch;margin-bottom:.35em}
.hero h1 em{font-style:normal;color:var(--brass-d)}
.hero .lead{font-size:1.14rem;color:#3d424b;max-width:52ch}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,470px);grid-template-areas:"titre radar" "suite radar" "tuiles radar" ". radar";column-gap:40px;row-gap:6px;align-items:start}
.hero-titre{grid-area:titre}.hero-suite{grid-area:suite}.radar{grid-area:radar}.tuiles-bloc{grid-area:tuiles}
@media (max-width:900px){.hero-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"titre" "radar" "tuiles" "suite";row-gap:18px}.hero-suite .lead{font-size:1.05rem}}
.kicker{display:inline-flex;align-items:center;gap:8px;font:800 .8rem/1 var(--f);text-transform:uppercase;letter-spacing:.1em;color:var(--brass-d);margin-bottom:14px}
.kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brass)}
.hero-points{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}
.hero-points li{display:flex;gap:10px;align-items:flex-start;font-weight:700}
.hero-points li::before{content:"";flex:none;width:22px;height:22px;margin-top:2px;border-radius:50%;background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-6.5' stroke='%23ff5a1f' stroke-width='2.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat}
.panneau{background:#fff;color:var(--ink);border-radius:var(--r);padding:18px;box-shadow:var(--sh-l);border:1px solid var(--line)}
.panneau h2{font-size:1.3rem;margin-bottom:12px}
.alerte117{display:flex;gap:10px;align-items:flex-start;background:var(--red-bg);color:#5c130e;padding:13px 16px;border-radius:var(--r-m);font-size:.95rem;margin:14px 0 0}
.alerte117::before{content:"!";flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--red);color:#fff;font-weight:800;font-size:.85rem;margin-top:1px}
.alerte117 strong,.alerte117 a{color:var(--red)}

/* ---- Radar des disponibilités (élément signature) ---- */
.radar{background:#fff;border-radius:28px;box-shadow:var(--sh-l);border:1px solid var(--line);padding:18px 18px 16px;position:relative}
.radar-tete{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.radar-maj{font-size:.82rem;color:var(--mute);font-weight:600}
.radar-statut{display:flex;gap:14px;align-items:center;margin:0 0 4px;min-height:64px}
.radar-n{flex:none;display:grid;place-items:center;min-width:64px;height:64px;padding:0 10px;border-radius:20px;background:var(--gris);font-size:2.2rem;font-weight:800;line-height:1;color:var(--mute)}
.radar.actif .radar-n{background:var(--brass);color:var(--ink)}
.radar-txt{font-weight:800;font-size:1.12rem;line-height:1.25}
.radar-txt small{display:block;font-weight:600;font-size:.9rem;color:var(--mute);margin-top:3px}
.radar-npa{display:flex;gap:8px;margin:12px 0 10px}
.radar-npa label{flex:1;position:relative;display:block}
.radar-npa label span{position:absolute;left:16px;top:8px;font-size:.74rem;font-weight:800;color:var(--mute);text-transform:uppercase;letter-spacing:.06em;pointer-events:none}
.radar-npa input{padding-top:24px!important;padding-bottom:8px!important;font-weight:800!important;font-size:1.2rem!important;letter-spacing:.08em;min-height:58px!important;border-radius:16px!important;background:var(--gris)!important;border-color:transparent!important}
.radar-npa input:focus{background:#fff!important;border-color:var(--ink)!important}
.radar-npa .btn{min-height:58px;border-radius:16px;padding-inline:18px}
.carte-romande{display:block;width:100%;height:auto;max-height:400px;margin:4px 0 10px}
@media (max-width:900px){.carte-romande{max-height:270px}#radar-cta{display:none}.legende{font-size:.78rem;gap:4px 10px}}
.carte-romande .lac{fill:#dfe9f5}
.carte-romande .route{stroke:#d5d9df;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round}
.carte-romande .noeud circle.pt{fill:#fff;stroke:#b8bec8;stroke-width:2.5;transition:fill .3s,stroke .3s,r .3s}
.carte-romande .noeud.zone circle.pt{stroke:var(--ink);fill:#fff}
.carte-romande .noeud.on circle.pt{fill:var(--brass);stroke:var(--ink);stroke-width:2.5}
.carte-romande .noeud .halo{fill:var(--brass);opacity:0}
.carte-romande .noeud.on .halo{animation:halo 2.2s ease-out infinite}
@keyframes halo{0%{opacity:.45;transform:scale(.6)}100%{opacity:0;transform:scale(2.2)}}
.carte-romande .noeud .halo{transform-box:fill-box;transform-origin:center}
.carte-romande text{font:700 10.5px var(--f);fill:#3d424b}
.carte-romande .noeud.on text{fill:var(--ink);font-weight:800}
.carte-romande .nb{font:800 9.5px var(--f);fill:var(--ink)}
.carte-romande a{cursor:pointer}
.carte-romande a:focus-visible circle.pt{stroke:var(--brass-d);stroke-width:4}
.carte-romande .vous circle{fill:var(--ink)}
.carte-romande .vous circle.anneau{fill:none;stroke:var(--ink);stroke-width:2;opacity:.35}
@media (prefers-reduced-motion:reduce){.carte-romande .noeud.on .halo{animation:none;opacity:.25}}
.legende{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.84rem;color:var(--mute);font-weight:600;margin:0 0 12px}
.legende i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:5px;vertical-align:-1px;border:2px solid #b8bec8;background:#fff}
.legende i.on{background:var(--brass);border-color:var(--ink)}
.legende i.zone{border-color:var(--ink)}
.radar-note{font-size:.84rem;color:var(--mute);margin:10px 0 0;font-weight:600}

/* ---- Tuiles de problèmes ---- */
.tuiles-bloc{margin-top:22px}
@media (max-width:900px){.tuiles-bloc{margin-top:4px}}
.tuiles-bloc h2{font-size:clamp(1.3rem,4vw,1.7rem);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.tuiles-bloc h2 small{font-size:.9rem;color:var(--mute);font-weight:700;letter-spacing:0}
.tuiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.hero .tuiles{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px) and (min-width:901px){.hero .tuiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.tuiles,.hero .tuiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tuile{position:relative;display:flex;flex-direction:column;gap:8px;align-items:flex-start;background:#fff;border:2px solid transparent;border-radius:20px;padding:14px;text-decoration:none;color:var(--ink);font-weight:800;line-height:1.15;font-size:1rem;min-height:104px;cursor:pointer;text-align:left;font-family:var(--f);box-shadow:var(--sh);transition:transform .12s ease,border-color .12s ease}
.tuile:hover{border-color:var(--ink);color:var(--ink)}
.tuile:active{transform:scale(.97)}
.tuile svg{width:40px;height:40px;padding:8px;border-radius:14px;background:var(--orange-bg);color:var(--brass-d);flex:none}
.tuile small{font-weight:600}
.tuile[aria-pressed=true],.tuile.choisie{border-color:var(--ink);background:var(--ink);color:#fff}
.tuile[aria-pressed=true] svg,.tuile.choisie svg{background:var(--brass);color:var(--ink)}
.tuile:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:3px}
.panneau .tuiles{grid-template-columns:repeat(2,minmax(0,1fr))}
.ecran .tuiles{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:640px){.ecran .tuiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ecran .tuile{background:var(--gris);box-shadow:none}

/* ---- Sections ---- */
.sec{padding:56px 0}
.sec-alt{background:var(--gris)}
.sec-ink{background:var(--orange-bg)}
.sec-ink a{color:var(--ink)}
.sec h2+p.sous{color:var(--mute);font-size:1.08rem;max-width:62ch;margin-top:-4px}
.sous{color:var(--mute)}
.etapes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;counter-reset:e;margin-top:24px}
@media (max-width:820px){.etapes{grid-template-columns:1fr}}
.etape{background:#fff;border-radius:var(--r);padding:22px;position:relative;box-shadow:var(--sh);border:1px solid var(--line)}
.etape::before{counter-increment:e;content:counter(e);display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--ink);color:var(--brass);font-weight:800;font-size:1.25rem;margin-bottom:12px}
.grille2{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
@media (max-width:820px){.grille2{grid-template-columns:1fr}}
.carte{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh)}
.sec-alt .carte{border-color:transparent}
.liste-check{list-style:none;padding:0;margin:0 0 1em}
.liste-check li{position:relative;padding-left:32px;margin-bottom:11px}
.liste-check li::before{content:"";position:absolute;left:0;top:.28em;width:22px;height:22px;border-radius:50%;background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-6.5' stroke='%23ff5a1f' stroke-width='2.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat}
.citation{background:#fff;border-radius:var(--r-m);padding:16px 18px;margin:0 0 14px;font-size:1.02rem;box-shadow:var(--sh)}
.citation small{display:block;color:var(--mute);margin-top:8px;font-size:.86rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.chips a{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border-radius:99px;text-decoration:none;font-weight:700;background:var(--gris);font-size:.96rem}
.sec-alt .chips a,.carte .chips a{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.chips a:hover{background:var(--ink);color:#fff}
.cartes-guides{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.cg{display:block;background:#fff;border-radius:var(--r);padding:20px;text-decoration:none;color:var(--ink);box-shadow:var(--sh);border:1px solid var(--line);transition:transform .12s ease}
.cg:hover{color:var(--ink);transform:translateY(-2px)}
.cg strong{display:block;font-size:1.1rem;line-height:1.25;margin-bottom:6px}
.cg strong::after{content:" →";color:var(--brass-d)}
.cg span{color:var(--mute);font-size:.95rem;font-weight:500}
.faq details{background:#fff;border-radius:var(--r-m);padding:4px 18px;margin-bottom:8px;border:1px solid var(--line)}
.sec-alt .faq details{border-color:transparent}
.faq summary{font-weight:800;cursor:pointer;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:8px 0}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--gris);font-size:1.2rem;font-weight:700}
.faq details[open] summary::after{content:"–";background:var(--brass)}
.faq details p{margin:0 0 14px;color:#33363d}

/* ---- Contenu éditorial ---- */
.fil{font-size:.9rem;color:var(--mute);margin:18px 0 8px;font-weight:600}
.fil a{color:var(--mute)}
.article{padding:10px 0 56px}
.article h1{font-size:clamp(1.95rem,5.4vw,3rem);margin-top:6px}
.article h2{margin-top:1.6em;font-size:clamp(1.38rem,3.6vw,1.8rem)}
.article h3{margin-top:1.3em}
.article ul,.article ol{padding-left:1.3em}
.article li{margin-bottom:.45em}
.article table{width:100%;border-collapse:separate;border-spacing:0;margin:0 0 1.2em;font-size:.97rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
.article th,.article td{border-bottom:1px solid var(--line);padding:11px 12px;text-align:left;vertical-align:top}
.article tr:last-child td{border-bottom:0}
.article th{background:var(--gris)}
.tbl{overflow-x:auto}
.meta{color:var(--mute);font-size:.92rem;font-weight:600}
.encart{background:var(--gris);border-radius:var(--r-m);padding:16px 18px;margin:1.2em 0}
.encart-red{background:var(--red-bg)}
.sources{font-size:.92rem;background:var(--gris);border-radius:var(--r-m);padding:16px 20px;margin-top:2em}
.sources h2{font-size:1.05rem;margin:0 0 8px}
.sources ol{margin:0;padding-left:1.2em}
.cta-fin{background:var(--ink);color:#fff;border-radius:var(--r);padding:26px;margin-top:2em}
.cta-fin h2{margin-top:0;color:#fff;font-size:1.5rem}
.cta-fin p{color:#d7dae0}
.cta-fin a:not(.btn){color:#fff}

/* ---- Formulaires ---- */
.champ{display:block;margin-bottom:14px}
.champ>span,.lbl{display:block;font-weight:800;margin-bottom:6px;font-size:.98rem}
.champ small,.aide{display:block;color:var(--mute);font-size:.87rem;margin-top:5px;font-weight:500}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=search],select,textarea{width:100%;font:600 1.06rem var(--f);color:var(--ink);background:#fff;border:2px solid #d3d7de;border-radius:14px;padding:13px 15px;min-height:54px;transition:border-color .12s}
select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23111' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 14px center/16px no-repeat;padding-right:40px}
textarea{min-height:96px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 4px rgba(255,90,31,.25)}
input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--red)}
.err-champ{display:block;color:var(--red)!important;font-weight:700!important;font-size:.88rem;margin-top:5px}
.rang{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rang-npa{display:grid;grid-template-columns:112px 1fr;gap:12px}
@media (max-width:420px){.rang{grid-template-columns:1fr}}
.case{display:flex;gap:12px;align-items:flex-start;font-size:.95rem;margin:12px 0}
.case input{width:24px;height:24px;flex:none;margin-top:1px;accent-color:var(--brass-d)}
.segments{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:var(--gris);padding:5px;border-radius:18px}
.segments label{display:block;cursor:pointer;position:relative}
.segments input{position:absolute;opacity:0;pointer-events:none}
.segments span{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:14px;padding:10px 4px;font-weight:800;min-height:62px;line-height:1.15;font-size:.98rem}
.segments span small{font-weight:600;color:var(--mute);font-size:.8rem;margin-top:3px}
.segments input:checked+span{background:#fff;color:var(--ink);box-shadow:var(--sh)}
.segments input:checked+span small{color:var(--brass-d)}
.segments input:focus-visible+span{outline:3px solid var(--ink);outline-offset:2px}
.cantons-choix{display:flex;flex-wrap:wrap;gap:8px}
.cantons-choix label{display:inline-flex;gap:8px;align-items:center;border-radius:99px;padding:10px 14px;font-weight:700;background:var(--gris);cursor:pointer;min-height:44px}
.cantons-choix input{accent-color:var(--brass-d);width:18px;height:18px}
.msg{border-radius:var(--r-m);padding:13px 16px;margin:12px 0;font-weight:700}
.msg-err{background:var(--red-bg);color:#7a1610}
.msg-ok{background:var(--green-bg);color:#065f46}
.msg-info{background:var(--gris);color:var(--ink)}
.hp{position:absolute;left:-5000px}
details.plus{background:var(--gris);border-radius:var(--r-m);padding:2px 16px;margin:6px 0 14px}
details.plus summary{cursor:pointer;font-weight:800;min-height:52px;display:flex;align-items:center;gap:8px}
details.plus summary small{color:var(--mute);font-weight:600}
details.plus[open]{padding-bottom:10px}

/* ---- Application de demande (3 écrans) ---- */
.app{padding:18px 0 64px;background:var(--gris);min-height:70vh}
.app-tete{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.etape-num{font-weight:800;font-size:.92rem}
.brouillon{font-size:.8rem;color:var(--green);font-weight:700;order:3;flex-basis:100%}
.progress{display:flex;gap:6px;flex:1;max-width:220px}
.progress i{flex:1;height:6px;border-radius:9px;background:#d3d7de}
.progress i.fait{background:var(--brass)}
.ecran{background:#fff;border-radius:26px;padding:20px;box-shadow:var(--sh)}
.ecran[hidden]{display:none}
.ecran h1{font-size:clamp(1.6rem,5.4vw,2.15rem)}
.nav-ecran{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-top:18px;flex-wrap:wrap}
.nav-ecran .btn-brass{flex:1;min-width:200px}
@media (max-width:640px){.nav-ecran{position:sticky;bottom:0;background:#fff;margin:18px -20px -20px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-radius:0 0 26px 26px;box-shadow:0 -10px 20px -14px rgba(17,17,17,.25);z-index:5}}
.lien-retour{background:none;border:0;font:800 1rem var(--f);text-decoration:underline;text-decoration-color:var(--brass);cursor:pointer;padding:12px 4px;color:var(--ink);min-height:48px}
.photo-zone{display:flex;align-items:center;gap:12px;border:2px dashed #c7ccd4;border-radius:var(--r-m);padding:12px;background:#fff}
.photo-zone img{width:64px;height:64px;object-fit:cover;border-radius:12px;flex:none}
.photo-zone>div{flex:1;min-width:0}
.photo-zone input[type=file]{width:100%;max-width:100%;font:600 .92rem var(--f)}

/* ---- Suivi en direct & tickets d'offre ---- */
.statut-bandeau{display:flex;gap:14px;align-items:center;background:var(--ink);color:#fff;border-radius:var(--r);padding:18px 20px;margin-bottom:16px}
.pouls{width:14px;height:14px;border-radius:50%;background:var(--brass);flex:none;box-shadow:0 0 0 0 rgba(255,90,31,.7);animation:pouls 1.8s infinite}
@keyframes pouls{to{box-shadow:0 0 0 14px rgba(255,90,31,0)}}
@media (prefers-reduced-motion:reduce){.pouls{animation:none}}
.statut-bandeau strong{display:block;font-size:1.12rem}
.statut-bandeau span{color:#d7dae0;font-size:.93rem}
.ticket{position:relative;background:#fff;border-radius:var(--r);margin:0 0 14px;box-shadow:var(--sh);overflow:hidden;border:1px solid var(--line)}
.ticket-haut{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:18px 18px 12px;flex-wrap:wrap}
.ticket-nom{font-weight:800;font-size:1.14rem;line-height:1.2}
.ticket-nom small{display:block;font-weight:600;color:var(--mute);font-size:.87rem;margin-top:3px}
.prix{font-weight:800;font-size:2rem;line-height:1;letter-spacing:-.03em;white-space:nowrap}
.prix small{display:block;font-weight:800;font-size:.72rem;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:var(--green);margin-top:6px;text-align:right}
.ticket-bas{background:var(--gris);padding:12px 18px 16px;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between}
.ticket .infos{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.93rem;color:#33363d}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:4px 9px;border-radius:99px;background:var(--gris)}
.badge-ok{background:var(--green-bg);color:var(--green)}
.badge-brass{background:var(--orange-bg);color:var(--brass-d)}
.ticket.acceptee{box-shadow:0 0 0 3px var(--green),var(--sh)}
.ticket.grise{opacity:.55}
.attente{list-style:none;padding:0;margin:0}
.attente li{padding:12px 0;border-bottom:1px solid var(--line)}
.attente li strong{display:block}
.resume dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:.95rem}
.resume dt{color:var(--mute)}
.resume dd{margin:0;font-weight:700}
.colonnes{display:grid;grid-template-columns:1.25fr .75fr;gap:20px;align-items:start}
@media (max-width:880px){.colonnes{grid-template-columns:1fr}}

/* ---- Espace partenaire ---- */
.tabs{display:flex;gap:6px;overflow-x:auto;margin:14px 0;padding:5px;background:var(--gris);border-radius:18px}
.tabs button{font:800 .95rem var(--f);border:0;background:transparent;border-radius:14px;padding:11px 16px;min-height:46px;cursor:pointer;white-space:nowrap;color:var(--ink)}
.tabs button[aria-selected=true]{background:#fff;box-shadow:var(--sh)}
.ligne-liste{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ligne-liste strong{display:block}
.kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.kpi div{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:13px}
.kpi b{display:block;font-weight:800;font-size:1.5rem;line-height:1.1}
.kpi span{font-size:.85rem;color:var(--mute)}

/* ---- Pied de page & barre mobile ---- */
.pied{background:var(--gris);color:#3d424b;padding:46px 0 120px;font-size:.95rem;border-top:1px solid var(--line)}
.pied a{color:var(--ink);text-decoration-color:#c7ccd4}
.pied-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:24px}
@media (max-width:820px){.pied-grid{grid-template-columns:1fr 1fr}}
@media (max-width:420px){.pied-grid{grid-template-columns:1fr}}
.pied h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--brass-d);margin-bottom:10px}
.pied ul{list-style:none;padding:0;margin:0}
.pied li{margin-bottom:9px}
.pied .bas{border-top:1px solid var(--line);margin-top:28px;padding-top:16px;font-size:.86rem;color:var(--mute)}
.barre-mobile{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:30;display:none}
.barre-mobile .btn{width:100%;min-height:62px;border-radius:20px;box-shadow:0 14px 30px -10px rgba(17,17,17,.45)}
@media (max-width:900px){.barre-mobile{display:block}}
@media (min-width:901px){.pied{padding-bottom:46px}}

/* ================= Disponibilités, dispatch, profils, mission, entreprises ================= */
.live{display:inline-flex;align-items:center;gap:8px;font:800 .8rem/1 var(--f);text-transform:uppercase;letter-spacing:.08em;color:var(--green);background:var(--green-bg);padding:7px 11px;border-radius:99px}
.live i{width:9px;height:9px;border-radius:50%;background:#10b981;box-shadow:0 0 0 0 rgba(16,185,129,.7);animation:pouls-v 1.8s infinite;flex:none}
.live.off{color:var(--mute);background:var(--gris)}
.live.off i{background:#9aa1ab;animation:none}
@keyframes pouls-v{to{box-shadow:0 0 0 10px rgba(16,185,129,0)}}
@media (prefers-reduced-motion:reduce){.live i{animation:none}}
.compteur{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.compteur b{font-weight:800;font-size:2.6rem;line-height:1;color:var(--brass-d)}
.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.region{background:#fff;border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh);min-width:0;border:1px solid var(--line)}
.sec-alt .region{border-color:transparent}
.region h3{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:0 0 10px;font-size:1.14rem}
.region h3 small{font-weight:800;font-size:.78rem;color:var(--mute);white-space:nowrap;background:var(--gris);padding:4px 9px;border-radius:99px}
.region .vide{color:var(--mute);font-size:.93rem;margin:0}
.carte-s{display:flex;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink);min-width:0}
.carte-s:first-of-type{border-top:0}
.carte-s:hover{color:var(--ink)}
.carte-s:hover strong{text-decoration:underline;text-decoration-color:var(--brass)}
.avatar{width:46px;height:46px;border-radius:16px;background:var(--ink);color:var(--brass);display:grid;place-items:center;font:800 1rem var(--f);flex:none;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar-l{width:92px;height:92px;border-radius:26px;font-size:2rem}
.carte-s .txt{flex:1;min-width:0}
.carte-s strong{display:block;line-height:1.2;overflow-wrap:anywhere}
.carte-s .aide{margin:2px 0 0}
.carte-s .px{font-weight:800;font-size:1.08rem;white-space:nowrap;text-align:right}
.carte-s .px small{display:block;font-weight:700;font-size:.7rem;color:var(--mute);text-transform:uppercase;letter-spacing:.05em}
.pastille{display:inline-flex;align-items:center;gap:5px;font-size:.74rem;font-weight:800;padding:3px 8px;border-radius:99px;background:var(--green-bg);color:var(--green);text-transform:uppercase;letter-spacing:.04em}
.pastille.garde{background:var(--bleu-bg);color:var(--bleu)}
.pastille.occupe{background:var(--orange-bg);color:var(--brass-d)}
.pastille.off{background:var(--gris);color:var(--mute)}
.choix-mode{display:grid;gap:10px;margin:10px 0 14px}
.choix-mode label{display:flex;gap:12px;align-items:flex-start;border:2px solid var(--line);border-radius:var(--r-m);padding:14px 15px;background:#fff;cursor:pointer}
.choix-mode input{margin-top:3px;width:22px;height:22px;accent-color:var(--brass-d);flex:none}
.choix-mode label:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 4px rgba(255,90,31,.2)}
.choix-mode strong{display:block}
.choix-mode span span{display:block;color:var(--mute);font-size:.9rem;font-weight:500}
.estim{background:var(--gris);border-radius:var(--r-m);padding:14px 16px;margin:6px 0 14px}
.estim h3{font-size:1.05rem;margin:0 0 8px}
.estim .liste-s{max-height:340px;overflow:auto}
.estim .carte-s{cursor:pointer;border-color:#dfe2e7}
.estim .carte-s.sel{background:#fff;border-radius:14px;padding-inline:10px;box-shadow:0 0 0 2px var(--ink)}
.timeline{list-style:none;margin:0 0 16px;padding:0;position:relative}
.timeline li{position:relative;padding:0 0 14px 32px}
.timeline li::before{content:"";position:absolute;left:5px;top:5px;width:14px;height:14px;border-radius:50%;background:#d3d7de;border:3px solid #fff;box-shadow:0 0 0 2px #d3d7de}
.timeline li::after{content:"";position:absolute;left:11px;top:22px;bottom:0;width:2px;background:#d3d7de}
.timeline li:last-child::after{display:none}
.timeline li.fait::before{background:var(--green);box-shadow:0 0 0 2px var(--green)}
.timeline li.encours::before{background:var(--brass);box-shadow:0 0 0 2px var(--brass)}
.timeline strong{display:block}
.timeline span{color:var(--mute);font-size:.9rem}
.eta{background:var(--ink);color:#fff;border-radius:var(--r);padding:20px;margin-bottom:16px}
.eta b{display:block;font-weight:800;font-size:2.5rem;line-height:1;color:var(--brass);margin:6px 0}
.etoiles{display:flex;gap:6px;flex-wrap:wrap}
.etoiles label{cursor:pointer}
.etoiles input{position:absolute;opacity:0}
.etoiles span{display:grid;place-items:center;width:50px;height:50px;border-radius:14px;background:var(--gris);font-weight:800;font-size:1.1rem}
.etoiles input:checked+span{background:var(--ink);color:var(--brass)}
.etoiles input:focus-visible+span{outline:3px solid var(--ink);outline-offset:2px}
.note{font-weight:800;color:var(--brass-d)}
.dispo-switch{display:block;width:100%;border:0;border-radius:24px;padding:24px 20px;font:800 1.38rem/1.2 var(--f);cursor:pointer;text-align:left;margin:8px 0 10px;color:#fff;background:#4b5160}
.dispo-switch small{display:block;font:600 .93rem var(--f);opacity:.9;margin-top:6px}
.dispo-switch.on{background:var(--green)}
.dispo-switch.busy{background:var(--brass-d)}
.durees{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.durees button{flex:1;min-width:70px}
.planning-jour{display:grid;grid-template-columns:72px 1fr 1fr 44px;gap:8px;align-items:center;margin-bottom:8px}
.planning-jour input{min-height:46px;padding:8px}
.planning-jour button{min-height:46px}
.grille-prix{display:grid;grid-template-columns:1fr 110px;gap:8px 12px;align-items:center}
.grille-prix label{font-weight:700;font-size:.95rem}
.grille-prix input{min-height:46px}
@media (max-width:420px){.grille-prix{grid-template-columns:1fr 92px}.planning-jour{grid-template-columns:52px 1fr 1fr 40px;gap:6px}}
.etapes-mission{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.etapes-mission .btn{padding:14px 8px;font-size:.95rem}
@media (max-width:420px){.etapes-mission{grid-template-columns:1fr}}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:18px}
.plan{background:#fff;border:2px solid var(--line);border-radius:var(--r);padding:22px;color:var(--ink)}
.plan.mis{border-color:var(--ink);box-shadow:0 0 0 4px rgba(255,90,31,.25)}
.plan .prix{font-size:2rem}
.plan h3{margin-bottom:4px}
.profil-tete{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:14px 0}
.chiffres div{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:13px}
.chiffres b{display:block;font-weight:800;font-size:1.45rem;line-height:1.1}
.chiffres span{font-size:.85rem;color:var(--mute)}
.table-prix{width:100%;border-collapse:collapse;background:#fff;font-size:.97rem}
.table-prix td,.table-prix th{border-bottom:1px solid var(--line);padding:10px 6px;text-align:left;vertical-align:top}
.table-prix td:last-child,.table-prix th:last-child{text-align:right;font-weight:800;white-space:nowrap}
.copie{display:flex;gap:8px}
.copie input{flex:1;min-width:0;font-size:.9rem}
