/* Chrome des cartes plein écran (pages autonomes, sans style.css) — copié du CSS inline v3.
   Décision 20/07/2026 : Jost (SIL OFL, variable, auto-hébergée) remplace Mainland (licence non libre). */
@font-face{font-family:'Jost';src:url("../fonts/jost-latin-tnMAxTg.woff2") format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Jost';src:url("../fonts/jost-latin-ext-1oyGlEO.woff2") format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';src:url("../fonts/Montserrat-Regular-hcBn2o3.ttf") format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url("../fonts/Montserrat-SemiBold-C7LqmRh.ttf") format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url("../fonts/Montserrat-Bold-almxg2n.ttf") format('truetype');font-weight:700;font-style:normal;font-display:swap}

:root{--paper:#FAF6EF;--ink:#2A241C;--muted:#6E6355;--blue:#555E9A;--green:#548E37;--teal:#539199}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:'Montserrat',system-ui,sans-serif;color:var(--ink);display:flex;flex-direction:column}
header{background:#2A2A2A;color:#fff;padding:10px 18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
header h1{font-family:'Jost','Helvetica Neue',Arial,sans-serif;font-size:17px;margin:0;font-weight:500}
header h1 .tag{background:var(--teal);font-size:10px;font-weight:700;letter-spacing:.06em;padding:3px 8px;border-radius:9px;vertical-align:3px;margin-left:8px}
/* pastille escapade (sarcelle) */
.esc-pin{position:relative;width:52px;height:52px;border-radius:50%;border:3px solid #539199;box-shadow:0 2px 8px rgba(0,0,0,.35);overflow:hidden;background:#ddd}
.esc-pin img{width:100%;height:100%;object-fit:cover}
.esc-pin .v{position:absolute;left:-2px;top:-2px;background:#539199;color:#fff;font-size:9px;font-weight:700;padding:2px 5px;border-radius:9px;border:2px solid #fff}
header .sub{font-size:12px;color:#C9BFAF}
header a{color:#A8CE78;font-size:12.5px;font-weight:600;text-decoration:none;margin-left:auto}
header a:hover{text-decoration:underline}
#map{flex:1;position:relative;z-index:0}
/* pastille voyage (niveau monde) */
.trip-pin{position:relative;width:64px;height:64px;border-radius:50%;border:4px solid #555E9A;box-shadow:0 3px 10px rgba(0,0,0,.4);overflow:hidden;background:#ddd;transition:transform .2s}
.trip-pin:hover{transform:scale(1.1)}
.trip-pin img{width:100%;height:100%;object-fit:cover}
.trip-pin .n{position:absolute;right:-2px;bottom:-2px;background:#555E9A;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:9px;border:2px solid #fff}
.trip-lbl{background:#fff;border:none;box-shadow:0 2px 8px rgba(0,0,0,.25);border-radius:9px;font:600 12px 'Montserrat',sans-serif;color:var(--ink);padding:5px 10px}
.trip-lbl b{font-family:'Jost','Helvetica Neue',Arial,sans-serif;font-size:13px}
.trip-lbl .m{color:var(--muted);font-weight:400;font-size:11px}
/* pastille ville */
.city-pin{position:relative;width:48px;height:48px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35);overflow:hidden;background:#ddd;transition:transform .2s}
.city-pin.on{transform:scale(1.2);border-color:#548E37}
.city-pin img{width:100%;height:100%;object-fit:cover}
.city-pin .n{position:absolute;right:-2px;bottom:-2px;background:var(--blue);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:9px;border:2px solid #fff}
.city-pin .v{position:absolute;left:-2px;top:-2px;background:var(--green);color:#fff;font-size:9px;font-weight:700;padding:2px 5px;border-radius:9px;border:2px solid #fff}
.leaflet-tooltip.map-lbl{background:transparent;border:none;box-shadow:none;font-weight:600;font-size:12px;color:var(--ink);text-shadow:0 1px 3px #fff,0 -1px 3px #fff,1px 0 3px #fff,-1px 0 3px #fff;padding:0}
/* base « j'ai vécu ici » (anneau sarcelle) et voyage en cours (LIVE) */
.w-base{width:26px;height:26px;border-radius:50%;border:4px solid var(--teal);background:rgba(83,145,153,.18);box-shadow:0 1px 6px rgba(0,0,0,.3)}
.w-live{background:var(--green);color:#fff;font:700 10px 'Montserrat',sans-serif;padding:4px 9px;border-radius:12px;border:2px solid #fff;box-shadow:0 1px 6px rgba(0,0,0,.35);animation:wpulse 1.8s infinite}
@keyframes wpulse{0%{box-shadow:0 0 0 0 rgba(84,142,55,.55)}70%{box-shadow:0 0 0 14px rgba(84,142,55,0)}100%{box-shadow:0 0 0 0 rgba(84,142,55,0)}}
.hint{position:absolute;left:50%;transform:translateX(-50%);bottom:14px;z-index:1000;background:rgba(255,255,255,.95);border-radius:10px;padding:8px 14px;font-size:12px;color:var(--muted);box-shadow:0 2px 10px rgba(0,0,0,.18);pointer-events:none;transition:opacity .3s}
.hint.off{opacity:0}
/* panneau ville */
#panel{position:fixed;left:0;right:0;bottom:0;z-index:1200;background:rgba(255,255,255,.97);box-shadow:0 -4px 18px rgba(0,0,0,.18);padding:12px 16px;transform:translateY(105%);transition:transform .25s}
#panel.on{transform:none}
#panel .head{display:flex;align-items:baseline;gap:12px;margin-bottom:8px;flex-wrap:wrap}
#panel h2{font-family:'Jost','Helvetica Neue',Arial,sans-serif;font-size:17px;margin:0}
#panel .meta{font-size:12px;color:var(--muted)}
#panel .trip-link{font-size:12px;font-weight:600;color:var(--blue)}
#panel .close{margin-left:auto;border:none;background:#F2EADC;border-radius:7px;font:600 12px 'Montserrat';padding:5px 10px;cursor:pointer}
#panel .row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
#panel img{height:96px;border-radius:8px;cursor:pointer;flex:none}
/* visionneuse */
#lb{position:fixed;inset:0;background:rgba(26,22,16,.93);display:none;align-items:center;justify-content:center;z-index:2000;flex-direction:column}
#lb.on{display:flex}
#lb img{max-width:92vw;max-height:82vh;border-radius:6px;box-shadow:0 8px 40px rgba(0,0,0,.6)}
#lb .cap{color:#EAE0CC;font-size:13px;margin-top:12px;text-align:center;padding:0 16px}
#lb .cap b{color:#fff}
#lb button{position:fixed;top:50%;transform:translateY(-50%);border:none;background:rgba(255,255,255,.12);color:#fff;font-size:26px;width:46px;height:46px;border-radius:50%;cursor:pointer}
#lb button:hover{background:rgba(255,255,255,.25)}
#lb #lb-prev{left:14px}#lb #lb-next{right:14px}
#lb #lb-close{top:18px;right:18px;transform:none;font-size:18px}
@media(max-width:640px){header h1{font-size:15px}header .sub{display:none}}
