        * { margin: 0; padding: 0; box-sizing: border-box; }

        body {
            background: #050505;
            color: #00ff41;
            font-family: 'Courier New', Courier, monospace;
            display: flex;
            height: 100vh;
            overflow: hidden;
            user-select: none;
        }

        #radar-wrap {
            flex-shrink: 0;
            background: #000;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        #radar-canvas { display: block; cursor: crosshair; }

        /* Sidebar */
        #sidebar {
            width: 300px;
            flex-shrink: 0;
            display: flex;
            flex-direction: column;
            gap: 6px;
            padding: 6px;
            overflow-y: auto;
            background: #020802;
            border-left: 1px solid #0a2010;
        }

        .panel {
            border: 1px solid #0a2010;
            background: #010501;
            padding: 7px 8px;
        }

        .panel-title {
            font-size: 10px;
            letter-spacing: 3px;
            color: #28c85a;
            text-transform: uppercase;
            border-bottom: 1px solid #0a2010;
            padding-bottom: 4px;
            margin-bottom: 6px;
        }

        .data-row {
            display: flex;
            justify-content: space-between;
            font-size: 11px;
            padding: 1px 0;
        }
        .data-lbl { color: #39b85d; }
        .data-val { color: #00ff41; }
        .data-val.amber { color: #ffaa00; }
        .data-val.dim   { color: #4ac66e; }

        /* TRANSMIT button */
        #mobile-control-row { display: block; }
        #pause-btn, #spawn-btn, #inbound-spawn-btn, #mobile-reset-btn { display: none; }

        #mic-btn {
            width: 100%;
            padding: 9px;
            background: #010a01;
            border: 1px solid #00aa30;
            color: #00ff41;
            font-family: 'Courier New', monospace;
            font-size: 13px;
            font-weight: bold;
            letter-spacing: 2px;
            cursor: pointer;
            transition: background 0.1s, border-color 0.1s;
        }
        #mic-btn:hover  { background: #003010; }
        #mic-btn.active {
            background: #1a0000;
            border-color: #ff3300;
            color: #ff5500;
            animation: txPulse 0.8s infinite;
        }
        @keyframes txPulse {
            0%,100% { opacity: 1; }
            50%      { opacity: 0.65; }
        }

        /* Heard / transcript */
        #transcript {
            font-size: 10px;
            color: #b6c75a;
            font-style: italic;
            min-height: 24px;
            margin-top: 4px;
            padding: 3px 4px;
            border: 1px solid #0a1500;
            background: #020800;
            word-break: break-word;
        }

        /* Comms log */
        #comms-log {
            overflow-y: auto;
            font-size: 10px;
            line-height: 1.6;
            max-height: 200px;
            min-height: 80px;
        }
        .log-atc  { color: #00cc35; }
        .log-acft { color: #40aaff; padding-left: 6px; }
        .log-sys  { color: #82965a; font-style: italic; }

        /* Sim controls */
        .ctrl-row {
            display: flex;
            align-items: center;
            gap: 6px;
            font-size: 11px;
            margin: 3px 0;
        }
        .ctrl-row label { color: #39b85d; min-width: 90px; }
        .ctrl-row input[type=range] { flex: 1; accent-color: #00ff41; height: 3px; }

        /* Phraseology ref */
        .qref { font-size: 9px; color: #58b86f; line-height: 1.8; }
        .qref span { color: #72d58c; }

        /* Scrollbar */
        ::-webkit-scrollbar       { width: 4px; }
        ::-webkit-scrollbar-track { background: #010501; }
        ::-webkit-scrollbar-thumb { background: #004015; }

        .small-btn {
            background: #010a01;
            border: 1px solid #004015;
            color: #4ac66e;
            font-family: 'Courier New', monospace;
            font-size: 10px;
            padding: 3px 8px;
            cursor: pointer;
        }
        .small-btn:hover { background: #002a0a; color: #00cc35; }

        #cs-input {
            flex: 1;
            background: #010a01;
            border: 1px solid #004010;
            color: #00ff41;
            font-family: 'Courier New', monospace;
            font-size: 11px;
            padding: 2px 4px;
        }



        /* ========================================================
           DESKTOP OPERATOR CONSOLE LAYOUT
           Window 1 is now the authoritative operator/instructor station.
           The live radar fills the entire left side; all controls and
           information remain in the right-side operator column.
           ======================================================== */
        @media (min-width: 701px) {
            html, body {
                background: #051b0b;
            }

            body {
                align-items: stretch;
            }

            #radar-wrap {
                width: min(100vh, 72vw);
                height: min(100vh, 72vw);
                flex: 0 0 auto;
                background: #051b0b;
                align-items: flex-start;
                justify-content: flex-start;
                overflow: hidden;
            }

            #radar-canvas {
                width: 100%;
                height: 100%;
                max-width: 100vh;
                max-height: 100vh;
                flex: 0 0 auto;
            }

            #sidebar {
                width: auto;
                min-width: 440px;
                flex: 1 1 auto;
                background: #07180d;
                border-left: 1px solid #1a4a2b;
                padding: 0 8px 8px;
                gap: 6px;
                scroll-padding-top: 238px;
            }

            /* STICKY OPERATOR DATA -------------------------------------------
               Session/aircraft data remains visible while the command surface
               below it scrolls. Keeping both panels inside one sticky wrapper
               avoids fragile fixed pixel offsets between separate sticky boxes. */
            #operator-sticky-data {
                position: sticky;
                top: 0;
                z-index: 50;
                flex: 0 0 auto;
                background: #07180d;
                padding: 5px 0 6px;
                border-bottom: 1px solid #1a4a2b;
                box-shadow: 0 5px 8px rgba(5, 27, 11, 0.78);
            }

            #operator-session-panel {
                margin-bottom: 5px;
            }

            #operator-session-panel .panel-title {
                margin-bottom: 4px;
            }

            .operator-session-grid {
                display: grid;
                grid-template-columns: repeat(3, minmax(0, 1fr));
                gap: 2px 10px;
            }

            .operator-session-grid .data-row {
                gap: 6px;
            }

            .operator-session-actions {
                display: flex;
                gap: 5px;
                margin-top: 4px;
            }

            .operator-session-actions .small-btn {
                flex: 1;
                padding: 5px 6px !important;
            }

            #aircraft-data-panel {
                padding-top: 6px;
                padding-bottom: 6px;
            }

            #aircraft-data-panel .panel-title {
                margin-bottom: 4px;
            }

            .aircraft-data-grid {
                display: grid;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                column-gap: 18px;
                row-gap: 1px;
            }

            .aircraft-data-grid .data-row {
                gap: 8px;
            }

            .aircraft-data-grid .full-width {
                grid-column: 1 / -1;
            }

            .panel {
                background: #081b0f;
                border-color: #1a4a2b;
            }

            .panel-title {
                border-bottom-color: #1a4a2b;
            }

            #mic-btn,
            .small-btn,
            #transcript {
                background: #07180d;
            }

            ::-webkit-scrollbar-track { background: #07180d; }

            /* Scenario Manager used to place its clock over the upper-left
               corner of the radar. The operator session panel now owns that
               information, keeping the radar itself visually clean. */
            #atc-scenario-status {
                display: none !important;
            }
        }

        /* ========================================================
           OPERATOR BUTTON COMMAND CONSOLE
           Dense, grouped controls designed for fast RPO use.
           ======================================================== */
        #operator-command-console {
            display: block;
        }

        .opcmd-topline {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            margin-bottom: 6px;
        }

        .opcmd-label {
            color: #39b85d;
            font-size: 9px;
            letter-spacing: 1.5px;
            margin-right: 8px;
        }

        #opcmd-runway-readout {
            color: #ffaa00;
            font-size: 14px;
            font-weight: bold;
        }

        .opcmd-mode-btn,
        .opcmd-btn {
            background: #07180d;
            color: #75d994;
            border: 1px solid #24603a;
            border-radius: 3px;
            font-family: 'Courier New', monospace;
            font-size: 10px;
            font-weight: bold;
            letter-spacing: .3px;
            padding: 7px 6px;
            cursor: pointer;
            min-height: 30px;
        }

        .opcmd-btn:hover,
        .opcmd-mode-btn:hover {
            background: #0d2b17;
            border-color: #42a965;
            color: #baffce;
        }

        .opcmd-btn.selected,
        .opcmd-mode-btn.selected {
            background: #1d4d2a;
            color: #ffffff;
            border-color: #72e397;
            box-shadow: inset 0 0 0 1px rgba(114,227,151,.25);
        }

        .opcmd-btn.pressed {
            transform: translateY(1px);
            background: #2a6338;
        }

        .opcmd-btn.warning {
            color: #ffc56f;
            border-color: #8a6024;
        }

        .opcmd-btn.takeoff {
            color: #9fffc0;
            border-color: #3d9d5e;
        }

        .opcmd-status {
            padding: 5px 7px;
            margin-bottom: 7px;
            border: 1px solid #1b4a2b;
            background: #06130a;
            color: #69c987;
            font-size: 9px;
            letter-spacing: .5px;
            min-height: 25px;
            display: flex;
            align-items: center;
        }

        .opcmd-status.ok {
            color: #a8ffc3;
            border-color: #347b4a;
        }

        .opcmd-status.warning {
            color: #ffc56f;
            border-color: #725326;
        }

        .opcmd-status.error {
            color: #ff8c8c;
            border-color: #7a3333;
        }

        .opcmd-section {
            padding-top: 7px;
            margin-top: 7px;
            border-top: 1px solid #163822;
        }

        .opcmd-section-title {
            color: #4ac66e;
            font-size: 9px;
            text-transform: uppercase;
            letter-spacing: 1.6px;
            margin-bottom: 5px;
        }

        .opcmd-grid {
            display: grid;
            gap: 4px;
        }

        .opcmd-grid.runway-grid {
            grid-template-columns: repeat(6, minmax(0, 1fr));
        }

        .opcmd-grid.two-col {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .opcmd-grid.four-col {
            grid-template-columns: repeat(4, minmax(0, 1fr));
        }

        .opcmd-numeric-row {
            display: grid;
            grid-template-columns: 90px 90px minmax(0, 1fr);
            gap: 5px;
            align-items: center;
            margin: 5px 0;
        }

        .opcmd-numeric-row label,
        .opcmd-inline-control label {
            color: #39b85d;
            font-size: 9px;
            letter-spacing: .5px;
        }

        .opcmd-numeric-row input,
        .opcmd-inline-control input {
            width: 100%;
            background: #06130a;
            border: 1px solid #245638;
            color: #d7ffe2;
            font-family: 'Courier New', monospace;
            font-size: 11px;
            padding: 6px;
            outline: none;
        }

        .opcmd-numeric-row input:focus,
        .opcmd-inline-control input:focus {
            border-color: #65cc85;
        }

        .opcmd-numeric-actions {
            display: grid;
            grid-auto-flow: column;
            grid-auto-columns: 1fr;
            gap: 4px;
        }

        .opcmd-inline-control {
            display: grid;
            grid-template-columns: 72px 65px minmax(0, 1fr);
            gap: 5px;
            align-items: center;
            margin-top: 5px;
        }

        .opcmd-vfr-actions {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 4px;
            margin-top: 5px;
        }

        /* ========================================================
           OPERATOR AIRCRAFT GENERATOR
           Compact RPO setup surface for creating new canonical traffic.
           ======================================================== */
        #operator-aircraft-generator {
            display: block;
        }

        .airgen-section {
            margin-top: 7px;
        }

        .airgen-section:first-child {
            margin-top: 0;
        }

        .airgen-label {
            color: #4ac66e;
            font-size: 9px;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            margin-bottom: 4px;
        }

        .airgen-grid {
            display: grid;
            gap: 4px;
        }

        .airgen-grid.two  { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .airgen-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
        .airgen-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
        .airgen-grid.six  { grid-template-columns: repeat(6, minmax(0, 1fr)); }

        .airgen-btn,
        .airgen-spawn-btn {
            background: #07180d;
            color: #75d994;
            border: 1px solid #24603a;
            border-radius: 3px;
            font-family: 'Courier New', monospace;
            font-size: 10px;
            font-weight: bold;
            letter-spacing: .25px;
            padding: 7px 5px;
            cursor: pointer;
            min-height: 30px;
        }

        .airgen-btn:hover,
        .airgen-spawn-btn:hover {
            background: #0d2b17;
            border-color: #42a965;
            color: #baffce;
        }

        .airgen-btn.selected {
            background: #1d4d2a;
            color: #ffffff;
            border-color: #72e397;
            box-shadow: inset 0 0 0 1px rgba(114,227,151,.25);
        }

        .airgen-summary {
            display: grid;
            grid-template-columns: 1fr 120px;
            gap: 8px;
            margin-top: 8px;
            padding: 6px 7px;
            border: 1px solid #163822;
            background: #06130a;
        }

        .airgen-summary div {
            min-width: 0;
        }

        .airgen-summary span {
            display: block;
            color: #39b85d;
            font-size: 8px;
            letter-spacing: 1px;
            margin-bottom: 2px;
        }

        .airgen-summary strong {
            display: block;
            color: #d7ffe2;
            font-size: 9px;
            font-weight: normal;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .airgen-spawn-btn {
            width: 100%;
            margin-top: 6px;
            min-height: 36px;
            color: #a8ffc3;
            border-color: #3d9d5e;
            font-size: 11px;
            letter-spacing: 1px;
        }

        .airgen-status {
            min-height: 24px;
            display: flex;
            align-items: center;
            margin-top: 5px;
            padding: 4px 6px;
            border: 1px solid #1b4a2b;
            background: #06130a;
            color: #69c987;
            font-size: 9px;
        }

        .airgen-status.ok {
            color: #a8ffc3;
            border-color: #347b4a;
        }

        .airgen-status.warning {
            color: #ffc56f;
            border-color: #725326;
        }

        .airgen-status.error {
            color: #ff8c8c;
            border-color: #7a3333;
        }

        /* ========================================================
           MOBILE RADAR-ONLY MODE
           On phone-sized screens, remove the desktop information
           sidebar and leave only the radar scope plus the same
           TRANSMIT button used on desktop. No duplicate mic logic.
           ======================================================== */
        @media (max-width: 700px) {
            /* MOBILE BACKGROUND ------------------------------------------------
               Continue the radar scope's green center glow across the ENTIRE
               phone viewport. The scope itself already fades from brighter green
               in the middle to very dark green at its edges; this page-level
               radial gradient carries that same visual treatment beyond the
               square canvas so there is no abrupt solid-color boundary. */
            /* MOBILE FULL-VIEWPORT RADAR BACKGROUND ---------------------------
               Keep the entire phone display in the same radar-green visual
               family instead of letting the page outside the square canvas
               fall back to near-black. The ellipse is intentionally taller
               than the radar scope so the glow continues behind the controls
               and into the top/bottom portions of the phone display. */
            html {
                background: #051b0b;
            }

            body {
                display: block;
                width: 100vw;
                height: 100dvh;
                overflow: hidden;
                background: #051b0b;
            }

            #radar-wrap {
                width: 100vw;
                /* Leave a dedicated lower control strip for TRANSMIT, then
                   center the radar inside everything above that strip. */
                height: calc(100dvh - 88px - env(safe-area-inset-bottom));
                display: flex;
                align-items: center;
                justify-content: center;
                padding-top: max(0px, env(safe-area-inset-top));
                background: transparent;
            }

            /* The canvas keeps its 750x750 internal resolution. On phones it
               becomes one centered square with a little breathing room at the
               sides, closely matching the Traffic Call Practice composition. */
            #radar-canvas {
                width: min(96vw, calc(100dvh - 122px - env(safe-area-inset-bottom)));
                height: min(96vw, calc(100dvh - 122px - env(safe-area-inset-bottom)));
                max-width: 96vw;
                max-height: calc(100dvh - 122px - env(safe-area-inset-bottom));
                cursor: default;
            }

            /* Turn the sidebar into a transparent holder only for TRANSMIT. */
            #sidebar {
                position: fixed;
                left: 0;
                right: 0;
                bottom: 0;
                z-index: 20;
                width: 100%;
                height: auto;
                padding: 10px max(12px, env(safe-area-inset-right))
                         calc(10px + env(safe-area-inset-bottom))
                         max(12px, env(safe-area-inset-left));
                border: 0;
                border-top: 1px solid rgba(43,230,117,0.18);
                background: transparent;
                overflow: visible;
                display: block;
            }

            #sidebar > .panel,
            #sidebar > #operator-sticky-data {
                display: none;
            }

            #sidebar > #radio-panel {
                display: block;
                border: 0;
                background: transparent;
                padding: 0;
            }

            #radio-panel > * {
                display: none !important;
            }

            #radio-panel > #mobile-control-row {
                display: flex !important;
                gap: 10px;
                width: 100%;
            }

            #mobile-control-row > #mic-btn,
            #mobile-control-row > #pause-btn,
            #mobile-control-row > #spawn-btn,
            #mobile-control-row > #inbound-spawn-btn,
            #mobile-control-row > #mobile-reset-btn {
                display: block !important;
                min-height: 58px;
                padding: 14px 12px;
                font-family: 'Courier New', monospace;
                font-size: 16px;
                font-weight: bold;
                letter-spacing: 2px;
                border: 2px solid #00aa30;
                color: #00ff41;
                background: rgba(1, 10, 1, 0.94);
                touch-action: manipulation;
            }

            #mobile-control-row > #mic-btn { flex: 2; }
            #mobile-control-row > #pause-btn { flex: 1; }
            #mobile-control-row > #spawn-btn,
            #mobile-control-row > #inbound-spawn-btn { flex: 1; }
            #mobile-control-row > #pause-btn.active {
                color: #ffaa00;
                border-color: #ffaa00;
            }
        }

