/* Permanent viewport map. HUD floats over the map; no expanded/collapsed mode. */
.context-menu #collect{grid-column:auto}
#map .region.ai-origin .region-units,#map .region.ai-destination .region-units{font-size:36px}
.difficulty-setup{border:1px solid #58777d;border-radius:9px;padding:12px;margin:14px 0;background:#0c2731}
.difficulty-setup label,#difficultyDialog label{display:block;font-size:13px;color:#bcebd8;margin-bottom:7px}
.difficulty-setup select,#difficultyChoice{width:100%;min-height:40px;background:#132f3b;color:#fff;border:1px solid #63858d;border-radius:7px;padding:7px;font-size:14px}
.difficulty-setup p{font-size:12px!important;margin:7px 0 0!important}
#difficultyDialog #applyDifficulty{width:100%}
.full-map #aiLevel{font-size:10px;min-height:27px;padding:3px 7px;white-space:nowrap;background:#302a3c;border-color:#9a84b4}
.full-map #aiActivity{position:fixed;z-index:7;top:110px;left:50%;transform:translateX(-50%);width:min(650px,calc(100% - 24px));background:#271c29ee;border:2px solid #ff9a94;border-radius:10px;padding:9px 12px;display:flex;align-items:center;gap:10px;box-shadow:0 6px 22px #0008}
#aiActivity>div{flex:1;min-width:0}#aiActivity small,#aiActivity b,#aiActivity span{display:block}
#aiActivity small{color:#ffb1a8;font-size:9px;letter-spacing:.5px}#aiActivity b{color:#fff0d0;font-size:16px;margin:3px 0}#aiActivity span{font-size:11px;color:#f2d2d2}
#aiActivity button{font-size:10px;min-height:30px;padding:5px 8px}
body.full-map.ai-observing{--hud-top:205px;--hud-bottom:140px}
#aiFocus{pointer-events:none}.ai-focus-point circle{fill:none;stroke:#ffe78b;stroke-width:5;vector-effect:non-scaling-stroke;animation:aiMapPing 1.1s ease-out infinite}
.ai-focus-point.destination circle{stroke:#ff5967}.ai-focus-point rect{fill:#151923f2;stroke:#ffe78b;stroke-width:2}.ai-focus-point.destination rect{stroke:#ff5967}
.ai-focus-point text{fill:#fff4c5;font-size:12px;font-weight:800}.ai-focus-route{stroke:#ffb85f;stroke-width:7;stroke-dasharray:16 10;fill:none;vector-effect:non-scaling-stroke;animation:aiRouteFlow 1s linear infinite}
#map .region.ai-origin polygon{stroke:#fff09b;stroke-width:6;filter:drop-shadow(0 0 8px #ffdf72)}
#map .region.ai-destination polygon{stroke:#ff5967;stroke-width:7;filter:drop-shadow(0 0 10px #ff4c66)}
@keyframes aiMapPing{0%{r:45;opacity:1}100%{r:70;opacity:.25}}@keyframes aiRouteFlow{to{stroke-dashoffset:-52}}
@media(max-width:700px){
.full-map #aiLevel{font-size:8px;padding:3px 4px}.full-map .statusbar{gap:6px}
.full-map #aiActivity{top:96px;padding:7px 8px;gap:5px;width:calc(100% - 18px)}
#aiActivity b{font-size:12px}#aiActivity small{font-size:8px}#aiActivity span{font-size:9px}#aiActivity button{font-size:8px;padding:4px;width:66px}
body.full-map.ai-observing{--hud-top:192px;--hud-bottom:135px}
}
@media(max-height:500px) and (min-width:600px){.full-map #aiActivity{top:55px;padding:5px 10px;max-width:600px}#aiActivity b{font-size:12px;margin:1px 0}#aiActivity span{font-size:9px}body.full-map.ai-observing{--hud-top:143px}}
@media(prefers-reduced-motion:reduce){#aiFocus *{animation:none!important}}
body.full-map{display:block;isolation:isolate;--hud-top:110px;--hud-bottom:115px}
.full-map .arena{display:block;max-width:none;padding:0;margin:0}
.full-map .battlefield,.full-map.map-expanded .battlefield{position:fixed;inset:0;z-index:0;border:0;border-radius:0;display:block;padding:0;background:#071821}
.full-map .map-wrap{position:absolute;inset:0;background:linear-gradient(#05192333,#05192344),url('assets/mapa-industrial-cyberpunk-v050.png') center/cover}
.full-map #map{position:absolute;inset:var(--hud-top) 12px var(--hud-bottom);height:auto}
.full-map #map svg{overflow:visible}
.full-map #map svg>image,.full-map #map svg>rect{opacity:.2}
.full-map .board-heading,.full-map #mapHint,.full-map #firstHelp,.full-map .combat-panel{display:none}
.full-map .masthead{position:fixed;z-index:6;left:12px;right:12px;top:max(10px,env(safe-area-inset-top));width:auto;max-width:none;margin:0;border:1px solid #678a8455;border-radius:11px;padding:8px 13px;height:50px;background:#071c26cf;backdrop-filter:blur(10px)}
.full-map .statusbar{position:fixed;z-index:5;top:68px;left:20px;right:20px;display:flex;flex-wrap:nowrap;gap:20px;min-height:34px;background:#071d28d4;border:1px solid #617c7944;border-radius:9px;padding:4px 12px}
.full-map .turn{min-width:0}
.full-map .mini-score>span:last-of-type{display:none}
.full-map .mini-score small{display:inline}
.full-map .resource-hud{flex-direction:row;font-size:11px;padding:3px 8px;gap:4px;min-height:27px;background:#233d2dcc}
.full-map .resource-hud b{font-size:19px}.full-map .resource-hud small{font-size:8px}
.full-map .command-dock{position:fixed;bottom:max(9px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:5;width:min(780px,calc(100% - 24px));display:grid;grid-template-columns:1fr auto;gap:4px;background:#0a202bdc;backdrop-filter:blur(10px);border:1px solid #7a9e9855;padding:9px 12px;border-radius:11px}
.full-map .command-heading{grid-column:1/-1;grid-row:1;margin:0}
.full-map .dock-options{grid-column:2;grid-row:2}
.full-map #openActions{grid-column:1;grid-row:2}
.full-map .command-dock .turn-buttons{gap:5px}
.full-map #combatDetails{position:static;font-size:9px;min-height:30px;display:inline-block;border:1px solid #3e5960;color:#bdd8df;padding:4px 7px}
.full-map #selection{font-size:12px}
.full-map #actionDots{display:flex}
.full-map .scene-bar{position:fixed;bottom:99px;left:50%;transform:translateX(-50%);z-index:4;width:min(780px,calc(100% - 24px));background:#051a25b9;backdrop-filter:blur(8px);border:1px solid #47676655;border-radius:8px;padding:5px 10px;min-height:29px}
.full-map #sceneMessage{font-size:11px}
.full-map .coach,.full-map.map-expanded.training .coach{position:fixed;top:113px;left:20px;right:20px;z-index:6;padding:8px 12px;background:#163b2fed;border:1px solid #c2ac66;border-radius:9px}
.full-map.training{--hud-top:205px}
.full-map .coach p{font-size:11px;line-height:1.3;margin-top:4px}
.full-map .coach-top{gap:8px}.full-map .coach-top h2{font-size:13px}
.full-map .match-result{position:fixed;z-index:7;top:40%;left:10%;right:10%;bottom:auto}
.full-map .context-menu{z-index:8;max-height:calc(100dvh - 170px);overflow:auto;background:#0d292ff5;backdrop-filter:blur(12px);box-shadow:0 15px 40px #000b}
.full-map .context-actions{font-size:10px}
.full-map .support-scene{position:fixed;z-index:9;top:50%;left:50%;bottom:auto;right:auto;transform:translate(-50%,-50%);width:min(680px,calc(100% - 28px));max-height:calc(100dvh - 140px);padding:0;display:block;border:1px solid #99d5c3;background:#0a222df5;border-radius:12px;overflow:hidden;box-shadow:0 20px 60px #000c;animation:none}
.full-map .support-action-art{display:block;width:100%;height:min(38dvh,330px);object-fit:cover;animation:supportArtMove calc(4s / var(--fx-rate,1)) ease-out both}
.full-map .support-caption{display:flex;gap:13px;padding:13px;align-items:center}
.full-map .support-caption>div{flex:1;min-width:0}
.full-map .support-portrait{width:63px;height:83px;object-fit:contain;flex-shrink:0;border-radius:6px;background:#051821;border:1px solid #9dc1c1}
.full-map .support-caption b{font-size:17px;display:block;margin-top:3px}
.full-map .support-caption p{font-size:11px;margin:5px 0;color:#c4d8d9}
.full-map .support-caption strong{font-size:22px;display:block;margin:6px 0}
.full-map .support-caption strong em{font-size:15px}
.full-map .support-caption small{font-size:9px;display:block;color:#c2d7d8}
.full-map .support-progress{margin-top:8px;background:#3f5756;height:4px}
.full-map .support-progress i{display:block;background:#a0f0cf;width:var(--support-progress);height:100%}
.full-map .support-scan{opacity:.3;animation:supportScan calc(1.2s / var(--fx-rate,1)) linear infinite}
@keyframes supportArtMove{from{transform:scale(1.035)}to{transform:scale(1)}}
@media(max-width:700px){
.full-map{--hud-top:97px;--hud-bottom:113px}
.full-map .masthead{top:7px;left:7px;right:7px;height:39px;padding:5px 8px}
.full-map .brand{gap:5px}.full-map .brandmark{font-size:19px}.full-map h1{font-size:13px;letter-spacing:.5px}.full-map h1 small{font-size:6px;letter-spacing:1.3px}
.full-map .header-right{gap:3px}.full-map .header-right button{font-size:9px;padding:4px 6px;min-height:28px}
.full-map .statusbar{top:51px;left:9px;right:9px;gap:8px;padding:4px 7px;min-height:36px}
.full-map .turn{flex-direction:column;align-items:start;gap:1px;min-width:45px}
.full-map .turn>span{font-size:6px}.full-map .turn strong{font-size:11px}
.full-map .mini-score{font-size:8px;gap:3px}.full-map .mini-score b{font-size:17px}.full-map .mini-score small{display:none}
.full-map .resource-hud{font-size:8px;min-height:28px;gap:2px;padding:3px 4px}.full-map .resource-hud b{font-size:16px}.full-map .resource-hud small{display:none!important}
.full-map .round{gap:0}.full-map .round b{font-size:10px}.full-map .round small{font-size:6px}
.full-map .command-dock{width:calc(100% - 14px);bottom:7px;padding:7px 8px;gap:3px}
.full-map #selection{font-size:10px}.full-map .action-count{padding:4px 6px}.full-map .action-count b{font-size:12px!important}
.full-map #actionDots{display:none}
.full-map #combatDetails{font-size:8px;min-height:28px;padding:4px 5px}
.full-map #newGame,.full-map #end{font-size:9px;padding:4px 6px;min-height:28px}
.full-map #openActions{font-size:9px;min-height:28px;padding:4px}
.full-map .command-dock .turn-buttons{gap:3px}
.full-map .scene-bar{width:calc(100% - 14px);bottom:88px;padding:4px 7px;min-height:26px}.full-map #sceneMessage{font-size:9px}
.full-map .coach,.full-map.map-expanded.training .coach{top:94px;left:9px;right:9px;padding:6px 8px}
.full-map .coach h2{font-size:11px}.full-map .coach p{font-size:9px;line-height:1.3}.full-map .coach-top{gap:4px}.full-map .coach-top>span{font-size:7px}.full-map .coach-top button{font-size:8px;min-height:23px}
.full-map.training{--hud-top:184px}
.full-map .support-caption{padding:9px;gap:8px}.full-map .support-caption b{font-size:14px}.full-map .support-caption p{font-size:10px}.full-map .support-caption strong{font-size:18px}.full-map .support-portrait{width:47px;height:64px}
}
@media(max-height:500px) and (min-width:600px){
body.full-map{--hud-top:60px;--hud-bottom:66px}
.full-map .masthead{height:40px;right:auto;width:47%;top:7px;left:8px}
.full-map .masthead .brandmark{display:none}.full-map .masthead h1{font-size:13px}.full-map .masthead .header-right button{padding:3px 6px;font-size:9px}
.full-map .statusbar{top:7px;left:49%;right:8px;min-height:40px;gap:9px;padding:5px 8px}
.full-map .turn>span{display:none}.full-map .turn strong{font-size:11px}
.full-map .resource-hud small,.full-map .mini-score small{display:none!important}
.full-map .command-dock{left:8px;bottom:7px;transform:none;width:calc(58% - 8px);display:flex;align-items:center;gap:6px;padding:7px}
.full-map .command-heading{flex:1;gap:6px}.full-map #selection{display:none}.full-map .action-count{padding:5px}.full-map .action-count b{font-size:12px!important}.full-map #actionDots{display:none}
.full-map .dock-options{margin:0}.full-map .turn-buttons{gap:3px}.full-map #combatDetails,.full-map #end,.full-map #newGame,.full-map #openActions{font-size:9px;min-height:29px;padding:4px 6px}
.full-map .scene-bar{bottom:7px;left:auto;right:8px;transform:none;width:calc(42% - 16px);min-height:45px}
.full-map.training{--hud-top:112px}
.full-map .coach,.full-map.map-expanded.training .coach{top:53px;padding:6px 10px;left:8px;right:8px}
.full-map .coach p{font-size:9px}.full-map .coach-top h2{font-size:12px}
.full-map .context-menu{max-height:calc(100dvh - 80px)}
.full-map .support-scene{max-height:calc(100dvh - 60px);width:540px}
.full-map .support-action-art{height:40dvh}
.full-map .support-caption{padding:8px}.full-map .support-caption p{display:none}
}
@media(prefers-reduced-motion:reduce){.full-map .support-action-art,.full-map .support-scan{animation:none!important}}
@media(max-width:549px) and (max-height:640px){.full-map .context-menu #actionHelp{display:none}.full-map .context-menu .action-grid button{min-height:38px}.full-map .context-menu .context-options{margin-top:3px}}

