/* HUD contextual: el mapa es la superficie principal de la partida. */
.top-hud {flex-direction:column;align-items:stretch;flex-wrap:nowrap;padding:calc(var(--safe-area-top) + 8px) 8px 4px;gap:4px;background:linear-gradient(#0d171fea,transparent);}
.top-hud .hud-resources {flex-wrap:nowrap;justify-content:flex-start;gap:6px;}
.top-hud .hud-resources .icon-btn {margin-left:auto;flex:none;}
.top-hud .hud-chip {min-height:40px;padding:4px 8px;border-width:1px;border-radius:3px;font-size:14px;white-space:nowrap;box-shadow:0 3px 8px #0005;}
.top-hud .hud-chip .icon {font-size:16px;}
.top-hud .hud-mana-container {min-width:0;gap:2px;}
.top-hud .hud-mana-labels {flex-direction:column;align-items:flex-start;gap:1px;font-size:12px;line-height:1.1;}
.top-hud .mana-rate-label {margin-left:0;font-size:11px;}
.top-hud .hud-status {margin:0!important;justify-content:space-between;gap:8px;flex-wrap:nowrap;}
.top-hud .chip-wave {display:none;}
.top-hud .chip-mobs {border:0;background:transparent;box-shadow:none;min-height:20px;height:20px;padding:0 4px;color:#d4e8f5;font-size:12px;line-height:20px;}
.top-hud .chip-mobs .icon {font-size:14px;line-height:20px;}
.run-phase-label {position:static;text-align:left;font-size:12px;line-height:20px;white-space:nowrap;}
.battle-svg {width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;}
.hud-resources .menu-svg,.battle-tools .menu-svg {width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;}
.bottom-dock {position:relative;padding:0 8px calc(var(--safe-area-bottom) + 8px);gap:8px;background:none;pointer-events:none;}
.bottom-dock>*,.battle-action-row>* {pointer-events:auto;}
.battle-action-row {display:flex;align-items:center;gap:6px;min-height:48px;}
.battle-action-row>.icon-btn {width:44px;height:48px;flex:none;border-radius:3px;background:#203139;border-color:#718678;}
.battle-action-row .battle-speed {width:48px;font-size:14px;font-variant-numeric:tabular-nums;}
.battle-action-row .btn-start-wave {flex:1;min-width:0;min-height:48px;margin:0;padding:6px;font-size:12px;letter-spacing:0;border-radius:3px;}
body:not([data-battle-phase="BUILDING"]) #btn-start-wave {display:none;}
body:not([data-battle-phase="BUILDING"]) .battle-action-row {justify-content:flex-end;}
.battle-tools {flex:none;}
.battle-tools>summary {display:flex;align-items:center;justify-content:center;gap:4px;min-width:94px;min-height:48px;padding:4px 6px;border:2px solid #718678;border-radius:3px;background:#203139;color:#f4ecd6;cursor:pointer;font-size:12px;font-weight:700;list-style:none;}
.battle-tools>summary::-webkit-details-marker {display:none;}
.battle-tools>summary .menu-svg {width:18px;height:18px;}
.battle-tools[open]>summary {border-color:#e9cc88;background:#385249;}
.battle-tools-panel {position:absolute;z-index:1250;right:8px;bottom:calc(100% + 8px);width:min(320px,calc(100vw - 16px));max-height:calc(100dvh - var(--safe-area-top) - var(--safe-area-bottom) - 152px);overflow-y:auto;overscroll-behavior:contain;padding:12px;border:2px solid #8eaa91;border-radius:3px;background:#192c32;box-shadow:0 8px 24px #0009;color:#f4ecd6;}
.battle-tools-heading {display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;}
.battle-tools-label {display:block;margin:8px 0 4px;font-size:12px;color:#cbdcce;}
.battle-tools-panel .speed-controls,.battle-tools-panel .camera-quick-controls {position:static;display:flex;flex-direction:row;gap:4px;padding:0;background:none;border:0;}
.battle-tools-panel .speed-btn {flex:1;min-width:44px;min-height:44px;padding:4px;border:1px solid #668778;border-radius:3px;color:#f4ecd6;font-size:14px;background:#243c3e;box-shadow:none;}
.battle-tools-panel .speed-btn.active {background:#32604b;border-color:#cae68b;}
.battle-tools-panel .camera-quick-controls .icon-btn {min-width:44px;min-height:44px;font-size:20px;}
.battle-tools-panel .camera-quick-controls>span {align-self:center;padding:8px;font-size:12px;color:#cbdcce;}
.battle-tools-extras {display:flex;gap:8px;margin-top:12px;align-items:center;}
.battle-tool-audio {display:flex;align-items:center;gap:4px;font-size:12px;}
.battle-tool-audio .icon-btn {min-width:44px;min-height:44px;}
.battle-tool-stats {display:flex;align-items:center;justify-content:center;gap:4px;min-height:44px;flex:1;padding:4px;border:1px solid #668778;background:#243c3e;color:#f4ecd6;font:inherit;font-size:12px;cursor:pointer;}
.battle-tool-stats .menu-svg {width:20px;height:20px;}
.battle-dimensional-resources {display:flex;gap:8px;flex-wrap:wrap;}
.drawer-panel {max-height:min(38dvh,360px);border-radius:3px;padding:0 10px 10px;touch-action:pan-y!important;}
.drawer-header {margin:0 0 6px;padding:4px 0;min-height:48px;background:#192c32;}
.drawer-title {font-size:14px;line-height:1.3;}
.drawer-close,.dps-close-btn {min-width:44px;min-height:44px;flex:none;}
.terrain-summary {display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:28px;padding:4px 0 8px;font-size:12px;color:#dde8d6;}
.terrain-summary strong {color:#ffe3a1;}
#towers-build-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
#towers-build-grid .tower-card-btn {min-height:112px;padding:8px;align-items:stretch;text-align:left;border-radius:3px;box-shadow:0 3px 8px #0004;}
#towers-build-grid .tower-card-top {display:flex;justify-content:space-between;align-items:center;gap:4px;}
#towers-build-grid .tower-card-icon {font-size:24px;}
#towers-build-grid .tower-card-cost {font-size:14px;white-space:nowrap;}
#towers-build-grid .tower-card-name {min-height:0;font-size:12px;line-height:1.3;margin:4px 0;word-break:normal;overflow-wrap:normal;}
#towers-build-grid .tower-card-preview-stats {display:flex;flex-wrap:wrap;justify-content:flex-start;gap:4px 8px;padding:0;border:0;background:none;font-size:12px;}
#towers-build-grid .tower-card-preview-stats>span {font-size:12px;line-height:1.25;}
#towers-build-grid .tower-mana-badge {width:100%;padding:2px 0;border:0;background:none;}
.tower-history {margin:4px 0;color:#d9e6d5;font-size:12px;}
.tower-history>summary {cursor:pointer;min-height:44px;display:flex;align-items:center;gap:6px;}
.tower-history>summary::before {content:'＋';font-size:16px;}
.tower-history[open]>summary::before {content:'−';}
#panel-inspect .elevation-card {margin-bottom:6px!important;padding:6px;border-width:1px;box-shadow:none;}
#panel-inspect .elevation-card-header {gap:4px;}
#panel-inspect .elevation-level-tag,#panel-inspect .elev-rating {font-size:11px;padding:2px 4px;}
#panel-inspect .elevation-metrics {margin-top:4px;gap:4px;}
#panel-inspect .elevation-metric-pill {padding:2px 4px;border:0;background:none!important;box-shadow:none;}
#panel-inspect .stats-row {padding:6px;margin:0 0 6px;}
#panel-inspect .stats-label {font-size:12px;}
#panel-inspect .stats-val {font-size:14px;}
#panel-inspect .priority-selector-row {display:flex;flex-direction:row;align-items:center;gap:8px;margin:4px 0;}
#panel-inspect .priority-label {margin:0;font-size:12px;flex:0 0 88px;}
#panel-inspect .priority-select {min-width:0;flex:1;}
#select-targeting {min-height:44px;font-size:14px;}
#panel-inspect .inspect-actions {margin-top:4px;}
#panel-inspect .inspect-actions .action-btn {min-height:44px;}
.level-banner {display:flex;align-items:center;gap:8px;top:calc(var(--safe-area-top) + 88px);max-width:min(360px,calc(100vw - 32px));padding:8px 12px;pointer-events:none!important;border-radius:3px;box-shadow:0 6px 20px #0008;}
.level-banner-tag {flex:none;margin:0;font-size:11px;padding:4px 6px;}
.level-banner-title {font-size:14px;margin:0;line-height:1.3;}
.level-banner-sub {display:none;}
.toast-msg {top:calc(var(--safe-area-top) + 86px);width:max-content;max-width:calc(100vw - 32px);padding:6px 10px;border:1px solid #8eaa91;border-radius:3px;background:#192c32f2;color:#f4ecd6;font-size:12px;line-height:1.4;pointer-events:none!important;}
.toast-msg.boss-alert {top:calc(var(--safe-area-top) + 86px);font-size:14px;letter-spacing:0;padding:8px 12px;box-shadow:0 6px 20px #0008;}
body:has(.level-banner:not(.hidden)) .toast-msg:not(.boss-alert) {opacity:0;}
body:has(.toast-msg.boss-alert.show) .level-banner {visibility:hidden;}
.dps-meter-panel {top:auto;bottom:calc(var(--safe-area-bottom) + 72px);left:auto;right:8px;width:min(360px,calc(100vw - 16px));max-height:38dvh;border:2px solid #8eaa91;border-radius:3px;background:#192c32;box-shadow:0 8px 24px #0008;}
.dps-tab-btn {min-height:44px;background:#243c3e;color:#d2e4d5;}
.dps-tab-btn.active {background:#32604b;border-color:#cae68b;color:#f4ecd6;}
.mission-status {top:auto;bottom:calc(var(--safe-area-bottom) + 72px);left:8px;transform:none;width:auto;max-width:calc(100vw - 16px);max-height:38dvh;border-radius:3px;box-shadow:0 4px 16px #0007;}
.mission-status.mission-expanded {width:min(360px,calc(100vw - 16px));}
.mission-status-heading {position:sticky;top:0;z-index:1;background:#192c32;flex-wrap:nowrap;justify-content:flex-start;min-height:44px;padding:6px 8px;font-size:12px;gap:8px;}
.mission-status-heading b {width:auto;letter-spacing:0;font-size:12px;white-space:nowrap;}
.mission-status-heading b::after {content:none;}
.mission-status-heading span {white-space:normal;}
.mission-status-heading span:last-child {display:block;margin-left:auto;}
body:has(#battle-tools[open]) .mission-status,
body:has(.drawer-panel:not(.hidden)) .mission-status,
body:has(#panel-dps-meter:not(.hidden)) .mission-status {visibility:hidden;}
body.in-main-menu .battle-action-row {display:none;}
.battle-action-row button:focus-visible,.battle-tools summary:focus-visible,.tower-history summary:focus-visible {outline:3px solid #ffe4a4;outline-offset:2px;}
.tutorial-guide.with-tools {top:calc(var(--safe-area-top) + 88px);bottom:auto;max-height:min(30dvh,240px);}
.tutorial-guide-header button,.tutorial-guide-next {min-height:44px;}
@media (max-width:359px) {
    .top-hud .hud-chip {padding:4px;font-size:12px;gap:3px;}
    .top-hud .hud-chip .icon {font-size:14px;}
    .top-hud .hud-resources {gap:4px;}
    .top-hud .hud-mana-labels,.top-hud .mana-rate-label {font-size:11px;}
    .battle-tools>summary {min-width:82px;}
    .battle-action-row {gap:4px;}
}
@media (min-width:701px) {
    .top-hud {align-self:flex-start;min-width:440px;}
    .bottom-dock {align-self:flex-end;width:min(560px,100%);}
    #towers-build-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-height:500px) and (min-width:600px) {
    .top-hud {min-width:0;width:min(440px,calc(100% - 24px));}
    .bottom-dock {right:auto;width:100%;}
    .battle-action-row {justify-content:flex-end;}
    .battle-action-row .btn-start-wave {flex:none;width:190px;}
    body:has(.drawer-panel:not(.hidden)) .bottom-dock {width:calc(100% - min(320px,40vw) - 24px);}
    body:has(.drawer-panel:not(.hidden)) .battle-action-row .btn-start-wave {flex:1;width:auto;}
    .drawer-panel {position:fixed;left:8px;right:auto;top:calc(var(--safe-area-top) + 84px);bottom:calc(var(--safe-area-bottom) + 8px);width:min(320px,40vw);max-height:none;}
    #towers-build-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
    .mission-status {bottom:calc(var(--safe-area-bottom) + 72px);top:auto;left:auto;right:8px;max-height:calc(100dvh - 156px);width:auto;}
    .battle-tools-panel {max-height:calc(100dvh - 84px);}
    .level-banner,.toast-msg {left:auto;right:8px;transform:none;top:calc(var(--safe-area-top) + 8px);max-width:calc(100vw - 464px);}
    .dps-meter-panel {max-height:calc(100dvh - 156px);}
    .tutorial-guide.with-drawer {left:auto;right:8px;transform:none;width:calc(100vw - min(320px,40vw) - 24px);top:calc(var(--safe-area-top) + 84px);max-height:calc(100dvh - 156px);}
    .tutorial-guide.with-tools {left:8px;right:auto;transform:none;width:min(320px,40vw);top:calc(var(--safe-area-top) + 84px);max-height:calc(100dvh - 156px);}
}