/* Startup stays modal until the canonical layers and all controls are ready. */
#startup-dialog {
    max-width: 460px;
    padding: 24px;
    color: #eef9ff;
    background: #102430;
    border: 1px solid #8acbed;
    border-radius: 12px;
    font: 16px/1.5 system-ui, sans-serif;
}
#startup-dialog::backdrop { background: rgba(3, 12, 20, .88); }
#startup-dialog h2 { margin-top: 0; }

/* RPO workspace: persistent session bar, compact scope, broad command groups. */
@media (min-width: 701px) {
    body {
        display: grid;
        grid-template-columns: minmax(260px, 38fr) minmax(0, 62fr);
        grid-template-rows: auto minmax(0, 1fr);
        gap: 8px;
        padding: 8px;
    }
    #session-bar {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
        gap: 8px;
    }
    #operator-session-panel { margin: 0; min-width: 0; }
    .operator-session-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .operator-session-actions { flex-wrap: wrap; }
    .operator-session-actions .small-btn { min-height: 30px; }
    #session-bar #atc-scenario-open {
        position: static;
        flex: 1;
        min-height: 30px;
        z-index: auto;
    }
    #simulation-display-panel {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 3px 12px;
        align-content: start;
    }
    #simulation-display-panel .panel-title { grid-column: 1 / -1; margin: 0; }
    #simulation-display-panel .ctrl-row { min-width: 0; margin: 0 !important; }
    #simulation-display-panel input { min-width: 0; width: 65px; }
    #simulation-display-panel .small-btn { min-height: 28px; }
    #simulation-display-panel .data-row { align-items: center; gap: 6px; }
    #radar-column { min-width: 0; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; }
    #radar-wrap {
        width: min(100%, calc(100dvh - 350px));
        height: auto;
        aspect-ratio: 1;
        align-self: center;
        flex: 0 0 auto;
    }
    #radar-canvas { width: 100%; height: 100%; max-width: none; max-height: none; }
    #radio-panel { flex: 0 0 auto; }
    #comms-panel { flex: 1; min-height: 100px; }
    #comms-log { max-height: 160px; }
    #sidebar { min-width: 0; width: auto; padding: 0 0 8px; border: 0; scroll-padding-top: 142px; }
    #operator-sticky-data { padding-top: 0; }
    .aircraft-data-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px 16px; }
    .aircraft-data-grid .data-row { flex-wrap: wrap; }
    .aircraft-data-grid .data-row:first-child { grid-column: span 2; align-items: center; }
    #d-cs { font-size: 20px; font-weight: bold; color: #e0ffea; }
    .opcmd-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
    .opcmd-column { min-width: 0; }
    .opcmd-btn, .opcmd-mode-btn { min-height: 34px; }
    .opcmd-numeric-row { grid-template-columns: 58px 58px minmax(0, 1fr); gap: 4px; }
    .opcmd-numeric-actions .opcmd-btn { padding: 5px 2px; font-size: 9px; }
    .opcmd-inline-control { grid-template-columns: 55px 44px minmax(0, 1fr); }
    #operator-aircraft-generator { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 6px 10px; }
    .airgen-section { margin: 0; }
    #airgen-departure-section, #airgen-arrival-section { grid-column: 1 / -1; }
    .airgen-summary { grid-column: span 2; margin: 0; }
    .airgen-spawn-btn { margin: 0; }
    .airgen-status { grid-column: 1 / -1; margin: 0; }
}
@media (min-width: 701px) and (max-width: 1100px) {
    body { grid-template-columns: minmax(240px, 34fr) minmax(0, 66fr); }
    #session-bar { grid-template-columns: 1fr 1fr; }
    .opcmd-workspace { grid-template-columns: 1fr; }
    .aircraft-data-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #operator-aircraft-generator { grid-template-columns: 1fr 1fr; }
    .airgen-summary { grid-column: 1; }
}
@media (max-width: 700px) {
    #session-bar { display: contents; }
    #operator-session-panel { display: contents; }
    #operator-session-panel > :not(.operator-session-actions),
    .operator-session-actions > :not(#atc-scenario-open),
    #simulation-display-panel, #sidebar, #comms-panel { display: none; }
    .operator-session-actions, #radar-column { display: contents; }
    #radio-panel {
        position: fixed;
        left: 0; right: 0; bottom: 0; z-index: 20;
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
        border: 0; background: transparent;
    }
}
@media (min-width: 701px) {
    #mobile-control-row > :not(#mic-btn) { display: none; }
    #aircraft-generator-panel { flex: 0 0 auto; }
    #aircraft-generator-panel summary { cursor: pointer; padding: 5px 0; margin: 0; border: 0; }
    #aircraft-generator-panel[open] summary { margin-bottom: 8px; }
    .aircraft-data-grid .data-row:first-child { justify-content: flex-start; gap: 18px; }
    .opcmd-status { margin-bottom: 3px; }
    .opcmd-section { padding-top: 5px; margin-top: 5px; }
    .opcmd-btn, .opcmd-mode-btn { min-height: 32px; }
}
@media (max-width: 700px) {
    #radio-panel #mobile-control-row { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
    #radio-panel #mobile-control-row > button { min-width: 0; min-height: 44px; padding: 8px 4px; font-size: 12px; letter-spacing: 1px; }
    body #radar-wrap { height: calc(100dvh - 200px - env(safe-area-inset-bottom)) !important; }
    body #radar-canvas {
        width: min(94vw, calc(100dvh - 234px - env(safe-area-inset-bottom))) !important;
        height: min(94vw, calc(100dvh - 234px - env(safe-area-inset-bottom))) !important;
        max-height: calc(100dvh - 234px - env(safe-area-inset-bottom)) !important;
    }
}

@media (max-width: 700px) {
    #radio-panel #mic-btn { grid-column: 1; }
    #radio-panel #spawn-btn { grid-column: 1; grid-row: 2; }
    #radio-panel #inbound-spawn-btn { grid-column: 2; grid-row: 2; }
    #radio-panel #runway-cycle-mobile-btn { grid-column: 3; grid-row: 2; }
}
