html, body.page-carte{ margin:0; height:100%; overflow:hidden; }
#carte{ position:absolute; inset:0; background:#0d1a17; }

.carte-topbar{
    position:absolute; top:20px; left:20px; z-index:1000; border-radius:10px;
    padding:10px 18px; display:flex; align-items:center; gap:14px;
}
.carte-brand{ display:flex; align-items:center; gap:9px; color:var(--gold-strong); font-family:var(--font-display); font-size:19px; }
.carte-brand:hover{ color:var(--gold-strong); }
.carte-badge{ font-size:9.5px; letter-spacing:.1em; color:#1a1610; background:var(--gold); padding:3px 9px; border-radius:999px; font-weight:700; }

.carte-layers{
    position:absolute; top:20px; right:20px; z-index:1000; width:250px; border-radius:10px;
    padding:6px; max-height:calc(100vh - 40px); overflow:auto;
}

/* accordéon : calques / édition dans le même cadre */
.carte-accordion + .carte-accordion{ border-top:1px solid var(--border); margin-top:4px; padding-top:4px; }
.carte-accordion-head{
    width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px;
    background:transparent; border:0; padding:10px 10px; color:var(--text-muted);
    font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer;
}
.carte-accordion-head:hover{ color:var(--text); }
.carte-accordion-head svg{ transition:transform .15s ease; flex-shrink:0; }
.carte-accordion-head.is-open svg{ transform:rotate(180deg); }
.carte-accordion-body{ padding:2px 10px 12px; }
.carte-accordion-body.u-hidden{ display:none; }

.carte-layer-row{ display:flex; align-items:center; gap:9px; font-size:12.5px; color:var(--text-muted); padding:4px 0; cursor:pointer; }
.carte-layer-row input{ accent-color:var(--gold); }
.carte-layer-row:hover{ color:var(--text); }

/* formulaire d'édition — empilé verticalement pour tenir dans le panneau étroit */
.carte-editor-hint{ display:flex; align-items:center; gap:7px; font-size:11.5px; color:var(--gold-strong); margin-bottom:10px; line-height:1.4; }
#carte-editor{ display:flex; flex-direction:column; gap:8px; }
#carte-editor select, #carte-editor input[type="text"]{
    width:100%; background:rgba(255,255,255,.05); border:1px solid var(--border-strong); color:var(--text);
    font-size:12px; padding:7px 9px; border-radius:6px;
}
.carte-editor-actions{ display:flex; gap:6px; margin-top:2px; }
.carte-editor-actions .btn{ padding:7px 10px; font-size:11.5px; }
#carte-editor button:disabled{ opacity:.35; cursor:not-allowed; }

/* ---------- polices d'origine de la carte (vendorisées depuis www/lib/font/) ---------- */
@font-face{ font-family:'FTG';   src:url('../../lib/font/frederickathegreat-webfont.woff2') format('woff2'), url('../../lib/font/frederickathegreat-webfont.woff') format('woff'); font-weight:normal; font-style:normal; }
@font-face{ font-family:'IFDPb'; src:url('../../lib/font/imfelldwpicab-webfont.woff2') format('woff2'), url('../../lib/font/imfelldwpicab-webfont.woff') format('woff'); font-weight:normal; font-style:normal; }
@font-face{ font-family:'IFDPi'; src:url('../../lib/font/imfelldwpicai-webfont.woff2') format('woff2'), url('../../lib/font/imfelldwpicai-webfont.woff') format('woff'); font-weight:normal; font-style:normal; }
@font-face{ font-family:'IFDPn'; src:url('../../lib/font/imfelldwpicar-webfont.woff2') format('woff2'), url('../../lib/font/imfelldwpicar-webfont.woff') format('woff'); font-weight:normal; font-style:normal; }

/* étiquettes de lieux — reprises telles quelles (police, taille, couleur) de l'ancienne carte */
.page-carte .leaflet-tooltip.continent-nom{
    font-family:'FTG'; background:transparent; border:none; box-shadow:none;
    font-size:5em; font-weight:bold; text-transform:uppercase; letter-spacing:.2em;
    text-shadow:-1px -1px 0 #ecebeb80, 1px -1px 0 #ecebeb80, -1px 1px 0 #ecebeb80, 1px 1px 0 #ecebeb80;
}
.page-carte[data-carte-zoom="2"] .leaflet-tooltip.continent-nom,
.page-carte[data-carte-zoom="3"] .leaflet-tooltip.continent-nom{ opacity:1 !important; }
.page-carte[data-carte-zoom="4"] .leaflet-tooltip.continent-nom,
.page-carte[data-carte-zoom="5"] .leaflet-tooltip.continent-nom,
.page-carte[data-carte-zoom="6"] .leaflet-tooltip.continent-nom{ opacity:0 !important; }

