/* ================================================================
   HELLDIVERS-BR — MAPA GALÁCTICO
   Página self-contained: variáveis de cor vêm do style.css global
   (--hd-yellow, --hd-orange). Nada aqui depende do guerra.css.
   ================================================================ */

.mapa-main { padding-top:0; }
.mapa-shell { max-width:1400px; margin:0 auto; }

.mapa-hero {
    position:relative; overflow:hidden;
    padding:20px; margin-bottom:16px;
    background:linear-gradient(120deg,rgba(12,12,12,.96),rgba(26,26,22,.90));
    border:1px solid #343434; border-top:2px solid var(--hd-yellow);
}
.mapa-kicker { color:var(--hd-orange); font:700 11px 'Oswald',Impact,sans-serif; letter-spacing:2.5px; text-transform:uppercase; margin-bottom:7px; }
.mapa-title { color:#fff; font:700 clamp(26px,4.5vw,40px) 'Oswald',Impact,sans-serif; text-transform:uppercase; letter-spacing:.5px; margin:0 0 8px; }
.mapa-subtitle { color:#999; font-size:12.5px; line-height:1.6; max-width:820px; margin:0; }

.mapa-toolbar { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px; align-items:center; }
.mapa-search { flex:1 1 220px; height:38px; background:#141414; border:1px solid #333; color:#eee; padding:0 12px; font-size:12px; outline:none; }
.mapa-search:focus { border-color:var(--hd-yellow); }
.mapa-filters { display:flex; flex-wrap:wrap; gap:6px; }
.mapa-filter { height:38px; background:#141414; border:1px solid #333; color:#bbb; padding:0 12px; font-size:11px; text-transform:uppercase; letter-spacing:.4px; cursor:pointer; transition:.15s ease; }
.mapa-filter:hover { border-color:#555; color:#ddd; }
.mapa-filter.active { border-color:var(--hd-yellow); color:var(--hd-yellow); background:rgba(215,213,44,.07); }

.mapa-panel { background:rgba(11,11,11,.91); border:1px solid #2e2e2e; margin-bottom:16px; }

.mapa-credit-banner {
    display:flex; gap:11px; align-items:flex-start;
    background:rgba(255,232,0,.07); border:1px solid rgba(255,232,0,.35); border-left:3px solid var(--hd-yellow);
    padding:12px 14px; margin-bottom:16px; color:#ccc; font-size:12px; line-height:1.55;
}
.mapa-credit-banner span { font-size:18px; line-height:1; flex-shrink:0; }
.mapa-credit-banner strong { color:#fff; }
.mapa-credit-banner a { color:var(--hd-yellow); text-decoration:none; }
.mapa-credit-banner a:hover { text-decoration:underline; }

.mapa-embed-wrap { position:relative; height:min(78vh,820px); min-height:460px; background:#050505; }
.mapa-embed-frame { width:100%; height:100%; display:block; border:0; }
@media (max-width:768px) { .mapa-embed-wrap { height:min(68vh,620px); } }

.mapa-viewport-wrap {
    position:relative; height:min(72vh,720px); min-height:420px; overflow:hidden;
    background:
        radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,.55), transparent 60%),
        radial-gradient(1px 1px at 65% 15%, rgba(255,255,255,.40), transparent 60%),
        radial-gradient(1.5px 1.5px at 80% 60%, rgba(255,255,255,.50), transparent 60%),
        radial-gradient(1px 1px at 40% 80%, rgba(255,255,255,.35), transparent 60%),
        radial-gradient(1px 1px at 90% 40%, rgba(255,255,255,.30), transparent 60%),
        radial-gradient(1.5px 1.5px at 10% 70%, rgba(255,255,255,.40), transparent 60%),
        radial-gradient(1px 1px at 55% 50%, rgba(255,255,255,.25), transparent 60%),
        #050505;
    background-size:400px 400px,350px 350px,300px 300px,380px 380px,320px 320px,360px 360px,340px 340px,100% 100%;
}
.mapa-svg { width:100%; height:100%; display:block; cursor:grab; touch-action:none; }
.mapa-svg:active { cursor:grabbing; }
.mapa-hint { padding:9px 14px; color:#666; font-size:9.5px; letter-spacing:.4px; text-transform:uppercase; border-top:1px solid #222; }

.mapa-loading { position:absolute; inset:0; z-index:3; display:flex; align-items:center; justify-content:center; background:#050505; }
.mapa-loading.hidden { display:none; }
.mapa-loading .loading { color:#888; font-size:12px; text-transform:uppercase; letter-spacing:1px; }

.mapa-zoom-controls { position:absolute; top:12px; right:12px; z-index:2; display:flex; flex-direction:column; gap:4px; }
.mapa-zoom-controls button {
    width:32px; height:32px; background:rgba(15,15,15,.9); border:1px solid #343434; color:#ddd;
    font:700 15px 'Oswald',Impact,sans-serif; cursor:pointer; line-height:1;
}
.mapa-zoom-controls button:hover { border-color:var(--hd-yellow); color:var(--hd-yellow); }

.mapa-legend {
    position:absolute; left:12px; bottom:12px; z-index:2;
    display:flex; flex-wrap:wrap; gap:10px;
    background:rgba(10,10,10,.82); border:1px solid #2e2e2e; padding:8px 11px;
    font-size:9.5px; color:#aaa; text-transform:uppercase; letter-spacing:.4px;
}
.mapa-legend span { display:flex; align-items:center; gap:5px; }
.mapa-legend i { width:8px; height:8px; border-radius:50%; display:inline-block; }
.mapa-legend-event { background:transparent !important; border:1.5px solid #fff; box-shadow:0 0 5px #fff; }

.mapa-footer { text-align:center; color:#555; font-size:9.5px; padding:10px 0 2px; text-transform:uppercase; letter-spacing:.5px; }
.mapa-footer a { color:var(--hd-yellow); text-decoration:none; }

/* --- Nós e linhas do SVG --- */
.mapa-supply-line { stroke:#333; stroke-width:.6; fill:none; opacity:.55; }
.mapa-faction-halo { opacity:.16; pointer-events:none; mix-blend-mode:screen; }
.mapa-planet-dot { cursor:pointer; stroke:#000; stroke-width:.35; transition:opacity .15s ease; }
.mapa-planet-dot:hover { stroke:#fff; stroke-width:.6; }
.mapa-planet-dot.dimmed { opacity:.12; }
.mapa-planet-ring { fill:none; stroke:#fff; stroke-width:.5; opacity:.9; pointer-events:none; animation:mapa-pulse 1.8s ease-in-out infinite; }
.mapa-planet-ring.dimmed { opacity:.08; animation:none; }
.mapa-planet-tick { stroke-width:.55; opacity:.85; pointer-events:none; animation:mapa-pulse 1.8s ease-in-out infinite; }
@keyframes mapa-pulse { 0%,100% { opacity:.5; } 50% { opacity:1; } }
.mapa-dss-marker { pointer-events:none; }
.mapa-dss-label {
    fill:#ffd23f; font:700 6.5px 'Oswald',Impact,sans-serif; text-transform:uppercase;
    letter-spacing:.5px; pointer-events:none; paint-order:stroke; stroke:#000; stroke-width:1.3px;
}
.mapa-planet-label {
    fill:#eee; font:6px 'Oswald',Impact,sans-serif; text-transform:uppercase;
    letter-spacing:.3px; pointer-events:none; paint-order:stroke; stroke:#000; stroke-width:1.4px;
    opacity:0; transition:opacity .12s ease;
}
/* Nomes só aparecem quando dá zoom o bastante pra não virar sopa de letrinhas,
   ou ao passar o mouse num planeta específico (mesmo sem zoom). */
#mapa-viewport.mapa-labels-on .mapa-planet-label { opacity:1; }
.mapa-dots g[data-index]:hover .mapa-planet-label { opacity:1 !important; }
.mapa-planet-label.dimmed { opacity:0 !important; }

@media (max-width:768px) {
    .mapa-viewport-wrap { height:min(62vh,560px); }
    .mapa-legend { font-size:8.5px; gap:7px; padding:6px 8px; }
    .mapa-hint { display:none; }
}

/* ================================================================
   MODAL TÁTICO (mesmo padrão visual usado na Central de Guerra)
   ================================================================ */
body.tactical-modal-open { overflow:hidden; }
.tactical-modal { position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; padding:24px; }
.tactical-modal.open { display:flex; }
.tactical-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.78); backdrop-filter:blur(3px); }
.tactical-modal-card { --accent:#ffe800; position:relative; z-index:1; width:min(760px,94vw); max-height:90vh; overflow:auto; background:#090909; border:1px solid var(--accent); box-shadow:0 0 0 1px rgba(255,255,255,.04),0 20px 70px rgba(0,0,0,.75),inset 0 0 30px rgba(255,255,255,.025); padding:20px; animation:tactical-modal-in .16s ease-out; }
@keyframes tactical-modal-in { from { opacity:0; transform:translateY(8px) scale(.985); } to { opacity:1; transform:translateY(0) scale(1); } }
.tactical-modal-close { position:absolute; top:10px; right:10px; width:34px; height:34px; border:1px solid #3a3a3a; background:#111; color:#aaa; cursor:pointer; font-weight:700; }
.tactical-modal-close:hover { color:#fff; border-color:var(--accent); }
.tactical-modal-kicker { color:var(--accent); font:700 9px 'Oswald',Impact,sans-serif; letter-spacing:1.8px; text-transform:uppercase; padding-right:45px; }
.tactical-modal-title { color:#fff; font:700 clamp(27px,5vw,40px) 'Oswald',Impact,sans-serif; text-transform:uppercase; line-height:1; margin-top:6px; padding-right:45px; }
.tactical-modal-sector { color:#777; font-size:10px; text-transform:uppercase; letter-spacing:1px; margin-top:6px; }
.tactical-modal-meta { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.tactical-modal-meta span { border:1px solid #303030; background:#111; color:#aaa; padding:5px 8px; font-size:9px; text-transform:uppercase; }
.tactical-modal-progress-label { display:flex; justify-content:space-between; gap:10px; margin-top:14px; color:#888; font-size:10px; }
.tactical-modal-progress { margin-top:6px; height:7px; background:#202020; border:1px solid #2e2e2e; overflow:hidden; }
.tactical-modal-progress > i { display:block; height:100%; width:0; background:var(--accent); box-shadow:0 0 8px var(--accent); transition:width .4s ease; }
.tactical-modal-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-top:12px; }
.tactical-modal-metrics > div { padding:10px; border:1px solid #292929; border-left:2px solid var(--accent); background:#0f0f0f; min-width:0; }
.tactical-modal-metrics small { display:block; color:#666; font-size:8px; letter-spacing:.6px; text-transform:uppercase; }
.tactical-modal-metrics strong { display:block; color:#eee; font:700 17px 'Oswald',Impact,sans-serif; margin-top:3px; }
.tactical-modal-metrics span { display:block; color:#777; font-size:8px; margin-top:2px; }
.tactical-modal-card section { margin-top:14px; }
.tactical-section-title { color:#777; font:700 10px 'Oswald',Impact,sans-serif; letter-spacing:1.2px; text-transform:uppercase; margin-bottom:8px; }

.hazard-list { display:flex; gap:7px; align-items:center; flex-wrap:wrap; margin-top:9px; }
.hazard { width:32px; height:32px; border:1px solid #343434; background:#101010; display:inline-flex; align-items:center; justify-content:center; cursor:help; }
.hazard-img { width:24px; height:24px; object-fit:contain; }
.hazard-fallback { display:none; font-size:18px; }
.hazard-img[style*="display: none"] + .hazard-fallback { display:inline; }
.empty-state, .error-state { color:#888; font-size:11px; padding:10px 0; }
.error-state { color:#ff7b00; }

@media (max-width:600px) {
    .tactical-modal { padding:10px; }
    .tactical-modal-card { width:96vw; max-height:94vh; padding:16px; }
    .tactical-modal-metrics { grid-template-columns:1fr; }
}
/* ================================================================
   V2 — CARTOGRAFIA TÁTICA // SUPER TERRA
   Upgrade visual do mapa sem alterar a origem dos dados da API.
   ================================================================ */

.mapa-toolbar{align-items:stretch}
.mapa-layer-controls{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.mapa-layer{
    height:38px;padding:0 11px;border:1px solid #30343a;background:#101216;color:#686d75;
    font:700 10px 'Oswald',Impact,sans-serif;letter-spacing:.8px;cursor:pointer;transition:.18s ease
}
.mapa-layer:hover{color:#ddd;border-color:#555}
.mapa-layer.active{color:var(--hd-yellow);border-color:rgba(215,213,44,.55);background:rgba(215,213,44,.06);box-shadow:inset 0 0 12px rgba(215,213,44,.03)}

.mapa-panel{position:relative;background:rgba(7,8,10,.94);border-color:#30343a;box-shadow:0 18px 50px rgba(0,0,0,.28)}
.mapa-viewport-wrap{
    isolation:isolate;
    background:
        radial-gradient(circle at 50% 48%,rgba(7,12,18,.10) 0%,rgba(2,4,7,.30) 54%,rgba(0,1,3,.76) 100%),
        linear-gradient(rgba(1,3,6,.12),rgba(1,3,6,.34)),
        url("imagens/fundos/mapa/universo-fundo.jpg") center / cover no-repeat,
        #030508;
}
.mapa-viewport-wrap::before{
    content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 12%,transparent 88%,rgba(255,255,255,.018));
    box-shadow:inset 0 0 90px rgba(0,0,0,.92),inset 0 0 0 1px rgba(255,255,255,.018)
}
.mapa-viewport-wrap::after{
    content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.18;
    background:repeating-linear-gradient(180deg,rgba(255,255,255,.025) 0 1px,transparent 1px 4px)
}
.mapa-svg{position:relative;z-index:1}

.mapa-tactical-hud{
    position:absolute;top:12px;left:12px;z-index:4;width:min(285px,calc(100% - 78px));
    padding:10px 11px 9px;background:linear-gradient(135deg,rgba(5,8,11,.92),rgba(9,12,16,.78));
    border:1px solid #30363d;border-left:2px solid var(--hd-yellow);pointer-events:none
}
.mapa-hud-status{display:flex;align-items:center;gap:7px;color:#8e949d;font:700 9px 'Oswald',Impact,sans-serif;letter-spacing:1.4px}
.mapa-hud-status i{width:6px;height:6px;border-radius:50%;background:#d9e4ed;box-shadow:0 0 0 0 rgba(217,228,237,.45);animation:mapa-online 1.8s ease-out infinite}
@keyframes mapa-online{0%{box-shadow:0 0 0 0 rgba(217,228,237,.45)}70%{box-shadow:0 0 0 7px rgba(217,228,237,0)}100%{box-shadow:0 0 0 0 rgba(217,228,237,0)}}
.mapa-hud-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:8px}
.mapa-hud-grid div{min-width:0;border-top:1px solid #2a2f35;padding-top:6px}
.mapa-hud-grid small{display:block;color:#555f69;font:700 7px 'Oswald',Impact,sans-serif;letter-spacing:.7px}
.mapa-hud-grid strong{display:block;color:#e8ebee;font:700 13px 'Oswald',Impact,sans-serif;margin-top:1px}

.mapa-zoom-controls{z-index:5}
.mapa-zoom-controls button{background:rgba(7,9,12,.92);border-color:#353b42}
.mapa-legend{z-index:4;background:rgba(5,7,10,.90);border-color:#30363d}

/* Cartografia orbital de fundo */
.mapa-cartography{pointer-events:none}
.mapa-orbit-guide{fill:none;stroke:#7f8c99;stroke-width:.55;opacity:.11;stroke-dasharray:2 5}
.mapa-axis-guide{stroke:#8a98a6;stroke-width:.5;opacity:.08;stroke-dasharray:8 8}

/* Territórios aproximados das facções */
.mapa-territories{pointer-events:none;transition:opacity .2s ease}
.mapa-territory{opacity:.085;stroke-width:.75;stroke-dasharray:2.4 3.8}
.mapa-territory-terminid{opacity:.09}
.mapa-territory-automaton{opacity:.10}
.mapa-territory-illuminate{opacity:.115}
#mapa-viewport.hide-territories .mapa-territories{opacity:0}

/* Setores */
.mapa-sectors{pointer-events:none;transition:opacity .2s ease}
.mapa-sector-label{
    fill:#86919d;font:700 10px 'Oswald',Impact,sans-serif;letter-spacing:2.4px;text-transform:uppercase;
    paint-order:stroke;stroke:#030508;stroke-width:3px;opacity:.26
}
.mapa-sector-count{
    fill:#5c6570;font:700 4.4px 'Oswald',Impact,sans-serif;letter-spacing:1px;
    paint-order:stroke;stroke:#030508;stroke-width:1.6px;opacity:.32
}
#mapa-viewport.mapa-sector-fade .mapa-sectors{opacity:.18}
#mapa-viewport.hide-sectors .mapa-sectors{opacity:0}

/* Rotas holográficas */
.mapa-lines{transition:opacity .2s ease}
.mapa-supply-line-base{stroke:#020304;stroke-width:2.1;opacity:.82;stroke-linecap:round;transition:opacity .18s ease,stroke-width .18s ease}
.mapa-supply-line{stroke:#6e7883;stroke-width:.72;opacity:.42;fill:none;stroke-linecap:round;stroke-dasharray:3 5;transition:opacity .18s ease,stroke .18s ease,stroke-width .18s ease}
.mapa-front-line-base{stroke:#080806;stroke-width:3;opacity:.94}
.mapa-front-line{stroke:#d8c85d;stroke-width:1.15;opacity:.86;stroke-dasharray:4 3;animation:mapa-route-flow 4.8s linear infinite}
@keyframes mapa-route-flow{to{stroke-dashoffset:-32}}
.mapa-supply-line.route-connected{stroke:#f4efb2;stroke-width:1.55;opacity:1;animation:mapa-route-flow 2.4s linear infinite}
.mapa-supply-line-base.route-connected{stroke-width:3.4;opacity:1}
.mapa-supply-line.route-muted,.mapa-supply-line-base.route-muted{opacity:.07}
#mapa-viewport.hide-routes .mapa-lines{opacity:0}

/* Planetas */
.mapa-planet-group{cursor:pointer;transition:opacity .18s ease}
.mapa-planet-halo{opacity:.12;pointer-events:none;transition:opacity .18s ease,r .18s ease}
.mapa-planet-dot{stroke:#080a0d;stroke-width:.45;transition:opacity .16s ease,stroke .16s ease,stroke-width .16s ease}
.mapa-planet-group:hover .mapa-planet-dot{stroke:#fff;stroke-width:.9}
.mapa-planet-group:hover .mapa-planet-halo{opacity:.24}
.mapa-planet-group.filtered-out{opacity:.08;pointer-events:none}
.mapa-planet-group.selection-muted{opacity:.13}
.mapa-planet-group.selected-neighbor{opacity:.84}
.mapa-planet-group.selected .mapa-planet-dot{stroke:#fff;stroke-width:1.05}
.mapa-planet-group.selected .mapa-planet-halo{opacity:.36}
.mapa-planet-group.selected{opacity:1}

.mapa-planet-ring{stroke-width:1;opacity:.72;stroke-dasharray:2 2.8}
.mapa-planet-tick{stroke-width:1;opacity:.88}
.mapa-progress-ring{fill:none;stroke-width:2;opacity:.94;stroke-linecap:round}
.mapa-dss-halo{opacity:.22;pointer-events:none;animation:mapa-dss-breathe 2.6s ease-in-out infinite}
.mapa-dss-marker{stroke:#ffd23f;stroke-width:.45}
@keyframes mapa-dss-breathe{0%,100%{opacity:.13}50%{opacity:.34}}

.mapa-planet-label{
    fill:#f0f2f4;font:700 6.2px 'Oswald',Impact,sans-serif;letter-spacing:.35px;
    stroke:#030508;stroke-width:1.8px;opacity:0
}
.mapa-player-label{
    fill:#8e98a3;font:700 4.6px 'Oswald',Impact,sans-serif;letter-spacing:.45px;
    paint-order:stroke;stroke:#030508;stroke-width:1.5px;opacity:0;pointer-events:none
}
.mapa-event-label{
    font:700 4.7px 'Oswald',Impact,sans-serif;letter-spacing:.7px;
    paint-order:stroke;stroke:#030508;stroke-width:1.5px;opacity:0;pointer-events:none
}
.mapa-planet-label,.mapa-player-label,.mapa-event-label{display:none}
#mapa-viewport.mapa-labels-on .mapa-planet-label{display:block;opacity:.95}
#mapa-viewport.mapa-detail-on .mapa-player-label,#mapa-viewport.mapa-detail-on .mapa-event-label{display:block;opacity:.88}
.mapa-dots g[data-index]:hover .mapa-planet-label,.mapa-dots g[data-index].selected .mapa-planet-label{display:block;opacity:1!important}
.mapa-dots g[data-index]:hover .mapa-player-label,.mapa-dots g[data-index].selected .mapa-player-label,.mapa-dots g[data-index].selected .mapa-event-label{display:block;opacity:1!important}

/* V3 — otimização de renderização: mantém o visual, reduz repaints do SVG. */
#mapa-viewport.mapa-low-detail .mapa-planet-halo{display:none}
#mapa-viewport.mapa-low-detail .mapa-sector-count{display:none}
#mapa-viewport.mapa-is-moving .mapa-front-line,
#mapa-viewport.mapa-is-moving .mapa-supply-line.route-connected,
#mapa-viewport.mapa-is-moving .mapa-planet-ring,
#mapa-viewport.mapa-is-moving .mapa-planet-tick,
#mapa-viewport.mapa-is-moving .mapa-dss-halo{animation-play-state:paused}
#mapa-viewport.mapa-is-moving .mapa-territories,
#mapa-viewport.mapa-is-moving .mapa-lines,
#mapa-viewport.mapa-is-moving .mapa-planet-group{transition:none}
@media (prefers-reduced-motion:reduce){
    .mapa-front-line,.mapa-supply-line.route-connected,.mapa-planet-ring,.mapa-planet-tick,.mapa-dss-halo,.mapa-hud-status i{animation:none!important}
}

/* Modal ganha um pouco mais de linguagem de terminal */
.tactical-modal-card{background:linear-gradient(145deg,#090b0e,#050607);box-shadow:0 0 0 1px rgba(255,255,255,.035),0 28px 80px rgba(0,0,0,.78),inset 0 0 45px rgba(255,255,255,.018)}
.tactical-modal-meta span{background:#0c0f12;border-color:#2b3035}
.tactical-modal-metrics>div{background:#0a0d10;border-color:#252b30}

@media(max-width:980px){
    .mapa-layer-controls{width:100%;margin-left:0}
    .mapa-layer{flex:1 1 auto}
}
@media(max-width:768px){
    .mapa-tactical-hud{top:8px;left:8px;width:min(245px,calc(100% - 58px));padding:8px 9px}
    .mapa-hud-grid{gap:5px}
    .mapa-hud-grid strong{font-size:11px}
    .mapa-hud-grid small{font-size:6px}
    .mapa-sector-label{font-size:8px}
}
@media(max-width:520px){
    .mapa-tactical-hud{width:205px}
    .mapa-hud-grid{grid-template-columns:repeat(2,1fr)}
    .mapa-layer{font-size:9px;padding:0 8px}
}
.mapa-legend-frontline{width:16px!important;height:2px!important;border-radius:0!important;background:#d8c85d!important;box-shadow:0 0 7px rgba(216,200,93,.7)}


/* ================================================================
   V4 — INTEL RÁPIDA RESPONSIVA
   Um único painel reutilizado para todos os planetas: mais informação
   sem criar centenas de elementos HTML nem novas chamadas à API.
   ================================================================ */
.mapa-planet-hit{pointer-events:all;cursor:pointer}
.mapa-planet-group:focus{outline:none}
.mapa-planet-group:focus .mapa-planet-dot{stroke:#fff;stroke-width:1.05}

.mapa-intel-card{
    --accent:var(--hd-yellow);
    position:absolute;right:12px;bottom:12px;z-index:8;
    width:min(310px,calc(100% - 24px));
    padding:13px 13px 12px;
    background:linear-gradient(145deg,rgba(8,11,14,.97),rgba(4,6,8,.98));
    border:1px solid #353b42;border-left:3px solid var(--accent);
    box-shadow:0 18px 44px rgba(0,0,0,.48),inset 0 0 26px rgba(255,255,255,.018);
    opacity:0;visibility:hidden;pointer-events:none;
    transform:translateY(8px);
    transition:opacity .14s ease,transform .14s ease,visibility .14s;
}
.mapa-intel-card.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.mapa-intel-close{
    position:absolute;top:8px;right:8px;width:30px;height:30px;
    border:1px solid #343b42;background:#0d1014;color:#8b949e;cursor:pointer
}
.mapa-intel-close:hover{color:#fff;border-color:var(--accent)}
.mapa-intel-kicker{padding-right:38px;color:var(--accent);font:700 8px 'Oswald',Impact,sans-serif;letter-spacing:1.5px}
.mapa-intel-title{padding-right:38px;margin-top:3px;color:#fff;font:700 22px 'Oswald',Impact,sans-serif;line-height:1;text-transform:uppercase}
.mapa-intel-sector{margin-top:4px;color:#717b85;font:700 9px 'Oswald',Impact,sans-serif;letter-spacing:1px;text-transform:uppercase}
.mapa-intel-status{margin-top:9px;padding:6px 7px;border:1px solid #292f35;background:#0b0e11;color:#c9cfd5;font:700 9px 'Oswald',Impact,sans-serif;letter-spacing:.7px;text-transform:uppercase}
.mapa-intel-progress{margin-top:10px}
.mapa-intel-progress>div:first-child{display:flex;justify-content:space-between;gap:8px;color:#7c858e;font:700 8px 'Oswald',Impact,sans-serif;letter-spacing:.5px}
.mapa-intel-progress>div:first-child strong{color:#e8ecef;font-size:9px}
.mapa-intel-progress-track{height:5px;margin-top:5px;background:#171b1f;border:1px solid #252b30;overflow:hidden}
.mapa-intel-progress-track i{display:block;height:100%;width:0;box-shadow:0 0 8px var(--accent);transition:width .25s ease}
.mapa-intel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:10px}
.mapa-intel-grid>div{min-width:0;padding:7px 6px;border:1px solid #252b30;background:#0a0d10}
.mapa-intel-grid small{display:block;color:#5d6872;font:700 6.5px 'Oswald',Impact,sans-serif;letter-spacing:.35px;white-space:nowrap}
.mapa-intel-grid strong{display:block;margin-top:2px;color:#e7ebee;font:700 12px 'Oswald',Impact,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mapa-intel-route{margin-top:7px;padding:7px 8px;border:1px solid #252b30;background:#090c0f}
.mapa-intel-route small{display:block;color:#5f6973;font:700 6.5px 'Oswald',Impact,sans-serif;letter-spacing:.6px}
.mapa-intel-route span{display:block;margin-top:2px;color:#bdc5cc;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mapa-intel-details{width:100%;min-height:38px;margin-top:9px;border:1px solid color-mix(in srgb,var(--accent) 55%,#30363d);background:color-mix(in srgb,var(--accent) 8%,#0b0e11);color:var(--accent);font:700 9px 'Oswald',Impact,sans-serif;letter-spacing:.8px;cursor:pointer}
.mapa-intel-details:hover{background:color-mix(in srgb,var(--accent) 13%,#0b0e11)}
.mapa-intel-mobile-tip{display:none;margin-top:7px;color:#68717a;font-size:8px;line-height:1.35;text-align:center}

/* A legenda se desloca quando a intel rápida aparece no desktop. */
@media (min-width:769px){
    .mapa-intel-card.open~.mapa-svg{}
}

@media (hover:none), (pointer:coarse){
    .mapa-planet-group:hover .mapa-planet-dot{stroke:#080a0d;stroke-width:.45}
    .mapa-planet-group:hover .mapa-planet-halo{opacity:.12}
    .mapa-dots g[data-index]:hover .mapa-planet-label,
    .mapa-dots g[data-index]:hover .mapa-player-label{display:none;opacity:0!important}
    .mapa-intel-mobile-tip{display:block}
}

@media(max-width:768px){
    .mapa-viewport-wrap{min-height:500px;height:min(68vh,620px)}
    .mapa-intel-card{
        position:absolute;left:0;right:0;bottom:0;width:100%;
        padding:13px 14px calc(12px + env(safe-area-inset-bottom));
        border-left:0;border-right:0;border-bottom:0;border-top:2px solid var(--accent);
        transform:translateY(18px);
        box-shadow:0 -18px 44px rgba(0,0,0,.58)
    }
    .mapa-intel-card.open{transform:translateY(0)}
    .mapa-intel-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
    .mapa-intel-close{width:38px;height:38px;top:8px;right:8px}
    .mapa-intel-details{min-height:44px;font-size:10px}
    .mapa-zoom-controls button{width:38px;height:38px}
    .mapa-legend{bottom:8px;max-width:calc(100% - 16px)}
    .mapa-intel-card.open~.mapa-svg{filter:none}
}

@media(max-width:430px){
    .mapa-intel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .mapa-intel-grid>div{padding:6px 7px}
    .mapa-intel-title{font-size:20px}
}

/* ================================================================
   V5 — FACÇÕES NO PLANETA + FOTO/CLIMA NA INTEL RÁPIDA
   Reutiliza 4 símbolos SVG e carrega a imagem do bioma só quando o
   planeta é inspecionado. Mantém o custo inicial praticamente igual.
   ================================================================ */
.mapa-planet-faction-icon{
    pointer-events:none;
    opacity:.94;
    filter:drop-shadow(0 0 .45px rgba(0,0,0,.95));
}
.mapa-planet-group:hover .mapa-planet-faction-icon,
.mapa-planet-group.selected .mapa-planet-faction-icon{opacity:1}

.mapa-intel-card{
    width:min(334px,calc(100% - 24px));
    padding:0;
    overflow:hidden;
}
.mapa-intel-close{z-index:4;background:rgba(7,10,13,.88);backdrop-filter:blur(4px)}
.mapa-intel-visual{
    position:relative;height:92px;overflow:hidden;background:#080b0e;
    border-bottom:1px solid #2a3036;
}
.mapa-intel-photo{
    display:block;width:100%;height:100%;object-fit:cover;object-position:center;
    opacity:.88;transform:scale(1.01)
}
.mapa-intel-photo[hidden]{display:none}
.mapa-intel-visual-shade{
    position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(2,4,6,.08) 0%,rgba(3,5,7,.2) 42%,rgba(3,5,7,.93) 100%);
}
.mapa-intel-faction-badge{
    position:absolute;left:10px;bottom:8px;z-index:2;
    display:flex;align-items:center;gap:7px;min-height:28px;padding:4px 8px 4px 5px;
    background:rgba(4,6,8,.82);border:1px solid color-mix(in srgb,var(--accent) 58%,#30363d);
    box-shadow:0 5px 18px rgba(0,0,0,.28);backdrop-filter:blur(4px)
}
.mapa-intel-faction-badge img{width:24px;height:24px;object-fit:contain;filter:drop-shadow(0 0 3px rgba(0,0,0,.7))}
.mapa-intel-faction-badge span{color:#f1f3f5;font:700 8px 'Oswald',Impact,sans-serif;letter-spacing:.8px}
.mapa-intel-body{padding:11px 13px 12px}
.mapa-intel-environment{display:grid;grid-template-columns:.8fr 1.2fr;gap:5px;margin-top:7px}
.mapa-intel-environment>div{min-width:0;padding:7px 8px;border:1px solid #252b30;background:#090c0f}
.mapa-intel-environment small{display:block;color:#5f6973;font:700 6.5px 'Oswald',Impact,sans-serif;letter-spacing:.55px}
.mapa-intel-environment span{display:block;margin-top:2px;color:#bdc5cc;font-size:8.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.tactical-modal-photo{
    position:relative;height:168px;margin:12px 0 10px;
    background-color:#050607;background-repeat:no-repeat;background-size:cover;background-position:center;
    border:1px solid #292f35;box-shadow:inset 0 -35px 55px rgba(0,0,0,.35)
}

@media(max-width:768px){
    .mapa-intel-card{
        padding:0;
        max-height:64%;overflow-y:auto;overscroll-behavior:contain;
    }
    .mapa-intel-visual{height:86px}
    .mapa-intel-body{padding:10px 14px calc(12px + env(safe-area-inset-bottom))}
    .mapa-intel-environment{grid-template-columns:1fr 1.35fr}
    .tactical-modal-photo{height:130px}
}
@media(max-width:430px){
    .mapa-intel-visual{height:78px}
    .mapa-intel-environment{grid-template-columns:1fr}
    .mapa-intel-environment span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
}
