
:root{
  box-sizing:border-box;
  --bg:#f2f6f8; --ink:#2c343b; --card:#fff; --line:#dce3e8; --line2:rgba(44,52,59,.13);
  --pri:#385f78; --pri2:#557f9e; --muted:#6f7c84; --muted2:#9aa5ac;
  --accent:#d87351; --accent2:#e39d3f;
  --brand-blue:#79a1c1; --brand-orange:#e39d3f; --brand-coral:#d87351; --brand-navy:#2c343b;
  --blue-soft:#e7f0f6; --orange-soft:#fff1d9; --coral-soft:#fae7df;
  --dispo:#79a1c1; --partiel:#e39d3f; --occupe:#9da6ac; --incompat:#d9dee2; --choisi:#d87351;
  --c-50:#385f78; --c-30:#79a1c1; --c-15:#e39d3f; --c-152:#d87351; --c-0:#8f9aa1;
  --c-chalet:#d87351; --c-villa:#9d6f9f; --c-coolbox:#4c99b5; --c-condo:#6c79a6; --c-cabana:#e39d3f; --c-hute:#688c7b;
  --sun:#e39d3f;
  --lift:0 12px 32px rgba(44,52,59,.14);
  --safeT:env(safe-area-inset-top,0px); --safeB:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:inherit}
html,body{height:100%;margin:0}
html{scroll-padding-top:var(--safeT)}
body{background:var(--bg);color:var(--ink);letter-spacing:-.005em;font-family:Poppins,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:15px;line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--brand-coral);outline-offset:2px}
h1,h2,h3{margin:0;letter-spacing:-.02em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Keep the shared shell visible while only the map workspace finishes booting. */
.app{transition:opacity .24s ease}
body.map-booting .app{opacity:1}
body.map-booting .col{opacity:0;pointer-events:none}
body.map-booting .explorer-account-header,
body.map-booting .rail{opacity:1;pointer-events:auto}
.map-boot-screen{position:fixed;inset:84px 0 0 74px;z-index:20000;display:grid;align-content:center;justify-items:center;gap:28px;
  padding:28px;background:
    radial-gradient(circle at 76% 22%,rgba(121,161,193,.26),transparent 30%),
    radial-gradient(circle at 22% 78%,rgba(227,157,63,.18),transparent 32%),
    linear-gradient(135deg,#fffaf2 0%,#f8fbfd 52%,#edf4f8 100%);
  color:var(--brand-navy);transition:opacity .24s ease,visibility .24s ease}
body.map-ready .map-boot-screen{opacity:0;visibility:hidden;pointer-events:none}
.map-boot-screen::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;
  background:linear-gradient(90deg,var(--brand-orange) 0 33.33%,var(--brand-coral) 33.33% 66.66%,var(--brand-blue) 66.66%)}
.map-boot-brand{display:grid;justify-items:center;gap:12px}
.map-boot-brand img{display:block;width:min(270px,64vw);height:auto;filter:brightness(0)}
.map-boot-brand span{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.map-boot-copy{display:grid;justify-items:center;gap:7px;text-align:center}
.map-boot-copy strong{font-size:clamp(20px,2.5vw,29px);letter-spacing:-.035em}
.map-boot-copy span{color:var(--muted);font-size:13px}
.map-boot-progress{width:min(290px,68vw);height:5px;overflow:hidden;border-radius:999px;background:rgba(121,161,193,.2)}
.map-boot-progress i{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand-orange),var(--brand-coral),var(--brand-blue));
  animation:map-boot-progress 1.15s ease-in-out infinite}
@keyframes map-boot-progress{0%{transform:translateX(-110%)}100%{transform:translateX(340%)}}
@media (prefers-reduced-motion:reduce){.app,.map-boot-screen{transition:none}.map-boot-progress i{animation:none;width:100%}}
@media(max-width:760px){.map-boot-screen{inset:84px 0 0 64px}}

@view-transition { navigation: auto; }
.explorer-account-header { view-transition-name: havana-header; }
::view-transition-old(havana-header),
::view-transition-new(havana-header){animation-duration:.18s;animation-timing-function:ease-out}

/* ---------- entête ---------- */
.app{display:flex;height:100%;padding-top:var(--safeT)}
.col{flex:1;min-width:0;display:flex;flex-direction:column}
.rail{position:relative;flex:0 0 74px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 0 14px;
  background:#fff;border-right:1px solid var(--line)}
.rail::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;
  background:linear-gradient(90deg,var(--brand-orange) 0 33.33%,var(--brand-coral) 33.33% 66.66%,var(--brand-blue) 66.66%)}
.rail button{width:62px;padding:8px 0;border-radius:11px;display:grid;justify-items:center;gap:4px;color:var(--muted)}
.rail button:hover{background:var(--blue-soft)}
.rail button i{font-style:normal;font-size:19px;line-height:1}
.rail button span{font-size:10px;font-weight:500}
.rail button[aria-pressed="true"]{color:var(--accent);background:var(--coral-soft)}
.rail button[aria-pressed="true"] i{font-weight:700}
.hdr{position:relative;z-index:60;flex:0 0 auto;height:78px;display:flex;align-items:center;gap:20px;
  padding:0 clamp(12px,2vw,26px);background:#fff;border-bottom:1px solid var(--line)}
.hdr::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;pointer-events:none;
  background:linear-gradient(90deg,var(--brand-orange) 0 33.33%,var(--brand-coral) 33.33% 66.66%,var(--brand-blue) 66.66%)}
.brand{display:flex;align-items:center;gap:10px;min-width:0;flex:0 0 auto;color:inherit;text-decoration:none}
.brand .havana-logo{display:block;width:210px;height:60px;object-fit:contain;object-position:left center;filter:brightness(0)}
.brand .mark{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:12px;
  background:linear-gradient(135deg,var(--brand-orange),var(--brand-coral));color:#fff;font-size:18px;
  box-shadow:0 6px 16px rgba(216,115,81,.22)}
.brand strong{display:block;font-size:13.5px;font-weight:700;letter-spacing:.04em;line-height:1.1;color:var(--pri)}
.brand small{display:block;margin-top:3px;color:var(--muted);font-size:8.5px;font-weight:600;letter-spacing:.11em}
.map-platform-brand{display:flex;align-items:center;gap:8px;min-height:34px;padding-left:16px;border-left:1px solid var(--line);
  color:var(--muted);white-space:nowrap}