.page-carte .leaflet-tooltip.region-nom{
    font-family:'IFDPb'; background:transparent; border:none; box-shadow:none;
    font-size:2em; letter-spacing:.1em; color:#f3f3e4; text-align:center;
    text-shadow:-1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}
.page-carte[data-carte-zoom="2"] .leaflet-tooltip.region-nom,
.page-carte[data-carte-zoom="3"] .leaflet-tooltip.region-nom{ opacity:0 !important; }
.page-carte[data-carte-zoom="4"] .leaflet-tooltip.region-nom,
.page-carte[data-carte-zoom="5"] .leaflet-tooltip.region-nom{ opacity:1 !important; }
.page-carte[data-carte-zoom="6"] .leaflet-tooltip.region-nom{ font-size:5em; opacity:.25 !important; }

.page-carte .leaflet-tooltip.mer-nom{
    font-family:'IFDPi'; background:transparent; border:none; box-shadow:none;
    font-size:2em; letter-spacing:.1em; color:#fff;
}
.page-carte[data-carte-zoom="2"] .leaflet-tooltip.mer-nom{ opacity:0 !important; }
.page-carte[data-carte-zoom="3"] .leaflet-tooltip.mer-nom,
.page-carte[data-carte-zoom="4"] .leaflet-tooltip.mer-nom,
.page-carte[data-carte-zoom="5"] .leaflet-tooltip.mer-nom,
.page-carte[data-carte-zoom="6"] .leaflet-tooltip.mer-nom{ opacity:.75 !important; }

.page-carte .leaflet-tooltip.ville-nom{
    font-family:'IFDPn'; margin-left:.4em; background:transparent; border:none; box-shadow:none;
    font-size:1.5em; color:#333;
    text-shadow:-1px -1px 0 #ecebeb80, 1px -1px 0 #ecebeb80, -1px 1px 0 #ecebeb80, 1px 1px 0 #ecebeb80;
}
.page-carte .leaflet-tooltip.ville-nom.capitale-nom{ margin-left:.6em; font-size:2em; letter-spacing:.1em; font-weight:bold; }
.page-carte[data-carte-zoom="2"] .leaflet-tooltip.ville-nom,
.page-carte[data-carte-zoom="3"] .leaflet-tooltip.ville-nom,
.page-carte[data-carte-zoom="4"] .leaflet-tooltip.ville-nom{ opacity:0 !important; }
.page-carte[data-carte-zoom="5"] .leaflet-tooltip.ville-nom,
.page-carte[data-carte-zoom="6"] .leaflet-tooltip.ville-nom{ opacity:1 !important; }

.page-carte .leaflet-tooltip.lac-nom{
    font-family:'IFDPn'; margin-left:.4em; background:transparent; border:none; box-shadow:none;
    font-size:1.5em; color:#0ff;
    text-shadow:-1px -1px 0 #2b43ad80, 1px -1px 0 #2b43ad80, -1px 1px 0 #2b43ad80, 1px 1px 0 #2b43ad80;
}
.page-carte[data-carte-zoom="2"] .leaflet-tooltip.lac-nom,
.page-carte[data-carte-zoom="3"] .leaflet-tooltip.lac-nom,
.page-carte[data-carte-zoom="4"] .leaflet-tooltip.lac-nom,
.page-carte[data-carte-zoom="5"] .leaflet-tooltip.lac-nom{ opacity:0 !important; }
.page-carte[data-carte-zoom="6"] .leaflet-tooltip.lac-nom{ opacity:1 !important; }

