/* Marqueurs et étiquettes de la carte (11/11). Chargé après scene.css : remplace les petits losanges par des pastilles
   rondes à pictogramme (une couleur et une icône par genre de lieu) et pose les noms sur un cartouche sombre lisible sur
   n'importe quel relief. Les mêmes pastilles servent dans les listes des fiches (.list .gly).
   Géométrie : la pastille fait 16 px et commence au bord gauche de l'étiquette → son centre tombe sur le point
   (main.js layoutLabels : x = point − 8 pour anchorLeft). */

:root{
  --mk-cap:#f1cf7c; --mk-ville:#e9bf6c; --mk-village:#d2ad6a; --mk-avant:#e0a05a; --mk-donjon:#f08a5d; --mk-raid:#e5554b;
  --mk-vol:#8fd0ff; --mk-poi:#bfaeff; --mk-site:#5fd6c6; --mk-zone:#a8d77f; --mk-hist:#ff8a3d; --mk-sky:#a9d1f5; --mk-detail:#e6d7a8;
  --mk-plate:rgba(9,13,21,.74); --mk-plate-hi:rgba(16,22,34,.9); --mk-edge:rgba(214,182,116,.26);
  /* Pictogrammes (masques SVG, blanc = visible). */
  --ic-cap:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 17h18v3H3zM3 7l4.6 4.2L12 4l4.4 7.2L21 7l-1.6 8.6H4.6z'/%3E%3C/svg%3E");
  --ic-ville:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 21V8h3v2h2V8h3v2h2V8h3v2h2V8h3v13h-7v-4a2 2 0 0 0-4 0v4z'/%3E%3C/svg%3E");
  --ic-village:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l10 8.5h-3V21h-5v-6h-4v6H5v-9.5H2z'/%3E%3C/svg%3E");
  --ic-avant:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 2h2.4v20H5zM8.6 3.5H20l-3.2 4.6L20 12.7H8.6z'/%3E%3C/svg%3E");
  --ic-donjon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 21V10a9 9 0 0 1 18 0v11h-5.5v-7a3.5 3.5 0 0 0-7 0v7z'/%3E%3C/svg%3E");
  --ic-raid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 2a9 9 0 0 0-9 9c0 3 1.4 5.2 3.6 6.6V22h3v-2.4h1.4V22h2v-2.4h1.4V22h3v-4.4C19.6 16.2 21 14 21 11a9 9 0 0 0-9-9zM8.3 9.6a2.3 2.3 0 1 0 0 4.6 2.3 2.3 0 0 0 0-4.6zm7.4 0a2.3 2.3 0 1 0 0 4.6 2.3 2.3 0 0 0 0-4.6zM12 14.5l-1.3 2.4h2.6z'/%3E%3C/svg%3E");
  --ic-vol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 2.5c-7.5.4-13.6 4-16.6 10.7L2 21.5l2.6-.4 2.2-4.4c5.6-.3 9.8-3.4 11-7.7h-4.4l5.6-2.6C20.5 5.2 21.6 4 22 2.5z'/%3E%3C/svg%3E");
  --ic-poi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.6 7.1.7-5.4 4.7 1.6 7L12 17.3 5.8 21l1.6-7L2 9.3l7.1-.7z'/%3E%3C/svg%3E");
  --ic-site:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 3h20v3H2zM4 19h16v3H4zM5 8h3.4v10H5zm5.3 0h3.4v10h-3.4zm5.3 0H19v10h-3.4z'/%3E%3C/svg%3E");
  --ic-zone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 20L8.5 6l4.3 7.6 2.7-4.1L23 20z'/%3E%3C/svg%3E");
  --ic-hist:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.5 1.5c.9 4.3 6.5 6.7 6.5 13a7 7 0 0 1-14 0c0-3.3 2-5.6 3.3-7.6.1 2.3 1.2 3.6 2.4 3.9-.3-3.3-.6-6 1.8-9.3z'/%3E%3C/svg%3E");
  --ic-sky:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.8 19.5a5 5 0 0 1-.6-10A6.4 6.4 0 0 1 18.4 8a5.8 5.8 0 0 1-.4 11.5z'/%3E%3C/svg%3E");
  --ic-detail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M10 2a8 8 0 0 1 6.3 12.9l5.4 5.4-2.1 2.1-5.4-5.4A8 8 0 1 1 10 2zm0 3a5 5 0 1 0 0 10 5 5 0 0 0 0-10z'/%3E%3C/svg%3E");
}

