@media (max-width: 760px), (max-width: 920px) and (max-height: 540px) {

    /* callearly-fix: Call Early clickable + amber; overlap violet; 1x white */
    /* callearly-noE: CALL n EARLY / 2 WAVES LIVE — single-line fit (no +E on button) */
    #unitsDisplay #waveButton.wave-call-early,
    #unitsDisplay #waveButton.wave-overlap {
        white-space: nowrap !important;
        font-size: 11px !important;
        letter-spacing: 0.01em !important;
        line-height: 1.15 !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    #unitsDisplay #waveButton.wave-in-progress.wave-call-early:not(:disabled) {
        pointer-events: auto !important;
        cursor: pointer !important;
        background-color: #ffc233 !important;
        color: #1a1000 !important;
        border-color: #ffe7a3 !important;
        box-shadow: 0 3px 0 #a86b00, 0 0 14px rgba(255, 176, 0, 0.4) !important;
    }
    #unitsDisplay #waveButton.wave-in-progress.wave-overlap {
        pointer-events: none !important;
        background-color: transparent !important;
        background-image: linear-gradient(155deg, rgba(40, 10, 60, 0.4), rgba(6, 14, 22, 0.62)) !important;
        color: rgba(224, 168, 255, 0.9) !important;
        border-color: rgba(168, 85, 247, 0.5) !important;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14) !important;
    }

    /* tempoladder: tempo colour ladder on phone */
    #speedBtn[data-speed="1"],
    #unitsDisplay #speedBtn[data-speed="1"] {
        background: #f4f7fa !important;
        color: #0a1520 !important;
        border-color: #c5d0da !important;
    }
    #speedBtn[data-speed="1p5"],
    #unitsDisplay #speedBtn[data-speed="1p5"] {
        background: #00e8ff !important;
        color: #002028 !important;
        border-color: #00e8ff !important;
    }
    #speedBtn[data-speed="2"],
    #unitsDisplay #speedBtn[data-speed="2"] {
        background: #3dff8e !important;
        color: #00170a !important;
        border-color: #3dff8e !important;
    }
    #speedBtn[data-speed="2p5"],
    #unitsDisplay #speedBtn[data-speed="2p5"] {
        background: #5b8cff !important;
        color: #061028 !important;
        border-color: #5b8cff !important;
    }
    #speedBtn[data-speed="3"],
    #unitsDisplay #speedBtn[data-speed="3"] {
        background: #ff4ec8 !important;
        color: #1a0014 !important;
        border-color: #ff4ec8 !important;
    }
    /* tempofloat: CBDNum fraction on 1.5x / 2.5x tempo */
    #speedBtn .speed-btn__value,
    #unitsDisplay #speedBtn .speed-btn__value {
        display: inline-flex !important;
        align-items: baseline;
        font-family: 'Courier Prime', 'Courier New', ui-monospace, monospace !important;
    }
    #speedBtn .speed-btn__value .num-frac,
    #unitsDisplay #speedBtn .speed-btn__value .num-frac {
        font-size: calc(1em * var(--num-frac-scale, 0.78)) !important;
        font-weight: 800 !important;
        opacity: 0.92;
    }


    :root {
        --cbd-phone-gap: 6px;
        --cbd-phone-left: max(6px, env(safe-area-inset-left, 0px));
        --cbd-phone-right: max(6px, env(safe-area-inset-right, 0px));
        --cbd-phone-top: max(6px, env(safe-area-inset-top, 0px));
        --cbd-phone-bottom: max(6px, env(safe-area-inset-bottom, 0px));
        --cbd-board-top: calc(var(--cbd-phone-top) + var(--cbd-hud-top-height, 0px) + var(--cbd-phone-gap));
        --cbd-dock-top: calc(var(--cbd-phone-bottom) + var(--cbd-hud-bottom-height, 0px) + var(--cbd-phone-gap));
        --cbd-board-bottom: calc(var(--cbd-dock-top) + var(--cbd-hud-tally-height, 0px) + var(--cbd-phone-gap));
        --cbd-board-height: max(100px, calc(100dvh - var(--cbd-board-top) - var(--cbd-board-bottom)));
    }

    #gameContainer { height: 100dvh; }
    #ui { position: absolute; inset: 0; display: block; padding: 0; pointer-events: none; }
    #canvasWrapper {
        position: absolute;
        top: var(--cbd-board-top);
        bottom: var(--cbd-board-bottom);
        left: var(--cbd-phone-left);
        right: var(--cbd-phone-right);
        width: auto;
        height: auto;
    }
    #gameCanvas { margin: 0; }
    #tetherOverlay { top: calc(0px - var(--cbd-board-top)); left: calc(0px - var(--cbd-phone-left)); }
    #ui > #stats, #ui > #unitsDisplay {
        position: fixed;
        left: var(--cbd-phone-left);
        right: var(--cbd-phone-right);
        width: auto;
        min-width: 0;
        max-width: none;
        margin: 0;
        padding: 7px 9px;
        gap: 4px;
        border-radius: 6px;
        box-sizing: border-box;
        background: rgba(0, 8, 10, .9);
        font-size: 12px;
        pointer-events: auto;
    }
    #ui > #stats { top: var(--cbd-phone-top); bottom: auto; flex-direction: column; }
    #ui > #unitsDisplay { --cbd-hud-control-size: 44px; --cbd-hud-control-icon-size: 16px; top: auto; bottom: var(--cbd-phone-bottom); flex-flow: row wrap; align-items: center; }
    #stats > .stat-label, #unitsDisplay > .stat-label { display: none; }
    #stats .energy-row, #unitsDisplay .units-row { width: auto; margin: 0; gap: 6px; }
    #stats .resource-field-label, #unitsDisplay .resource-field-label { font-size: 11px !important; }
    #stats .energy-number, #unitsDisplay .units-number { font-size: 17px !important; }
    #stats .stat-icon .icon-img, #unitsDisplay .stat-icon .icon-img { width: 19px; height: 19px; }
    #stats #energyBar { height: 7px; min-height: 7px; margin: 0; }
    #unitsDisplay > div:not([class]) { flex: 1 1 50%; min-width: 0; }
    #unitsDisplay .units-bits-section {
        display: flex;
        flex: 0 1 40%;
        flex-direction: column;
        align-items: stretch;
        gap: 3px;
        min-width: 0;
        margin: 0;
        padding: 0;
        border: 0;
    }
    #unitsDisplay #bitsBucketBar { height: 5px !important; min-height: 5px; }
    #unitsDisplay .units-bits-caption { margin: 0; font-size: 10px; line-height: 1; white-space: nowrap; }
    #unitsDisplay .hud-hub-purchase-flag { position: absolute; left: 0; bottom: calc(100% + 12px); min-width: 0; max-width: 118px; margin: 0; padding: 6px; font-size: 9px; box-sizing: border-box; }
    #unitsDisplay .units-main-actions {
        flex: 1 0 100%;
        margin: 3px 0 0;
        padding: 5px 0 0;
        border-top: 1px solid rgba(0, 255, 136, .22);
        box-sizing: content-box;
    }
    #stats #waveProgress { font-size: 11px; }
    #stats #waveProgress.wave-status-active { max-height: 240px; margin-top: 2px; padding-top: 4px; padding-bottom: 0; }
    #stats #waveStatusSlot .wave-status-content.wave-active { display: flex; flex-direction: column; align-items: stretch; gap: 3px; }
    #stats #waveStatusSlot .wave-status-line { font-size: 11px; flex-wrap: wrap; gap: 5px; }
    #stats #waveStatusSlot .wave-info-line, #stats #waveStatusSlot .wave-mob-line { justify-content: space-between; }
    #stats #waveStatusSlot .wave-mob-line .wave-stat-label { font-size: 10px; letter-spacing: 0; }
    #stats #waveStatusSlot .wave-stat-numbers { font-size: 12px; }
    #stats #waveStatusSlot .wave-mob-icon { display: none; }
    #stats .wave-number-badge { font-size: 12px; padding: 2px 6px; }
    #stats .wave-log-stack { margin: 0; }
    #stats .wave-log-row { min-height: 32px; }
    #stats .path-trace-trigger { min-width: 36px; min-height: 32px; }
    #stats .wave-log-grid { flex: 1; min-width: 0; }
    #stats #cbdWaveIntel { margin-top: 3px; padding-top: 0; font-size: 11px; }
    #stats #cbdWaveIntel summary { min-height: 36px; padding: 9px 0; line-height: 16px; box-sizing: border-box; }
    #stats #cbdWaveIntel .cbd-wave-intel-threat { margin-top: 0; padding-bottom: 3px; }
    #ui > #cbdRosterTag {
        left: auto !important;
        right: var(--cbd-phone-right) !important;
        top: auto !important;
        bottom: var(--cbd-dock-top) !important;
        min-height: 36px;
        padding: 6px 10px;
        font-size: 11px;
        letter-spacing: .09em;
        transform: none !important;
        box-sizing: border-box;
    }
    #ui > #cbdTowerRoster {
        left: max(var(--cbd-phone-left), calc((100vw - 320px) / 2)) !important;
        right: max(var(--cbd-phone-right), calc((100vw - 320px) / 2)) !important;
        top: auto !important;
        bottom: var(--cbd-dock-top) !important;
        width: auto;
        min-width: 0;
        max-width: none;
        max-height: min(36dvh, 280px, calc(100dvh - var(--cbd-board-top) - var(--cbd-dock-top)));
        transform: none !important;
        box-sizing: border-box;
        background: rgba(0, 8, 10, .97);
    }
    #ui > #cbdTowerRoster.is-revealed { display: none; }
    #ui > #cbdTowerRoster.is-revealed.is-open { display: flex; z-index: var(--cbd-layer-tower-panel); }
    #ui > #cbdRosterTag.is-live { display: flex; }
    #ui > #cbdTowerRoster.is-revealed.is-open ~ #cbdRosterTag { visibility: hidden; }
    #ui > #cbdTowerRoster .cbd-rost-head { min-height: 36px; padding: 0 6px 0 18px; font-size: 11px; box-sizing: border-box; }
    #ui > #cbdTowerRoster .modal-close-btn { min-width: 36px; width: 36px; height: 36px; font-size: 16px; }
    #ui > #cbdTowerRoster .cbd-rost-row { min-height: 32px; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 6px; padding: 3px 6px; box-sizing: border-box; }
    #ui > #cbdTowerRoster .cbd-rost-icon { width: 20px; height: 20px; }
    #ui > #cbdTowerRoster .cbd-rost-name, #ui > #cbdTowerRoster .cbd-rost-count { font-size: 11px; }
    #ui > #cbdTowerRoster .cbd-rost-name { white-space: normal; overflow: visible; }
    #ui > #towerStatus, #ui > #motherUI, #ui > #towerInfo.mobile-fixed {
        left: var(--cbd-phone-left) !important;
        right: var(--cbd-phone-right) !important;
        top: auto !important;
        bottom: var(--cbd-dock-top) !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        min-height: 0 !important;
        max-height: calc(100dvh - var(--cbd-board-top) - var(--cbd-dock-top)) !important;
        transform: none !important;
        box-sizing: border-box;
        overscroll-behavior: contain;
    }
    #ui > #towerStatus, #ui > #towerInfo.mobile-fixed { overflow-y: auto !important; }
    #ui > #motherUI { height: auto !important; max-height: min(36dvh, 300px, calc(100dvh - var(--cbd-board-top) - var(--cbd-dock-top))) !important; overflow: hidden !important; }
    #ui > #towerStatus button { min-height: 32px !important; }
    #ui > #motherUI .mother-tab-btn, #ui > #motherUI .modal-close-btn { min-height: 36px !important; }
    #ui > #motherUI .modal-close-btn { width: 36px; min-width: 36px; height: 36px; }
    #ui > #towerStatus .tower-upgrade-row__action > .upgrade-btn { min-height: 32px !important; padding: 3px 6px !important; font-size: 10px !important; }
    #ui > #motherUI .mother-top-tabs { position: relative; z-index: 3; flex-shrink: 0; gap: 3px; padding: 3px 6px; }
    #ui > #motherUI :is(#coreStatusUI, #breachStatusUI) { flex: 1 1 auto; height: auto !important; max-height: none !important; min-height: 0; padding: 0 6px 5px !important; overflow: hidden; }
    #ui > #motherUI :is(#coreStatusUI, #breachStatusUI)[style*="display: block"] { display: flex !important; flex-direction: column !important; }
    #ui > #motherUI :is(#coreStatusUI, #breachStatusUI) .status-tabs { flex: 0 0 auto; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3px; padding: 2px 0 !important; }
    #ui > #motherUI :is(#coreStatusUI, #breachStatusUI) .status-tab-btn { min-width: 0 !important; min-height: 32px !important; padding: 4px 3px !important; white-space: normal !important; text-overflow: clip; line-height: 1.15 !important; font-size: 10px !important; letter-spacing: 0; }
    #ui > #motherUI :is(#coreStatusUI, #breachStatusUI) .status-tab-content { flex: 1 1 auto; min-height: 0; max-height: none; height: auto; overflow-y: auto !important; overscroll-behavior: contain; scrollbar-width: thin; }
    #ui > #motherUI :is(#coreStatusUI, #breachStatusUI) .status-tab-content fieldset { height: auto !important; max-height: none !important; overflow: hidden !important; }
    #ui > #motherUI :is(#coreStatusUI, #breachStatusUI) .fieldset-content { height: auto !important; max-height: none !important; overflow: visible !important; }
    #ui > #motherUI :is(#coreStatusUI, #breachStatusUI) button { min-height: 32px !important; font-size: 10px !important; }
    #ui > #motherUI :is(#coreStatusUI, #breachStatusUI) .status-line { min-height: 22px; }
    #ui > #motherUI :is(#coreStatusUI, #breachStatusUI) .status-line .label { font-size: 10px !important; }
    #ui > #motherUI :is(#coreStatusUI, #breachStatusUI) .status-line .value { font-size: 12px !important; }
    #ui > #towerStatus { left: max(var(--cbd-phone-left), calc((100vw - 340px) / 2)) !important; right: max(var(--cbd-phone-right), calc((100vw - 340px) / 2)) !important; max-height: min(40dvh, 340px, calc(100dvh - var(--cbd-board-top) - var(--cbd-dock-top))) !important; }
    #ui > #towerStatus[style*="display: block"] { display: grid !important; grid-template-columns: minmax(0, 1fr) 36px !important; align-content: start; }
    #ui > #towerStatus > * { grid-column: 1 / -1; min-width: 0; }
    #ui > #towerStatus .tower-topbar { position: sticky; top: -5px; z-index: 3; grid-column: 1; grid-row: 1; min-height: 36px; gap: 4px; padding: 0 4px; background: rgba(0, 20, 10, .98); }
    #ui > #towerStatus #closeStatusPanelBtn { position: sticky; top: -5px; right: auto; grid-column: 2; grid-row: 1; margin: 0; z-index: 4; height: 36px; }
    #ui > #towerStatus :is(.modal-close-btn, .tower-nav-btn) { min-width: 36px !important; width: 36px !important; height: 36px; flex-shrink: 0; }
    #upgradeModal #upgradeContent {
        width: calc(100vw - var(--cbd-phone-left) - var(--cbd-phone-right));
        max-width: none;
        min-height: 0;
        max-height: calc(100dvh - var(--cbd-phone-top) - var(--cbd-phone-bottom));
        padding: 10px;
        box-sizing: border-box;
    }
    #upgradeModal .modal-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 4px 0; }
    #upgradeModal .modal-tabs .tab-btn { min-height: 44px; padding: 5px 3px; font-size: 11px; white-space: normal; letter-spacing: .2px; }
    #upgradeModal .hub-upgrade-bar, #upgradeModal .modal-portal-btn { min-height: 44px; }
    #upgradeModal .modal-close-btn { width: 44px; height: 44px; min-width: 44px; }
    #upgradeModal #closeUpgrades { top: 6px; right: 6px; }
    #upgradeModal .hub-header-container h2.modal-hud-title { flex-direction: row; align-items: center; gap: 5px; margin-bottom: 3px; padding-right: 44px; }
    #upgradeModal .modal-hud-title__primary { flex: 1 0 100%; font-size: 16px; line-height: 1.2; }
    #upgradeModal .modal-hud-title :is(.modal-energy-display, .modal-units-display) { flex: 0 1 auto; width: auto; }
    #upgradeModal .modal-hud-title .modal-portal-btn { flex: 0 0 auto; margin: 0; }
    #upgradeModal .hub-header-container .pause-indicator { margin: 2px 0 4px; padding: 2px 4px; }
    #upgradeModal .upgrade-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #upgradeContent .hub-tune-pop { padding: 4px; }
    #upgradeContent .hub-tune-dialog { padding: 8px; overscroll-behavior: contain; }
    #upgradeContent .hub-tune-pop-head { position: sticky; top: -8px; z-index: 3; gap: 4px; padding: 4px; margin: -8px -8px 8px; background: rgba(2, 12, 18, .98); }
    #upgradeContent .hub-tune-pop-head .modal-close-btn { position: static; margin: 0; flex-shrink: 0; }
    #upgradeContent .hub-tune-pop .tower-nav-btn { width: 44px; height: 44px; min-width: 44px; padding: 0; flex-shrink: 0; }
    #upgradeContent .hub-tune-pop-title { min-width: 0; flex: 1; font-size: 12px; letter-spacing: .04em; overflow-wrap: anywhere; }
    #upgradeContent .hub-tune-body { grid-template-columns: minmax(0, 1fr); }
    #upgradeContent .hub-tune-rows .tower-upgrade-row__action > .upgrade-btn { min-height: 44px !important; font-size: 11px !important; }
    #upgradeContent .hub-tune-rows .tower-stat-line .label { font-size: 11px; }
    #confirmationModal :is(#confirmActionBtn, #cancelActionBtn) { min-height: 44px !important; font-size: 12px !important; }

    /* bosswarn: dont-ask + meter never blocks taps after close */
    #confirmationModal .boss-early-dontask { font-size: 12px !important; gap: 8px !important; min-height: 44px; align-items: center; }
    #confirmationModal .boss-early-dontask input[type="checkbox"] { width: 20px !important; height: 20px !important; }
    #ui > #panelAutoCloseMeter[data-owner-id="confirmationContent"] { pointer-events: none !important; }

    /* bosswarn2: orange Confirm / green Cancel on phone */
    #confirmationContent.boss-early-warn #confirmActionBtn {
        color: #ff8800 !important; border-color: #ff8800 !important;
        background: rgba(255, 120, 0, 0.18) !important;
    }
    #confirmationContent.boss-early-warn #cancelActionBtn {
        color: #00ff88 !important; border-color: #00ff88 !important;
        background: rgba(0, 255, 136, 0.16) !important;
    }


    #confirmationModal :is(#confirmation-close-btn, .tower-nav-btn) { min-width: 44px !important; width: 44px !important; min-height: 44px !important; height: 44px !important; }
    #confirmationContent .modal-header h2 { padding-right: 44px; font-size: 16px !important; box-sizing: border-box; }
    #ui > #panelAutoCloseMeter { pointer-events: none; }
    #ui > #gameMessage { max-width: calc(100vw - var(--cbd-phone-left) - var(--cbd-phone-right)); box-sizing: border-box; }
    /* multiclear: tiny double splashes — keep clear of bottom HUD */
    .cbd-perfect-splash.perfect-wave-message.perfect-wave-mini {
        font-size: clamp(12px, 3.2vw, 16px) !important;
        padding: 4px 8px !important;
        max-width: min(40vw, 160px) !important;
        top: 28% !important;
    }
    .cbd-perfect-splash.perfect-wave-message.perfect-wave-mini.multi-clear-label {
        top: 36% !important;
        max-width: min(70vw, 220px) !important;
        font-size: clamp(13px, 3.6vw, 17px) !important;
    }
}