.leaflet-tooltip.ville-nom.leaflet-tooltip-top::before,
.leaflet-tooltip.ville-nom.leaflet-tooltip-bottom::before,
.leaflet-tooltip.ville-nom.leaflet-tooltip-left::before,
.leaflet-tooltip.ville-nom.leaflet-tooltip-right::before,
.leaflet-tooltip.region-nom.leaflet-tooltip-top::before,
.leaflet-tooltip.region-nom.leaflet-tooltip-bottom::before,
.leaflet-tooltip.region-nom.leaflet-tooltip-left::before,
.leaflet-tooltip.region-nom.leaflet-tooltip-right::before,
.leaflet-tooltip.mer-nom.leaflet-tooltip-top::before,
.leaflet-tooltip.mer-nom.leaflet-tooltip-bottom::before,
.leaflet-tooltip.mer-nom.leaflet-tooltip-left::before,
.leaflet-tooltip.mer-nom.leaflet-tooltip-right::before,
.leaflet-tooltip.lac-nom.leaflet-tooltip-top::before,
.leaflet-tooltip.lac-nom.leaflet-tooltip-bottom::before,
.leaflet-tooltip.lac-nom.leaflet-tooltip-left::before,
.leaflet-tooltip.lac-nom.leaflet-tooltip-right::before{ border:none; }

/* icônes des marqueurs — rouge par défaut, presque noir sur le fond géopolitique (comme l'ancienne carte) */
.icon-capitale, .icon-ville{ color:rgb(216,27,43); }
#carte.tilelayer-geo .icon-capitale,
#carte.tilelayer-geo .icon-ville{ color:#181818; }

/* icônes des villes : visibles seulement à partir d'un certain niveau de zoom */
.page-carte[data-carte-zoom="2"] .leaflet-marker-icon.icon-ville,
.page-carte[data-carte-zoom="3"] .leaflet-marker-icon.icon-ville{ opacity:0 !important; }
.page-carte[data-carte-zoom="4"] .leaflet-marker-icon.icon-ville,
.page-carte[data-carte-zoom="5"] .leaflet-marker-icon.icon-ville,
.page-carte[data-carte-zoom="6"] .leaflet-marker-icon.icon-ville{ opacity:1 !important; }
.page-carte[data-carte-zoom="3"] .leaflet-marker-icon.icon-ville.icon-capitale,
.page-carte[data-carte-zoom="4"] .leaflet-marker-icon.icon-ville.icon-capitale{ opacity:1 !important; }

/* la carte "satellite avec légendes" a déjà ses noms imprimés sur l'image : on masque les nôtres */
#carte.tilelayer-sat-label .leaflet-tooltip.continent-nom,
#carte.tilelayer-sat-label .leaflet-tooltip.mer-nom,
#carte.tilelayer-sat-label .leaflet-tooltip.lac-nom,
#carte.tilelayer-sat-label .leaflet-tooltip.region-nom{ opacity:0 !important; }

/* popups */
.leaflet-popup-content-wrapper{ background:var(--bg4); color:var(--text); border-radius:8px; }
.leaflet-popup-content h2{ font-family:var(--font-display); font-weight:400; font-size:19px; color:var(--gold-strong); margin:0 0 6px; }
.leaflet-popup-content .texte{ font-size:13px; line-height:1.5; color:var(--text-muted); }
.leaflet-popup-tip{ background:var(--bg4); }
.leaflet-popup-close-button{ color:var(--text-faint) !important; }

/* contrôles leaflet (zoom, outils de dessin) réaccordés au thème */
.leaflet-bar{ background:var(--bg4) !important; border:1px solid var(--border-strong) !important; color:var(--text) !important; }
.leaflet-bar a{ background:var(--bg4) !important; color:var(--text) !important; border-bottom:1px solid var(--border) !important; }
.leaflet-bar a:hover{ background:rgba(212,175,110,.15) !important; }

/* édition du GeoJSON brut */
.carte-geojson-overlay{ position:fixed; inset:0; background:rgba(10,8,5,.6); z-index:2000; display:flex; align-items:center; justify-content:center; }
.carte-geojson-panel{
    width:min(720px, 92vw); height:min(560px, 82vh); background:var(--bg3);
    border:1px solid var(--border-strong); border-radius:10px; overflow:hidden;
    display:flex; flex-direction:column; box-shadow:0 40px 90px -30px rgba(0,0,0,.7);
}
.carte-geojson-head{ padding:12px 18px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; font-size:12.5px; color:var(--text-muted); flex-shrink:0; }
#carte-geojson-textarea{
    flex:1; resize:none; border:0; outline:0; background:var(--bg2); color:var(--text);
    font-family:'Consolas','Courier New',monospace; font-size:12.5px; line-height:1.6; padding:16px;
}
.carte-geojson-foot{ padding:12px 18px; border-top:1px solid var(--border); display:flex; align-items:center; gap:10px; flex-shrink:0; }