/* ---------- Pastille ---------- */
.gly.capitale,.gly.ville,.gly.village,.gly.avant,.gly.donjon,.gly.raid,.gly.vol,.gly.poi,.gly.site,.gly.zone,.gly.hist,.gly.sky,.gly.detail{
  --mk:var(--gold);--ic:none;
  position:relative;box-sizing:border-box;width:16px;height:16px;flex:none;transform:none;border-radius:50%;outline:0;
  border:1.5px solid var(--mk);background:radial-gradient(circle at 50% 35%,#1d2738 0%,#0a0f18 78%);
  box-shadow:0 0 0 1px rgba(0,0,0,.75),0 1px 4px rgba(0,0,0,.8);animation:none;}
.gly.capitale::before,.gly.ville::before,.gly.village::before,.gly.avant::before,.gly.donjon::before,.gly.raid::before,.gly.vol::before,
.gly.poi::before,.gly.site::before,.gly.zone::before,.gly.hist::before,.gly.sky::before,.gly.detail::before{
  content:'';position:absolute;inset:2px;background:var(--mk);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat;}
.gly.capitale{--mk:var(--mk-cap);--ic:var(--ic-cap);}
.gly.ville{--mk:var(--mk-ville);--ic:var(--ic-ville);}
.gly.village{--mk:var(--mk-village);--ic:var(--ic-village);}
.gly.avant{--mk:var(--mk-avant);--ic:var(--ic-avant);}
.gly.donjon{--mk:var(--mk-donjon);--ic:var(--ic-donjon);}
.gly.raid{--mk:var(--mk-raid);--ic:var(--ic-raid);}
.gly.vol{--mk:var(--mk-vol);--ic:var(--ic-vol);}
.gly.poi{--mk:var(--mk-poi);--ic:var(--ic-poi);}
.gly.site{--mk:var(--mk-site);--ic:var(--ic-site);}
.gly.zone{--mk:var(--mk-zone);--ic:var(--ic-zone);}
.gly.hist{--mk:var(--mk-hist);--ic:var(--ic-hist);}
.gly.sky{--mk:var(--mk-sky);--ic:var(--ic-sky);}
.gly.detail{--mk:var(--mk-detail);--ic:var(--ic-detail);}
/* Capitale : pastille pleine, or sur fond sombre ; repère historique : braise. */
.gly.capitale{background:radial-gradient(circle at 50% 35%,#4a3612 0%,#1a1206 80%);}
.gly.capitale::before{inset:2.5px 2px 2px;}
.gly.hist.hist{border-color:var(--mk);background:radial-gradient(circle at 50% 40%,#4a1d08 0%,#160804 80%);box-shadow:0 0 0 1px rgba(0,0,0,.75),0 0 8px rgba(255,122,46,.55);}

/* ---------- Étiquette sur la carte : pastille + cartouche ---------- */
#labels .lbl.pin{gap:4px;padding:0;align-items:center;}
#labels .lbl.pin > span:not(.gly){display:block;padding:2px 7px 3px;border-radius:3px;background:var(--mk-plate);border:1px solid var(--mk-edge);
  font-family:'WowFriz',var(--ui);font-weight:400;font-size:12.5px;line-height:1.25;letter-spacing:.03em;color:#f4e8cb;font-style:normal;
  text-shadow:0 1px 1px rgba(0,0,0,.9);box-shadow:0 1px 3px rgba(0,0,0,.45);transition:background-color .15s,border-color .15s,color .15s,opacity .35s;}
/* Lieux du lore et grandes villes : cartouche un peu plus marqué. */
#labels .lbl.pin:not(.game) > span:not(.gly),#labels .lbl.pin.game.ville > span:not(.gly){font-size:13px;color:#fbefd2;border-color:rgba(214,182,116,.4);}
#labels .lbl.pin.capitale > span:not(.gly){font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#fff1cf;
  padding:3px 9px 3px;background:linear-gradient(180deg,rgba(40,29,10,.86),rgba(14,10,4,.86));border-color:rgba(241,207,124,.6);}
#labels .lbl.pin.capitale .gly{width:18px;height:18px;margin:-1px;}
/* Petits points du jeu (sites, points d'intérêt, maîtres de vol, hameaux) : pastille et cartouche plus discrets. */
#labels .lbl.pin.game.site .gly,#labels .lbl.pin.game.poi .gly,#labels .lbl.pin.game.vol .gly,#labels .lbl.pin.game.village .gly,#labels .lbl.pin.game.detail .gly{width:14px;height:14px;margin-left:1px;border-width:1.3px;}
#labels .lbl.pin.game.site > span:not(.gly),#labels .lbl.pin.game.poi > span:not(.gly),#labels .lbl.pin.game.vol > span:not(.gly),#labels .lbl.pin.game.detail > span:not(.gly){
  font-size:11.5px;color:#e6dbc2;padding:1px 6px 2px;background:rgba(9,13,21,.62);border-color:rgba(214,182,116,.16);}
/* Instances : nom teinté de la couleur de la pastille. */
#labels .lbl.pin.donjon > span:not(.gly){border-color:rgba(240,138,93,.45);color:#ffe0cf;}
#labels .lbl.pin.raid > span:not(.gly){border-color:rgba(229,85,75,.5);color:#ffd6d0;}
/* Haut lieu de l'histoire : braise, nom en italique. */
#labels .lbl.pin.hist > span:not(.gly){font-style:italic;color:#ffdcb0;border-color:rgba(255,138,61,.5);background:linear-gradient(180deg,rgba(38,16,6,.82),rgba(14,6,2,.82));}
#labels .lbl.pin.hist.sel .gly.hist{animation:lmPulse 1.6s ease-in-out infinite;outline:0;}
/* Ciel et souterrain : bords de cartouche dans la teinte du calque. */
#labels .lbl.pin.sky > span:not(.gly){border-color:rgba(169,209,245,.45);color:#e3f1ff;background:rgba(10,24,44,.78);}
#labels .lbl.pin.under > span:not(.gly){border-color:rgba(95,214,198,.4);}

/* Survol et sélection */
#labels .lbl.pin:hover{z-index:2;}
#labels .lbl.pin:hover > span:not(.gly){background:var(--mk-plate-hi);border-color:rgba(241,207,124,.75);color:#fff;}
#labels .lbl.pin:hover .gly{box-shadow:0 0 0 1px rgba(0,0,0,.75),0 0 9px color-mix(in srgb,var(--mk) 70%,transparent);}
#labels .lbl.pin.sel{z-index:3;}
#labels .lbl.pin.sel > span:not(.gly){background:rgba(4,34,38,.9);border-color:var(--teal);color:#e9fffc;}
#labels .lbl.pin.sel .gly{outline:0;border-color:var(--teal);box-shadow:0 0 0 2px rgba(10,200,185,.35),0 0 10px rgba(10,200,185,.7);}
#labels .lbl.pin.sel .gly::before{background:#bffaf3;}
.hide-names #labels .lbl.pin:not(:hover):not(.sel) > span:not(.gly),#labels.hide-names .lbl.pin:not(:hover):not(.sel) > span:not(.gly){opacity:0;}

/* ---------- Noms des zones : Friz Quadrata plus grand, contour sombre net au lieu d'un halo flou ---------- */
#labels .lbl.zone{font-size:14px;letter-spacing:.06em;color:#fbe9b9;-webkit-text-stroke:2.5px rgba(10,7,3,.78);paint-order:stroke fill;
  text-shadow:0 1px 3px rgba(0,0,0,.85),0 0 10px rgba(0,0,0,.5);}
#labels .lbl.zone.sel{color:#7ff0e4;}
#labels .lbl.zone.under{color:#c4f5ee;}
#labels .lbl.zone.under.sub{font-size:12.5px;color:#a9eef6;}
/* Continents (vue d'ensemble) : même contour. */
#labels .lbl.cont{-webkit-text-stroke:4px rgba(26,14,4,.75);paint-order:stroke fill;}
/* Portails « Entrer » : cartouche. */
#labels .lbl.mist{padding:6px 14px 7px;border-radius:3px;background:rgba(6,14,22,.7);border:1px solid rgba(156,203,208,.4);}
#labels .lbl.mist:hover{border-color:#cfeff2;background:rgba(10,24,34,.85);}

/* ---------- Listes des fiches : même pastille, un peu plus petite ---------- */
.list .gly,.lb-places .gly,.lm-fly .gly{width:15px;height:15px;}
#labels .lbl.pin .gly{margin-right:0;}

@media (max-width:700px){
  #labels .lbl.pin > span:not(.gly){font-size:12px;}
  #labels .lbl.zone{font-size:13px;}
}
@media (prefers-reduced-motion:reduce){#labels .lbl.pin.hist.sel .gly.hist{animation:none;}}