@media (max-width: 920px) and (max-height: 540px) and (orientation: landscape) {
    /* multiclear: tiny double splashes — keep clear of bottom HUD */
    .cbd-perfect-splash.perfect-wave-message.perfect-wave-mini {
        font-size: clamp(12px, 3.2vw, 16px) !important;
        padding: 4px 8px !important;
        max-width: min(40vw, 160px) !important;
        top: 28% !important;
    }
    .cbd-perfect-splash.perfect-wave-message.perfect-wave-mini.multi-clear-label {
        top: 36% !important;
        max-width: min(70vw, 220px) !important;
        font-size: clamp(13px, 3.6vw, 17px) !important;
    }
    :root { --cbd-landscape-rail: 190px; }
    #ui > #panelAutoCloseMeter { left: var(--cbd-phone-left) !important; right: auto !important; top: auto !important; bottom: var(--cbd-phone-bottom) !important; max-width: var(--cbd-landscape-rail); }
    #ui > #stats { right: auto; width: var(--cbd-landscape-rail); max-height: calc(100dvh - var(--cbd-phone-top) - var(--cbd-phone-bottom)); overflow-y: auto; }
    #ui > #unitsDisplay { left: auto; width: var(--cbd-landscape-rail); }
    #unitsDisplay .units-bits-section { flex-basis: 100%; }
    #unitsDisplay .units-row { flex-wrap: wrap; max-width: 100%; }
    #unitsDisplay .hud-hub-purchase-flag { position: relative; left: auto; bottom: auto; max-width: 100%; }
    #ui > #unitsDisplay .units-main-actions { grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: 44px 44px; }
    #unitsDisplay #waveButton { grid-column: 1 / 4 !important; grid-row: 1 !important; }
    #unitsDisplay #autoWaveBtn { grid-column: 4 / 7 !important; grid-row: 1 !important; }
    #unitsDisplay #pauseBtn { grid-column: 1 / 3 !important; grid-row: 2 !important; }
    #unitsDisplay #speedBtn { grid-column: 3 / 5 !important; grid-row: 2 !important; }

    /* callearly-fix: Call Early clickable + amber; overlap violet; 1x white */
    /* callearly-noE: CALL n EARLY / 2 WAVES LIVE — single-line fit (no +E on button) */
    #unitsDisplay #waveButton.wave-call-early,
    #unitsDisplay #waveButton.wave-overlap {
        white-space: nowrap !important;
        font-size: 11px !important;
        letter-spacing: 0.01em !important;
        line-height: 1.15 !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    #unitsDisplay #waveButton.wave-in-progress.wave-call-early:not(:disabled) {
        pointer-events: auto !important;
        cursor: pointer !important;
        background-color: #ffc233 !important;
        color: #1a1000 !important;
        border-color: #ffe7a3 !important;
        box-shadow: 0 3px 0 #a86b00, 0 0 14px rgba(255, 176, 0, 0.4) !important;
    }
    #unitsDisplay #waveButton.wave-in-progress.wave-overlap {
        pointer-events: none !important;
        background-color: transparent !important;
        background-image: linear-gradient(155deg, rgba(40, 10, 60, 0.4), rgba(6, 14, 22, 0.62)) !important;
        color: rgba(224, 168, 255, 0.9) !important;
        border-color: rgba(168, 85, 247, 0.5) !important;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14) !important;
    }

    /* tempoladder: tempo colour ladder on phone */
    #speedBtn[data-speed="1"],
    #unitsDisplay #speedBtn[data-speed="1"] {
        background: #f4f7fa !important;
        color: #0a1520 !important;
        border-color: #c5d0da !important;
    }
    #speedBtn[data-speed="1p5"],
    #unitsDisplay #speedBtn[data-speed="1p5"] {
        background: #00e8ff !important;
        color: #002028 !important;
        border-color: #00e8ff !important;
    }
    #speedBtn[data-speed="2"],
    #unitsDisplay #speedBtn[data-speed="2"] {
        background: #3dff8e !important;
        color: #00170a !important;
        border-color: #3dff8e !important;
    }
    #speedBtn[data-speed="2p5"],
    #unitsDisplay #speedBtn[data-speed="2p5"] {
        background: #5b8cff !important;
        color: #061028 !important;
        border-color: #5b8cff !important;
    }
    #speedBtn[data-speed="3"],
    #unitsDisplay #speedBtn[data-speed="3"] {
        background: #ff4ec8 !important;
        color: #1a0014 !important;
        border-color: #ff4ec8 !important;
    }
    /* tempofloat: CBDNum fraction on 1.5x / 2.5x tempo */
    #speedBtn .speed-btn__value,
    #unitsDisplay #speedBtn .speed-btn__value {
        display: inline-flex !important;
        align-items: baseline;
        font-family: 'Courier Prime', 'Courier New', ui-monospace, monospace !important;
    }
    #speedBtn .speed-btn__value .num-frac,
    #unitsDisplay #speedBtn .speed-btn__value .num-frac {
        font-size: calc(1em * var(--num-frac-scale, 0.78)) !important;
        font-weight: 800 !important;
        opacity: 0.92;
    }


    #unitsDisplay #settingsBtn { grid-column: 5 / 7 !important; grid-row: 2 !important; }
    #ui > #cbdRosterTag { max-width: var(--cbd-landscape-rail); font-size: 10px; }
    #canvasWrapper { top: var(--cbd-phone-top); bottom: var(--cbd-phone-bottom); left: calc(var(--cbd-phone-left) + var(--cbd-landscape-rail) + 4px); right: calc(var(--cbd-phone-right) + var(--cbd-landscape-rail) + 4px); }
    #ui > #cbdTowerRoster, #ui > #towerStatus, #ui > #motherUI, #ui > #towerInfo.mobile-fixed {
        left: calc(var(--cbd-phone-left) + var(--cbd-landscape-rail) + 5px) !important;
        right: var(--cbd-phone-right) !important;
        top: var(--cbd-phone-top) !important;
        bottom: var(--cbd-phone-bottom) !important;
        max-height: calc(100dvh - var(--cbd-phone-top) - var(--cbd-phone-bottom)) !important;
    }
    #ui > #cbdTowerRoster { right: auto !important; bottom: auto !important; width: min(320px, calc(100vw - var(--cbd-phone-left) - var(--cbd-phone-right) - var(--cbd-landscape-rail) - 5px)); max-height: min(280px, calc(100dvh - var(--cbd-phone-top) - var(--cbd-phone-bottom))) !important; }
    #tetherOverlay { top: calc(0px - var(--cbd-phone-top)); left: calc(0px - var(--cbd-phone-left) - var(--cbd-landscape-rail) - 4px); }
    #ui > #motherUI { height: auto !important; }
    #upgradeModal .modal-tabs { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    #upgradeContent .hub-tune-body { grid-template-columns: minmax(140px, 32%) minmax(0, 1fr); }
    #stats #waveProgress.wave-status-active { max-height: none; }
    #stats #waveStatusSlot .wave-info-line { justify-content: flex-start; }
    #stats #waveStatusSlot .wave-stat-item { white-space: nowrap; }
    #stats #waveStatusSlot .wave-status-line { font-size: 10px; }
    #stats #waveStatusSlot .wave-info-line > .wave-stat-item + .wave-stat-item { margin-left: 0; }
    #stats #waveStatusSlot .wave-mob-line .wave-stat-label { font-size: 9px; }
    #stats #waveStatusSlot .wave-mob-line { justify-content: flex-start; }
}