.map-platform-brand>span{font-size:11px;font-weight:500}
.map-platform-brand img{display:block;width:94px;height:36px;object-fit:contain;mix-blend-mode:multiply}
.avail{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;min-width:0}
.avail .lbl{font-size:15px;font-weight:600;color:var(--pri);white-space:nowrap}
.dpill{display:flex;align-items:center;gap:12px;height:46px;padding:0 18px;border:1px solid var(--line);
  border-radius:999px;background:#fff;transition:border-color .15s}
.dpill:hover,.gpill:hover{border-color:var(--pri)}
.dpill .dt{display:flex;align-items:center;gap:8px}
.dpill i{font-style:normal;font-size:13px;filter:grayscale(1) opacity(.6)}
.dpill b,.gpill b{font-size:13.5px;font-weight:500;color:#3a4a3e;white-space:nowrap}
.arw{color:var(--muted2);font-size:13px}
.gpill{display:flex;align-items:center;gap:14px;height:46px;padding:0 18px;border:1px solid var(--line);
  border-radius:999px;background:#fff;min-width:150px;justify-content:space-between}
.avail .go{width:46px;height:46px;flex:0 0 46px;border-radius:50%;background:var(--accent);color:#fff;
  font-size:16px;display:grid;place-items:center;box-shadow:0 6px 16px rgba(216,115,81,.3)}
.modes{display:flex;align-items:center;gap:2px;padding:3px;background:var(--blue-soft);border-radius:999px;flex:0 0 auto}
.modes button{padding:8px 15px;border-radius:999px;font-size:12.5px;font-weight:500;color:var(--muted)}
.modes button[aria-pressed="true"]{background:var(--pri);color:#fff}

/* ---------- espace carte ---------- */
.work{position:relative;flex:1;min-height:0;overflow:hidden;background:#dce8f0}
.vp{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;user-select:none}
.vp.dragging{cursor:grabbing}
.scene{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.scene img{display:block;width:100%;height:auto;pointer-events:none;-webkit-user-drag:none}
.veil{position:absolute;inset:0;z-index:1;pointer-events:none;background:rgba(255,253,249,.18)}
#route,#polys{position:absolute;left:0;top:0;overflow:visible}
#polys{z-index:3}
#route{z-index:6;pointer-events:none}
#polys .p{pointer-events:auto;cursor:pointer;stroke:rgba(255,255,255,.42);stroke-width:var(--psw,1.2);
  stroke-dasharray:calc(var(--psw,1.2)*3) calc(var(--psw,1.2)*2)}
#polys .p.tr{stroke:#fff;stroke-width:calc(var(--psw,1.2)*1.9);stroke-dasharray:none}
#polys .p.sel{stroke:#fff;stroke-width:calc(var(--psw,1.2)*3);stroke-dasharray:none}
#polys text{fill:#fff;paint-order:stroke;stroke:rgba(10,26,18,.6);text-anchor:middle;
  dominant-baseline:central;font-family:Poppins,sans-serif;font-weight:700;pointer-events:none;display:none}
body.near #polys text{display:block}
#polys text.gen{fill:rgba(255,255,255,.62)}
body.onlytraced #polys .p:not(.tr),body.onlytraced #polys text.gen{display:none}
body.onlytraced .mk:not(.istr){display:none}

.mk{position:absolute;z-index:4;transform:translate(-50%,-50%) scale(var(--cs,1));display:grid;place-items:center}
.mk>span{display:grid;place-items:center;border:1px solid rgba(255,255,255,.9);border-radius:50%;color:#fff;
  font-weight:800;letter-spacing:-.02em;box-shadow:0 2px 5px rgba(9,26,17,.3);overflow:hidden;
  width:9px;height:9px;font-size:0;transition:width .16s,height .16s,font-size .16s,box-shadow .16s,transform .16s}
.mk:hover>span,.mk:focus-visible>span{width:31px;height:31px;font-size:10px;overflow:visible;
  box-shadow:0 0 0 4px rgba(255,255,255,.45),0 6px 15px rgba(9,26,17,.36)}
body.zoomed .mk>span{width:24px;height:24px;font-size:8.5px;overflow:visible}
body.zoomed .mk:hover>span{width:32px;height:32px;font-size:10px}
.mk.sel>span{width:34px;height:34px;overflow:visible;background:var(--accent)!important;font-size:11px;
  border-color:#fff;border-width:3px;box-shadow:0 0 0 5px rgba(232,88,44,.22),0 6px 16px rgba(30,45,32,.35)}
.mk.out{opacity:.13;pointer-events:none}
/* états de disponibilité : forme + taille, pas seulement la couleur */
.mk>span{box-sizing:border-box}
.mk.s-dispo>span{width:13px;height:13px;box-shadow:0 1px 3px rgba(30,45,32,.28)}
.mk.s-partiel>span,.mk.s-verify>span{width:13px;height:13px;box-shadow:0 1px 3px rgba(30,45,32,.25)}
.mk.s-occupe>span{width:11px;height:11px;box-shadow:none}
.mk.s-incompat>span{width:8px;height:8px;box-shadow:none;opacity:.6}
.mk:hover>span,.mk:focus-visible>span{width:32px!important;height:32px!important;font-size:10px!important;
  overflow:visible;box-shadow:0 0 0 4px rgba(255,255,255,.5),0 6px 15px rgba(9,26,17,.36)!important}
body.far .mk.s-occupe,body.far .mk.s-incompat{display:none}
body.hideocc .mk.s-occupe,body.hideocc .mk.s-incompat{display:none}
.legend .sh{width:13px;height:13px;border-radius:50%;box-sizing:border-box;flex:0 0 13px}
body.parcels.near .mk.haspoly{display:none}


.mk:focus-visible{outline:none}
body.explore .mk{opacity:.2;pointer-events:none}

.pin{position:absolute;z-index:5;transform:translate(-50%,-50%) scale(var(--cs,1));display:grid;place-items:center}
.pin>span{width:26px;height:26px;display:grid;place-items:center;border:1.5px solid var(--line);
  border-radius:50%;background:#fff;color:var(--pri);font-size:9.5px;font-weight:600;
  box-shadow:0 2px 8px rgba(30,45,32,.2);transition:transform .16s,background .16s,color .16s,width .16s,height .16s}
body.explore .pin>span{width:32px;height:32px;font-size:11px;background:var(--pri);color:#fff;border-color:#fff}
.pin:hover>span,.pin.sel>span{transform:scale(1.12);background:var(--accent);color:#fff;border-color:#fff}
.pin:focus-visible{outline:none}

.rel{position:absolute;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;z-index:2;
  background:rgba(181,107,45,.9);box-shadow:0 0 0 1.5px rgba(255,255,255,.75);display:none;pointer-events:none}
body.showrel .rel{display:block}
.legbox{position:absolute;z-index:5;display:grid;cursor:pointer}
.legrow{border-radius:3px}
.legrow:hover{background:rgba(23,63,49,.16);box-shadow:inset 0 0 0 1.5px rgba(23,63,49,.5)}
.legrow.on{background:rgba(181,107,45,.22);box-shadow:inset 0 0 0 2px var(--sun)}
.legrow.dead{pointer-events:none}

/* ---------- barre de recherche ---------- */
.fbar{position:relative;z-index:50;flex:0 0 auto;min-height:58px;display:flex;align-items:center;gap:10px;
  padding:0 clamp(12px,2vw,26px);background:#fff;border-bottom:1px solid var(--line)}
.srch{flex:0 0 260px;display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;
  border:1px solid var(--line);border-radius:10px;background:#fff}
.srch:focus-within{border-color:var(--pri)}
.srch i{font-style:normal;color:var(--muted);font-size:15px}
.srch input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:13px}
.srch button{color:var(--muted2);font-size:16px;line-height:1}
.chips{flex:1;min-width:0;display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.facts2{flex:0 0 auto;display:flex;align-items:center;gap:8px}
.chip{flex:0 0 auto;min-height:38px;display:inline-flex;align-items:center;gap:7px;padding:0 15px;
  border:1px solid var(--line);border-radius:10px;background:#fff;color:#3a4a3e;font-size:13px;
  font-weight:500;white-space:nowrap;transition:border-color .15s,background .15s}
.chip:hover{border-color:var(--pri)}
.chip.spacer{flex:1;border:0;background:none;min-height:0;padding:0}
.chip.save{background:var(--accent);border-color:var(--accent);color:#fff}
.chip.save:hover{background:var(--accent2);border-color:var(--accent2)}
.chip[aria-pressed="true"],.chip.on{background:var(--pri);border-color:var(--pri);color:#fff}
.chip i{width:9px;height:9px;border-radius:50%;background:var(--ci,#999);display:inline-block}
.chip em{font-style:normal;opacity:.6;font-size:11px}
.chip .badge{min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:rgba(255,255,255,.25);
  color:#fff;font-size:11px;font-weight:600;display:grid;place-items:center}
/* ruban des nuits, dans le menu des dates */
.sribbon{display:flex;align-items:flex-end;gap:2px;height:44px;padding:4px 8px 0}
.sribbon[hidden]{display:none}
.rcap{display:none}
.nb{flex:1 1 0;min-width:0;height:30px;display:flex;flex-direction:column;justify-content:flex-end;
  align-items:center;gap:3px;border-radius:5px 5px 2px 2px;padding:0 1px}
.nb i{display:block;width:100%;max-width:14px;min-height:2px;border-radius:3px 3px 1px 1px;
  background:#cfe0d3;transition:background .15s}
.nb u{display:block;width:100%;max-width:14px;height:2px;border-radius:2px;background:transparent}
.nb.in i{background:var(--pri)}
.nb.in u{background:var(--pri)}
.nb:hover i{background:var(--sun)}
.nb.zero i{background:#e6eae7}

/* ---------- panneau gauche ---------- */
.panel{position:absolute;z-index:34;right:0;top:0;bottom:0;width:clamp(360px,42%,600px);
  display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--line);
  overflow:hidden;transition:transform .22s ease}
.panel[hidden]{display:none}
.panel.closed{transform:translateX(100%)}
.phead{padding:16px 18px 13px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.phead h2{font-size:16px;font-weight:600;color:var(--pri)}
.phead p{margin:4px 0 0;color:var(--muted);font-size:12px}
.pfoot .mini{font-size:11.5px;padding:7px 10px}
.pclose{width:32px;height:32px;flex:0 0 32px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:#344038}
.pscroll{flex:1;min-height:0;overflow-y:auto;padding:16px 18px 18px}
.pscroll::-webkit-scrollbar{width:8px}
.pscroll::-webkit-scrollbar-thumb{background:#dfe4e0;border-radius:8px}
.sect{padding:13px 0;border-bottom:1px solid var(--line)}
.slg{display:flex;gap:18px;padding:2px 0 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.slg span{display:flex;align-items:center;gap:9px;font-size:12.5px;color:#46564a}
.slg i{width:13px;height:13px;flex:0 0 13px;border-radius:50%;box-sizing:border-box}
.slg b{margin-left:4px;font-size:11.5px;font-weight:500;color:var(--muted);background:#f1f0e8;
  padding:2px 9px;border-radius:999px}
.sect:last-of-type{border-bottom:0}
.sect h3{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}
.shead{display:flex;align-items:center;gap:9px;width:100%;padding:14px 2px;text-align:left}
.shead .st{flex:1;min-width:0;font-size:14px;font-weight:500;color:var(--pri);letter-spacing:0;text-transform:none}
.shead[aria-expanded="true"] .st{color:var(--ink)}
.shead .sv{font-size:12px;color:#6d7a72;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.shead .sb{min-width:19px;height:19px;padding:0 6px;border-radius:999px;background:var(--pri);color:#fff;
  font-size:11px;font-weight:700;display:grid;place-items:center}
.shead .chev{flex:0 0 auto;width:20px;height:20px;display:grid;place-items:center;color:var(--muted);
  font-size:17px;font-weight:400;transform:rotate(90deg);transition:transform .18s}
.shead[aria-expanded="true"] .chev{transform:rotate(-90deg);color:var(--pri)}
.sbody{padding:2px 0 13px}
.two{display:flex;gap:8px}
.two label{flex:1;min-width:0}
label.f{display:block}
label.f span{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}
label.f input,label.f select,.pscroll input[type=search]{width:100%;padding:9px 11px;border:1px solid var(--line);
  border-radius:11px;background:#fbfcfb;font-size:13.5px}
.wrap{display:flex;flex-wrap:wrap;gap:7px}
.tag{padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12.5px;
  font-weight:500;color:#3a4a3e;display:inline-flex;align-items:center;gap:7px}
.tag[aria-pressed="true"]{background:var(--pri);border-color:var(--pri);color:#fff}
.tag b{background:#f1f0e8;color:var(--muted);padding:1px 7px;border-radius:999px;font-size:11px;opacity:1}
.tag[aria-pressed="true"] b{background:rgba(255,255,255,.22);color:#fff}
.tag i{width:9px;height:9px;border-radius:50%;background:var(--ci,#999)}
.tag b{font-weight:700;opacity:.6;font-size:11.5px}
.nights{margin:8px 0 0;font-size:12px;color:var(--muted)}
.count{display:flex;justify-content:space-between;align-items:center;padding:11px 2px 7px;font-size:12px;color:var(--muted)}
.count b{color:var(--ink);font-size:13px}
.rows{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.rcard{position:relative;display:block;padding:0;width:100%;min-width:0;max-width:100%;text-align:left;border:1px solid var(--line);border-radius:14px;
  background:#fff;overflow:hidden;transition:box-shadow .15s,border-color .15s,transform .15s}
.rcard:hover{border-color:#c9cfc4;box-shadow:0 8px 22px rgba(40,58,46,.14);transform:translateY(-1px)}
.rcard[aria-current="true"]{border-color:var(--accent);box-shadow:0 0 0 2px rgba(232,88,44,.18)}
.rcard .im{display:block;position:relative;height:210px;background-color:#e9ece7;background-image:var(--map);
  background-repeat:no-repeat}
.rcard .im.empty{background-image:none;display:grid;place-items:center;color:var(--muted2);font-size:11px}
.rcard .st{position:absolute;left:10px;top:10px;padding:5px 12px;border-radius:7px;font-size:11.5px;
  font-weight:600;background:#fff;color:var(--pri);box-shadow:0 2px 8px rgba(30,45,32,.2)}
.rcard .dts{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);display:flex;gap:5px}
.rcard .dts i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6)}
.rcard .dts i:first-child{background:#fff}
.ttag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 7px;border-radius:7px;
  background:color-mix(in srgb,var(--tc) 13%,#fff);color:var(--tc);
  font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.3}
.ttag i{font-style:normal;font-size:13px;letter-spacing:0;filter:saturate(.9)}
.ttag.big{font-size:12px;padding:5px 12px 5px 8px}
.ttag.big i{font-size:15px}
.rcard .tg{display:block;margin-bottom:8px}
.rcard .brk{display:block;margin:7px 0 0;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted2)}
.rcard .st.partiel{color:#9a5a1c}.rcard .st.occupe{color:var(--muted)}
.rcard .hrt{position:absolute;right:9px;top:9px;width:32px;height:32px;font-size:17px;border-radius:50%;
  background:rgba(255,255,255,.92);display:grid;place-items:center;font-size:14px;color:var(--muted);
  box-shadow:0 2px 7px rgba(30,45,32,.18);z-index:2}
.rcard .hrt.on{color:var(--accent)}
.rcard .bd{display:block;padding:10px 14px 11px}
.rcard .top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rcard .nm em{font-style:normal;margin-left:8px;padding:1px 7px;border-radius:5px;background:#f1f0e8;
  font-size:10.5px;color:var(--muted);letter-spacing:.02em}
.rcard .pz{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap;min-width:0}
.rcard .pz b{font-size:22px;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.rcard .pz span{font-size:11.5px;color:var(--muted)}
.rcard .ln{display:block;margin:3px 0 0;font-size:13.5px;color:var(--ink)}
.rcard .ln em{font-style:normal;color:var(--muted)}
.rcard .nm{display:block;margin:3px 0 0;font-size:13px;color:#4c5b4f}
.rcard .nm b{font-weight:600;color:var(--ink)}
.pager{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:6px;padding:16px 0 4px}
.pager button{min-width:34px;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:8px;
  background:#fff;font-size:12.5px;color:#3a4a3e}
.pager button[aria-current="true"]{background:var(--pri);border-color:var(--pri);color:#fff;font-weight:600}
.pager button:disabled{opacity:.4}
.sortrow{grid-column:1/-1;display:block;padding:16px 2px 10px}
.sortrow .ttl{display:block;font-size:17px;font-weight:600;color:var(--ink);letter-spacing:-.01em;
  line-height:1.3;overflow-wrap:anywhere}
.sortrow .lrow{display:flex;align-items:center;gap:8px;margin-top:6px}
.sortrow .lrow small{flex:1;min-width:0;font-size:12px;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sortrow select{flex:0 0 auto;margin-left:0;border:0;color:var(--accent);font-weight:500;max-width:none;
  background:none;padding:6px 4px}
.sortrow .pclose{flex:0 0 32px}
.sortrow b{font-size:12.5px;color:var(--ink);font-weight:600;white-space:nowrap}
.sortrow select{max-width:150px}
.sortrow select{margin-left:auto;padding:6px 8px;border:1px solid var(--line);border-radius:9px;
  background:#fff;font-size:11.5px;color:#3a4a3e}
.mk.hl>span{transform:scale(1.5);box-shadow:0 0 0 4px rgba(232,88,44,.3)!important}
#polys .p.hl{stroke:var(--accent);stroke-width:calc(var(--psw,1.2)*3);stroke-dasharray:none}
/* bulles de prix sur la carte */
body.prices .mk.s-dispo>span,body.prices .mk.s-partiel>span{width:auto;height:22px;padding:0 9px;
  border-radius:999px;font-size:0;overflow:visible;box-shadow:0 2px 7px rgba(30,45,32,.3)}
body.prices .mk.s-dispo>span::after,body.prices .mk.s-partiel>span::after{
  content:attr(data-p);font-size:10.5px;font-weight:600;letter-spacing:-.01em}
body.prices.far .mk.s-dispo>span,body.prices.far .mk.s-partiel>span{width:13px;padding:0}
body.prices.far .mk>span::after{content:""}
body.prices .mk.sel>span::after{content:attr(data-p);font-size:11px}
.row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px;border-radius:12px}
.row:hover{background:#f2f5f2}
.row[aria-current="true"]{background:#eaf1ec;box-shadow:inset 0 0 0 1.5px var(--pri)}
.row .sw{width:8px;height:30px;border-radius:4px;background:var(--sw);flex:0 0 8px}
.row .t{flex:1;min-width:0}
.row strong{display:block;font-size:13.5px;font-weight:650}
.row small{display:block;color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .pr{font-size:13px;font-weight:700;white-space:nowrap}
p.empty{grid-column:1/-1;padding:16px 6px;color:var(--muted);font-size:13px;line-height:1.55}
.combo{grid-column:1/-1;margin:10px 0;padding:12px 13px;border:1px solid #e6ddc8;border-radius:14px;background:#fdf8ec}
.combo h4{margin:0 0 5px;font-size:13px}
.combo p{margin:0 0 9px;font-size:12.5px;color:#5c5340;line-height:1.5}
.combo button{padding:7px 11px;border:1px solid #ddd2b8;border-radius:9px;font-size:12px;font-weight:600;background:#fff}
.pfoot{flex:0 0 auto;padding:10px 14px;border-top:1px solid var(--line);display:flex;gap:7px;flex-wrap:wrap;background:#f4f2e9}
.mini{padding:8px 12px;border:1px solid var(--line);border-radius:10px;font-size:12.5px;font-weight:600;color:#3a463f;background:#fff}
.mini[aria-pressed="true"]{background:var(--pri);border-color:var(--pri);color:#fff}
.mini.wide{flex:1;text-align:center}

/* ---------- fiche ---------- */
.detail{position:absolute;z-index:36;right:16px;top:16px;width:min(360px,calc(100% - 32px));
  max-height:calc(100% - 102px);overflow-y:auto;background:rgba(255,255,255,.99);
  border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 44px rgba(40,58,46,.18);
  animation:din .22s ease-out}
.detail[hidden]{display:none}
@keyframes din{from{opacity:0;transform:translateX(16px) scale(.98)}to{opacity:1;transform:none}}
.dpad{padding:20px}
.drow{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.eyebrow{margin:0 0 5px;color:var(--muted);font-size:11px;font-weight:500;letter-spacing:.02em}
.drow h2{font-size:21px;font-weight:600;letter-spacing:-.01em;color:var(--pri);
  display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.shot{position:relative;height:150px;margin:14px 0;border-radius:14px;overflow:hidden;
  background-image:var(--map);background-repeat:no-repeat;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.shot::after{content:"";position:absolute;inset:0;background:rgba(8,28,19,.06)}
.shot .dot{position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;
  background:var(--sun);border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.35);z-index:2}
.shot .cap{position:absolute;z-index:2;left:11px;bottom:11px;padding:5px 11px;border-radius:999px;
  background:rgba(255,255,255,.94);color:var(--pri);font-size:11.5px;font-weight:500}
.shot.empty{background-image:none;background:#eef1ee;border:1.5px dashed #c9d2cb;display:grid;place-items:center;text-align:center}
.shot.empty::after{display:none}
.shot.empty span.ph{color:#7d8a82;font-size:12.5px;font-weight:600;line-height:1.5;max-width:70%}
.thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:-6px 0 14px}
.th u{display:none}
.th.empty u{display:block;font-size:8px;line-height:1.15;padding:0 2px}
.th{position:relative;height:46px;border-radius:9px;overflow:hidden;border:1.5px solid transparent;
  background-image:var(--map);
  background-repeat:no-repeat;background-color:#eef1ee;cursor:pointer}
.th[aria-pressed="true"]{border-color:var(--pri);box-shadow:0 0 0 2px rgba(23,63,49,.18)}
.th.empty{display:grid;place-items:center;border:1.5px dashed #ccd4ce;background-image:none}
.th.empty i{font-style:normal;font-size:13px;opacity:.45}
.th u{position:absolute;left:0;right:0;bottom:0;padding:2px 3px;background:rgba(10,26,18,.55);color:#fff;
  font-size:8.5px;font-weight:700;text-align:center;text-decoration:none;letter-spacing:.02em}
.th.empty u{background:none;color:#8b968e;position:static;padding:0}
.prow{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0}
.pill{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:0 11px;border-radius:999px;font-size:12.5px;font-weight:700}
.pill i{width:8px;height:8px;border-radius:50%}
.pill.dispo{background:#e8efe6;color:var(--pri)}.pill.dispo i{background:var(--dispo)}
.pill.partiel{background:#fdeedd;color:#9a5a1c}.pill.partiel i{background:var(--partiel)}
.pill.occupe{background:#edf0ee;color:#5d6661}.pill.occupe i{background:#858e88}
.pill.incompat{background:#f0f2f0;color:#6a736d}.pill.incompat i{background:#b6beb8}
.prow .price{text-align:right}
.prow .price strong{display:block;font-size:20px;font-weight:600;color:var(--accent);line-height:1}
.prow .price span{color:#6e7a72;font-size:11.5px}
.badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.badge{padding:4px 11px;border-radius:999px;font-size:11.5px;font-weight:500;border:1px solid var(--line);color:#4c5b4f}
.badge.solid{background:var(--bg2,#eef1ec);border-color:transparent;color:#fff;font-weight:500}
.facts{display:grid;margin:14px 0}
.facts>div{min-height:38px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;
  border-bottom:1px solid var(--line);font-size:12.5px}
.facts>div:last-child{border-bottom:0}
.facts dt{color:var(--muted)}
.facts dd{margin:0;font-weight:650;text-align:right}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.tags span{padding:5px 11px;border-radius:999px;background:#f1f0e8;font-size:11.5px;font-weight:500;color:#4c5b4f}
.dsec{margin:16px 0 8px;font-size:12.5px;font-weight:600;color:var(--pri)}
.dist{display:flex;flex-direction:column;gap:4px}
.dist button{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:9px 11px;
  border:1px solid var(--line);border-radius:11px;font-size:12.5px;background:#fff;text-align:left}
.dist button:hover{border-color:var(--pri);background:#f4f8f5}
.dist b{font-weight:700}.dist small{color:var(--muted)}
.cal{display:grid;grid-template-columns:repeat(14,1fr);gap:3px;margin-bottom:6px}
.cal i{height:26px;border-radius:5px;background:#e3efe6;position:relative}
.cal i.b{background:#e8eae8}
.cal i em{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-style:normal;font-size:9px;color:#5c6b62}
.act{display:block;width:100%;min-height:48px;margin-top:12px;border-radius:12px;background:var(--accent);color:#fff;
  font-size:14px;font-weight:500;text-align:center;line-height:48px;text-decoration:none;
  box-shadow:0 6px 16px rgba(232,88,44,.25)}
.act.ghost{background:#fff;color:var(--pri);border:1px solid var(--line);margin-top:8px;box-shadow:none}
.act.dim{background:#eeece2;color:var(--muted);cursor:default;box-shadow:none}
.note{margin:12px 0 0;color:var(--muted2);font-size:10.5px;line-height:1.5;text-align:center}
.dclose{position:absolute;right:14px;top:14px;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;
  background:#fff;display:grid;place-items:center;font-size:17px;color:#344038;z-index:3}

/* ---------- accessoires carte ---------- */
.zoom{position:absolute;z-index:25;left:16px;bottom:calc(22px + var(--safeB));width:46px;display:grid;overflow:hidden;
  border:1px solid rgba(25,54,42,.12);border-radius:15px;background:rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(22,44,33,.16)}
.zoom button{width:46px;height:43px;display:grid;place-items:center;border-bottom:1px solid #e1e5e2;color:#193d2f;font-size:17px}
.zoom button:last-of-type{border-bottom:0;font-size:11.5px;font-weight:600}

.zoom span{padding:6px 2px;border-top:1px solid #e1e5e2;color:var(--muted);font-size:10px;font-weight:800;text-align:center}
.legend{display:none!important;position:absolute;z-index:22;left:78px;bottom:calc(22px + var(--safeB));min-height:38px;align-items:center;
  gap:13px;padding:0 15px;border:1px solid var(--line2);border-radius:999px;background:rgba(255,255,255,.93);
  color:#3d4942;font-size:11.5px;box-shadow:0 10px 26px rgba(22,44,33,.1);backdrop-filter:blur(12px);flex-wrap:wrap}
.legend span{display:flex;align-items:center;gap:6px;white-space:nowrap}
.legend i{width:9px;height:9px;border-radius:50%;background:var(--lc)}
.minicard{position:absolute;z-index:38;width:272px;padding:8px;background:#fff;border-radius:15px;
  box-shadow:0 14px 38px rgba(35,52,38,.3);cursor:pointer;animation:mpop .16s ease-out}
.minicard[hidden]{display:none}
@keyframes mpop{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.minicard.big{width:330px}
.minicard.big .ph{height:150px}
.minicard .nav{position:absolute;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;
  background:rgba(255,255,255,.92);color:var(--pri);display:grid;place-items:center;font-size:13px;
  box-shadow:0 2px 8px rgba(30,45,32,.25);opacity:0;transition:opacity .15s}
.minicard:hover .nav{opacity:1}
.minicard .nav.l{left:7px}.minicard .nav.r{right:7px}
.minicard .cap2{position:absolute;left:7px;top:7px;padding:3px 9px;border-radius:999px;
  background:rgba(255,255,255,.92);color:var(--pri);font-size:10px;font-weight:500}
.minicard .hrt{position:absolute;right:10px;top:10px;width:30px;height:30px;border-radius:50%;
  background:rgba(255,255,255,.92);display:grid;place-items:center;font-size:16px;color:var(--muted);
  box-shadow:0 2px 8px rgba(30,45,32,.22);z-index:2}
.minicard .hrt.on{color:var(--accent)}
.minicard .hrt:hover{background:#fff}
.mrows{margin:6px 2px 0;border-top:1px solid var(--line)}
.mrows div{display:flex;align-items:center;gap:9px;min-height:35px;border-bottom:1px solid var(--line);font-size:12px}
.mrows div:last-child{border-bottom:0}
.mrows .ico{color:var(--pri);opacity:.85}
.mrows span{color:var(--muted)}
.mrows b{margin-left:auto;font-weight:700;color:var(--ink);text-align:right}
.mfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:9px 2px 2px}
.stt{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;font-size:11px;font-weight:600;
  background:#e8efe6;color:var(--pri);min-width:0}
.stt i{width:7px;height:7px;border-radius:50%;background:var(--dispo);flex:0 0 7px}
.stt.partiel{background:#fdeedd;color:#9a5a1c}.stt.partiel i{background:var(--partiel)}
.stt.occupe,.stt.incompat{background:#eeece2;color:var(--muted)}.stt.occupe i,.stt.incompat i{background:var(--occupe)}
.mbtns{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.gx{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--muted);
  display:grid;place-items:center;flex:0 0 32px}
.gx:hover{color:var(--pri);border-color:var(--pri)}
.mstat{margin:10px 2px 0}
.mact{display:flex;align-items:center;gap:7px;margin:9px 2px 2px}
.bfiche{flex:1;min-height:38px;padding:0 10px;border-radius:10px;border:1px solid var(--line);background:#fff;
  color:var(--pri);font-size:12.5px;font-weight:600;white-space:nowrap}
.bfiche:hover{border-color:var(--pri)}
.bresa{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 10px;
  border-radius:10px;background:var(--accent);color:#fff;font-size:12.5px;font-weight:600;text-decoration:none;
  white-space:nowrap;box-shadow:0 4px 12px rgba(232,88,44,.3)}
.bresa:hover{background:var(--accent2)}
.bresa.off{background:#eeece2;color:var(--muted);box-shadow:none;cursor:default}
.go2{flex:0 0 38px;width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff;
  display:grid;place-items:center;box-shadow:0 4px 12px rgba(232,88,44,.35)}
.mscroll{max-height:var(--mmax,70vh);overflow-y:auto;overscroll-behavior:contain;
  margin:-8px;padding:8px;border-radius:15px;scrollbar-width:thin}
.mscroll::-webkit-scrollbar{width:6px}
.mscroll::-webkit-scrollbar-thumb{background:#dcded6;border-radius:6px}
.minicard .dots{display:flex;justify-content:center;gap:5px;padding:8px 0 2px}
.minicard .dots i{width:5px;height:5px;border-radius:50%;background:var(--line);cursor:pointer}
.minicard .dots i.on{background:var(--accent);width:14px;border-radius:3px}
.minicard .exp{position:absolute;right:22px;top:-9px;width:26px;height:26px;font-weight:600;border-radius:50%;background:#fff;
  display:grid;place-items:center;color:var(--muted);font-size:12px;box-shadow:0 3px 10px rgba(35,52,38,.22)}
.mfacts{display:grid;margin:8px 2px 2px;border-top:1px solid var(--line)}
.mfacts div{min-height:31px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;
  border-bottom:1px solid var(--line);font-size:11.5px}
.mfacts dt{color:var(--muted)}
.mfacts dd{margin:0;font-weight:500;text-align:right;color:#3a4a3e}
.minicard .cta{display:block;width:100%;min-height:40px;margin-top:10px;border-radius:10px;
  background:var(--accent);color:#fff;font-size:13px;font-weight:500;text-align:center;line-height:40px}
.minicard .ph{position:relative;height:104px;border-radius:11px;overflow:hidden;
  background-color:#e9ece7;background-image:var(--map);background-repeat:no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.minicard .ph.empty{display:grid;place-items:center;background-image:none;border:1.5px dashed #ccd4ce;
  color:var(--muted2);font-size:11px;text-align:center;padding:0 24px;line-height:1.5}
.minicard .pr{position:absolute;right:6px;bottom:6px;max-width:calc(100% - 52px);padding:5px 11px;border-radius:999px;
  background:var(--accent);color:#fff;font-size:11.5px;font-weight:500;box-shadow:0 3px 10px rgba(232,88,44,.35)}
.minicard .dim{position:absolute;left:6px;bottom:6px;padding:5px 10px;border-radius:999px;
  background:rgba(255,255,255,.94);color:var(--pri);font-size:11px;font-weight:500;
  box-shadow:0 2px 8px rgba(30,45,32,.22)}
.minicard .dim small{color:var(--muted);font-size:10px}
.minicard .mtag{margin:10px 2px 0}
.minicard h4{margin:6px 2px 3px;font-size:14.5px;font-weight:600;color:var(--pri);
  display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.bul{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ink);flex:0 0 5px;font-size:0;line-height:0}
.dimt{font-size:11.5px;font-weight:500;color:var(--muted)}
.drow h2 .bul{width:6px;height:6px;flex:0 0 6px}
.drow h2 .dimt{font-size:13.5px;color:var(--muted)}
.minicard .meta{margin:0 2px 7px;color:var(--accent);font-size:12px;font-weight:500}
.minicard ul{margin:0 2px 4px;padding:0 0 0 11px;list-style:none}
.minicard li{position:relative;font-size:11.5px;color:var(--muted);line-height:1.65}
.minicard li::before{content:"·";position:absolute;left:-9px;color:var(--muted2)}
.minicard .go{position:absolute;right:10px;bottom:10px;width:34px;height:34px;min-width:0;padding:0;border-radius:50%;
  background:var(--accent);color:#fff;display:grid;place-items:center;font-size:14px;
  box-shadow:0 4px 12px rgba(232,88,44,.35)}
.minicard .x{position:absolute;right:-14px;top:-14px;width:28px;height:28px;z-index:3;border-radius:50%;background:#fff;
  display:grid;place-items:center;color:var(--muted);font-size:15px;box-shadow:0 3px 10px rgba(35,52,38,.22)}
.minicard .foot{height:34px}
.maptop{position:absolute;z-index:24;left:14px;top:14px;display:flex;align-items:center;gap:8px}
.mapcount{padding:8px 13px;border-radius:8px;background:rgba(32,45,35,.82);color:#fff;
  font-size:12.5px;font-weight:500;backdrop-filter:blur(6px)}
.mapbtn{min-height:34px;padding:0 14px;border-radius:8px;background:#fff;border:1px solid var(--line);
  color:#3a4a3e;font-size:12.5px;font-weight:500;box-shadow:0 2px 10px rgba(30,45,32,.16)}
.mapbtn em{font-style:normal;opacity:.45;font-size:11px;margin-left:4px}
.mapbtn[aria-pressed="true"]{background:var(--pri);border-color:var(--pri);color:#fff}
.mobList{display:none;position:absolute;z-index:31;left:50%;transform:translateX(-50%);
  bottom:calc(14px + var(--safeB));min-height:42px;padding:0 20px;border-radius:999px;background:var(--pri);
  color:#fff;font-size:13.5px;font-weight:500;box-shadow:0 8px 22px rgba(40,58,44,.3)}
@media (max-width:900px){.mobList{display:block}}
.toast{position:absolute;z-index:70;left:50%;bottom:calc(22px + var(--safeB));transform:translateX(-50%);
  padding:10px 16px;border-radius:999px;background:#152019;color:#f7f6f1;font-size:13px;font-weight:500;
  box-shadow:var(--lift);opacity:0;pointer-events:none;transition:opacity .2s;max-width:80%;text-align:center}
.toast.show{opacity:1}
.sheetbg{position:absolute;inset:0;z-index:33;background:rgba(10,24,18,.3);opacity:0;pointer-events:none;transition:opacity .2s}
.sheetbg.on{opacity:1;pointer-events:auto}
.pop{position:absolute;z-index:45;width:min(304px,calc(100vw - 20px));padding:7px;
  background:rgba(255,255,255,.99);border:1px solid rgba(21,48,36,.12);border-radius:18px;box-shadow:var(--lift);
  max-height:min(62vh,430px);overflow-y:auto;backdrop-filter:blur(14px)}
.pop[hidden]{display:none}
.pophead{padding:8px 10px 5px;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.poprow{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:12px;
  font-size:13.5px;font-weight:550;text-align:left}
.poprow:hover{background:#f2f5f2}
.poprow i{width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:var(--ci,#ccc)}
.poprow .t{flex:1;min-width:0}
.poprow b{color:var(--muted);font-size:11.5px;font-weight:600}
.poprow .ck{width:19px;height:19px;flex:0 0 19px;display:grid;place-items:center;border:1.5px solid var(--line);
  border-radius:6px;font-size:11px;color:#fff;background:#fff}
.poprow[aria-pressed="true"] .ck{background:var(--pri);border-color:var(--pri)}
.poprow[aria-pressed="true"]{background:#f1f5f2}
.popfoot{margin-top:6px;padding:10px;border-top:1px solid #eef0ee}
.popfoot span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.popfoot input{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:#fbfcfb;font-size:13.5px}
.pop.guests{width:min(390px,calc(100vw - 20px));max-height:min(78vh,610px)}
.guestpick{display:flex;flex-direction:column;gap:2px;padding:4px 8px 10px}
.guestrow{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:8px 4px;border-bottom:1px solid #eef0ee}
.guestrow>span{min-width:0}.guestrow strong{display:block;color:var(--ink);font-size:13.5px}.guestrow small{display:block;margin-top:2px;color:var(--muted);font-size:10.5px}
.gueststep{display:grid;grid-template-columns:34px 34px 34px;align-items:center;flex:0 0 auto;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.gueststep button{width:34px;height:34px;color:var(--accent);font-size:20px;line-height:1}.gueststep button:hover:not([disabled]){background:var(--coral-soft)}
.gueststep button[disabled]{cursor:not-allowed;color:#c7ced0}.gueststep output{text-align:center;color:var(--ink);font-size:13.5px;font-weight:700}
.guestages{margin:8px 0 0;padding:10px;border:1px solid rgba(121,161,193,.32);border-radius:13px;background:var(--blue-soft)}
.guestages legend{padding:0 5px;color:var(--brand-navy);font-size:11.5px;font-weight:700}
.guestagegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.guestage{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:10.5px;font-weight:650}
.guestage select{width:100%;height:36px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 8px;color:var(--ink);font:inherit;font-size:12px}
.guestage select:invalid{color:#8a969b}
@media (max-width:420px){.guestagegrid{grid-template-columns:1fr}}

/* ---------- traçage ---------- */
.trace textarea{width:100%;height:140px;padding:10px;border:1px solid var(--line);border-radius:12px;
  background:#fbfcfb;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;resize:vertical}
.stat{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.stat div{flex:1;min-width:92px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#fbfcfb}
.stat b{display:block;font-size:19px;line-height:1.1}
.stat small{color:var(--muted);font-size:11px}
.help{font-size:12.5px;color:#4d5a52;line-height:1.55}
.help b{color:var(--ink)}
.help ol{margin:8px 0 0;padding-left:18px}
.lnk{display:block;margin-top:6px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;
  background:#fbfcfb;font-family:ui-monospace,Menlo,monospace;font-size:11px;word-break:break-all;
  user-select:all;-webkit-user-select:all;color:#2d3b33}
.help li{margin-bottom:6px}

@media (max-width:1180px){
  .detail{top:auto;bottom:0;right:0;left:0;width:100%;max-height:min(78%,640px);border-radius:24px 24px 0 0;
    animation:dup .22s ease-out;padding-bottom:var(--safeB)}
  @keyframes dup{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}
}
@media (max-width:900px){
  .hdr{height:auto;min-height:60px;flex-wrap:wrap;gap:8px;padding:8px 10px}
  .brand small{display:none}
  .avail{order:3;width:100%;flex-basis:100%;justify-content:flex-start;gap:6px}
  .avail .lbl{display:none}
  .dpill{height:40px;padding:0 12px;gap:7px;flex:1;min-width:0}
  .dpill b{font-size:11.5px;overflow:hidden;text-overflow:ellipsis}
  .dpill i{display:none}
  .gpill{height:40px;padding:0 12px;min-width:0;gap:6px}
  .gpill b{font-size:11.5px}
  .avail .go{width:40px;height:40px;flex:0 0 40px;font-size:14px}
  .brand .mark{width:36px;height:36px;flex:0 0 36px;font-size:16px}
  .brand strong{font-size:12.5px}
  .modes{justify-self:end}
  .modes button{padding:6px 10px;font-size:11.5px}
  .bar{top:auto;bottom:calc(16px + var(--safeB));left:50%!important;transform:translateX(-50%)}
  .chip{min-height:38px;padding:0 14px;font-size:12.5px}
  .panel{left:0;right:0;top:auto;bottom:0;width:auto;max-height:72%;border-radius:22px 22px 0 0;padding-bottom:var(--safeB)}
  .panel.closed{transform:translateY(110%)}
  .zoom{left:10px;bottom:calc(74px + var(--safeB));width:42px}
  .zoom button{width:42px;height:40px}
  .zoom span{display:none}
  .legend{left:60px;right:10px;bottom:calc(16px + var(--safeB));justify-content:space-around;gap:8px;font-size:10.5px;padding:0 10px}
}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ---- pictogrammes et greffes v17 ---- */
.ico{flex:0 0 auto;display:block}
.hnav{display:flex;gap:22px;margin-left:auto}
.hnav a{color:#3a4a3e;font-size:14px;font-weight:500;text-decoration:none}
.hnav a:hover{color:var(--pri)}
.rsv{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 20px;border-radius:999px;
  background:var(--pri);color:#fff;font-size:14px;font-weight:600;text-decoration:none;flex:0 0 auto;
  box-shadow:0 8px 20px rgba(40,58,44,.2)}
.avail{flex:1}
.gpill{gap:10px}
.gpill .ico{color:var(--muted)}
.dpill i .ico{color:var(--muted)}
.brand .mark{background:none;color:var(--pri);border:1.5px solid var(--line)}
.rail button i .ico{margin:0 auto}
.chip .ico{color:inherit;opacity:.8}
/* filtres rapides posés sur le plan */
.qrow{display:flex;gap:7px;flex-wrap:nowrap}
.qc{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 14px;border-radius:999px;
  background:rgba(255,255,255,.95);border:1px solid var(--line);color:#2f3d33;font-size:12.5px;font-weight:500;
  box-shadow:0 3px 12px rgba(30,45,32,.16);white-space:nowrap;backdrop-filter:blur(8px)}
.qc:hover{border-color:var(--pri)}
.qc[aria-pressed="true"]{background:var(--pri);border-color:var(--pri);color:#fff}
/* pilules du bas du plan */
.mapfoot{position:absolute;z-index:24;left:74px;bottom:calc(22px + var(--safeB));display:flex;gap:8px;align-items:center}
.mpill{display:flex;align-items:center;gap:14px;min-height:36px;padding:0 15px;border-radius:999px;
  background:rgba(255,255,255,.95);border:1px solid var(--line);font-size:12px;color:#3a4a3e;
  box-shadow:0 3px 12px rgba(30,45,32,.14);white-space:nowrap}
.mpill b{font-weight:600;color:var(--ink)}
.mpill .d{display:inline-flex;align-items:center;gap:6px}
.mpill .d i{width:9px;height:9px;border-radius:50%}
.mpill .sep{width:4px;height:4px;border-radius:50%;background:var(--muted2)}
/* fiche : lignes à pictogramme */
.facts>div{min-height:54px!important;font-size:14.5px!important}
.facts dt{display:flex;align-items:center;gap:14px;color:var(--muted)!important;font-weight:400}
.facts dt .ico{width:22px;height:22px;color:var(--pri);opacity:.85}
.facts dd{font-weight:700!important;color:var(--ink)!important}
.mfacts div{min-height:40px!important;font-size:12.5px!important}
.mfacts dt{display:flex;align-items:center;gap:10px}
.mfacts dt .ico{width:17px;height:17px;color:var(--pri);opacity:.85}
.mfacts dd{font-weight:700!important;color:var(--ink)!important}
.drow h2{font-weight:400!important;font-size:27px!important;letter-spacing:-.02em}
.act.main{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--pri);
  box-shadow:0 8px 20px rgba(40,58,44,.22);font-weight:600}
.favbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:40px;margin-top:8px;
  color:#3a4a3e;font-size:13.5px;font-weight:500}
.favbtn.on{color:var(--accent)}
.favbtn.on .ico{fill:currentColor}
.tot{display:flex;justify-content:space-between;margin-top:14px;padding:10px 12px;border-radius:10px;
  background:#f4f3ec;font-size:13px;color:#4c5b4f}
.tot b{color:var(--ink)}
@media (max-width:900px){.hnav{display:none}.rsv{height:38px;padding:0 14px;font-size:13px}
  .mapfoot{left:62px;bottom:calc(74px + var(--safeB))}.mpill.lg{display:none}.qrow{max-width:calc(100vw - 30px);overflow-x:auto}}

/* ---- extras ---- */
.hnav{gap:18px;flex:0 0 auto}
.avail{min-width:0}
@media (max-width:1560px){.avail .lbl{display:none}.dpill{padding:0 14px;gap:9px}.gpill{min-width:0;padding:0 14px}}
@media (max-width:1250px){.hnav{display:none}}
@media (max-width:1100px){
  .map-platform-brand{flex-direction:column;align-items:flex-start;gap:2px;padding-left:10px}
  .map-platform-brand>span{font-size:9px;line-height:1}
}
.hnav button{color:#3a4a3e;font-size:14px;font-weight:500}
.hnav button:hover{color:var(--pri)}
.hcart{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:44px;flex:0 0 auto;padding:0 13px;
  border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--pri);font-size:13px;font-weight:600}
.hcart:hover,.hcart[aria-pressed="true"]{border-color:var(--pri);background:var(--blue-soft)}
.hcart-count{position:absolute;right:-5px;top:-6px;display:grid;min-width:19px;height:19px;place-items:center;padding:0 5px;border:2px solid #fff;
  border-radius:999px;background:var(--accent);color:#fff;font-size:10px;line-height:1}
@media (max-width:1250px){.hcart{margin-left:auto}}
@media (max-width:700px){.hcart{width:40px;height:40px;padding:0}.hcart>span:not([data-i]){display:none}}
.rail button{position:relative}
.rb{position:absolute;top:4px;right:10px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;
  background:var(--accent);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}
.exwrap{display:flex;flex-direction:column;gap:8px}
.extabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}
.extabs button{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:11px 6px;
  border:1px solid var(--line);border-radius:12px;background:#fff;color:#3a4a3e;font-size:12.5px;font-weight:600}
.extabs button .ico{color:var(--pri)}
.extabs button[aria-pressed="true"]{background:var(--pri);border-color:var(--pri);color:#fff}
.extabs button[aria-pressed="true"] .ico{color:#fff}
.extabs b{position:absolute;top:6px;right:8px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;
  background:var(--accent);color:#fff;font-size:10.5px;display:grid;place-items:center}
.exfilters{display:flex;gap:7px;margin:0 0 12px;padding:1px 0 4px;overflow-x:auto;scrollbar-width:none}
.exfilters::-webkit-scrollbar{display:none}
.exfilters button{display:inline-flex;min-height:34px;flex:0 0 auto;align-items:center;gap:7px;padding:0 11px;border:1px solid var(--line);border-radius:999px;
  background:#fff;color:#53636c;font-size:11.5px;font-weight:700;white-space:nowrap}
.exfilters button:hover:not([disabled]){border-color:var(--brand-blue);background:var(--blue-soft)}
.exfilters button[aria-pressed="true"]{border-color:var(--brand-navy);background:var(--brand-navy);color:#fff}
.exfilters button[disabled]{opacity:.38;cursor:not-allowed}
.exfilters b{display:grid;min-width:18px;height:18px;place-items:center;padding:0 5px;border-radius:999px;background:rgba(121,161,193,.18);font-size:10px}
.exfilters button[aria-pressed="true"] b{background:rgba(255,255,255,.18)}
.exg{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.exg summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;
  font-size:14px;font-weight:600;color:var(--ink)}
.exg summary::-webkit-details-marker{display:none}
.exg summary .ico{color:var(--pri)}
.exg summary span{flex:1}
.exg summary em{font-style:normal;color:var(--muted);transform:rotate(90deg);transition:transform .18s;font-size:16px}
.exg[open] summary em{transform:rotate(-90deg)}
.exn{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;
  font-size:11px;display:grid;place-items:center}
.exi{display:flex;align-items:center;gap:12px;padding:11px 14px;border-top:1px solid var(--line)}
.exi.on{background:#fbf8f0}
.ext{flex:1;min-width:0}
.ext strong{display:block;font-size:13px;font-weight:600;color:var(--ink)}
.ext small{display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
.exp{display:block;margin-top:3px;font-size:12.5px;font-weight:700;color:var(--accent)}
.exp i{font-style:normal;font-weight:400;color:var(--muted);font-size:11.5px}
.exq{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.exq button{box-sizing:border-box;padding:0;flex:0 0 32px;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--pri);
  display:grid;place-items:center}
.exq button:hover:not([disabled]){border-color:var(--pri)}
.exq button[disabled]{opacity:.35}
.exq b{min-width:16px;text-align:center;font-size:13.5px;color:var(--ink)}
.tot.big{background:var(--pri);color:#fff;font-weight:600}
.tot.big b{color:#fff;font-size:15px}
.tot+.tot{margin-top:6px}
.extot{display:flex;flex-direction:column;justify-content:center;padding:0 6px;font-size:11.5px;color:var(--muted)}
.extot b{font-size:17px;color:var(--ink)}

/* ---- écrans moyens (tablette, fenêtre étroite) ---- */
@media (max-width:1000px){
  .brand > span{display:none}
  .rsv{font-size:0;gap:0;width:44px;padding:0;justify-content:center}
  .facts2 .chip.save{display:none}
}
@media (max-width:900px){
  .facts2 [data-act="panel"]{display:none}
  .mapfoot{bottom:calc(74px + var(--safeB))}
  .zoom{bottom:calc(74px + var(--safeB))!important}
}
@media (min-width:641px) and (max-width:900px){
  .hdr{flex-wrap:nowrap!important;height:66px!important;min-height:0;padding:0 14px!important;gap:10px!important}
  .avail{order:0!important;width:auto!important;flex:1 1 auto!important;flex-basis:auto!important;justify-content:center!important}
  .dpill{flex:0 1 auto!important;min-width:0}
  .dpill i{display:flex!important}
  .srch{flex:0 0 200px}
  .mpill.lg{display:flex!important}
}
@media (max-width:640px){
  .mpill.lg{display:none}
}

/* ---- téléphone : barre d'onglets en bas, entête sur deux lignes ---- */
@media (max-width:640px){
  .app{flex-direction:column}
  .col{order:1;flex:1;min-height:0}
  .rail{order:2;flex:0 0 auto;flex-direction:row;justify-content:space-around;gap:0;padding:4px 6px calc(4px + var(--safeB));
    border-right:0;border-top:1px solid var(--line)}
  .rail button{width:auto;flex:1;padding:6px 0}
  .rail button span{font-size:10px}
  .rb{right:calc(50% - 22px)}
  .hdr{flex-wrap:wrap!important;height:auto!important;padding:8px 10px!important;gap:8px!important}
  .rsv{margin-left:auto;width:40px;height:40px}
  .brand > span{display:block!important}
  .brand strong{font-size:13px}
  .brand small{display:none!important}
  .brand .havana-logo{width:154px;height:44px}
  .map-platform-brand{min-height:36px;gap:1px;padding-left:8px;border-left:0}
  .map-platform-brand img{width:78px;height:28px}
  .avail{order:3!important;flex:1 1 100%!important;width:100%!important;justify-content:flex-start!important;gap:6px!important}
  .dpill{flex:1 1 auto!important;min-width:0;height:40px;padding:0 12px}
  .dpill i{display:none!important}
  .gpill{height:40px;padding:0 10px;min-width:0}
  .gpill .ico{display:none}
  .avail .go{width:40px;height:40px;flex:0 0 40px}
  .fbar{min-height:52px;gap:8px;padding:0 10px}
  .srch{flex:1 1 auto;min-width:0}
  .chips{flex:0 0 auto}
  .chips .chip:not([data-pop="all"]){display:none}
  .chips .chip[data-pop="all"]{font-size:0;gap:0;padding:0 11px}
  .chips .chip[data-pop="all"] em{display:none}
  .chips .chip[data-pop="all"] .ico{width:18px;height:18px}
  .chips .chip[data-pop="all"] .badge{font-size:11px;margin-left:5px}
  .zoom{display:none!important}
  .mapfoot{left:10px;right:10px;bottom:calc(70px + var(--safeB))}
  .mapfoot .mpill{min-height:32px;padding:0 12px;font-size:11.5px}
  .qrow{max-width:calc(100vw - 28px)}
  .panel{width:auto!important}
  .pscroll{overflow-x:hidden;padding:14px 14px 16px}
  .sortrow .ttl{font-size:15px}
}
@media (max-width:420px){.brand>span{display:none!important}}

/* ---- haut à la Airbnb (version retenue) ---- */
.top-airbnb[data-mode="trace"] .scard,.top-airbnb[data-mode="explore"] .scard{display:none}
.top-airbnb .avail,.top-airbnb .fbar{display:none!important}
.top-airbnb .hnav{margin-left:auto}
.topzone{position:absolute;z-index:31;left:14px;right:calc(var(--pw,0px) + 14px);top:18px;
  display:flex;flex-direction:column;align-items:center;gap:14px;pointer-events:none;transition:right .22s}
.topzone>*{pointer-events:auto}
.scard{display:flex;align-items:center;width:min(1100px,100%);padding:9px 9px 9px 16px;background:rgba(255,255,255,.97);
  border:1px solid var(--line);border-radius:22px;box-shadow:0 14px 40px rgba(30,45,32,.18);backdrop-filter:blur(12px)}
.sf{flex:1;min-width:0;display:flex;align-items:center;gap:14px;padding:6px 14px;border-radius:14px;text-align:left}
.sf:hover{background:#f4f3ec}
.sf .ico{color:var(--pri);flex:0 0 auto}
.sf span{min-width:0}
.sf small{display:block;font-size:12px;color:var(--muted)}
.sf b{display:block;font-size:16px;letter-spacing:-.01em;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sdiv{flex:0 0 1px;height:34px;background:var(--line)}
.sgo{flex:0 0 auto;display:flex;align-items:center;gap:10px;height:54px;padding:0 22px;border-radius:15px;
  background:var(--pri);color:#fff;font-size:15px;font-weight:700;margin-left:8px}
.sgo:hover{background:var(--pri2)}
.top-airbnb .maptop{display:none}
.top-airbnb .qrow{justify-content:safe center;flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none;padding:2px 2px 6px}
.top-airbnb .qrow::-webkit-scrollbar{display:none}
.top-airbnb .qc{min-height:42px;padding:0 17px;font-size:13.5px}
.qn{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:10.5px;
  display:inline-grid;place-items:center}
@media (max-width:1150px){.sgo span{display:none}.sgo{padding:0 16px}}
@media (max-width:900px){.top-airbnb .qrow{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;scrollbar-width:none}
  .topzone{align-items:stretch}}
@media (max-width:640px){
  .topzone{top:10px;left:10px;right:10px}
  .scard{padding:6px;border-radius:16px}
  .sf{padding:4px 8px;gap:8px}.sf .ico{display:none}
  .sf small{font-size:10.5px}.sf b{font-size:13px}
  .sgo{height:44px;padding:0 13px;margin-left:4px;border-radius:12px}
  .top-airbnb .fbar{display:none!important}
}
.panel.search-view .phead{align-items:center;min-height:56px;padding:10px 18px;background:#fff}
.panel.search-view .phead>div{min-width:0}
.panel.search-view .phead h2{font-size:15px;font-weight:700;color:var(--ink)}
.panel.search-view .phead p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.panel.search-view .pclose{width:auto;height:36px;flex:0 0 auto;display:inline-flex;align-items:center;
  gap:8px;padding:0 11px;border-radius:10px;background:#f2f6f8;color:var(--pri);font-size:12.5px;font-weight:700}
.panel.search-view .pclose:hover{background:#e5eef3;border-color:#b8ccd8}
.panel.search-view .pclose span{font-size:18px;font-weight:400;line-height:1}
@media(max-width:640px){.panel.search-view .phead{padding:8px 14px}.panel.search-view .phead p{display:none}}

/* ---- champ Emplacement dans la carte de recherche ---- */
.sq{flex:1.15;cursor:text}
.sf b{min-width:0}
.sq input{display:block;width:100%;border:0;outline:0;background:none;padding:0;font-size:16px;font-weight:700;
  color:var(--ink);font-family:inherit}
.sq input::placeholder{color:#9aa598;font-weight:500}
.sq input::-webkit-search-cancel-button{cursor:pointer}
@media (max-width:640px){
  .scard{flex-wrap:wrap;row-gap:4px}
  .sq{order:-1;flex:1 1 100%;border-bottom:1px solid var(--line);border-radius:10px 10px 0 0;padding-bottom:8px}
  .sq .ico{display:none}
  .sq input{font-size:14px}
  .sd0{display:none}
}

/* ---- suggestions de recherche ---- */
.kwdrop{position:absolute;z-index:45;width:min(430px,calc(100vw - 30px));max-height:min(62vh,480px);overflow-y:auto;padding:8px;
  background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 44px rgba(30,45,32,.22);pointer-events:auto}
.kwdrop[hidden]{display:none}
.kwh{margin:8px 10px 4px;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.kwr{display:flex;align-items:center;gap:12px;width:100%;padding:9px 10px;border-radius:12px;text-align:left}
.kwr:hover{background:#f4f3ec}
.kwr .ico{flex:0 0 auto;color:var(--pri);width:34px;height:34px;padding:8px;border-radius:10px;background:#f1f0e8;box-sizing:border-box}
.kwr span{min-width:0}
.kwr b{display:block;font-size:13.5px;font-weight:600;color:var(--ink)}
.kwr small{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kwr.strong .ico{background:var(--pri);color:#fff}
.kwnone{margin:2px 10px 8px;font-size:12.5px;color:var(--muted)}

/* ---- fiches des lieux ---- */
.pdesc{margin:10px 2px 4px;font-size:12.5px;line-height:1.55;color:#4c5b4f}
.pkh{margin:10px 2px 6px;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.pkl{list-style:none;margin:0 2px;padding:0}
.minicard .pkl li::before{content:none}
.minicard .pkl li{padding-left:0}
.pkl li{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:#3a4a3e;line-height:1.45;margin-bottom:6px}
.pkl li .ico{color:var(--dispo);margin-top:2px}
.bfiche.wide{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;margin-top:6px}
.bfiche{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.ttag i .ico{width:13px;height:13px}

/* ---- Mon compte ---- */
.hacct{position:relative;width:44px;height:44px;flex:0 0 44px;border-radius:50%;border:1px solid var(--line);background:#fff;
  color:var(--pri);display:grid;place-items:center}
.hacct:hover,.hacct[aria-pressed="true"]{border-color:var(--pri);background:#f4f3ec}
.hacct .rb{top:-3px;right:-3px}
.acard{border:1px solid var(--line);border-radius:14px;background:#fff;padding:6px 6px 8px;margin-bottom:12px}
.ah{display:flex;align-items:center;gap:9px;margin:6px 8px 6px;font-size:14px;font-weight:600;color:var(--ink)}
.ah .ico{color:var(--pri)}
.ah b{margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#f1f0e8;color:var(--muted);
  font-size:11.5px;display:grid;place-items:center}
.arow{display:flex;align-items:center;gap:4px;border-top:1px solid var(--line)}
.aopen{flex:1;min-width:0;display:flex;align-items:center;gap:11px;padding:10px 8px;text-align:left;border-radius:10px}
.aopen:hover{background:#f7f6f0}
.aopen .ico{flex:0 0 auto;color:var(--pri)}
.aopen span{min-width:0}
.aopen b{display:block;font-size:13px;font-weight:600;color:var(--ink)}
.aopen small{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arm{width:30px;height:30px;flex:0 0 30px;border-radius:50%;color:var(--muted);font-size:17px}
.arm:hover{background:#f4f3ec;color:var(--ink)}
.ago{position:relative;width:32px;height:32px;flex:0 0 32px;border-radius:50%;border:1px solid var(--line);color:var(--pri);display:grid;place-items:center}
.ago em,.howto em{position:absolute;top:-4px;right:-4px;width:15px;height:15px;border-radius:50%;background:var(--accent);color:#fff;
  font-style:normal;font-size:10px;font-weight:700;display:grid;place-items:center}
.howto{position:relative;color:var(--pri)!important}
.aempty{margin:4px 8px 6px;font-size:12px;color:var(--muted);line-height:1.5}
.atot{display:flex;justify-content:space-between;margin:6px 8px 2px;padding-top:8px;border-top:1px solid var(--line);font-size:13px}
.atot b{color:var(--ink)}
.bresa.done{background:var(--pri);box-shadow:none}
@media (max-width:640px){.hacct{display:none}}
.rail .sm{display:none}
@media (max-width:640px){.rail .lg{display:none}.rail .sm{display:inline}}

/* ---- pied des fiches de lieux : deux lignes, jamais plus large que la carte ---- */
.minicard .mscroll{overflow-x:hidden}
.mact.two{flex-wrap:wrap}
.mact.two .howto2{flex:1;min-width:0;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:0 10px;color:var(--pri)}
.mact.two .howto2 .ico{flex:0 0 auto}
.mact.two .howto2 .wk{position:relative;display:inline-flex;margin-right:5px}
.mact.two .howto2 em{position:absolute;right:-9px;top:-7px;width:14px;height:14px;border-radius:50%;background:var(--accent);
  color:#fff;font-style:normal;font-size:9.5px;font-weight:700;display:grid;place-items:center}
.mact.two .howto2.main{background:var(--accent);border-color:var(--accent);color:#fff}
.mact.two .howto2.main em{background:#fff;color:var(--accent)}
.mprim{flex:1 1 100%;display:flex}
.mprim .bresa{flex:1;min-width:0}
.bresa{overflow:hidden;text-overflow:ellipsis}

/* ---- barre de trajet ---- */
.rbar{position:absolute;z-index:33;left:calc((100% - var(--pw,0px))/2);transform:translateX(-50%);bottom:calc(72px + var(--safeB));
  width:min(880px,calc(100% - var(--pw,0px) - 28px));background:#fff;border:1px solid var(--line);border-radius:18px;
  box-shadow:0 14px 36px rgba(30,45,32,.22);padding:10px 12px}
.rbar[hidden]{display:none}
.rrow{display:flex;align-items:center;gap:10px}
.rdot{flex:0 0 26px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:12.5px}
.rdot.a{background:#2f5a3a}.rdot.b{background:var(--accent)}
.rfrom,.rto{position:relative;min-width:0}
.rfrom small,.rto small,.rlen small{display:block;font-size:11px;color:var(--muted)}
.rto b{display:block;font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
.rsel{font-size:13.5px;font-weight:700;color:var(--pri);padding:0;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis;display:block}
.rfrom{flex:0 1 auto;min-width:0}
.rto{flex:0 1 auto}
.rsel em{font-style:normal;opacity:.5;font-size:11px}
.rarrow{color:var(--muted2);flex:0 0 auto}
.rlen{margin-left:auto;text-align:right;flex:0 0 auto}
.rlen b{display:block;font-size:15px;color:var(--ink)}
.rx{flex:0 0 30px;width:30px;height:30px;border-radius:50%;color:var(--muted);font-size:18px}
.rx:hover{background:#f4f3ec}
.rlist{position:absolute;left:-8px;bottom:calc(100% + 12px);width:250px;padding:6px;background:#fff;border:1px solid var(--line);
  border-radius:14px;box-shadow:0 14px 36px rgba(30,45,32,.2);z-index:5}
.rlist[hidden]{display:none}
.rlist button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border-radius:10px;font-size:13px;color:#3a4a3e;text-align:left}
.rlist button .ico{color:var(--pri)}
.rlist button:hover{background:#f4f3ec}
.rlist button[aria-pressed="true"]{background:#eef3ec;font-weight:600}
body.picking .vp,body.netediting .vp{cursor:crosshair}
.netsvg{position:absolute;left:0;top:0;pointer-events:none;z-index:3}
.netsvg line{stroke:#1f7fd1;stroke-width:3.2;stroke-linecap:round;opacity:.85}
.netsvg circle.last{fill:#1f7fd1;stroke:#fff;stroke-width:2.5}
@media (max-width:640px){
  .rbar{bottom:calc(118px + var(--safeB));padding:8px 10px}
  .rarrow,.rdot.b{display:none}
  .rto b{max-width:110px}
}

/* ---- client connecté ---- */
.homepin{position:absolute;z-index:6;transform:translate(-50%,-100%) scale(var(--cs,1));transform-origin:50% 100%;display:flex;flex-direction:column;align-items:center;pointer-events:none}
.homepin span{width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#2f5a3a;border:2.5px solid #fff;
  display:grid;place-items:center;box-shadow:0 4px 12px rgba(0,0,0,.35)}
.homepin span .ico{transform:rotate(45deg);color:#fff}
.homepin b{margin-top:3px;padding:2px 8px;border-radius:999px;background:#2f5a3a;color:#fff;font-size:11px;white-space:nowrap;
  box-shadow:0 2px 8px rgba(0,0,0,.25)}
.acard.me{background:#f7f6ef}
.mefacts div{display:flex;justify-content:space-between;gap:10px;padding:7px 8px;border-top:1px solid var(--line);font-size:12.5px}
.mefacts span{color:var(--muted)}
.mefacts b{color:var(--ink);text-align:right}
.lnk{color:var(--pri);font-weight:700;text-decoration:underline;text-underline-offset:2px;padding:0}
.lform{display:flex;flex-direction:column;gap:8px;padding:4px 8px 2px}
.lform label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.lform label small{font-size:10.5px}
.lform input{height:38px;border:1px solid var(--line);border-radius:10px;padding:0 11px;font-size:13.5px;color:var(--ink);background:#fff;font-family:inherit}
.lform input:focus{outline:0;border-color:var(--pri)}
body.logged .hacct{border-color:var(--pri);background:#eef3ec}

/* ---- étapes du trajet ---- */
.rsteps{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;
  background:#fff;color:var(--pri);font-size:12.5px;font-weight:600;flex:0 0 auto}
.rsteps b{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:10.5px;display:grid;place-items:center}
.rsteps[aria-pressed="true"]{background:var(--pri);border-color:var(--pri);color:#fff}
.rlist2{list-style:none;margin:10px 0 2px;padding:8px 0 0;border-top:1px solid var(--line);max-height:min(38vh,300px);overflow-y:auto}
.rlist2[hidden]{display:none}
.rlist2 li{display:flex;align-items:center;gap:12px;padding:8px 8px;border-radius:12px;cursor:pointer;font-size:13px;color:#2f3d33;line-height:1.4}
.rlist2 li:hover{background:#f6f5ee}
.rlist2 li.on{background:#fdeee6}
.rlist2 .si{position:relative;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:#f1f0e8;color:var(--pri);display:grid;place-items:center}
.rlist2 li.left .si,.rlist2 li.right .si{background:#fdeee6;color:var(--accent)}
.rlist2 li.end .si{background:var(--accent);color:#fff}
.rlist2 li.start .si{background:#2f5a3a;color:#fff}
.rlist2 .si em{position:absolute;top:-5px;left:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#fff;
  border:1.5px solid var(--accent);color:var(--accent);font-style:normal;font-size:9.5px;font-weight:700;display:grid;place-items:center}
@media (max-width:640px){.rsteps span{display:none}.rlist2{max-height:30vh}
  .rrow{flex-wrap:wrap;row-gap:8px;gap:8px}
  .rfrom{flex:1 1 calc(100% - 40px)}
  .rsel{white-space:normal;text-align:left}
  .rbar .rdot.b{display:grid}
  .rto{flex:1 1 0;min-width:0}.rto b{max-width:none}
  .rlen b{font-size:14px}}

/* ---- partage ---- */
.rshare{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;
  background:#fff;color:var(--pri);font-size:12.5px;font-weight:600;flex:0 0 auto}
.rshare:hover{border-color:var(--pri)}
.shsheet{position:absolute;inset:0;z-index:60;background:rgba(20,30,24,.28);display:flex;align-items:center;justify-content:center;padding:14px}
.shsheet[hidden]{display:none}
.shcard{width:min(560px,100%);max-height:100%;overflow-y:auto;overscroll-behavior:contain;background:#fff;border-radius:22px;
  padding:0 16px 18px;box-shadow:0 20px 50px rgba(0,0,0,.28)}
.shh{position:sticky;top:0;z-index:2;padding:16px 36px 10px 0;margin:0 -16px 6px;padding-left:16px;background:#fff;
  border-bottom:1px solid var(--line)}
.shh b{display:block;font-size:17px;color:var(--ink)}
.shh small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.shh .rx{position:absolute;right:10px;top:12px}
.shsec{display:flex;align-items:center;gap:8px;margin:14px 2px 8px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.shsec .ico{color:var(--pri)}
.shfam{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.shfam label{display:flex;align-items:center;gap:11px;padding:8px 6px;border-radius:12px;font-size:14px;color:var(--ink);cursor:pointer}
.shfam label:hover{background:#f6f5ee}
.shfam input{width:18px;height:18px;accent-color:var(--pri)}
.shfam .av{width:32px;height:32px;border-radius:50%;background:#e4ece2;color:var(--pri);display:grid;place-items:center;font-weight:700}
.shgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:8px}
.shb{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 6px;border:1px solid var(--line);border-radius:14px;
  background:#fff;color:var(--pri);font-size:12.5px;font-weight:600;text-decoration:none}
.shb:hover{border-color:var(--pri);background:#f7f6ef}
.shb small{font-size:10.5px;color:var(--muted);font-weight:500;margin-top:-4px}
.imgov{position:fixed;inset:0;z-index:200;background:rgba(15,22,18,.6);display:flex;align-items:center;justify-content:center;padding:16px}
.imgov[hidden]{display:none}
.imgcard{background:#fff;border-radius:20px;padding:14px;max-width:min(440px,100%);max-height:100%;overflow-y:auto;text-align:center}
.imgcard img{width:100%;border-radius:12px;display:block;box-shadow:0 6px 20px rgba(0,0,0,.18)}
.imgcard p{font-size:12.5px;color:var(--muted);margin:10px 4px}
.imgact{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.imgact .bfiche{display:inline-flex;align-items:center;gap:6px;padding:0 14px;text-decoration:none;min-height:40px}
.imgact .bresa{flex:1 1 100%}
@media (max-width:1180px){.rshare span{display:none}.rshare{padding:0 10px}}

/* ---- repères de l'admin ---- */
.rpk{position:absolute;z-index:7;transform:translate(-50%,-50%) scale(var(--cs,1));display:flex;align-items:center;gap:5px;pointer-events:none}
.rpk i{width:14px;height:14px;background:#7b4bd1;border:2.5px solid #fff;transform:rotate(45deg);box-shadow:0 2px 6px rgba(0,0,0,.35);flex:0 0 14px}
.rpk b{padding:2px 8px;border-radius:999px;background:#7b4bd1;color:#fff;font-size:11.5px;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.rpk.tmp i,.rpk.tmp b{background:#e8582c}
.rpform{margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#faf9f3}
.rpform label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}
.rpform input{height:38px;border:1px solid var(--line);border-radius:10px;padding:0 11px;font-size:14px;color:var(--ink);font-family:inherit}
.rpform input:focus{outline:0;border-color:var(--pri)}
.rpex{margin:8px 2px;font-size:12.5px;color:#7b4bd1;font-style:italic}
.rplist{list-style:none;margin:10px 0 0;padding:0}
.rplist li{display:flex;align-items:center;gap:8px;padding:7px 4px;border-top:1px solid var(--line);font-size:13px}
.rplist li span{flex:1;min-width:0;color:var(--ink)}
.rplist li span::before{content:"";display:inline-block;width:9px;height:9px;background:#7b4bd1;transform:rotate(45deg);margin-right:9px}
.rplist button{font-size:12px;color:var(--pri);padding:4px 8px;border-radius:8px}
.rplist button:hover{background:#f1f0e8}

/* ---- photos des étapes ---- */
.rlist2 li{flex-wrap:wrap}
.rlist2 .st{flex:1;min-width:0}
.stph{width:86px;height:58px;object-fit:cover;border-radius:10px;flex:0 0 auto;cursor:zoom-in;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.rcam{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#7b4bd1;color:#fff;font-style:normal;margin-left:2px}
.phcard img{max-height:70vh;object-fit:contain;background:#111}
.phcard p{color:#2f3d33;font-size:13.5px}
.shmode{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 2px}
.shmode.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:520px){.shmode.three{grid-template-columns:1fr}.shmode.three button{flex-direction:row;align-items:baseline;gap:10px}}
.shmode button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 12px;border:1.5px solid var(--line);border-radius:14px;
  background:#fff;text-align:left}
.shmode button b{font-size:14px;color:var(--ink)}
.shmode button small{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--muted)}
.shmode button[aria-pressed="true"]{border-color:var(--pri);background:#eef3ec}
.shmode button[disabled]{opacity:.5;cursor:not-allowed}
.rpfile{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;margin-top:10px;padding:9px 11px;border:1px dashed #b9b3d6;
  border-radius:10px;color:#7b4bd1!important;cursor:pointer;font-size:12.5px!important}
.rpfile input{display:none}
.rpfile small{color:var(--muted)}
.rpprev{display:block;width:100%;max-height:170px;object-fit:cover;border-radius:10px;margin-top:8px}
.rplist li img{width:44px;height:32px;object-fit:cover;border-radius:6px;cursor:zoom-in}
.rpcam{display:inline-grid;place-items:center;width:30px;height:28px;border-radius:8px;color:#7b4bd1;cursor:pointer}
.rpcam:hover{background:#f1eefa}
.rpcam input{display:none}


/* ---- programmation ---- */
.pnext{display:flex;align-items:center;gap:6px;margin:6px 2px 0;font-size:12.5px;font-weight:600;color:var(--accent)}
.pcal{margin-top:8px;color:var(--pri)!important;min-height:38px}
.pweek{list-style:none;margin:0 2px;padding:0}
.pweek li{display:flex;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:12.5px}
.pweek b{flex:0 0 64px;color:var(--pri);font-weight:700}
.pweek span{color:#3a4a3e}
.pgf{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.pgf button{padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12.5px;color:#3a4a3e}
.pgf button[aria-pressed="true"]{background:var(--pri);border-color:var(--pri);color:#fff}
.pgday{margin-bottom:12px;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.pgday.stay{border-color:#b9d0b5}
.pgd{display:flex;align-items:center;justify-content:space-between;margin:0;padding:9px 12px;background:#f6f5ee;font-size:13px;font-weight:700;
  color:var(--ink)}
.pgd span::first-letter{text-transform:uppercase}
.pgday.stay .pgd{background:#eaf2e7}
.pgd em{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--pri)}
.pgev{display:flex;align-items:center;gap:12px;padding:10px 12px;border-top:1px solid var(--line)}
.pgh{flex:0 0 62px;font-size:14px;color:var(--pri)}
.pgh small{display:block;font-size:11px;font-weight:400;color:var(--muted)}
.pgt{flex:1;min-width:0}
.pgt strong{display:block;font-size:13.5px;color:var(--ink);font-weight:600}
.pgt small{display:block;font-size:11.5px;color:var(--muted)}
.pgbk{padding:6px 10px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;font-weight:600}
.pgadd{width:34px;height:34px;flex:0 0 34px;border-radius:50%;border:1px solid var(--line);color:var(--pri);display:grid;place-items:center;background:#fff}
.pgadd.on{background:var(--pri);border-color:var(--pri);color:#fff}
.pgnone{margin:0;padding:10px 12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}

/* ---- vue du plan à chaque étape ---- */
.stwrap{position:relative;flex:0 0 auto;display:block;cursor:zoom-in}
.stmap{position:relative;border-radius:10px;overflow:hidden;background-repeat:no-repeat;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.stmap svg{position:absolute;inset:0}
.stwrap .stph{display:block;width:96px;height:64px}
.stlab{position:absolute;left:4px;bottom:4px;padding:1px 6px;border-radius:999px;background:rgba(20,30,24,.66);color:#fff;font-size:9.5px;font-weight:600}
.stlab.ph{background:#7b4bd1}
.phcard .stmap{margin:0 auto;border-radius:14px}
.phnote{font-size:12px!important;color:var(--muted)!important;margin-top:-4px!important}
@media (max-width:640px){.stwrap{margin-left:46px;width:calc(100% - 46px)}.stwrap .stmap,.stwrap .stph{width:100%!important}}

.imgtop{position:sticky;top:-14px;z-index:2;display:flex;align-items:center;gap:10px;margin:-14px -14px 12px;padding:12px 14px;
  background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);border-radius:20px 20px 0 0}
.imgtop span{font-size:13px;font-weight:600;color:var(--ink)}
.imgback{display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 13px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:var(--pri);font-size:13px;font-weight:600}
.imgback:hover{border-color:var(--pri)}
@media (max-width:640px){.shsheet{align-items:flex-end;padding:10px}}

/* ---- fiche : photo plus haute, agrandir sur la photo, pied 1/4 · 3/4 ---- */
.minicard .ph{height:150px!important}
.minicard.big .ph{height:196px!important}
.phx{position:absolute;left:8px;bottom:8px;z-index:3;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.94);
  color:var(--pri);display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.phx:hover{background:#fff}
.minicard .ph .nav{top:50%}
.pnx{display:flex;align-items:flex-start;gap:10px;margin:10px 2px 2px;padding:10px 12px;border-radius:12px;background:#fdf1ea}
.pnx .ico{color:var(--accent);flex:0 0 auto;margin-top:2px}
.pnx span{min-width:0}
.pnx small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#b0603a}
.pnx b{display:block;font-size:14px;color:var(--ink);line-height:1.3}
.pnx em{display:block;font-style:normal;font-size:12px;color:#6b5a50}
.pnx.pool{background:#e6f3f8}
.pnx.pool .ico{color:#2b90ad}
.pnx.pool small{color:#1f7390}
.pnx.pool em{color:#4f6b75}
.mprim{gap:8px}
.pside{flex:0 0 25%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;
  border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--pri)}
.pside small{font-size:10.5px;font-weight:600;color:var(--pri)}
.pside:hover{border-color:var(--pri)}
.mprim .bresa{min-height:44px;min-width:0;white-space:normal;line-height:1.2;text-align:center;padding:4px 10px;font-size:13px}
.mprim .bresa .ico{flex:0 0 auto}

/* ---- rappels ---- */
.pnx{position:relative;padding-right:52px!important}
.pnxal{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;background:#fff;
  color:var(--accent);display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.pnx.pool .pnxal{color:#2b90ad}
.pnxal.on,.pgal.on{background:var(--accent);color:#fff}
.pnx.pool .pnxal.on{background:#2b90ad;color:#fff}
.pgal{width:34px;height:34px;flex:0 0 34px;border-radius:50%;border:1px solid var(--line);color:var(--accent);display:grid;place-items:center;background:#fff}
.rmenu{position:fixed;z-index:300;padding:8px;background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:0 14px 36px rgba(30,45,32,.24)}
.rmh{margin:4px 40px 8px 8px}
.rmenu .rmx{position:absolute;right:8px;top:8px;width:30px;height:30px;padding:0;border-radius:50%;background:#f1f0e8;color:var(--muted);
  font-size:18px;font-weight:400;line-height:1;display:grid;place-items:center}
.rmenu .rmx:hover{background:#e4e2d8;color:var(--ink)}
.rmh b{display:block;font-size:13.5px;color:var(--ink)}
.rmh small{display:block;font-size:11.5px;color:var(--muted)}
.rmenu button,.rmenu a{display:flex;align-items:center;gap:11px;width:100%;padding:9px 8px;border-radius:10px;text-align:left;
  font-size:13px;font-weight:600;color:var(--ink);text-decoration:none}
.rmenu button:hover,.rmenu a:hover{background:#f6f5ee}
.rmenu .ico{flex:0 0 auto;color:var(--pri)}
.rmenu small{display:block;font-size:11px;font-weight:400;color:var(--muted)}
/* un bouton de taille fixe garde sa taille : la marge intérieure est comptée dedans */
button{box-sizing:border-box}

/* ---- statut des lieux ---- */
.pin{position:absolute}
.pin .pst{display:none;position:absolute;right:-3px;top:-3px;width:11px;height:11px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.pin[data-st="ferme"] .pst{display:block;background:#d23c2c}
.pin[data-st="complet"] .pst{display:block;background:#e59a2d}
.pin[data-st="avis"] .pst{display:block;background:#2b90ad}
.pin[data-st="ferme"]>span{border:3px solid #d23c2c!important;opacity:.85}
.pin[data-st="complet"]>span{border:3px solid #e59a2d!important}
.pin[data-st="avis"]>span{border:3px solid #2b90ad!important}
.pin .pst{width:13px!important;height:13px!important}
.mstatbar{display:flex;align-items:center;gap:7px;margin:6px 2px 0;padding:7px 10px;border-radius:10px;font-size:12px;font-weight:600}
.mstatbar.no,.fstat.no{background:#fbe5e2;color:#a8301f}
.mstatbar.full,.fstat.full{background:#fdf0dd;color:#9a5a1c}
.mstatbar.info,.fstat.info{background:#e3f1f6;color:#1f6d86}
.fstat.ok{background:#e8f2e6;color:#2f5a3a}
.pfiche{margin-top:8px;color:var(--pri)!important;min-height:38px}
/* ---- fiche complète ---- */
.fstat{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;font-size:13px;margin-bottom:12px}
.fstat b{margin-right:6px}
.fhero{position:relative;height:190px;border-radius:14px;background-repeat:no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}

.fdesc{margin:12px 2px 10px;font-size:13.5px;line-height:1.55;color:#3a4a3e}
.fsec{margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.fsec h4{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:14px;color:var(--ink)}
.fsec h4 .ico{color:var(--pri)}
.fr{margin:0}
.fr div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--line);font-size:13px}
.fr div:first-child{border-top:0}
.fr dt{color:var(--muted);display:flex;align-items:center;gap:7px}
.fr dd{margin:0;font-weight:600;color:var(--ink);text-align:right}
.fr dd a{color:var(--pri)}
.fr.top{padding:4px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.fl{list-style:none;margin:0;padding:0}
.fl li{display:flex;gap:8px;padding:4px 0;font-size:13px;color:#3a4a3e}
.fl li .ico{color:var(--dispo);flex:0 0 auto;margin-top:2px}
.fp{margin:4px 0;font-size:13px;color:#3a4a3e}
/* ---- éditeur des lieux ---- */
.allieux{list-style:none;margin:10px 0 0;padding:0}
.allieux button{display:flex;align-items:center;gap:11px;width:100%;padding:10px 8px;border-top:1px solid var(--line);text-align:left}
.allieux button:hover{background:#f6f5ee}
.allieux .n,.edh .n{width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--pri);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}
.allieux .t{flex:1;min-width:0}
.allieux b{display:block;font-size:13.5px;color:var(--ink)}
.allieux small{display:block;font-size:11.5px;color:var(--muted)}
.stc{font-style:normal;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px}
.stc.ok{background:#e8f2e6;color:#2f5a3a}.stc.no{background:#fbe5e2;color:#a8301f}.stc.full{background:#fdf0dd;color:#9a5a1c}.stc.info{background:#e3f1f6;color:#1f6d86}
.edh{display:flex;align-items:center;gap:10px;margin:12px 0 4px;font-size:17px;color:var(--ink)}
.edsec{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}
.edsec label{display:flex;flex-direction:column;gap:5px;margin-top:9px;font-size:12px;color:var(--muted)}
.edsec input,.edsec textarea{border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:13.5px;color:var(--ink);font-family:inherit;background:#fff}
.edsec input:focus,.edsec textarea:focus{outline:0;border-color:var(--pri)}
.edst{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.edst button{padding:9px 4px;border:1.5px solid var(--line);border-radius:10px;font-size:12.5px;font-weight:600;background:#fff;color:#3a4a3e}
.edst button.ok[aria-pressed="true"]{background:#2f5a3a;border-color:#2f5a3a;color:#fff}
.edst button.no[aria-pressed="true"]{background:#d23c2c;border-color:#d23c2c;color:#fff}
.edst button.full[aria-pressed="true"]{background:#e59a2d;border-color:#e59a2d;color:#fff}
.edst button.info[aria-pressed="true"]{background:#2b90ad;border-color:#2b90ad;color:#fff}
.edsc{display:flex;flex-direction:column;gap:6px;margin:10px 0;padding:10px;border-radius:12px;background:#f7f6ef}
.edsc input{font-weight:700}
.edrm{align-self:flex-end;font-size:12px;color:#a8301f;padding:3px 6px}
.ptitle{display:flex;align-items:center;gap:10px;margin:10px 2px 3px}
.ptitle h4{flex:1;min-width:0;margin:0!important}
.ptname{padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.ptname:hover{color:var(--pri);text-decoration:underline;text-underline-offset:3px}
.pflink{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border-radius:999px;
  background:#eef3ec;color:var(--pri);font-size:12px;font-weight:600}
.pflink em{font-style:normal;font-size:14px;line-height:1}
.pflink:hover{background:var(--pri);color:#fff}

/* ---- carrousel de la fiche complète ---- */
.fhero{position:relative;height:280px!important;border-radius:16px;overflow:hidden;background-color:#dfe6dc;touch-action:pan-y;user-select:none}
.fhlab{position:absolute;left:12px;top:12px;padding:4px 11px;border-radius:999px;background:rgba(255,255,255,.94);font-size:12px;font-weight:600;color:var(--ink)}
.fhnum{position:absolute;right:12px;bottom:12px;padding:4px 11px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-size:13px}
.fhnav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.94);
  color:var(--ink);font-size:22px;line-height:1;display:grid;place-items:center;box-shadow:0 3px 10px rgba(0,0,0,.25)}
.fhnav.l{left:12px}.fhnav.r{right:12px}
.fhnav:hover{background:#fff}
.fhcount{position:absolute;right:12px;top:12px;padding:3px 10px;border-radius:999px;background:rgba(20,30,24,.62);color:#fff;font-size:11.5px;font-weight:600}
.fhdots{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:6px}
.fhdots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.6);cursor:pointer}
.fhdots i.on{background:#fff;width:20px;border-radius:999px}
.edph{display:flex;flex-wrap:wrap;gap:8px}
.edph span{position:relative}
.edph img{width:78px;height:58px;object-fit:cover;border-radius:10px;display:block}
.edph span button{position:absolute;right:-6px;top:-6px;width:22px;height:22px;border-radius:50%;background:#fff;color:#a8301f;
  box-shadow:0 1px 4px rgba(0,0,0,.3);font-size:14px;line-height:1}
.edphadd{width:78px;height:58px;border:1.5px dashed #b9c4b5;border-radius:10px;display:flex!important;flex-direction:column!important;
  align-items:center;justify-content:center;gap:2px!important;margin:0!important;color:var(--pri)!important;cursor:pointer}
.edphadd small{font-size:9.5px;text-align:center;line-height:1.1}
.edphadd input{display:none}
@media (max-width:640px){.fhero{height:230px!important}}

/* ---- boutons d'envoi compacts : icône + texte sur une ligne ---- */
.shgrid{grid-template-columns:repeat(3,1fr)!important;gap:8px}
.shgrid .shb{flex-direction:row!important;align-items:center;justify-content:flex-start;gap:10px;padding:0 12px!important;
  min-height:46px;height:46px;font-size:13px;text-align:left;white-space:nowrap;overflow:hidden}
.shgrid .shb .ico{flex:0 0 auto}
.shgrid .shb span{overflow:hidden;text-overflow:ellipsis}
.shgrid .shb small{display:inline;margin:0 0 0 2px;font-size:11px;color:var(--muted);font-weight:500}
@media (max-width:520px){.shgrid{grid-template-columns:repeat(2,1fr)!important}}
.poptitle{margin:6px 10px 2px;font-size:14px;font-weight:700;color:var(--ink)}
.pophelp{margin:0 10px 6px;font-size:11.5px;line-height:1.4;color:var(--muted)}
.pfedit{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border-radius:999px;
  border:1px dashed #d9a58b;background:#fff7f2;color:var(--accent);font-size:12px;font-weight:600}
.pfedit:hover{background:var(--accent);color:#fff;border-style:solid}
.minicard .mtag{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rail [data-rail="lieux"] span{line-height:1.15;text-align:center}
.qrow{display:flex;align-items:center;gap:4px}
.qrow .poprow{flex:1;min-width:0}
.qhelp{flex:0 0 26px;width:26px;height:26px;margin-right:6px;padding:0;border-radius:50%;border:1.5px solid var(--line);background:#fff;
  color:var(--muted);font-size:13px;font-weight:700;line-height:1;display:grid;place-items:center;cursor:pointer}
.qhelp:hover,.qhelp[aria-expanded="true"]{border-color:var(--pri);background:var(--pri);color:#fff}
.qtext{margin:0 10px 8px 42px;padding:9px 11px;border-radius:10px;background:#f4f6f1;font-size:12px;line-height:1.5;color:#3a4a3e}
.qtext b{color:var(--ink)}

/* ---- bouton Liste ⇄ Carte, sur toutes les tailles d'écran ---- */
.mobList{display:inline-flex!important;align-items:center;gap:8px;left:calc((100% - var(--pw,0px))/2)!important;
  bottom:calc(72px + var(--safeB))!important;padding:0 20px 0 17px!important;min-height:44px}
.mobList[hidden]{display:none!important}
.mobList:hover{filter:brightness(1.12)}
@media (max-width:900px){.mobList{bottom:calc(14px + var(--safeB))!important;left:50%!important;z-index:66!important}}
/* dans la barre du bas (ordinateur) : même hauteur que les autres pastilles, couleur foncée pour ressortir */
.mobList.infoot{position:static!important;transform:none!important;left:auto!important;bottom:auto!important;
  min-height:36px!important;height:36px;padding:0 16px 0 13px!important;font-size:12.5px!important;gap:7px;
  box-shadow:0 3px 12px rgba(30,45,32,.2)!important}
.mobList.infoot .ico{width:15px;height:15px}
.mcs{display:none}
.mapfoot.c1 .mcl{display:none}.mapfoot.c1 .mcs{display:inline}
.mapfoot.c1 #mapcount{gap:0}
.mapfoot.c2 .mpill.lg{display:none}

.facts dd small,.mfacts dd small{display:block;font-size:11px;font-weight:400;color:var(--muted)}
select.eqlen{width:100%;height:38px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:inherit;font-size:13px;background:#fff}

.dback{display:none}
.detail.onpanel{border-radius:0;border:0;border-left:1px solid var(--line);box-shadow:none;z-index:37;overflow-y:auto;animation:none}
.detail.onpanel .dback{display:inline-flex;align-items:center;margin:14px 0 0 18px;height:32px;padding:0 13px;border-radius:999px;
  border:1px solid var(--line);background:#fff;color:var(--pri);font-size:12.5px;font-weight:600}
.detail.onpanel .dback:hover{border-color:var(--pri)}

.poprow.sub{align-items:flex-start}
.poprow.sub .ck{margin-top:2px}
.poprow.sub .t small{display:block;margin-top:2px;font-size:11.5px;line-height:1.35;font-weight:400;color:var(--muted);white-space:normal}
.popnote{display:flex;gap:7px;align-items:flex-start;margin:4px 10px 8px;padding:8px 10px;border-radius:10px;background:#f4f6f1;
  font-size:11.5px;line-height:1.4;color:#56645a}
.popnote .ico{flex:0 0 auto;margin-top:1px;color:var(--pri)}

/* ---- menu Filtres : panneau large, tout visible d'un coup ---- */
.pop.wide{width:min(840px,calc(100vw - 110px));max-height:none;padding:10px 12px}
.fcols{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:0 14px}
.fcol{min-width:0}
.fcol + .fcol{border-left:1px solid var(--line);padding-left:12px}
.pop.wide .popfoot{margin-top:6px}
@media (max-width:900px){
  .pop.wide{width:calc(100vw - 20px);max-height:80vh}
  .fcols{grid-template-columns:1fr}
  .fcol + .fcol{border-left:0;padding-left:0}
}

.fbtn{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px dashed var(--pri);
  border-radius:10px;color:var(--pri);font-size:12.5px;font-weight:500;cursor:pointer;margin-top:10px}
.fbtn input{display:none}
.rng{display:grid;grid-template-columns:86px 1fr 52px;align-items:center;gap:8px;margin-top:9px;font-size:12px;color:var(--muted)}
.rng b{font-weight:500;color:var(--ink);text-align:right;font-size:11.5px}
.rng input{width:100%;accent-color:var(--accent)}
.tag[disabled]{opacity:.45}

/* ---- identité Solano : bleu, corail, orange et bleu nuit ---- */
::selection{background:rgba(121,161,193,.32);color:var(--brand-navy)}
.brand .mark{background:linear-gradient(135deg,var(--brand-orange),var(--brand-coral));color:#fff;border:0;
  box-shadow:0 6px 16px rgba(216,115,81,.22)}
.dpill,.gpill,.srch,.chip,.tag,.mapbtn,.mpill,.qc,.mini,.bfiche,.fbtn{transition:border-color .16s,background .16s,color .16s,transform .16s}
.dpill:hover,.gpill:hover,.srch:focus-within,.chip:hover,.tag:hover,.mapbtn:hover,.mpill:hover,.qc:hover,.mini:hover,.bfiche:hover,.fbtn:hover{
  border-color:var(--brand-blue)}
.dpill:focus-visible,.gpill:focus-visible,.srch:focus-within{box-shadow:0 0 0 3px rgba(121,161,193,.18)}
.dpill .ico,.gpill .ico,.sf .ico,.facts dt .ico,.mfacts dt .ico,.mrows .ico{color:var(--pri2)!important}
.modes button[aria-pressed="true"],.chip[aria-pressed="true"],.chip.on,.tag[aria-pressed="true"],
.pager button[aria-current="true"],.mini[aria-pressed="true"],.qc[aria-pressed="true"],
.mapbtn[aria-pressed="true"],.poprow[aria-pressed="true"] .ck,.extabs button[aria-pressed="true"]{
  background:var(--brand-blue);border-color:var(--brand-blue);color:var(--brand-navy)}
.chip.save,.act,.bresa,.go2,.minicard .cta,.minicard .go,.mobList,.sgo{
  background:var(--brand-orange);border-color:transparent;color:var(--brand-navy);
  box-shadow:0 7px 18px rgba(227,157,63,.24)}
.chip.save:hover,.act:hover,.bresa:hover,.go2:hover,.minicard .cta:hover,.minicard .go:hover,.mobList:hover,.sgo:hover{
  background:var(--brand-coral);color:var(--brand-navy)}
.avail .go{background:var(--brand-coral);color:var(--brand-navy);box-shadow:0 6px 16px rgba(216,115,81,.26)}
.mk.sel>span,.pin:hover>span,.pin.sel>span{background:var(--brand-coral)!important;color:var(--brand-navy)}
.rsv,.act.main,.tot.big{background:linear-gradient(135deg,var(--brand-navy),var(--pri));box-shadow:0 8px 20px rgba(44,52,59,.2)}
.act.main,.rsv,.tot.big{color:#fff}
.rcard[aria-current="true"]{border-color:var(--brand-coral);box-shadow:0 0 0 3px rgba(216,115,81,.17)}
.rcard:hover,.minicard,.pop,.kwdrop,.scard,.panel,.detail{box-shadow:0 16px 42px rgba(44,52,59,.18)}
.rcard .st,.stt.dispo,.pill.dispo{background:var(--blue-soft);color:var(--pri)}
.stt.partiel,.pill.partiel,.rcard .st.verify,.stt.verify,.pill.verify{background:var(--orange-soft);color:#9b651c}
.stt.verify i,.pill.verify i{background:var(--partiel)}
.stt.occupe,.stt.incompat,.pill.occupe,.pill.incompat{background:#eef1f3;color:#66737b}
.panel{border-left-color:rgba(121,161,193,.42)}
.phead{position:relative;background:linear-gradient(90deg,var(--blue-soft),#fff 68%);padding-top:19px}
.phead::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;
  background:linear-gradient(90deg,var(--brand-orange) 0 33.33%,var(--brand-coral) 33.33% 66.66%,var(--brand-blue) 66.66%)}
.phead h2,.minicard h4,.dsec,.poptitle{color:var(--brand-navy)}
.shead .sb,.rb,.qn,.exn,.exi .exn,.ago em,.howto em,.rsteps b{background:var(--brand-coral);color:var(--brand-navy)}
.pscroll input:focus,.popfoot input:focus,.lform input:focus,.rpform input:focus,select:focus{
  outline:0;border-color:var(--brand-blue);box-shadow:0 0 0 3px rgba(121,161,193,.16)}
.cal i,.nb i{background:#dceaf3}.cal i.b,.nb.zero i{background:#e8ecef}
.nb.in i,.nb.in u{background:var(--brand-blue)}
.tags span,.ah b,.tag b,.shead .sv,.tot{background:var(--blue-soft);color:#5f707b}
.tag[aria-pressed="true"] b{background:rgba(255,255,255,.38);color:var(--brand-navy)}
.combo{border-color:#efce9b;background:#fff7e9}
.pfoot{background:linear-gradient(90deg,#edf4f8,#fff7ea)}
.topzone{filter:drop-shadow(0 8px 18px rgba(44,52,59,.08))}
.scard{position:relative;overflow:hidden;border-color:rgba(121,161,193,.42);box-shadow:0 14px 40px rgba(44,52,59,.19)}
.scard::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;
  background:linear-gradient(90deg,var(--brand-orange) 0 33.33%,var(--brand-coral) 33.33% 66.66%,var(--brand-blue) 66.66%)}
.sf:hover,.kwr:hover,.poprow:hover,.row:hover,.aopen:hover,.arm:hover,.rlist button:hover,.shfam label:hover{background:var(--blue-soft)}
.kwr .ico,.rlist2 .si{background:var(--blue-soft);color:var(--pri)}
.ah .ico,.aopen .ico,.exg summary .ico{color:var(--pri)}
.kwr.strong .ico{background:var(--brand-blue);color:var(--brand-navy)}
.mapfoot .mpill:first-child,.mapcount{background:rgba(44,52,59,.91);border-color:transparent;color:#fff}
.mapfoot .mpill:first-child b,.mapcount b{color:#fff}
.zoom{border-color:rgba(121,161,193,.38);box-shadow:0 12px 30px rgba(44,52,59,.16)}
.zoom button{color:var(--pri);border-color:var(--line)}
.zoom button:hover{background:var(--blue-soft)}
.zoom button:first-child:hover{background:var(--coral-soft);color:var(--brand-coral)}
.toast{background:var(--brand-navy);color:#fff}
.sheetbg{background:rgba(44,52,59,.34)}
.rbar{border-color:rgba(121,161,193,.42);box-shadow:0 14px 36px rgba(44,52,59,.2)}
.rdot.a,.homepin span,.homepin b,.rlist2 li.start .si{background:var(--brand-blue);color:var(--brand-navy)}
.rdot.b,.rlist2 li.end .si{background:var(--brand-coral);color:var(--brand-navy)}
.homepin span .ico{color:var(--brand-navy)}
.rlist2 li.on,.rlist2 li.left .si,.rlist2 li.right .si{background:var(--coral-soft)}
.netsvg line{stroke:var(--brand-blue)}.netsvg circle.last{fill:var(--brand-blue)}
.mpill .d:first-child i{box-shadow:0 0 0 3px rgba(121,161,193,.16)}
.mpill .d:nth-child(2) i{box-shadow:0 0 0 3px rgba(227,157,63,.16)}
.minicard .dots i.on{background:var(--brand-coral)}
.rpk i,.rpk b{background:#7b71ad}.rpk.tmp i,.rpk.tmp b{background:var(--brand-coral)}
.popnote,.qtext{background:var(--blue-soft);color:#516572}
@media (max-width:640px){
  .rail::before{top:-1px}
  .hdr::after{height:2px}
  .panel{border-left:0;border-top:1px solid rgba(121,161,193,.42)}
}

/* Customer portal: public catalogue browsing with protected transaction actions. */
[hidden]{display:none!important}
.solano-customer [data-lcal],
.solano-customer [data-pcal],
.solano-customer [data-excal],
.solano-customer [data-aox]{display:none!important}
.solano-customer [data-guest-target] .rb{display:none!important}

.expub{align-items:flex-start;padding-block:14px}
.expub .ext small{margin-top:4px;line-height:1.5}
.excta{flex:0 0 auto;min-height:36px;border-radius:999px;background:var(--brand-navy);padding:0 14px;
  color:#fff;font-size:11.5px;font-weight:700;box-shadow:0 6px 16px rgba(14,27,36,.14)}
.excta:hover{background:var(--brand-coral);color:var(--brand-navy)}
.excta.secondary{border:1px solid rgba(121,161,193,.48);background:var(--blue-soft);color:var(--brand-navy);box-shadow:none}
.excta.secondary:hover{border-color:var(--brand-blue);background:#fff}
.explan{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(227,157,63,.55);background:var(--orange-soft);color:var(--brand-navy);box-shadow:none}
.explan:hover{border-color:var(--brand-orange);background:#fff6e5;color:var(--brand-navy)}
.explan.on{border-color:var(--brand-orange);background:var(--brand-orange);color:var(--brand-navy)}
.explan .ico{flex:0 0 auto}
.exactions{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;max-width:360px}
.exfav{display:grid;box-sizing:border-box;width:36px;height:36px;flex:0 0 36px;place-items:center;border:1px solid rgba(121,161,193,.48);
  border-radius:50%;background:#fff;color:var(--brand-navy);box-shadow:0 3px 10px rgba(14,27,36,.06)}
.exfav:hover{border-color:var(--brand-coral);background:var(--coral-soft);color:var(--brand-coral)}
.exfav.on{border-color:var(--brand-coral);background:var(--coral-soft);color:var(--brand-coral)}
.exfav.on .ico{fill:currentColor}
.incart{color:#517086;font-size:10.5px;font-weight:700;white-space:nowrap}
.exmeta{display:block;margin-top:4px;color:#547188;font-size:11px;font-weight:650}
.exsoon{align-self:center;max-width:112px;color:#82909a;font-size:10.5px;font-weight:650;line-height:1.35;text-align:right}
.exempty{display:flex;min-height:112px;flex-direction:column;align-items:center;justify-content:center;border-top:1px solid var(--line);
  padding:18px;text-align:center;color:#71808a}
.exempty strong{margin-top:9px;color:var(--brand-navy);font-size:12.5px}
.exempty small{margin-top:3px;font-size:11px}
.exloader{width:25px;height:25px;border:3px solid rgba(121,161,193,.24);border-top-color:var(--brand-blue);border-radius:50%;
  animation:catalogspin .8s linear infinite}
@keyframes catalogspin{to{transform:rotate(360deg)}}
.public-access-note{display:flex;width:100%;align-items:flex-start;gap:10px;color:var(--brand-navy)}
.public-access-note>.ico{flex:0 0 auto;margin-top:2px;color:var(--brand-coral)}
.public-access-note span{display:flex;min-width:0;flex-direction:column;gap:2px}
.public-access-note strong{font-size:12px}
.public-access-note small{color:#71808a;font-size:10.5px;line-height:1.4}
@media (max-width:520px){.expub{flex-direction:column}.exactions{width:100%;max-width:none;justify-content:stretch}.excta{flex:1;margin-top:2px}.exfav{flex:0 0 36px}.exsoon{align-self:flex-start;max-width:none;text-align:left}}

/* Real guest access gate used by account and protected purchase/booking actions. */
.solano-auth-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;
  background:rgba(14,27,36,.58);backdrop-filter:blur(7px)}
.solano-auth-card{position:relative;width:min(100%,470px);overflow:hidden;border:1px solid rgba(255,255,255,.7);
  border-radius:26px;background:#fff;padding:30px;box-shadow:0 34px 90px rgba(14,27,36,.34);text-align:left}
.solano-auth-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;
  background:linear-gradient(90deg,var(--brand-orange) 0 33.33%,var(--brand-coral) 33.33% 66.66%,var(--brand-blue) 66.66%)}
.solano-auth-close{position:absolute;right:14px;top:14px;width:36px;height:36px;border-radius:50%;
  background:var(--blue-soft);color:var(--brand-navy);font-size:22px;line-height:1}
.solano-auth-mark{display:grid;width:48px;height:48px;place-items:center;border-radius:15px;
  background:var(--brand-navy);color:var(--brand-orange);font-size:22px}
.solano-auth-eyebrow{margin:22px 0 5px;color:var(--brand-coral);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.solano-auth-card h2{color:var(--brand-navy);font-size:25px;line-height:1.18}
.solano-auth-copy{margin:12px 0 0;color:#66737b;font-size:13.5px;line-height:1.65}
.solano-auth-actions{display:grid;gap:10px;margin-top:24px}
.solano-auth-actions a,.solano-auth-actions button{display:flex;min-height:48px;align-items:center;justify-content:center;border-radius:14px;
  padding:0 18px;text-decoration:none;font-size:13px;font-weight:700;cursor:pointer}
.solano-auth-login{background:var(--brand-navy);color:#fff;box-shadow:0 9px 22px rgba(14,27,36,.18)}
.solano-auth-create{border:1px solid rgba(121,161,193,.48);background:var(--blue-soft);color:var(--brand-navy)}
.solano-auth-form{display:grid;gap:11px;margin-top:22px}
.solano-auth-form label{color:#53626c;font-size:12px;font-weight:700}
.solano-auth-form input{width:100%;height:49px;border:1px solid rgba(121,161,193,.38);border-radius:14px;background:#fff;
  padding:0 15px;color:var(--brand-navy);font-family:inherit;font-size:14px;font-weight:600;line-height:1.2;outline:none}
.solano-auth-form input:focus{border-color:var(--brand-blue);box-shadow:0 0 0 4px rgba(121,161,193,.13)}
.solano-auth-form .solano-auth-login{min-height:48px;border:0;border-radius:14px;padding:0 18px;font-size:13px;font-weight:700;cursor:pointer}
.solano-auth-form .solano-auth-login[aria-busy="true"]{opacity:.68;cursor:wait}
.solano-auth-back{min-height:38px;border:0;background:transparent;color:#72828d;font-size:12px;font-weight:700;cursor:pointer}
.solano-auth-error{margin:0;border-radius:12px;background:#fff0f0;padding:10px 12px;color:#a83d3d;font-size:12px;font-weight:650;line-height:1.45}
.solano-auth-status{margin-top:22px;border:1px solid rgba(121,161,193,.3);border-radius:16px;background:var(--blue-soft);padding:17px;color:#31566d}
.solano-auth-status strong{display:block;color:var(--brand-navy);font-size:14px}
.solano-auth-status p{margin:7px 0 0;font-size:12.5px;line-height:1.55}
.solano-auth-empty{border-color:rgba(227,157,63,.35);background:#fff8eb}
.solano-auth-empty-copy{color:var(--brand-navy);font-weight:700}
.solano-auth-empty-hint{color:#6f675a}
.solano-auth-empty .solano-auth-actions{margin-top:16px}
.solano-auth-note{margin:16px 0 0;color:#82909a;font-size:11.5px;line-height:1.55;text-align:center}
body.solano-auth-open{overflow:hidden}
.portal-map-nav{display:none;min-width:0;align-self:stretch;align-items:center;justify-content:center;gap:clamp(15px,1.45vw,27px);flex:1;overflow-x:auto;scrollbar-width:none}
.portal-map-nav::-webkit-scrollbar{display:none}
.portal-map-nav a{position:relative;display:flex;align-items:center;align-self:stretch;flex:0 0 auto;color:#69747a;font-size:13px;font-weight:750;text-decoration:none;white-space:nowrap}
.portal-map-nav a::after{content:"";position:absolute;right:50%;bottom:8px;left:50%;height:3px;background:var(--brand-coral);transition:right .2s ease,left .2s ease}
.portal-map-nav a:hover,.portal-map-nav a.is-active{color:var(--ink)}
.portal-map-nav a:hover::after,.portal-map-nav a.is-active::after{right:0;left:0}
body.explorer-only .portal-map-nav{display:flex}
@media(max-width:1100px){.portal-map-nav{gap:13px}.portal-map-nav a{font-size:12px}}
@media(max-width:760px){body.explorer-only .portal-map-nav{display:none}}
@media (max-width:640px){
  .solano-auth-modal{align-items:end;padding:12px}
  .solano-auth-card{border-radius:24px;padding:26px 22px calc(22px + var(--safeB))}
}


/* Résultats de réservation : recommandations, réservation directe et repérage carte */
.rcard-wrap{display:block;min-width:0;border-radius:14px;background:#fff}
.rcard-wrap .rcard.has-book{border-radius:14px 14px 0 0;border-bottom-color:#e5e8e2}
.rcard-book{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:11px 16px;
  border:1px solid #c94b27;border-top:0;border-radius:0 0 14px 14px;background:var(--accent);color:#fff;
  font-size:13px;font-weight:700;text-decoration:none;box-shadow:0 5px 14px rgba(176,62,28,.18);
  transition:background .15s,box-shadow .15s,transform .15s}
.rcard-book:hover{background:#cf4822;box-shadow:0 8px 18px rgba(176,62,28,.25);transform:translateY(-1px)}
.rcard-book:focus-visible{outline:3px solid rgba(232,88,44,.3);outline-offset:2px}
.rcard .best-match{position:absolute;left:10px;top:44px;padding:5px 10px;border-radius:7px;background:#173f35;color:#fff;
  font-size:10.5px;font-weight:700;letter-spacing:.02em;box-shadow:0 2px 8px rgba(20,55,45,.24)}
.search-loading{grid-column:1/-1;display:grid;justify-items:center;gap:8px;padding:42px 18px;text-align:center;color:var(--ink)}
.search-loading>span{width:28px;height:28px;border:3px solid #dfe6df;border-top-color:var(--accent);border-radius:50%;
  animation:havana-search-spin .8s linear infinite}
.search-loading strong{font-size:15px}.search-loading small{color:var(--muted);font-size:12px}
@keyframes havana-search-spin{to{transform:rotate(360deg)}}
.mk.result-focus>span{z-index:12;transform:scale(1.85);box-shadow:0 0 0 7px rgba(232,88,44,.34),0 0 0 14px rgba(232,88,44,.13)!important;
  animation:havana-result-pulse .72s ease-in-out 3}
#polys .p.result-focus{stroke:var(--accent);stroke-width:calc(var(--psw,1.2)*4);stroke-dasharray:none;
  filter:drop-shadow(0 0 7px rgba(232,88,44,.75));animation:havana-parcel-pulse .72s ease-in-out 3}
@keyframes havana-result-pulse{50%{transform:scale(2.2)}}
@keyframes havana-parcel-pulse{50%{stroke-width:calc(var(--psw,1.2)*6)}}
@media(prefers-reduced-motion:reduce){
  .search-loading>span,.mk.result-focus>span,#polys .p.result-focus{animation:none}
}
