/* Généré depuis outils/sources/carte-page.css : modifie la source, pas ce fichier. */
.map-shell{
  display:grid; grid-template-columns:270px 1fr; gap:18px; margin-bottom:34px;
}
.map-side{
  background:#fff; border:2px solid var(--ink); border-radius:10px;
  padding:18px; box-shadow:5px 5px 0 rgba(26,26,30,.12);
  align-self:start; position:sticky; top:80px;
}
.map-side-h{
  font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-soft); margin-bottom:10px;
}
.map-searchwrap{position:relative; margin-bottom:16px;}
.map-search{
  display:flex; align-items:center; gap:9px; background:var(--paper);
  border:2px solid var(--rule); border-radius:6px; padding:9px 12px;
  transition:border-color .15s;
}
.map-search:focus-within{border-color:var(--coral-text,#B93220);}
.map-search svg{width:16px; height:16px; color:var(--ink-soft); flex-shrink:0;}
.map-search input{flex:1; border:none; background:none; font-family:inherit; font-size:.9rem; color:var(--ink); min-width:0;}
.map-search input:focus{outline:none;}
.map-sug{
  display:none; position:absolute; left:0; right:0; top:calc(100% + 5px); z-index:20;
  background:#fff; border:2px solid var(--ink); border-radius:6px; overflow:hidden;
  box-shadow:4px 4px 0 var(--ink); max-height:230px; overflow-y:auto;
}
.map-sug.open{display:block;}
.map-sug button, .map-sug .none{
  display:flex; width:100%; justify-content:space-between; align-items:center; gap:10px;
  padding:10px 13px; border:none; border-bottom:1px solid var(--rule);
  background:none; font-family:inherit; font-size:.88rem; text-align:left; cursor:pointer;
}
.map-sug button:last-child{border-bottom:none;}
.map-sug button:hover{background:var(--paper-2);}
.map-sug .kind{font-size:.72rem; font-weight:700; flex-shrink:0;}
.map-sug .none{color:var(--ink-soft); cursor:default;}
.map-prog{margin-bottom:16px;}
.map-prog-head{display:flex; justify-content:space-between; align-items:baseline; font-size:.78rem; color:var(--ink-soft); margin-bottom:7px;}
.map-prog-head strong{color:var(--ink); font-weight:800;}
.map-prog-rail{height:9px; background:var(--paper-2); border:1.5px solid var(--ink); border-radius:100px; overflow:hidden;}
.map-prog-rail span{display:block; height:100%; width:0; background:linear-gradient(90deg,var(--amber),var(--coral)); transition:width .4s ease;}
.map-tool{
  display:flex; align-items:center; gap:9px; width:100%; cursor:pointer;
  font-family:inherit; font-size:.88rem; font-weight:700;
  background:var(--paper-2); color:var(--ink);
  border:2px solid var(--ink); border-radius:6px; padding:11px 13px;
  transition:background .15s, color .15s;
}
.map-tool svg{width:17px; height:17px; flex-shrink:0;}
.map-tool:hover{background:var(--rule);}
.map-tool.on{background:var(--coral); color:#fff; border-color:var(--ink);}
.map-ruler-wrap{margin-top:12px;}
.map-ruler-box{
  background:var(--paper-2); border:1.5px dashed var(--rule);
  border-radius:6px; padding:13px;
}
.rl-hint{font-size:.85rem; color:var(--ink-soft); line-height:1.5;}
.rl-hint b{color:var(--ink); font-weight:700;}
.rl-pair{font-size:.8rem; color:var(--ink-soft); line-height:1.5;}
.rl-pair b{
  display:inline-block; width:16px; height:16px; line-height:16px; text-align:center;
  border-radius:50%; background:var(--amber); color:var(--ink);
  font-size:.66rem; font-weight:900; margin-right:3px;
}
.rl-pair i{font-style:normal; color:var(--coral-text,#B93220); font-weight:800; margin:0 3px;}
.rl-dist{font-size:1.5rem; font-weight:900; letter-spacing:-0.02em; margin:5px 0 11px;}
.rl-list{list-style:none; display:flex; flex-direction:column; gap:1px;}
.rl-list li{display:flex; align-items:center; gap:9px; padding:6px 0; border-top:1px solid var(--rule); font-size:.84rem;}
.rl-list--all{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;}
.rl-list--all li{min-width:0;}
.rl-list--all .rl-nom small{display:block;font:700 .62rem/1.2 var(--font-mono,ui-monospace,monospace);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
@media(max-width:420px){.rl-list--all{grid-template-columns:1fr;}}
.rl-ico{width:19px; height:19px; color:var(--ink-soft); flex-shrink:0;}
.rl-ico svg{width:100%; height:100%;}
.rl-nom{color:var(--ink-soft);}
.rl-t{margin-left:auto; font-weight:800; font-variant-numeric:tabular-nums;}
.rl-note{font-size:.72rem; color:var(--ink-soft); margin-top:11px; line-height:1.45;}
.rl-sim{display:flex; align-items:flex-start; gap:8px; margin-top:10px; min-height:24px; font-size:.8rem; font-weight:700; line-height:1.4; cursor:pointer;}
.rl-sim input{width:18px; height:18px; flex:none; margin-top:1px; accent-color:var(--ink);}
.rl-sim-t{font-size:.74rem; color:var(--ink-soft); margin:8px 0 4px; line-height:1.45;}
.rl-sim-tag{display:inline-block; margin-right:6px; padding:1px 7px; border:1.5px dashed var(--ink); border-radius:999px; font:700 .64rem/1.5 var(--font-mono,ui-monospace,monospace); letter-spacing:.06em; text-transform:uppercase; color:var(--ink);}
.map-ruler-reset{
  width:100%; margin-top:8px; cursor:pointer; font-family:inherit;
  font-size:.82rem; font-weight:700; color:var(--ink-soft);
  background:none; border:1.5px solid var(--rule); border-radius:6px; padding:8px;
}
.map-ruler-reset:hover{border-color:var(--ink); color:var(--ink);}
.map-trajet-fab{position:absolute;top:12px;left:50%;z-index:6;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px 8px 12px;border:2px solid var(--ink);border-radius:999px;background:var(--amber);color:var(--ink);font:800 .9rem/1 'Archivo',sans-serif;box-shadow:4px 4px 0 var(--ink);cursor:pointer;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out);}
.map-trajet-fab svg{width:22px;height:22px;}
.map-trajet-fab:hover{transform:translateX(-50%) translateY(-2px);box-shadow:5px 6px 0 var(--ink);}
.map-trajet-fab:focus-visible,.map-trajet :focus-visible{outline:3px solid var(--coral);outline-offset:2px;}
.map-trajet-fab[hidden]{display:none;}
.map-trajet{position:absolute;left:12px;bottom:12px;z-index:8;display:flex;flex-direction:column;width:min(380px,calc(100% - 24px));max-height:calc(100% - 24px);background:#fff;border:2px solid var(--ink);border-radius:14px;box-shadow:6px 6px 0 var(--ink);animation:map-trajet-in .32s var(--ease-out);}
.map-trajet[hidden]{display:none;}
@keyframes map-trajet-in{from{opacity:0;transform:translateY(16px) scale(.98);}to{opacity:1;transform:none;}}
.map-trajet-head{display:flex;align-items:center;gap:10px;padding:12px 12px 10px 14px;border-bottom:2px solid var(--ink);background:var(--paper-2);border-radius:12px 12px 0 0;}
.map-trajet-ico{display:grid;place-items:center;flex:none;width:38px;height:38px;border:2px solid var(--ink);border-radius:50%;background:var(--amber);}
.map-trajet-ico svg{width:22px;height:22px;}
.map-trajet-head>div{flex:1;min-width:0;}
.map-trajet-k{margin:0;font:800 .66rem/1.2 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--coral-text);}
.map-trajet-head h2{margin:2px 0 0;font-size:1.02rem;line-height:1.2;letter-spacing:-.01em;}
.map-trajet-x{flex:none;width:40px;height:40px;border:2px solid var(--ink);border-radius:50%;background:#fff;font-size:1.3rem;line-height:1;cursor:pointer;}
.map-trajet-x:hover{background:var(--coral);color:#fff;}
.map-trajet-in{flex:1;min-height:0;overflow-y:auto;padding:12px 14px 4px;overscroll-behavior:contain;}
.map-trajet-foot{display:flex;gap:8px;padding:8px 14px 12px;border-top:1px solid var(--rule);}
.map-trajet-foot .map-ruler-reset{margin-top:0;}
.rl-how{margin:0;padding:0;list-style:none;counter-reset:rl;display:grid;gap:8px;}
.rl-how li{position:relative;padding:8px 10px 8px 40px;border:1.5px solid var(--rule);border-radius:10px;font-size:.86rem;line-height:1.45;color:var(--ink-soft);counter-increment:rl;}
.rl-how li::before{content:counter(rl);position:absolute;left:9px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--ink);font:800 .74rem/1 var(--font-mono);background:#fff;color:var(--ink);}
.rl-how li.is-now{border-color:var(--ink);background:#FFF6E3;color:var(--ink);}
.rl-how li.is-now::before{background:var(--amber);}
.rl-how li.is-done{opacity:.6;}
.rl-how li.is-done::before{content:'✓';background:var(--ink);color:#fff;}
.rl-dist-k{font-size:.72rem;font-weight:700;color:var(--ink-soft);letter-spacing:0;}
.rl-times-h,.rl-vehs-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 4px;font-size:.84rem;font-weight:800;}
.rl-vehs-h span{font-weight:600;color:var(--ink-soft);font-size:.76rem;}
.rl-vehs{display:grid;gap:8px;}
.rl-veh{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ico main kmh" "ico main t";align-items:center;gap:4px 10px;padding:9px 10px;border:1.5px solid var(--ink);border-radius:10px;background:var(--paper);}
.rl-veh .rl-ico{grid-area:ico;width:24px;height:24px;color:var(--ink);}
.rl-veh-main{grid-area:main;display:flex;flex-direction:column;gap:3px;min-width:0;}
.rl-veh-in{width:100%;min-width:0;min-height:36px;padding:5px 8px;border:1.5px solid var(--rule);border-radius:7px;background:#fff;font:inherit;font-size:.86rem;font-weight:700;color:var(--ink);}
.rl-veh-in:hover{border-color:var(--ink);}
.rl-veh-src{font-size:.7rem;line-height:1.35;color:var(--ink-soft);}
.rl-kmh{grid-area:kmh;display:inline-flex;align-items:center;gap:4px;font-size:.74rem;font-weight:700;color:var(--ink-soft);}
.rl-kmh-in{width:4.6em;min-height:34px;padding:4px 6px;border:1.5px solid var(--ink);border-radius:7px;font:inherit;font-weight:800;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;}
.rl-veh .rl-t{grid-area:t;justify-self:end;margin:0;font-size:.95rem;}
.rl-veh-x{position:absolute;top:-9px;right:-9px;width:26px;height:26px;border:1.5px solid var(--ink);border-radius:50%;background:#fff;font-size:1rem;line-height:1;cursor:pointer;}
.rl-veh-x:hover{background:var(--coral);color:#fff;}
.rl-veh-add{width:100%;margin-top:8px;min-height:40px;border:1.5px dashed var(--ink);border-radius:10px;background:none;font:inherit;font-weight:800;font-size:.84rem;cursor:pointer;}
.rl-veh-add:hover{background:var(--paper-2);}
.map-stage.picking .map-trajet-fab{display:none;}
#map-stage{scroll-margin-top:calc(var(--lk-head-h,72px) + 8px);}
@media (max-width:600px){
  .map-trajet{left:8px;right:8px;bottom:8px;width:auto;max-height:48%;}
  .rl-how li:not(.is-now){display:none;}
  .rl-how li{padding:7px 9px 7px 38px;font-size:.82rem;}
  .map-trajet-foot{padding:6px 10px 8px;}
  .map-trajet-fab{top:auto;bottom:12px;}
  .map-trajet-head{padding:8px 10px;}
  .map-trajet-head h2{font-size:.94rem;}
}
@media (prefers-reduced-motion:reduce){.map-trajet{animation:none;}.map-trajet-fab{transition:none;}}
.map-filters{margin-top:18px; padding-top:16px; border-top:1px solid var(--rule);}
.fl{display:flex; align-items:center; gap:9px; padding:6px 0; font-size:.87rem; color:var(--ink-soft); cursor:pointer;}
.fl input{width:17px; height:17px; accent-color:var(--coral-text,#B93220); cursor:pointer;}
.fl-dot{width:9px; height:9px; border-radius:50%; flex-shrink:0;}
.map-note{font-size:.73rem; color:var(--ink-soft); margin-top:16px; padding-top:14px; border-top:1px solid var(--rule); line-height:1.5;}
.map-stage{
  position:relative; overflow:hidden; height:min(78vh, 760px);
  background:#3F8DBF; border:2px solid var(--ink); border-radius:10px;
  box-shadow:5px 5px 0 rgba(26,26,30,.14);
  cursor:grab; touch-action:none; user-select:none;
}
.map-stage.grabbing{cursor:grabbing;}
.map-stage.picking{cursor:crosshair;}
.map-world{position:absolute; top:0; left:0; width:5200px; height:6000px; transform-origin:0 0;}
.map-bg, .map-line{position:absolute; inset:0; width:100%; height:100%; display:block;}
.map-line{pointer-events:none;}
.map-markers{position:absolute; inset:0;}
.mk{
  position:absolute; transform:translate(-50%,-50%) scale(var(--inv,1));
  background:none; border:none; padding:0; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; gap:4px;
  font-family:inherit; transform-origin:center;
  min-width:25px; min-height:25px; justify-content:center;
}
.mk-dot{
  width:19px; height:19px; border-radius:50%;
  border:3px solid var(--ink); background:var(--coral);
  box-shadow:0 2px 5px rgba(0,0,0,.28); transition:transform .16s;
}
.mk-lbl{
  font-size:.72rem; font-weight:800; color:var(--ink); white-space:nowrap;
  background:rgba(253,251,247,.92); border-radius:4px; padding:2px 7px;
  box-shadow:0 1px 3px rgba(0,0,0,.16);
}
.mk:hover .mk-dot{transform:scale(1.3);}
.mk--region .mk-dot{background:#E8452C;}
.mk--ville .mk-dot{background:#F5A524;}
.mk--collectible .mk-dot{background:#C2452C;}
.mk--planque .mk-dot{background:#D96A2C;}
.mk--magasin .mk-dot{background:#B5762A;}
.mk--garage .mk-dot{background:#A85B33;}
.mk--mission .mk-dot{background:#CE4B33;}
.mk--essence .mk-dot{background:#D93F2A;}
.mk.is-found .mk-dot{background:#fff; border-color:#7C7686;}
.mk.is-found .mk-lbl{opacity:.55; text-decoration:line-through;}
.mk.is-picked .mk-dot{
  background:var(--amber); transform:scale(1.4);
  box-shadow:0 0 0 5px rgba(245,165,36,.35);
}
.pin{
  position:absolute; transform:translate(-50%,-50%) scale(var(--inv,1));
  transform-origin:center; pointer-events:none;
}
.pin-dot{
  display:flex; align-items:center; justify-content:center;
  width:26px; height:26px; border-radius:50%;
  background:var(--amber); border:3px solid var(--ink);
  font-size:.78rem; font-weight:900; color:var(--ink);
  box-shadow:0 2px 6px rgba(0,0,0,.3), 0 0 0 5px rgba(245,165,36,.3);
}
.map-zoom{
  position:absolute; right:12px; bottom:12px; z-index:6;
  display:flex; flex-direction:column; align-items:center; gap:1px;
  background:#fff; border:2px solid var(--ink); border-radius:8px;
  overflow:hidden; box-shadow:3px 3px 0 var(--ink);
}
.map-zoom button{
  width:38px; height:34px; border:none; background:#fff; cursor:pointer;
  font-family:inherit; font-size:1.15rem; font-weight:800; color:var(--ink);
  display:flex; align-items:center; justify-content:center;
}
.map-zoom button:hover{background:var(--paper-2);}
.map-zoom button svg{width:16px; height:16px;}
.map-zoom span{
  font-size:.68rem; font-weight:800; color:var(--ink-soft);
  padding:4px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  width:100%; text-align:center; font-variant-numeric:tabular-nums;
}
.map-panel{
  position:absolute; left:12px; bottom:12px; z-index:7; width:min(300px, calc(100% - 24px));
  background:#fff; border:2px solid var(--ink); border-radius:10px;
  padding:17px 19px; box-shadow:5px 5px 0 var(--ink);
  opacity:0; transform:translateY(14px); pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
}
.map-panel.open{opacity:1; transform:none; pointer-events:auto;}
.map-close{
  position:absolute; top:9px; right:11px; background:none; border:none;
  font-size:1.4rem; line-height:1; color:var(--ink-soft); cursor:pointer;
}
.map-close:hover{color:var(--coral-text,#B93220);}
.mp-cat{font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;}
.mp-d{font-size:.87rem; color:var(--ink-soft); margin-top:7px; line-height:1.5;}
.map-panel h3{font-size:1.15rem; font-weight:800; letter-spacing:-0.02em; margin-top:3px; padding-right:20px;}
.mp-coord{
  font-size:.72rem; color:var(--ink-soft); margin-top:11px;
  padding-top:9px; border-top:1px solid var(--rule);
  display:flex; justify-content:space-between;
}
.mp-coord span{font-weight:700; font-variant-numeric:tabular-nums;}
.mp-btn{
  width:100%; margin-top:12px; cursor:pointer; font-family:inherit;
  font-size:.87rem; font-weight:800; color:var(--ink);
  background:var(--paper-2); border:2px solid var(--ink); border-radius:6px; padding:10px;
  transition:background .15s, color .15s;
}
.mp-btn:hover{background:var(--rule);}
.mp-btn.on{background:var(--coral); color:#fff;}
@media (max-width:900px){
  .map-shell{grid-template-columns:1fr;}
  .map-side{position:static;}
  .map-stage{height:66vh;}
  .map-panel{left:8px; right:8px; bottom:8px; width:auto;}
}
.map-scale{
  position:absolute; left:12px; bottom:12px; z-index:5;
  display:flex; flex-direction:column; gap:3px;
  background:rgba(253,251,247,.9); backdrop-filter:blur(4px);
  border:1.5px solid var(--ink); border-radius:5px; padding:6px 9px 5px;
  pointer-events:none;
}
.map-panel.open ~ .map-scale{opacity:0;}
.map-scale-bar{
  display:block; height:6px; min-width:24px;
  border:1.5px solid var(--ink); border-top:none;
  transition:width .18s ease;
}
.map-scale-txt{font-size:.68rem; font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums;}
.map-coord{
  position:absolute; right:12px; top:12px; z-index:5; pointer-events:none;
  font-size:.68rem; font-weight:700; font-variant-numeric:tabular-nums;
  color:var(--ink-soft); background:rgba(253,251,247,.96); backdrop-filter:blur(4px);
  border:1.5px solid var(--rule); border-radius:5px; padding:4px 9px;
}
.cl{
  position:absolute; transform:translate(-50%,-50%) scale(var(--inv,1));
  transform-origin:center; cursor:pointer; border:none; padding:0;
  background:none; font-family:inherit;
}
.cl-n{
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%;
  background:var(--coral-text,#B93220); border:3px solid var(--ink); color:#fff;
  font-size:.88rem; font-weight:900;
  box-shadow:0 2px 7px rgba(0,0,0,.3), 0 0 0 6px rgba(232,69,44,.2);
  transition:box-shadow .2s,background .2s,color .2s;
}
.cl:hover .cl-n{transform:scale(1.12);}
@media (hover:hover){.cl:hover .cl-n{transform:none;box-shadow:0 0 0 3px var(--amber);}}
.cl.is-done .cl-n{background:#fff; color:var(--ink-soft); border-color:#7C7686; box-shadow:0 2px 7px rgba(0,0,0,.2);}
.map-prog-reset{
  margin-top:8px; width:100%; cursor:pointer; font-family:inherit;
  font-size:.76rem; font-weight:700; color:var(--ink-soft);
  background:none; border:1.5px solid var(--rule); border-radius:5px; padding:6px;
}
.map-prog-reset:hover{border-color:var(--coral-text,#B93220); color:var(--coral-text,#B93220);}
.map-shell.is-full{
  position:fixed; inset:0; z-index:200; margin:0;
  grid-template-columns:270px 1fr; gap:0;
  background:var(--paper); padding:14px;
}
.map-shell.is-full .map-stage{height:100%; border-radius:0 10px 10px 0;}
.map-shell.is-full .map-side{
  height:100%; overflow-y:auto; border-radius:10px 0 0 10px;
  border-right:none; box-shadow:none;
}
body.map-full-on{overflow:hidden;}
@media (max-width:900px){
  .map-shell.is-full{grid-template-columns:1fr; grid-template-rows:auto 1fr; padding:8px;}
  .map-shell.is-full .map-side{height:auto; max-height:38vh; border-radius:10px;}
  .map-shell.is-full .map-stage{border-radius:10px;}
  .map-coord{display:none;}
}
.map-facts{max-width:520px; margin-bottom:52px;}
.reg-grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px; margin-bottom:52px;
}
@media (min-width:821px) and (max-width:1000px){.reg-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
.reg{
  background:#fff; border:2px solid var(--ink); border-radius:8px;
  padding:20px 22px; position:relative; overflow:hidden;
  box-shadow:4px 4px 0 rgba(26,26,30,.12);
  transition:transform .18s cubic-bezier(.3,.85,.4,1), box-shadow .18s;
}
.reg::before{
  content:''; position:absolute; left:0; top:0; bottom:0; width:5px;
  background:linear-gradient(180deg, var(--amber), var(--coral));
  transform:scaleY(0); transform-origin:top; transition:transform .25s ease;
}
.reg:hover{transform:translate(-3px,-3px); box-shadow:8px 8px 0 var(--ink);}
.reg:hover::before{transform:scaleY(1);}
.reg-kind{
  font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:var(--coral-text,#B93220);
}
.reg h3{font-size:1.18rem; font-weight:800; letter-spacing:-0.02em; margin-top:4px;}
.reg p:last-child{font-size:.89rem; color:var(--ink-soft); margin-top:8px; line-height:1.6;}
@media (max-width:820px){
  .reg-grid{grid-template-columns:1fr;}
  .map-facts{margin-bottom:38px;}
}
.map-layers{margin-bottom:4px;}
.map-layers + .map-filters{margin-top:16px;}
.map-trust{margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid var(--rule);}
.map-only{
  width:100%; cursor:pointer; font-family:inherit; font-size:.84rem; font-weight:800;
  background:var(--ink); color:var(--paper); border:2px solid var(--ink);
  border-radius:6px; padding:9px; margin-bottom:11px; transition:background .15s;
}
.map-only:hover{background:#2C2A34;}
.map-only.on{background:var(--coral); border-color:var(--coral-text,#B93220);}
.fl-st{align-items:center; gap:8px; padding:5px 0;}
.fl-st em{font-style:normal; font-size:.75rem; color:var(--ink-soft);}
.st-chip{
  font-size:.68rem; font-weight:800; letter-spacing:.02em;
  border-radius:100px; padding:2px 9px; flex-shrink:0;
}
.st-chip--officiel{background:#1A1A1E; color:var(--paper);}
.st-chip--vu{background:#F3D8A8; color:#6B4A12; border:1px solid #DFBE84;}
.st-chip--spec{background:#FADFD9; color:#9B2E19; border:1px dashed #E8452C;}
.mk.st-officiel .mk-dot{box-shadow:0 2px 5px rgba(0,0,0,.3), 0 0 0 4px rgba(26,26,30,.16);}
.mk.st-vu .mk-dot{border-style:solid; opacity:.92;}
.mk.st-spec .mk-dot{border-style:dashed; opacity:.8;}
.mk.st-spec .mk-lbl{font-style:italic; opacity:.85;}
.mk.st-officiel .mk-lbl{border-left:3px solid var(--ink);}
.mp-st{
  display:inline-block; margin-top:7px; font-size:.68rem; font-weight:800;
  border-radius:100px; padding:3px 10px; cursor:help;
}
.mp-st--officiel{background:#1A1A1E; color:var(--paper);}
.mp-st--vu{background:#F3D8A8; color:#6B4A12;}
.mp-st--spec{background:#FADFD9; color:#9B2E19; border:1px dashed #E8452C;}
.mp-meta{margin-top:12px; padding-top:10px; border-top:1px solid var(--rule); display:flex; flex-direction:column; gap:6px;}
.mp-meta div{display:flex; justify-content:space-between; gap:12px; font-size:.76rem;}
.mp-meta span{color:var(--ink-soft); flex-shrink:0;}
.mp-meta b{text-align:right; font-weight:700;}
.map-perso{margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid var(--rule);}
.ed-badge{
  display:inline-block; background:var(--coral-text,#B93220); color:#fff;
  font-size:max(11px,.66rem); font-weight:800; border-radius:100px; padding:1px 8px; margin-left:5px;
}
.map-edit-pane{margin-top:11px;}
.ed-help{font-size:.78rem; color:var(--ink-soft); line-height:1.5; margin-bottom:10px;}
.ed-empty{font-size:.78rem; color:var(--ink-soft); font-style:italic;}
.ed-list{list-style:none; max-height:190px; overflow-y:auto; margin-bottom:10px;}
.ed-list li{border-bottom:1px solid var(--rule);}
.ed-list button{
  display:flex; width:100%; justify-content:space-between; align-items:center; gap:9px;
  background:none; border:none; cursor:pointer; font-family:inherit;
  padding:8px 2px; text-align:left;
}
.ed-list button:hover{background:var(--paper-2);}
.ed-n{font-size:.85rem; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.ed-c{font-size:.7rem; color:var(--ink-soft); font-variant-numeric:tabular-nums; flex-shrink:0;}
.ed-io{display:grid; grid-template-columns:1fr 1fr; gap:7px;}
.ed-io button{
  cursor:pointer; font-family:inherit; font-size:.8rem; font-weight:700;
  background:var(--paper-2); color:var(--ink);
  border:1.5px solid var(--rule); border-radius:5px; padding:8px;
}
.ed-io button:hover{border-color:var(--ink);}
.ed-note{font-size:.72rem; color:var(--ink-soft); margin-top:9px; line-height:1.45; opacity:.9;}
.map-stage.editing{cursor:copy;}
.pm-dot{background:#0B8B84 !important; border-color:var(--ink) !important;}
.pm .mk-lbl{border-left:3px solid #0B8B84;}
.pm-acts{display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:12px;}
.pm-acts .mp-btn{margin-top:0; font-size:.8rem; padding:9px;}
.mp-btn.pm-del{background:#FADFD9; border-color:#C2452C; color:#9B2E19;}
.mp-btn.pm-del:hover{background:#F5C9C0;}
.map-coord-wrap{position:absolute; right:12px; top:50px; z-index:5; display:flex; flex-direction:column; align-items:flex-end; gap:5px;}
.map-coord{position:static !important;}
.map-copy{
  cursor:pointer; font-family:inherit; font-size:.66rem; font-weight:700;
  background:rgba(253,251,247,.88); backdrop-filter:blur(4px); color:var(--ink-soft);
  border:1.5px solid var(--rule); border-radius:5px; padding:4px 9px;
}
.map-copy:hover{border-color:var(--ink); color:var(--ink);}
@media (max-width:900px){ .map-coord-wrap{display:none;} }
.mk-dot i{
  position:absolute; top:-7px; right:-9px; font-style:normal;
  min-width:17px; height:17px; padding:0 4px; border-radius:100px;
  background:var(--ink); color:var(--paper); font-size:max(11px,.62rem); font-weight:900;
  display:flex; align-items:center; justify-content:center; line-height:1;
  border:1.5px solid var(--paper);
}
.mk-dot{position:relative;}
.mk.z1 .mk-dot{width:15px; height:15px; border-width:2.5px;}
.mk.z1 .mk-lbl{font-size:max(11px,.66rem);}
.mk.z2 .mk-dot{width:12px; height:12px; border-width:2px;}
.mk.z2 .mk-lbl{font-size:max(11px,.6rem); padding:1px 5px;}
.mk--batiment .mk-dot{border-radius:3px;}
.mk--transport .mk-dot{border-radius:3px; transform:rotate(45deg);}
.mp-link{
  display:inline-block; margin-top:8px; cursor:pointer; font-family:inherit;
  font-size:.76rem; font-weight:700; color:var(--coral-text,#B93220);
  background:none; border:none; padding:0; text-decoration:underline; text-underline-offset:3px;
}
.mp-places{list-style:none; margin:10px 0 0; padding:0; border-top:1px solid var(--rule);}
.mp-places li{border-bottom:1px solid var(--rule);}
.mp-places .mp-place{display:flex; align-items:center; gap:8px; min-height:40px; margin:0; padding:7px 0; font-size:.84rem; text-decoration:none;}
.mp-places .mp-place::before{content:''; width:8px; height:8px; border-radius:50%; background:var(--coral); flex-shrink:0;}
.mp-places .mp-place:hover, .mp-places .mp-place:focus-visible{text-decoration:underline; text-underline-offset:3px;}
.map-pages{margin:18px 0 0; font-size:.95rem; color:var(--ink-soft); max-width:70ch;}
.map-pages a{color:var(--coral-text,#B93220); text-decoration:underline; text-underline-offset:3px;}
.mp-page{display:block; margin-top:10px; font-size:.84rem;}
.mp-kids{margin-top:11px; padding-top:9px; border-top:1px solid var(--rule);}
.mp-kids-h{font-size:.7rem; font-weight:800; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em; margin-bottom:5px;}
.mp-kid{
  display:flex; align-items:center; gap:8px; width:100%; cursor:pointer;
  font-family:inherit; font-size:.82rem; font-weight:600; color:var(--ink); text-align:left;
  background:none; border:none; padding:5px 0;
}
.mp-kid:hover{color:var(--coral-text,#B93220);}
.mp-kid-dot{width:8px; height:8px; border-radius:50%; flex-shrink:0;}
.mp-kid-st{margin-left:auto; font-style:normal; font-size:max(11px,.62rem); font-weight:800; border-radius:100px; padding:1px 7px; flex-shrink:0;}
.mp-kid-st--officiel{background:#1A1A1E; color:var(--paper);}
.mp-kid-st--vu{background:#F3D8A8; color:#6B4A12;}
.mp-kid-st--spec{background:#FADFD9; color:#9B2E19;}
.map-treewrap{margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid var(--rule);}
.map-tree{max-height:260px; overflow-y:auto; scrollbar-width:thin;}
.map-tree ul{list-style:none;}
.tr-kids{margin-left:18px; border-left:1.5px solid var(--rule); padding-left:6px;}
.tr-row{display:flex; align-items:center; gap:3px;}
.tr-tog{
  width:28px; height:28px; flex-shrink:0; cursor:pointer; border:none; background:none;
  font-size:1rem; font-weight:900; color:var(--ink-soft); transition:transform .15s; line-height:1;
}
.tr-tog.open{transform:rotate(90deg);}
.tr-sp{width:20px; flex-shrink:0;}
.tr-go{
  display:flex; align-items:center; gap:7px; flex:1; min-width:0; cursor:pointer;
  font-family:inherit; font-size:.82rem; font-weight:600; color:var(--ink); text-align:left;
  background:none; border:none; padding:5px 4px; border-radius:4px;
}
.tr-go:hover{background:var(--paper-2);}
.tr-dot{width:8px; height:8px; border-radius:50%; flex-shrink:0;}
.tr-n{overflow:hidden; text-overflow:ellipsis; white-space:normal;}
.tr-st{margin-left:auto; font-style:normal; font-size:max(11px,.62rem); font-weight:800; border-radius:100px; padding:1px 6px; flex-shrink:0;}
.tr-st--officiel{background:#1A1A1E; color:var(--paper);}
.tr-st--vu{background:#F3D8A8; color:#6B4A12;}
.tr-st--spec{background:#FADFD9; color:#9B2E19;}
.tr-d1 .tr-go{font-size:.78rem;}
.tr-d2 .tr-go{font-size:.74rem; font-weight:500;}
.map-mini{
  position:absolute; left:12px; top:12px; z-index:6;
  width:104px; height:120px; cursor:pointer; overflow:hidden;
  background:#5FA8D3; border:2px solid var(--ink); border-radius:7px;
  box-shadow:3px 3px 0 var(--ink); opacity:.94; transition:opacity .15s;
}
.map-mini:hover{opacity:1;}
.map-mini svg{width:100%; height:100%; display:block;}
.map-mini-box{
  position:absolute; border:2px solid var(--coral); border-radius:2px;
  background:rgba(232,69,44,.16); pointer-events:none;
  min-width:6px; min-height:6px;
}
.map-help{
  position:absolute; right:12px; top:12px; z-index:7;
  width:30px; height:30px; cursor:pointer; border-radius:50%;
  background:#fff; border:2px solid var(--ink); color:var(--ink);
  font-family:inherit; font-size:.95rem; font-weight:900; line-height:1;
  box-shadow:2px 2px 0 var(--ink);
}
.map-help:hover{background:var(--amber);}
.map-help-box{
  position:absolute; right:12px; top:50px; z-index:8; width:min(280px, calc(100% - 24px));
  background:#fff; border:2px solid var(--ink); border-radius:9px;
  padding:15px 17px; box-shadow:5px 5px 0 var(--ink); max-height:66%; overflow-y:auto;
}
.map-help-box h3{font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:var(--coral-text,#B93220); margin-bottom:6px;}
.map-help-box h3 + ul{margin-bottom:12px;}
.map-help-box ul{list-style:none;}
.map-help-box li{font-size:.8rem; color:var(--ink-soft); padding:3px 0; line-height:1.45;}
.map-help-box b{color:var(--ink); font-weight:700;}
.map-sources{margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid var(--rule);}
.fl-n{
  margin-left:auto; font-size:.68rem; font-weight:800; color:var(--ink-soft);
  background:var(--paper-2); border-radius:100px; padding:1px 7px; flex-shrink:0;
}
.fl-vide{font-style:italic;}
.fl{justify-content:flex-start;}
.rl-step{display:inline-flex; align-items:center; gap:4px;}
.rl-step b{
  display:inline-flex; align-items:center; justify-content:center;
  width:16px; height:16px; border-radius:50%; background:var(--amber);
  color:var(--ink); font-size:.64rem; font-weight:900; flex-shrink:0;
}
.rl-seg{font-size:.74rem; color:var(--ink-soft); margin-top:-6px; margin-bottom:10px;}
@media (max-width:900px){
  .map-mini{width:74px; height:86px; top:10px; left:10px;}
  .map-help-box{left:10px; right:10px; width:auto;}
}
.map-side{
  max-height:calc(100vh - 100px); max-height:calc(100dvh - 100px); overflow-y:auto; scrollbar-width:thin;
  padding:16px 15px;
}
.map-side::-webkit-scrollbar{width:6px;}
.map-side::-webkit-scrollbar-thumb{background:var(--rule); border-radius:6px;}
.ms{border-top:1px solid var(--rule);}
.ms:first-of-type{border-top:none;}
.ms > summary{
  list-style:none; cursor:pointer; user-select:none;
  display:flex; align-items:center; gap:7px;
  padding:11px 2px; font-size:.78rem; font-weight:800;
  letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft);
}
.ms > summary::-webkit-details-marker{display:none;}
.ms > summary::after{
  content:'›'; margin-left:auto; font-size:1.1rem; font-weight:900;
  color:var(--ink-soft); transition:transform .2s; line-height:1;
}
.ms[open] > summary::after{transform:rotate(90deg);}
.ms > summary:hover{color:var(--ink);}
.ms[open] > summary{color:var(--ink);}
.ms-in{padding:2px 0 14px;}
.ms-n{
  font-size:.68rem; font-weight:800; color:var(--ink-soft);
  background:var(--paper-2); border-radius:100px; padding:1px 7px;
}
.ms-found > summary{color:var(--coral-text,#B93220);}
.ms-in .map-side-h{display:none;}
.ms-in > div[class^="map-"]{margin:0; padding:0; border:none;}
.mp-img{
  margin:-17px -19px 13px; border-bottom:2px solid var(--ink);
  background:var(--paper-2); overflow:hidden; position:relative;
}
.mp-img img{width:100%; height:150px; object-fit:cover; display:block;}
.mp-img figcaption{
  position:absolute; right:8px; bottom:6px; font-size:.62rem; font-weight:700;
  color:#fff; background:rgba(26,26,30,.7); border-radius:4px; padding:2px 7px;
}
.mp-img--ko img{display:none;}
.mp-img--ko::after, .mp-img--vide{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  height:96px; color:var(--ink-soft); font-size:.72rem; font-weight:700;
  background:repeating-linear-gradient(135deg, var(--paper-2) 0 10px, #EDE7DA 10px 20px);
}
.mp-img--vide svg{width:34px; height:34px; opacity:.6;}
.mp-pers{margin-top:11px; padding-top:9px; border-top:1px solid var(--rule);}
.mp-pers ul{list-style:none;}
.mp-pers li{display:flex; flex-direction:column; padding:5px 0; font-size:.8rem;}
.mp-pers li + li{border-top:1px dashed var(--rule);}
.mp-pers b{font-weight:800; color:var(--ink);}
.mp-pers span{color:var(--ink-soft); font-size:.76rem; line-height:1.45;}
.mp-row{display:flex; gap:7px; margin-top:12px; align-items:stretch;}
.mp-row .mp-btn{flex:1; margin-top:0;}
.mp-share{
  width:42px; cursor:pointer; background:var(--paper-2);
  border:2px solid var(--ink); border-radius:6px; color:var(--ink);
  display:flex; align-items:center; justify-content:center; transition:background .15s;
}
.mp-share svg{width:17px; height:17px;}
.mp-share:hover{background:var(--rule);}
.mp-share.ok{background:#2A9D8F; color:#fff; border-color:#2A9D8F;}
.map-markers.lbl-z1 .mk.z1 .mk-lbl{display:none;}
.map-markers.lbl-z2 .mk.z2 .mk-lbl{display:none;}
.mk--activite .mk-dot{border-radius:3px; transform:rotate(45deg);}
.mk:focus-visible .mk-dot{outline:3px solid var(--coral); outline-offset:3px;}
.mk:focus-visible .mk-lbl{display:inline-block !important;}
.map-panel{width:min(320px, calc(100% - 24px)); max-height:calc(100% - 24px); overflow-y:auto;}
.vhero .vstats-note{margin-top:14px;max-width:56ch;font-size:.86rem;line-height:1.5;color:var(--ink-soft);}
.map-bg-lite{position:absolute;top:0;left:0;width:100%;height:100%;display:none;pointer-events:none;user-select:none;-webkit-user-drag:none;}
.map-stage.lite-ready .map-bg-lite{display:block;}
.map-stage.lite-ready.is-moving .map-bg{display:none;}
.map-stage.is-touch .map-bg g[filter]{filter:none;}
.map-stage.is-touch .map-bg>rect[fill="url(#waves)"]{display:none;}
