.tower-dock{flex-shrink:0;position:relative;padding:9px 12px;background:linear-gradient(180deg,#e5ebd5,#f4f2df);border-top:1px solid #c6d0b4;z-index:5}
.game-shell.is-viewport .tower-dock .tower-shop{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
.game-shell.is-viewport .tower-dock .tower-card{min-height:72px;padding:8px;gap:4px 8px;grid-template-columns:30px minmax(0,1fr);border-radius:7px;position:relative;transition:background-color .15s,border-color .15s,box-shadow .15s}
.game-shell.is-viewport .tower-dock .tower-icon{width:30px;height:32px;font-size:25px}.game-shell.is-viewport .tower-dock .tower-copy strong{font-size:12px;line-height:1.25}.game-shell.is-viewport .tower-dock .tower-copy small{display:block;font-size:9px;line-height:1.3;margin-top:3px;white-space:nowrap;letter-spacing:0}.game-shell.is-viewport .tower-dock .price{font-size:12px}
.tower-dock .tower-card kbd{position:absolute;right:5px;top:4px;font:8px system-ui;color:#7e8c70}.tower-shortfall{position:absolute;right:5px;bottom:5px;background:#f5d8bb;color:#914a2a;border-radius:3px;padding:2px 4px;font-size:9px;line-height:1.2;white-space:nowrap}
.game-shell.is-viewport .tower-dock .tower-card.selected{background:#e2edcb;border-color:#508365;box-shadow:inset 0 -3px #508365,0 2px 7px #466c4822}.tower-dock .tower-card:hover:not(.is-held){border-color:#689578;box-shadow:0 4px 12px #244c4433}.tower-dock .tower-card.is-held{border-color:#f2bf72;box-shadow:0 0 0 2px #e9c778,0 5px 14px #23483a55;background:#fff0c8}.game-shell.is-viewport .tower-dock .tower-card.unaffordable{opacity:1;background:#f1ede2}.tower-dock .tower-card[data-affordable=false] .price{color:#9c6146}.tower-dock .tower-card[data-affordable=false] .tower-icon{opacity:.65}
.game-shell.is-viewport .hud{height:72px;justify-content:space-around}.game-shell.is-viewport .gold-wallet{position:relative;min-width:200px;gap:12px;padding:5px 14px;border:1px solid #f0d58b66;border-radius:8px;background:linear-gradient(120deg,#f1c76c26,#153e4033);box-shadow:inset 0 0 18px #f1cd7e0a}.gold-wallet>.hud-icon{font-size:29px;color:#ffda87;filter:drop-shadow(0 2px 2px #0f303944)}.game-shell.is-viewport .gold-wallet small{font-size:9px;letter-spacing:1px;color:#eedbad;margin:0 0 3px}.game-shell.is-viewport #gold{font-size:34px;font-weight:850;letter-spacing:.5px;color:#ffe4a0;display:block;transform-origin:left center;line-height:1;font-variant-numeric:tabular-nums}.gold-context{display:block;font-size:10px;line-height:1.3;margin-top:3px;color:#d7dfbb;white-space:nowrap}.gold-context[data-low=true]{color:#ffd0a0}.gold-delta{position:absolute;right:9px;top:14px;font-size:16px;font-weight:850;text-shadow:0 1px 2px #143b42}.gold-wallet[data-change=credit]{border-color:#c1dc8d;background-color:#4e805533}.gold-wallet[data-change=credit] .gold-delta{color:#d8f9a7}.gold-wallet[data-change=debit]{border-color:#e6ac70}.gold-wallet[data-change=debit] .gold-delta{color:#ffd6a2}.game-shell.is-viewport #round-clock{font-size:10px;line-height:1.2;color:#f3d58a;letter-spacing:.2px;margin:4px 0 0}
.drag-ghost{border-color:var(--tower-color,#e4d38d);box-shadow:0 12px 28px #102f4977;min-width:150px}.drag-ghost>span{display:grid;place-items:center;width:35px;height:35px;border:1px solid var(--tower-color,#e4d38d);border-radius:7px;color:var(--tower-color,#e4d38d);background:#123b44}.drag-ghost[data-snapped=true]{transition:left 70ms ease-out,top 70ms ease-out}.drag-ghost[data-valid=true]{box-shadow:0 0 0 2px #b4efaf55,0 12px 28px #102f4977}.drag-ghost[data-valid=false]{box-shadow:0 0 0 2px #e9a17d44,0 12px 28px #102f4977}.aim-info{border-radius:7px;box-shadow:0 3px 12px #133b4566}.aim-info[data-valid=true]{border-color:#c7e4a0;background:#25594ff2}.control-panel:not([hidden]){animation:deck-reveal .14s ease-out}.inspect [data-inspect-panel]:not([hidden]){animation:deck-reveal .14s ease-out}@keyframes deck-reveal{from{opacity:.4;translate:0 3px}to{opacity:1;translate:0 0}}
@media(max-width:1100px){.tower-dock{padding:6px 8px}.game-shell.is-viewport .tower-dock .tower-card{min-height:60px;padding:6px;gap:3px 5px;grid-template-columns:24px minmax(0,1fr)}.game-shell.is-viewport .tower-dock .tower-copy strong{font-size:10px}.game-shell.is-viewport .tower-dock .tower-copy small{font-size:7px}.game-shell.is-viewport .tower-dock .tower-icon{width:24px;height:26px;font-size:21px}.game-shell.is-viewport .tower-dock .price{font-size:10px}.tower-dock .tower-card kbd{display:none}.tower-shortfall{font-size:8px;padding:2px 3px}}
@media(max-height:550px) and (orientation:landscape){.tower-dock{padding:4px 5px}.game-shell.is-viewport .tower-dock .tower-shop{gap:4px}.game-shell.is-viewport .tower-dock .tower-card{min-height:54px;padding:4px;gap:2px 4px;grid-template-columns:20px minmax(0,1fr)}.game-shell.is-viewport .tower-dock .tower-icon{width:20px;height:22px;font-size:18px}.game-shell.is-viewport .tower-dock .tower-copy strong{font-size:9px}.game-shell.is-viewport .tower-dock .tower-copy small{font-size:7px}.game-shell.is-viewport .tower-dock .price{font-size:9px}.tower-shortfall{font-size:7px;right:3px;bottom:3px}.game-shell.is-viewport .hud{height:54px}.game-shell.is-viewport .gold-wallet{min-width:155px;padding:3px 8px;gap:7px}.game-shell.is-viewport #gold{font-size:25px}.game-shell.is-viewport .gold-wallet small{font-size:7px;margin-bottom:1px}.gold-context{font-size:8px;margin-top:2px}.gold-wallet>.hud-icon{font-size:23px}.gold-delta{font-size:12px;right:6px;top:10px}.game-shell.is-viewport #round-clock{font-size:8px;margin-top:2px}}
@media(max-width:700px) and (orientation:portrait){.tower-dock{padding:6px 8px}.game-shell.is-viewport .tower-dock .tower-shop{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.game-shell.is-viewport .tower-dock .tower-card{min-height:52px;padding:5px;grid-template-columns:22px minmax(0,1fr);gap:2px 5px}.game-shell.is-viewport .tower-dock .tower-icon{width:22px;height:24px;font-size:20px}.game-shell.is-viewport .tower-dock .tower-copy strong{font-size:10px}.game-shell.is-viewport .tower-dock .tower-copy small{font-size:7px;margin-top:2px}.game-shell.is-viewport .tower-dock .price{font-size:10px}.tower-shortfall{font-size:8px;right:4px;bottom:4px}.game-shell.is-viewport .hud{height:62px}.game-shell.is-viewport .gold-wallet{min-width:150px;padding:4px 7px;gap:7px}.game-shell.is-viewport #gold{font-size:28px}.game-shell.is-viewport .gold-wallet small{font-size:8px;letter-spacing:.3px;margin-bottom:2px}.gold-context{font-size:9px;letter-spacing:0}.gold-wallet>.hud-icon{font-size:24px}.gold-delta{font-size:13px;right:5px;top:12px}.game-shell.is-viewport .hud>div:not(.gold-wallet){gap:4px}.game-shell.is-viewport .hud>div:not(.gold-wallet) .hud-icon{display:none}.game-shell.is-viewport .hud strong{font-size:17px}.game-shell.is-viewport #round-clock{font-size:8px;margin-top:2px}
.game-shell.is-viewport .command{height:220px}.game-shell.is-viewport .command:has(.inspect[data-occupied=true]){height:320px}.game-shell.is-viewport .command:has(.inspect[data-occupied=true][data-view=stats]),.game-shell.is-viewport .command:has(.inspect[data-occupied=true][data-view=branches]){height:375px}.game-shell.is-viewport .wave-control{display:grid;grid-template-columns:100px 1fr;gap:6px}.game-shell.is-viewport .wave-control .prep-clock{display:none!important}.game-shell.is-viewport .site-selector{grid-row:1;grid-column:1;align-self:center}.game-shell.is-viewport .site-selector summary{font-size:9px;min-height:36px;padding:8px 3px}.game-shell.is-viewport .site-selector summary span{display:none}.game-shell.is-viewport #send-wave,.game-shell.is-viewport .wave-control:has(.prep-clock[hidden]) #send-wave{grid-row:1;grid-column:2;min-height:38px}.game-shell.is-viewport .site-grid{width:calc(100vw - 16px);max-width:calc(100vw - 16px)}.game-shell.is-viewport .command-status p{font-size:9px!important}.game-shell.is-viewport .command-status{column-gap:5px}.game-shell.is-viewport .inspect-tabs{margin-bottom:5px}.game-shell.is-viewport .tower-actions{margin-bottom:5px}.game-shell.is-viewport.is-practicing .command:has(.inspect){height:150px!important}}
@media(prefers-reduced-motion:reduce){.tower-dock .tower-card,.drag-ghost{transition:none!important}.control-panel:not([hidden]),.inspect [data-inspect-panel]:not([hidden]){animation:none!important}}

#collapse-command{min-width:32px;border:1px solid #b6c9a9;border-radius:4px;background:#e6edd6;color:#3e6e54;font-size:18px}.game-shell.is-viewport .gold-wallet{padding-top:2px;padding-bottom:2px}
@media(max-width:700px) and (orientation:portrait){.game-shell.is-viewport .gold-wallet{padding-top:3px;padding-bottom:3px}.game-shell.is-viewport .command:has(.inspect[data-occupied=true]){height:190px}.game-shell.is-viewport .command[data-expanded=true]:has(.inspect[data-occupied=true]){height:320px}.game-shell.is-viewport .command[data-expanded=true]:has(.inspect[data-view=stats]),.game-shell.is-viewport .command[data-expanded=true]:has(.inspect[data-view=branches]){height:375px}.game-shell.is-viewport .command[data-panel=intel]{height:330px}.game-shell.is-viewport .inspect[data-occupied=true] .tower-actions{display:flex}.game-shell.is-viewport .command[data-expanded=true] .inspect[data-view=stats] .tower-actions,.game-shell.is-viewport .command[data-expanded=true] .inspect[data-view=branches] .tower-actions{display:none}}
@media(max-width:360px) and (orientation:portrait){.game-shell.is-viewport .map-label{display:none}.game-shell.is-viewport .game-tools{width:100%;justify-content:space-between}}

.dock-actions{display:flex;align-items:center;gap:7px;min-height:38px;margin-bottom:7px}.game-shell.is-viewport .dock-actions .pulse-button,.game-shell.is-viewport .dock-actions .snare-button,.game-shell.is-viewport .dock-actions #quick-wave{position:relative;left:auto;right:auto;top:auto;bottom:auto;margin:0;min-height:36px;padding:5px 9px;gap:7px;box-shadow:none;border-radius:5px;flex-shrink:0}.game-shell.is-viewport .dock-actions .pulse-button>span:first-child,.game-shell.is-viewport .dock-actions .snare-button>span:first-child{font-size:22px}.game-shell.is-viewport .dock-actions .pulse-button strong,.game-shell.is-viewport .dock-actions .snare-button strong{font-size:10px;margin-bottom:2px}.game-shell.is-viewport .dock-actions .pulse-button small,.game-shell.is-viewport .dock-actions .snare-button small{font-size:8px}.game-shell.is-viewport .dock-actions #quick-wave{margin-left:auto;min-width:150px}.game-shell.is-viewport .dock-actions #quick-time{font-size:17px}.game-shell.is-viewport .dock-actions #quick-wave b{font-size:10px}.game-shell.is-viewport .dock-actions #aim-info{position:static;min-width:0;flex:1;max-width:none;padding:4px 7px;margin:0;font-size:10px;line-height:1.3;box-shadow:none;pointer-events:none}.game-shell.is-viewport .dock-actions .early-bonus{right:0;bottom:calc(100% + 3px);font-size:8px}.game-shell.is-viewport .dock-actions .pulse-button kbd,.game-shell.is-viewport .dock-actions .snare-button kbd{font-size:8px}
@media(max-width:700px) and (orientation:portrait),(max-height:550px){.dock-actions{gap:5px;margin-bottom:5px;min-height:34px}.game-shell.is-viewport .dock-actions .pulse-button,.game-shell.is-viewport .dock-actions .snare-button,.game-shell.is-viewport .dock-actions #quick-wave{min-height:34px;padding:4px 6px;gap:4px}.game-shell.is-viewport .dock-actions .pulse-button strong,.game-shell.is-viewport .dock-actions .snare-button strong{font-size:9px}.game-shell.is-viewport .dock-actions .pulse-button small,.game-shell.is-viewport .dock-actions .snare-button small{font-size:7px}.game-shell.is-viewport .dock-actions .pulse-button>span:first-child,.game-shell.is-viewport .dock-actions .snare-button>span:first-child{font-size:18px}.game-shell.is-viewport .dock-actions kbd{display:none}.game-shell.is-viewport .dock-actions #quick-wave{min-width:120px}.game-shell.is-viewport .dock-actions #quick-time{font-size:16px}.game-shell.is-viewport .dock-actions #quick-wave small{display:none}.game-shell.is-viewport .dock-actions #quick-wave b{font-size:9px}.game-shell.is-viewport .dock-actions #aim-info{font-size:8px;padding:4px;line-height:1.3}}
@media(max-height:550px) and (orientation:landscape){.game-shell.is-viewport.is-practicing .command{gap:7px}.game-shell.is-viewport.is-practicing .practice-coach{padding:8px;border:1px solid #c0ceac;border-radius:6px}.game-shell.is-viewport.is-practicing .practice-coach header{font-size:10px}.game-shell.is-viewport.is-practicing .practice-coach>p{font-size:10px;line-height:1.5}.game-shell.is-viewport.is-practicing .practice-goals{gap:4px}}

@media(max-width:700px) and (orientation:portrait){
 .game-shell.is-viewport .command[data-panel=intel]:has(.inspect){height:350px!important}
 .game-shell.is-viewport #intel-panel .target-intel{padding:6px;margin-bottom:5px}
 .game-shell.is-viewport #intel-panel .target-intel p{line-height:1.3;margin-top:4px}
 .game-shell.is-viewport #intel-panel .target-shield{margin-top:3px}
 .game-shell.is-viewport #intel-panel .focus-healer{min-height:28px;padding:4px 6px;margin-bottom:4px}
 .game-shell.is-viewport #intel-panel .enemy-chip{padding:2px 4px}
 .game-shell.is-viewport #intel-panel .intel-advice{line-height:1.3;margin:4px 0}
 .game-shell.is-viewport #intel-panel .intel-body{padding-bottom:6px}
 .game-shell.is-viewport #intel-panel .wave-intel{margin-bottom:4px}
 .game-shell.is-viewport #intel-panel .forecast-details>summary{min-height:22px;padding:3px 0}
 .game-shell.is-viewport #intel-panel .route-toggle{min-height:26px;padding:4px 7px}
}
@media(max-height:550px) and (orientation:landscape){
 .game-shell.is-viewport #intel-panel .target-intel{padding:6px;margin-bottom:5px}
 .game-shell.is-viewport #intel-panel .target-intel p{font-size:8px;line-height:1.3;margin-top:4px}
 .game-shell.is-viewport #intel-panel .target-shield{margin-top:3px}
 .game-shell.is-viewport #intel-panel .focus-healer{min-height:28px;padding:4px 6px;margin-bottom:4px}
 .game-shell.is-viewport #intel-panel .enemy-chip{font-size:8px;padding:2px 4px}
 .game-shell.is-viewport #intel-panel .enemy-chip strong{font-size:8px}
 .game-shell.is-viewport #intel-panel .intel-advice{font-size:8px;line-height:1.3;margin:4px 0}
 .game-shell.is-viewport #intel-panel .intel-body{padding-bottom:6px}
 .game-shell.is-viewport #intel-panel .wave-intel{margin-bottom:4px}
 .game-shell.is-viewport #intel-panel .forecast-details>summary{min-height:22px;padding:3px 0}
 .game-shell.is-viewport #intel-panel .route-toggle{min-height:26px;padding:4px 7px}
}

.game-shell.is-viewport #send-wave[hidden]{display:none!important}
.game-shell.is-viewport.in-combat .site-selector{grid-column:1/-1}
#selected-enemy>summary{display:none}#selected-enemy:has(#target-intel[hidden]){display:none}

.round-tracker:not([hidden]) { display: block; }
.intro-play-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
.intro-overlay .intro-play-options button { min-width: 0; padding: 7px; }
.intro-overlay .quick-entry { background: #24635b; color: #fff2cb; border-color: #2f776a; }
.intro-overlay .quick-entry small { color: #dbe9c4; }
.intro-overlay .daily-entry { background: #f1e5c3; border-color: #c1a562; }
.quick-best { color: #27594d; font-weight: 750; }
.quick-storage { font-size: 10px !important; }
.daily-share-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 3px 8px; }
.daily-target { margin: 5px 0 8px; padding: 5px 8px; border: 1px solid #b6c89f; border-radius: 6px; background: #edf1dc; color: #285b4f; }
.daily-target strong { display: block; font-size: 12px; margin-bottom: 2px; }
.daily-target small { display: inline-block; padding: 0 3px; }
.daily-share-row #daily-copy { margin-top: 0; min-height: 34px; }
#daily-copy-value { width: 100%; min-width: 0; resize: none; border: 1px solid #9fb391; border-radius: 4px; font: 11px system-ui; padding: 4px; }
#daily-copy-status { color: #3e7159; }
#daily-copy-status:empty { display: none; }
@media (max-height:500px) and (orientation:landscape) {
 .intro-settings:has(.contract-choice[open]) > .intro-play-options { display: none; }
 .overlay.expanded .modal:has(#quick-retry) { max-width: 530px; padding: 14px 18px; }
 .overlay.expanded .modal:has(#quick-retry) h2 { font-size: 23px; margin-bottom: 6px; }
 .overlay.expanded .modal:has(#quick-retry) p { font-size: 10px; margin-bottom: 6px; }
 .overlay.expanded .modal:has(#quick-retry) .result-stats { margin: 8px 0; }
 .overlay.expanded .modal #quick-retry { margin-top: 6px; min-height: 36px; }
 .overlay.expanded .modal:has(#quick-retry) #open-campaign { margin-top: 0; min-height: 34px; }
 .overlay.expanded .modal:has(.daily-share-row) { padding: 10px 18px; }
 .overlay.expanded .modal:has(.daily-share-row) p { margin-bottom: 5px; font-size: 10px; }
 .overlay.expanded .modal:has(.daily-share-row) h2 { margin-bottom: 5px; font-size: 23px; }
 .overlay.expanded .modal:has(.daily-share-row) .primary { margin-top: 6px; min-height: 36px; }
 .overlay.expanded .modal:has(.daily-share-row) .result-stats { margin: 5px 0; }
 .overlay.expanded .modal:has(.daily-share-row) .text-button { margin-top: 0; min-height: 30px; }
 .daily-result-links { display: flex; justify-content: center; align-items: flex-start; gap: 10px; }
 .daily-result-links .daily-share-row:has(#daily-copy-value:not([hidden])) { flex: 1; min-width: 0; }
 .daily-result-links #open-campaign { flex-shrink: 0; }
 .overlay.expanded .modal:has(.daily-share-row) .daily-target { margin: 2px 0 4px; padding: 3px 6px; }
 .overlay.expanded .modal:has(#quick-retry):has(#daily-target) { padding: 8px 18px; }
 .overlay.expanded .modal:has(#quick-retry) .daily-target strong { display: inline; margin-right: 4px; }
 .overlay.expanded .modal:has(#daily-target) #quick-retry { min-height: 36px; padding: 7px 10px; margin-top: 3px; }
}
.game-shell.is-viewport #round-threat {
 color: #ffe6a7;
 font-size: 12px;
 font-weight: 750;
 line-height: 1.2;
 margin: 2px 0 0;
 letter-spacing: 0;
 white-space: nowrap;
}
.game-shell.is-viewport #round-breakdown {
 color: #c7e6d9;
 font-size: 9px;
 line-height: 1.2;
 margin: 1px 0 0;
 letter-spacing: 0;
 white-space: nowrap;
}
.game-shell.is-viewport #round-clock:empty { display: none; }
.dock-actions:has(#round-recap:not([hidden])) :is(.pulse-button,.snare-button):disabled { display: none; }
#round-recap:not([hidden]) {
 display: flex;
 align-items: center;
 flex-wrap: wrap;
 gap: 3px 10px;
 min-width: 0;
 padding: 4px 9px;
 border-left: 3px solid #5b8a69;
 color: #27594d;
 font-size: 11px;
 line-height: 1.25;
}
#round-payout { color: #71551e; font-weight: 750; }
#round-health { color: #536c59; }
#round-resolved { color: #536c59; }
#round-recap.took-damage #round-health { color: #8f4d32; }
@media (max-width:700px) and (orientation:portrait), (max-height:550px) {
 .game-shell.is-viewport #round-threat { font-size: 11px; }
 .game-shell.is-viewport #round-breakdown { font-size: 9px; }
 #round-recap:not([hidden]) { padding: 1px 6px; gap: 1px 6px; font-size: 9px; }
 #round-result { flex-basis: 100%; }
}
.wave-tips>summary{font-size:9px;padding:5px 0;cursor:pointer;color:#55755c}.wave-tips .intel-advice{margin-top:3px}
@media(max-width:700px) and (orientation:portrait),(max-height:550px) and (orientation:landscape){
 .game-shell.is-viewport #selected-enemy>summary{display:block;cursor:pointer;font-size:9px;font-weight:700;min-height:26px;padding:5px 0;color:#547356}
 .game-shell.is-viewport #intel-panel .wave-intel>summary{display:flex;min-height:26px;padding:5px 7px;font-size:8px}
 .game-shell.is-viewport #intel-panel .wave-tips>summary{font-size:8px;padding:4px 0;min-height:22px}
 .game-shell.is-viewport #intel-panel .target-intel{margin-bottom:4px}
}
@media(max-width:700px) and (orientation:portrait){.game-shell.is-viewport .command[data-panel=intel]:has(#selected-enemy[open] #target-intel:not([hidden])){height:290px!important}}