@media (max-width: 760px) and (max-height: 740px) and (orientation: portrait) {
    #ui > #stats { padding: 5px 8px; gap: 2px; }
    #stats #energyBar { height: 4px; min-height: 4px; }
    #stats #waveStatusSlot .wave-status-content.wave-active { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 8px; }
    #stats #waveStatusSlot .wave-info-line { grid-column: 1; grid-row: 1; }
    #stats #waveStatusSlot .wave-stat-item-highest { display: none; }
    #stats #waveStatusSlot .wave-log-stack { grid-column: 2; grid-row: 1; min-width: 0; }
    #stats #waveStatusSlot .wave-log-row { min-height: 28px; gap: 4px; }
    #stats #waveStatusSlot .path-trace-trigger { min-width: 30px; min-height: 28px; }
    #stats #waveStatusSlot .wave-log-grid { gap: 2px; }
    #stats #waveStatusSlot .wave-log-cell { min-width: 0; width: auto; flex: 1; }
    #stats #waveStatusSlot .wave-mob-line { grid-column: 1 / -1; grid-row: 2; }
    #stats #waveStatusSlot #progressBar { grid-column: 1 / -1; grid-row: 3; height: 4px; margin: 1px 0; }
    #stats #cbdWaveIntel summary { min-height: 28px; padding: 6px 0; }
    #ui > #unitsDisplay { padding: 5px 8px; gap: 2px; }
    #unitsDisplay .units-number { font-size: 15px !important; }
    #unitsDisplay .units-bits-caption { font-size: 9px; }
}

@media (max-width: 660px) and (max-height: 540px) and (orientation: landscape) {
    :root { --cbd-landscape-rail: 156px; }
}
