/* CumbriaCQ radio console: presentation only, scoped to two web dashboards. */
body.cq-radio-console {
 --bg-primary:#080f19; --bg-secondary:#101b29; --bg-tertiary:#172638;
 --text-primary:#f4f8fd; --text-secondary:#b7c7d8; --accent:#68d8ec; --border:#2a4055;
 --cq-panel-shadow:0 6px 20px rgba(0,0,0,.16);
 background:radial-gradient(ellipse at 50% 0,rgba(24,99,128,.15),transparent 65%),#080f19 !important;
 font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
 -webkit-font-smoothing:antialiased; font-variant-numeric:tabular-nums;
}
.cq-radio-console .navbar {background:#0b1623 !important;border-bottom:1px solid #315166;box-shadow:0 3px 16px #0003;padding-block:.65rem;}
.cq-radio-console .navbar-brand {font-weight:800;letter-spacing:-.035em;}
.cq-radio-console .nav-link {border-radius:6px;font-size:.88rem;transition:background .15s ease;}
.cq-radio-console .nav-link:hover,.cq-radio-console .nav-link:focus-visible {background:#1d3446;color:#fff !important;}
.cq-radio-console > .container-fluid {padding-inline:clamp(12px,1.5vw,28px);}
.cq-radio-console .card {border-radius:12px;border-color:var(--border);box-shadow:var(--cq-panel-shadow);}
.cq-radio-console .card-header {background:linear-gradient(110deg,#182b3d,#132231) !important;color:#fff !important;font-weight:750;letter-spacing:.015em;border-bottom-color:#30465a;}
.cq-radio-console .card-header > span:not(.mode-sticker) {color:inherit !important;}
.cq-radio-console .card-body {background:#101b29 !important;}
.cq-radio-console .card-header,.cq-radio-console section {scroll-margin-top:20px;}
.cq-radio-console .table {--bs-table-hover-color:#fff;--bs-table-hover-bg:#1c3043;font-size:.94rem;}
.cq-radio-console .table-dark thead th {background:#172b3d !important;color:#b8eaf2 !important;font-size:.76rem;letter-spacing:.055em;text-transform:uppercase;padding:.85rem .7rem;}
.cq-radio-console .table-dark td {padding:.78rem .7rem;border-bottom-color:#24384a;}
.cq-radio-console .table-hover tbody tr:not(.tx-live-row):hover td {background:#1c3043 !important;}
.cq-radio-console .table-responsive {border:1px solid #253c50;border-radius:8px;}
.cq-radio-console .table-responsive .table {margin-bottom:0;}
.cq-radio-console .text-muted,.cq-radio-console .table-section-note,.cq-radio-console .champion-rules,.cq-radio-console .table-pager-info {color:#b7c7d8 !important;}
.cq-radio-console .supporter-info-card {background:linear-gradient(110deg,#10283a,#11222c);border:1px solid #2c5167;border-radius:12px;padding:1rem 1.15rem;gap:.8rem;box-shadow:var(--cq-panel-shadow);}
.cq-radio-console .supporter-info-title {display:flex;gap:.45rem;align-items:center;font-size:1rem;font-weight:750;margin:0 0 .4rem;color:#fff !important;}
.cq-radio-console .supporter-info-card p {font-size:.88rem;line-height:1.5;}
.cq-radio-console .supporter-info-link {background:#143246;color:#d7eef4 !important;border:1px solid #3a7a8c;min-width:150px;border-radius:8px;padding:.65rem .9rem;font-size:.85rem;}
.cq-radio-console .supporter-badge {background:#13314b;border-color:#3c7199;color:#c4e7ff !important;}
.cq-radio-console input:not([type=range]),.cq-radio-console select {background:#0a1624 !important;color:#fff !important;border:1px solid #3c586e !important;border-radius:8px;min-height:40px;color-scheme:dark;}
.cq-radio-console input::placeholder {color:#a9bbc9;opacity:1;}
.cq-radio-console :is(a,button,input,select,summary):focus-visible {outline:2px solid #84e8f7;outline-offset:3px;}
.cq-radio-console :is(.pager-btn,.cq-insights-button,.call-filter-clear) {background:#173047;border:1px solid #446980;border-radius:8px;color:#fff !important;min-height:36px;}
.cq-radio-console :is(.pager-btn,.cq-insights-button,.call-filter-clear):hover:not(:disabled) {background:#24465e;border-color:#7dd9ed;}
.cq-radio-console .modal-content {background:#101c2b;border:1px solid #48687f;border-radius:14px;box-shadow:0 24px 80px #0009;}
.cq-radio-console .modal-header {background:#172b3d;border-bottom-color:#355169;}
.cq-radio-console .detail-stat,.cq-radio-console .user-stat {background:#102537;border-color:#2b4b61;border-radius:10px;}
.cq-console-heading {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 14px;padding:0 2px;}
.cq-console-kicker {color:#7bd8e9 !important;letter-spacing:.15em;font-size:.68rem;font-weight:800;text-transform:uppercase;margin-bottom:3px;}
.cq-console-title {font-size:clamp(1.2rem,1.5vw,1.65rem);font-weight:800;letter-spacing:-.035em;margin:0;}
.cq-console-meta {font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#bad2e3 !important;font-size:.75rem;padding:6px 10px;border:1px solid #36566d;border-radius:6px;background:#112536;white-space:nowrap;}
/* Live keeps its existing compact map and connection topology. */
.cq-live .stat-card {background:linear-gradient(135deg,#142b3e,#101c2a) !important;border-top:2px solid #3c9aac;min-height:104px;padding:.75rem;}
.cq-live .stat-number {font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.85rem;font-weight:750;letter-spacing:-.05em;color:#fff !important;}
.cq-live .stat-label {font-size:.73rem;letter-spacing:.065em;text-transform:uppercase;}
.cq-live .stat-sub {font-size:.76rem;}
.cq-live .timer-display {font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.01em;}
.cq-live .stat-card.tx-live-box {background:#105038 !important;border-color:#46bb89 !important;box-shadow:inset 0 0 0 1px #ffffff0d,0 0 18px #36bd7414;}
.cq-live .stat-card.tx-live-box :is(.stat-number,.stat-label,.stat-sub,a,span) {color:#fff !important;}
.cq-live tr.tx-live-row td {background:#105038 !important;color:#fff !important;}
.cq-live tr.tx-live-row :is(.traffic-pill,.traffic-via,.traffic-call-link,.traffic-duration,.traffic-time-main,.traffic-time-sub,.traffic-call-sub,.traffic-status-badge) {color:#fff !important;}
.cq-live .conn-nodes-wrap {border-radius:14px;background:#0d1927;border-color:#31485c;box-shadow:var(--cq-panel-shadow);}
.cq-live .conn-nodes-wrap .card {border-radius:9px;}
.cq-live .conn-nodes-wrap .card-header {font-size:.82rem;line-height:1.45;}
.cq-live .mode-sticker {letter-spacing:.065em;font-size:.66rem;border-radius:4px;}
.cq-live .conn-node-pill {border-radius:6px;padding:.16rem .42rem;}
.cq-live .call-filter-bar {background:#101f2d;border:1px solid #304b60;border-radius:10px;padding:.5rem .7rem;}
.cq-live .call-filter-bar label {font-size:.7rem;letter-spacing:.08em;}
.cq-live .call-filter-bar input {min-height:34px;}
.cq-live #qso-map {border-radius:0 0 8px 8px;}
.cq-live .traffic-call-link {font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1rem;}
.cq-live .cq-live-insights {background:linear-gradient(120deg,#112739,#101d2a);border-color:#36556d;border-radius:12px;}
.cq-live .cq-live-insights-title {font-size:1.12rem;letter-spacing:-.02em;}
/* Champion replaces decorative glow with a clean awards instrument panel. */
.cq-champion .champion-banner {background:linear-gradient(115deg,#122d40,#111e30 70%);border:1px solid #3b6175;border-top:3px solid #67d8ec;border-radius:11px;padding:1.4rem;text-align:left;box-shadow:none;}
.cq-champion .sparkle,.cq-champion .trophy-icon {display:none;}
.cq-champion .champion-banner h1 {background:none;-webkit-text-fill-color:#fff;filter:none;font-size:clamp(1.35rem,2.2vw,2.2rem);letter-spacing:-.04em;margin:0 0 .4rem;}
.cq-champion .champion-banner .subtitle {color:#a9d9e6 !important;font-size:.75rem;letter-spacing:.12em;}
.cq-champion .podium-container {gap:1rem;margin-top:1.15rem;padding:0;}
.cq-champion .podium-item {background:#0c1a29;border-color:#355065;border-left:3px solid #64cfdf;border-radius:9px;padding:1rem 1.15rem;backdrop-filter:none;}
.cq-champion .podium-item:nth-child(1) {border-left-color:#e8c46c;}
.cq-champion .podium-item:nth-child(2) {border-left-color:#b4c6d8;}
.cq-champion .podium-item:nth-child(3) {border-left-color:#d29c73;}
.cq-champion .podium-callsign {font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.5rem;letter-spacing:-.03em;}
.cq-champion .podium-score {font-family:ui-monospace,SFMono-Regular,Consolas,monospace;}
.cq-champion .champion-tools {background:#102232;border:1px solid #314d63;border-radius:10px;padding:.75rem 1rem;gap:1rem;}
.cq-champion .champion-search {width:280px;max-width:100%;padding:.6rem .8rem;}
.cq-champion .champion-rules {font-size:.84rem;margin-block:.75rem 1.25rem;}
.cq-champion .champion-rules summary {cursor:pointer;}
.cq-champion .table-dark tbody tr:nth-child(even) td {background:#132131 !important;}
.cq-champion .badge-item,.cq-champion .cq-insights-card {background:#112336;border-color:#304e65;border-radius:10px;}
.cq-champion .cq-insights-grid {gap:1rem;}
.cq-champion .cq-replay-frame {background:#0b1927;border-color:#36556d;border-radius:10px;}
.cq-champion .cq-insights-duration-track {background:#152d41;}
.cq-champion .cq-insights-duration-fill {background:#66d3e7;}
@media(min-width:1500px) {.cq-champion > .container-fluid {max-width:1740px;margin-inline:auto;}}
@media(max-width:767px) {
 .cq-radio-console .navbar {padding-block:.6rem;}
 .cq-radio-console .navbar-brand {font-size:1.08rem;}
 .cq-console-heading {align-items:flex-start;gap:.6rem;margin-bottom:12px;}
 .cq-console-title {font-size:1.2rem;}
 .cq-console-meta {font-size:.65rem;padding:5px 7px;}
 .cq-live .stat-card {min-height:100px;}
 .cq-live .stat-number {font-size:1.45rem;}
 .cq-live .stat-label {font-size:.66rem;}
 .cq-radio-console .card-header {padding:.75rem;font-size:.95rem;}
 .cq-radio-console .table-dark td {padding:.7rem .55rem;}
 .cq-radio-console .supporter-info-card {padding:.9rem;}
 .cq-champion .champion-banner {padding:1rem;}
 .cq-champion .podium-item {padding:.85rem 1rem;}
 .cq-champion .card-body {padding:1rem;}
 .cq-champion .champion-tools {padding:.7rem;}
 .cq-radio-console .nav-link {padding:.65rem .6rem;}
}
@media(prefers-reduced-motion:reduce) {.cq-radio-console * {animation:none !important;transition:none !important;scroll-behavior:auto !important;}}

/* Phone status badge must fit its half-width counter card. */
@media(max-width:767.98px) {
 .cq-live #stats .stat-card {min-width:0;}
 .cq-live #on-air-call,.cq-live #on-air-gw {max-width:100%;min-width:0;overflow-wrap:anywhere;}
 .cq-live #on-air-call .traffic-call-tag {
  display:block;width:fit-content;max-width:100%;box-sizing:border-box;
  margin:.4rem auto 0;padding:.22rem .4rem;white-space:normal;
  font-size:.65rem;line-height:1.35;letter-spacing:0;overflow-wrap:anywhere;
 }
}

/* Dark network-tinted completed-TX bars keep white labels readable. */
.cq-live .live-path-bar.live-path-gw {background:linear-gradient(90deg,#233449,#354b62);}
.cq-live .live-path-bar.live-path-ysf {background:linear-gradient(90deg,#173570,#204884);}
.cq-live .live-path-bar.live-path-asl {background:linear-gradient(90deg,#701d28,#8d2734);}
.cq-live .live-path-bar.live-path-tgif {background:linear-gradient(90deg,#48216c,#64338a);}
.cq-live .live-path-bar.live-path-pnt {background:linear-gradient(90deg,#70203d,#8e2b4b);}
.cq-radio-console .navbar > .container-fluid > .navbar-text {order:2;}
@media(max-width:1399px) {
 .cq-radio-console .navbar > .container-fluid {flex-wrap:wrap;gap:.35rem;}
 .cq-radio-console .navbar-collapse:not(.show) {display:none !important;}
 .cq-radio-console .navbar-collapse.show {display:block !important;flex-basis:100%;order:10;margin-top:.6rem;padding-top:.5rem;border-top:1px solid #2c465c;}
 .cq-radio-console .navbar-collapse .navbar-nav {flex-direction:column;}
 .cq-radio-console .navbar-toggler {display:block;order:5;}
 .cq-radio-console .cq-view-toggle {order:4;}
 .cq-radio-console .navbar > .container-fluid > .navbar-text {margin-left:auto !important;font-size:.72rem;}
}

@media(min-width:992px) {
 .cq-live .stat-card {min-height:82px;padding:.45rem .7rem;}
 .cq-live .cq-console-heading {margin-bottom:8px;}
 .cq-live .cq-console-title {font-size:1.3rem;}
 .cq-live .supporter-info-card {padding:.75rem 1rem;margin-bottom:.85rem;}
}


/* Desktop lists: natural card height, whole badge rows, one scrollbar. */
@media(min-width:992px) {
 .cq-live .navbar {padding-block:.35rem;}
 .cq-live .cq-console-heading {margin-bottom:5px;}
 .cq-live .cq-console-kicker {display:none;}
 .cq-live .cq-console-title {font-size:1.05rem;}
 .cq-live .cq-console-meta {padding:3px 8px;}
 .cq-live .stat-card {height:64px;min-height:64px;padding:.3rem .5rem;}
 .cq-live .stat-number,.cq-live .timer-display {font-size:1.42rem;min-height:1.55rem;}
 .cq-live .stat-sub {line-height:1.1;}
 .cq-live .stat-label {line-height:1.2;}
 .cq-live .call-filter-bar {padding:.25rem .55rem;}
 .cq-live .call-filter-bar input {min-height:30px;}
 .cq-live .conn-nodes-wrap {grid-template-rows:auto auto auto;padding:.4rem;gap:.4rem;margin-top:.35rem;align-items:start;}
 .cq-live .conn-side {min-height:0;gap:.4rem;}
 .cq-live .conn-side .card {flex:none;min-height:0;}
 .cq-live .conn-nodes-wrap .card-header {padding:.3rem .45rem;line-height:1.25;}
 .cq-live .conn-nodes-wrap .card-body {flex:none;height:auto;min-height:0;padding:.35rem .4rem;overflow:visible;}
 .cq-live .conn-nodes-wrap .conn-node-list {height:auto;min-height:24px;max-height:136px;gap:4px;align-items:flex-start;align-content:flex-start;overflow-y:auto;scrollbar-gutter:stable;}
 .cq-live .conn-nodes-wrap .conn-node-pill {height:24px;min-height:24px;flex:0 0 auto;padding:0 5px;line-height:18px;gap:4px;}
 .cq-live .conn-nodes-wrap .conn-node-pill .mode-sticker {line-height:1;padding:3px 4px;}
 .cq-live .card-net-asl .conn-node-list {max-height:164px;}
 .cq-live .card-net-urf .conn-node-list {max-height:80px;}
 .cq-live .conn-map-core {min-height:0;align-self:center;}
 .cq-live .conn-map-core .card {height:auto;}
 .cq-live .conn-map-core .card-body {padding:0;overflow:hidden;}
 .cq-live #qso-map {height:220px;min-height:0;}
 .cq-live .conn-tgif-row,.cq-live .conn-sysx-row {align-items:stretch;}
 .cq-live .conn-tgif-row .conn-node-list,.cq-live .conn-sysx-row .conn-node-list {max-height:52px;}
 .cq-live .conn-sysx-row .card-body {font-size:.75rem;line-height:1.25;}
}
@media(min-width:992px) and (max-width:1399px) {
 .cq-live .conn-side .conn-node-list {max-height:80px;}
 .cq-live .card-net-asl .conn-node-list {max-height:108px;}
 .cq-live .card-net-urf .conn-node-list {max-height:52px;}
 .cq-live #qso-map {height:200px;}
}

/* Give the node rosters priority over map width; align paired card rows. */
@media(min-width:992px) {
 .cq-live .conn-nodes-wrap {grid-template-columns:minmax(0,1.2fr) minmax(240px,.7fr) minmax(0,1.2fr);gap:.55rem;padding:.5rem;}
 .cq-live .conn-side {gap:.55rem;}
 .cq-live .conn-nodes-wrap .card-header {padding:.36rem .55rem;}
 .cq-live .conn-nodes-wrap .card-body {padding:.4rem .5rem;}
 .cq-live .conn-tgif-row,.cq-live .conn-sysx-row {gap:.55rem;}
 .cq-live .conn-map-core .card-body {padding:0;}
 .cq-live #qso-map {height:200px;}
}

/* Two clean top rows: primary rosters/map, then backup/URF/DMR. */
.cq-live .conn-nodes-wrap .card-header {display:block;}
.cq-live .conn-nodes-wrap .card-header .mode-sticker {margin-right:.3rem;vertical-align:middle;}
.cq-live .conn-nodes-wrap > .card-net-urf {grid-area:urf;}
.cq-live .conn-dmr-row {grid-area:dmr;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;min-width:0;}
@media(min-width:992px) {
 .cq-live .conn-nodes-wrap {
  grid-template-areas:"ysf map asl" "backup urf dmr" "tgif tgif tgif" "sysx sysx sysx";
  grid-template-rows:repeat(4,auto);align-items:stretch;
 }
 .cq-live .conn-side {display:contents;}
 .cq-live .card-net-ysf {grid-area:ysf;}
 .cq-live .card-net-bak {grid-area:backup;}
 .cq-live .card-net-asl {grid-area:asl;}
 .cq-live .conn-map-core {align-self:start;}
 .cq-live .conn-nodes-wrap .card {height:100%;}
 .cq-live .conn-map-core .card {height:auto;}
 .cq-live .conn-nodes-wrap > .card-net-urf .conn-node-list {max-height:80px;}
 .cq-live .conn-dmr-row .conn-node-list {max-height:80px;}
}
@media(max-width:991.98px) {
 .cq-live .conn-nodes-wrap {grid-template-areas:"map" "left" "urf" "right" "dmr" "tgif" "sysx";}
}
@media(max-width:420px) {
 .cq-live .conn-dmr-row {grid-template-columns:1fr;}
}

/* Compact numbered QSO map presets, contained within the title bar. */
.cq-live .conn-nodes-wrap .cq-map-header {display:flex;align-items:center;justify-content:space-between;gap:.4rem;flex-wrap:nowrap;}
.cq-live .cq-map-title {min-width:0;}
.cq-live .cq-map-zoom {display:inline-flex;gap:4px;flex-shrink:0;}
.cq-live .cq-map-zoom button {min-width:28px;min-height:26px;padding:2px 6px;border:1px solid #537187;border-radius:5px;background:#132a3c;color:#fff;font:700 .78rem/1.2 ui-monospace,monospace;cursor:pointer;}
.cq-live .cq-map-zoom button.is-selected {background:#155e75;border-color:#67e8f9;}
.cq-live .cq-map-zoom button:focus-visible {outline:2px solid #fff;outline-offset:2px;}
.cq-live .cq-map-zoom button:disabled {opacity:.55;cursor:wait;}
@media(max-width:767.98px) {.cq-live .cq-map-zoom button {min-width:32px;min-height:32px;}}
