/* Shared tablet foundation. iPad Pro sizing overrides live in ipad-pro.css. */
html:is(.android-tablet, .ipad-pro, .desktop-radio) { height: 100%; min-height: 0; overflow: hidden; scrollbar-gutter: auto; }
html:is(.android-tablet, .ipad-pro, .desktop-radio) body { height: 100%; min-height: 0; overflow: hidden; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .orientation-guard, :is(.android-tablet, .ipad-pro, .desktop-radio) .radio-shadow,
:is(.android-tablet, .ipad-pro, .desktop-radio) .key-strip, :is(.android-tablet, .ipad-pro, .desktop-radio) .product-credit,
:is(.android-tablet, .ipad-pro, .desktop-radio) .serial, :is(.android-tablet, .ipad-pro, .desktop-radio) .speaker-grille { display: none !important; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .app-shell {
  width: min(1600px, 100%); height: calc(100dvh - 60px - env(safe-area-inset-bottom)); min-height: 0;
  padding: max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 10px max(12px, env(safe-area-inset-left));
  display: grid; grid-template-rows: 44px minmax(0, 1fr); gap: 10px;
}
:is(.android-tablet, .ipad-pro, .desktop-radio) .topbar, :is(.android-tablet, .ipad-pro, .desktop-radio) .topbar:has(.admin-desktop-link:not([hidden])) {
  display: flex !important; height: 44px; min-width: 0; align-items: center; gap: 16px; padding: 0 4px 6px;
}
:is(.android-tablet, .ipad-pro, .desktop-radio) .brand-logo { width: 112px; height: 36px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .brand-copy, :is(.android-tablet, .ipad-pro, .desktop-radio) .community-counts,
:is(.android-tablet, .ipad-pro, .desktop-radio) #helpButton, :is(.android-tablet, .ipad-pro, .desktop-radio) #accessButton { display: none; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .callsign-field { width: min(220px, 25%); gap: 2px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .callsign-field span { font-size: 10px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .callsign-field input { padding: 2px; font-size: 14px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .ether-state { margin-left: auto; gap: 8px; font-size: 12px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .admin-desktop-link { font-size: 10px; padding: 10px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .workspace {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 27%); grid-template-rows: minmax(0, 1fr);
  gap: 16px; padding: 0; margin: 0; max-width: none; min-height: 0;
}
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-wrap { display: block; min-height: 0; height: 100%; padding: 0; align-self: stretch; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio {
  display: grid; height: 100%; min-width: 0;
  grid-template-columns: minmax(0, 1fr) minmax(200px, 32%);
  grid-template-rows: 54px minmax(122px, .9fr) minmax(148px, 1fr) 104px 22px;
  grid-template-areas: "head head" "meter ptt" "channel ptt" "controls controls" "foot foot";
  column-gap: 14px;
}
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-main { display: contents; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-topline, :is(.android-tablet, .ipad-pro, .desktop-radio) .radio-topline.private-channels-available,
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-topline.admin-ptt-controls {
  grid-area: head; height: 54px; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: 1fr;
  padding: 5px 12px; gap: 10px;
}
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-topline .radio-brand-burn { display: none; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-topline .radio-transmitter {
  grid-column: 1; grid-row: 1; display: flex; align-items: center; gap: 4px;
  height: 30px; line-height: 30px; font-size: 12px;
}
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-transmitter-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-transmitter .speech-stars, :is(.android-tablet, .ipad-pro, .desktop-radio) .radio-transmitter .linear-badge { flex-shrink: 0; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-topline .radio-topline-actions { grid-column: 2; grid-row: 1; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .member-status-controls { height: 42px; gap: 5px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .member-status-controls button { width: 40px; height: 42px; flex-basis: 40px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .member-status-controls button svg { width: 20px; height: 20px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .meter-section {
  grid-area: meter; min-height: 0; height: 100%; margin: 0 0 0 12px; padding: 8px 0 0;
  align-self: stretch; display: grid; grid-template-rows: minmax(0, 1fr) 24px; container-type: normal;
}
:is(.android-tablet, .ipad-pro, .desktop-radio) .meter-bezel { min-height: 0; height: 100%; padding: 5px; display: grid; grid-template-rows: minmax(0, 1fr) 23px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio .horizontal-meter-face { min-height: 0; height: auto; padding: 3px 8px; gap: 5px; align-content: space-evenly; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .line-meter-row { gap: 4px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .line-meter-heading { grid-template-columns: 40px minmax(0, 1fr); gap: 8px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .line-meter-heading strong, :is(.android-tablet, .ipad-pro, .desktop-radio) .line-meter-scale { font-size: 11px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .line-meter-track { margin-left: 48px; height: 5px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .line-meter-indicator { height: 12px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .network-readout { min-height: 0; flex-wrap: nowrap; gap: 6px; padding: 3px; font-size: 10px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .network-readout b { font-size: 9px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .indicator-row { margin: 0; padding-top: 6px; gap: 12px; font-size: 11px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .display-section {
  grid-area: channel; width: auto; height: 100%; min-height: 0; margin: 0 0 0 12px; border: 0;
  padding: 5px 0 10px; grid-template-rows: minmax(0, 1fr) 48px; grid-template-columns: 1fr; gap: 8px; justify-self: stretch;
}
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-selection { width: 100%; height: 100%; min-height: 0; grid-template-columns: minmax(110px, 1fr) auto; grid-template-rows: 1fr; grid-template-areas: "channel-display channel-controls"; gap: 10px; align-items: center; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-display { width: 100%; height: 100%; min-height: 0; max-height: 130px; border-width: 5px; grid-template-rows: 12px minmax(0, 1fr) 18px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .display-label { font-size: 10px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .seven-segment-display { transform: scale(.8); transform-origin: center; height: 48px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-details { gap: 6px; height: 18px; padding: 0 2px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-tag, :is(.android-tablet, .ipad-pro, .desktop-radio) .channel-tag.channel-frequency, :is(.android-tablet, .ipad-pro, .desktop-radio) .channel-dw { font-size: 10px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-controls { grid-area: channel-controls; display: grid; grid-template-columns: 40px 48px 40px; gap: 5px; align-items: center; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .step-button { width: 40px; height: 44px; font-size: 24px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-knob, :is(.android-tablet, .ipad-pro, .desktop-radio) .knob-face { width: 48px; height: 48px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-knob { grid-column: auto; grid-row: auto; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .knob-face { box-shadow: inset 0 0 0 5px #24271f, inset 0 0 0 7px #090a08, 0 3px 4px #080908; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .knob-face i { height: 12px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .control-caption { display: none; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-shortcuts { width: 100%; height: 48px; grid-template-columns: minmax(0, 4fr) minmax(46px, 1fr); gap: 5px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-presets { width: 100%; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; margin: 0; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .preset-button { width: 100%; min-width: 0; height: 48px; gap: 4px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .preset-button strong { font-size: 17px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .preset-button span, :is(.android-tablet, .ipad-pro, .desktop-radio) .preset-button [data-landscape-short] { font-size: 10px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .preset-button [data-landscape-short]::after { content: none; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .scan-button { width: 100%; min-width: 0; height: 48px; padding: 3px; grid-template-columns: 1fr; grid-template-rows: 8px 14px; justify-items: center; align-content: center; gap: 4px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .scan-button strong { font-size: 10px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .scan-button small { display: none; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .ptt-section { grid-area: ptt; height: 100%; min-height: 0; min-width: 0; padding: 10px 12px 10px 0; border: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) body:not(.ptt-classic) .ptt-button { flex: 0 0 auto; width: min(100%, 260px, calc(100dvh - 400px)); height: auto; aspect-ratio: 1; margin: 0; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .ptt-round-label strong { font-size: 44px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .ptt-round-label small, :is(.android-tablet, .ipad-pro, .desktop-radio) .ptt-round-status, :is(.android-tablet, .ipad-pro, .desktop-radio) .ptt-round-mode { font-size: 11px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .speaker-actions { width: 100%; max-width: 250px; flex: 0 0 auto; gap: 5px; padding: 6px; justify-content: space-around; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .speaker-actions :is(.friend-button, .mute-button, .joker-nominate, .stealth-button) { width: 40px; height: 42px; flex: 0 0 40px; padding: 3px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .speaker-actions button svg { width: 20px; height: 20px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .speaker-actions .joker-nominate img { width: 28px; height: 28px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) body.ptt-classic .ptt-button { width: min(100%, 200px); margin: 0; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-controls {
  grid-area: controls; min-width: 0; height: 104px; padding: 10px 12px; display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(130px, 1.8fr) 52px; gap: 10px; align-items: start;
}
:is(.android-tablet, .ipad-pro, .desktop-radio) .dial-control { grid-column: auto; gap: 8px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .dial-label, :is(.android-tablet, .ipad-pro, .desktop-radio) .squelch-control .dial-label { width: 100%; max-width: 100px; flex-direction: row; align-items: center; justify-content: center; gap: 4px; font-size: 10px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .squelch-control .dial-label output { font-size: 10px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .rotary-knob, :is(.android-tablet, .ipad-pro, .desktop-radio) .rotary-face { width: 48px; height: 48px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .rotary-face { box-shadow: inset 0 0 0 5px #292c24, inset 0 0 0 7px #0b0c0a, 0 3px 4px #080908; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .rotary-face i { top: 4px; height: 12px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .gain-dual-knob .vox-delay-input, :is(.android-tablet, .ipad-pro, .desktop-radio) .vox-delay-face { inset: -3px; width: 54px; height: 54px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .gain-dual-knob #gain, :is(.android-tablet, .ipad-pro, .desktop-radio) .gain-inner-face { inset: 7px; width: 34px; height: 34px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .gain-inner-face { box-shadow: inset 0 0 0 3px #292c24, inset 0 0 0 5px #0b0c0a; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .gain-inner-face i { height: 8px; top: 3px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .vox-delay-caption { top: 56px; font-size: 9px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .switch-bank { grid-column: auto; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .switch-bank .switch-control, :is(.android-tablet, .ipad-pro, .desktop-radio) .switch-bank .switch-control:nth-child(odd) { justify-self: stretch; justify-items: center; gap: 4px; min-height: 34px; font-size: 10px; white-space: nowrap; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .switch-control i { width: 40px; height: 20px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .switch-control i::after { width: 16px; height: 14px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .switch-control input:checked + i::after { transform: translateX(16px); }
:is(.android-tablet, .ipad-pro, .desktop-radio) .modulation-control i::after { width: 7px; transform: translateX(calc(var(--quality-position) * 13px)); }
:is(.android-tablet, .ipad-pro, .desktop-radio) .defaults-control { grid-column: auto; gap: 10px; font-size: 9px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .reset-defaults-button { width: 52px; min-width: 0; height: 44px; min-height: 0; padding: 2px; font-size: 10px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-footer { grid-area: foot; height: 22px; padding: 4px 12px; gap: 8px; font-size: 9px; align-items: center; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio-footer span:first-child { display: inline; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .traffic-panel, :is(.android-tablet, .ipad-pro, .desktop-radio) .traffic-panel.mobile-log-open {
  position: static; display: flex; min-width: 0; min-height: 0; max-height: none; height: 100%;
  flex-direction: column; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: hidden;
}
:is(.android-tablet, .ipad-pro, .desktop-radio) body.mobile-log-open:not(:has(dialog[open]))::before { display: none; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .traffic-panel .panel-heading { flex: 0 0 auto; padding: 6px 0 10px; align-items: center; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .panel-heading h2 { font-size: 22px; margin: 3px 0 0; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .panel-heading .eyebrow { font-size: 11px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .mobile-log-close { display: none; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .traffic-tabs { flex: 0 0 auto; margin: 8px 0 4px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .traffic-tabs button { min-height: 44px; font-size: 11px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .traffic-view { min-height: 0; overflow: hidden; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-members-scroll, :is(.android-tablet, .ipad-pro, .desktop-radio) .traffic-log, :is(.android-tablet, .ipad-pro, .desktop-radio) .scribbles-view { min-height: 0; max-height: none; overflow-y: auto; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .scribble-list { max-height: none; overflow: visible; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-member { grid-template-columns: 36px minmax(0, 1fr); gap: 8px; padding: 10px 5px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-member-copy strong { font-size: 14px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-member-copy small { font-size: 12px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-member .message-actions { display: flex; flex-wrap: wrap; gap: 7px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-member .message-actions button { width: 36px; height: 36px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .channel-note { flex: 0 0 auto; padding: 6px 0; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .desktop-channel-occupancy { display: block !important; flex: 0 0 auto; margin: 10px 0 0; padding-top: 10px; border-top: 1px solid #42463a; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .desktop-channel-occupancy-head { display: flex; align-items: center; justify-content: space-between; gap: 5px; height: 18px; margin-bottom: 6px; font: 700 10px/1 Arial, sans-serif; color: #b5b09b; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .desktop-channel-occupancy-head span { font-size: 10px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .desktop-channel-occupancy-grid { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); grid-template-rows: repeat(5, 26px); gap: 4px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .desktop-channel-button { min-width: 0; position: relative; border: 1px solid #414439; border-radius: 2px; padding: 0; background: #20221c; color: #aaa690; font: 700 11px/1 Arial, sans-serif; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .desktop-channel-button.occupied { border-color: #8f6b25; color: var(--amber); background: #2b2619; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .desktop-channel-button.transmitting { border-color: #b64d43; color: #ff8377; background: #301b19; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .desktop-channel-button.current::after { position: absolute; inset: 1px; border: 1px solid #d7d2b9; content: ""; pointer-events: none; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .desktop-channel-button:disabled { opacity: .42; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .desktop-channel-button.read-only:disabled { opacity: 1; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .mobile-menu {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); position: fixed; inset: auto 0 0;
  height: calc(60px + env(safe-area-inset-bottom)); padding: 3px max(12px, env(safe-area-inset-right)) max(3px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  gap: 3px; background: #151813; border-top: 1px solid #44483b; transform: none; box-shadow: none;
}
:is(.android-tablet, .ipad-pro, .desktop-radio) .mobile-menu-button { display: flex; align-items: center; justify-content: center; position: relative; min-width: 0; min-height: 44px; height: auto; gap: 8px; padding: 0 4px; border: 0; background: transparent; color: #d1ccb7; font: 700 11px/1 Arial, sans-serif; text-transform: uppercase; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .mobile-menu-icon { display: grid; place-items: center; width: 24px; height: 24px; color: var(--amber); font-size: 22px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .mobile-menu-badge { top: 2px; left: 22%; }
:is(.android-tablet, .ipad-pro, .desktop-radio) dialog { max-height: calc(100dvh - 24px); margin: auto; overflow-y: auto; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .media-access-panel { max-height: calc(100dvh - 24px); overflow-y: auto; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .digital-meter { padding: 6px 8px; gap: 4px; grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); }
:is(.android-tablet, .ipad-pro, .desktop-radio) .digital-meter-header { display: none; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .digital-audio, :is(.android-tablet, .ipad-pro, .desktop-radio) .digital-link { gap: 3px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .digital-link { padding-top: 3px; }
:is(.android-tablet, .ipad-pro, .desktop-radio) .radio .bronze-meter { overflow-y: auto; overscroll-behavior: contain; }

@media (orientation: portrait) {
  :is(.android-tablet, .ipad-pro, .desktop-radio) .workspace { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(500px, 2fr) minmax(180px, 1fr); gap: 14px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .radio { grid-template-rows: 54px minmax(138px, .9fr) minmax(148px, 1fr) 148px 22px; grid-template-columns: minmax(0, 1fr) 210px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .channel-controls { grid-template-columns: 40px 40px; grid-template-rows: 42px 44px; gap: 3px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .channel-knob { grid-column: 1 / -1; grid-row: 2; justify-self: center; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .channel-knob, :is(.android-tablet, .ipad-pro, .desktop-radio) .knob-face { width: 40px; height: 40px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .step-button { height: 42px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) body:not(.ptt-classic) .ptt-button { width: min(100%, 200px); }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .radio-controls { height: 148px; grid-template-columns: repeat(4, minmax(0, 1fr)) 64px; grid-template-rows: 84px 35px; row-gap: 8px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .switch-bank { grid-column: 1 / 5; grid-row: 2; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .defaults-control { grid-column: 5; grid-row: 1 / 3; align-self: center; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .switch-bank .switch-control { grid-template-columns: 1fr; gap: 3px; font-size: 9px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .traffic-panel .panel-heading { padding: 0 0 6px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .panel-heading > div:first-child { display: flex; align-items: baseline; gap: 12px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .panel-heading h2 { font-size: 18px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .desktop-channel-occupancy { display: none !important; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .mobile-menu-button { flex-direction: column; gap: 4px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .mobile-menu-badge { left: calc(50% + 8px); }
}
@media (max-height: 560px) {
  :is(.android-tablet, .ipad-pro, .desktop-radio) .topbar { display: none !important; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .app-shell { grid-template-rows: minmax(0, 1fr); gap: 0; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) body:not(.ptt-classic) .ptt-button { width: min(100%, 180px); }
}
@media (orientation: landscape) and (min-width: 1500px) and (min-height: 900px) {
  :is(.android-tablet, .ipad-pro, .desktop-radio) .radio { grid-template-rows: 64px minmax(150px, .9fr) minmax(200px, 1fr) 144px 28px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .radio-topline { height: 64px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .radio-controls { height: 144px; padding-top: 20px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .dial-label, :is(.android-tablet, .ipad-pro, .desktop-radio) .squelch-control .dial-label { font-size: 13px; }
  :is(.android-tablet, .ipad-pro, .desktop-radio) .radio-footer { height: 28px; font-size: 11px; }
}
