:root{color-scheme:dark;--bg:#020308;--panel:#090d15;--text:#f5f7fa;--secondary:#bcc6d1;--muted:#8794a3;--line:#20293a;--accent:#65d1ff;--good:#62d394;--warn:#ffcf66;--bad:#ff6b6b;--purple:#a97cff;--asl:#65d1ff;--el:#a97cff;--dmr:#ff7aa2;--ysf:#62d394;--connection-row-height:31px;--protocol-pill-width:42px;--protocol-pill-height:22px;--user-column-heading-size:.68rem}
*{box-sizing:border-box}
html,body{margin:0;background:radial-gradient(circle at 18% -5%,rgba(70,91,255,.22),transparent 31%),radial-gradient(circle at 83% -4%,rgba(139,72,255,.21),transparent 31%),radial-gradient(circle at 14% 48%,rgba(70,91,255,.155),transparent 42%),radial-gradient(circle at 52% 64%,rgba(92,78,220,.105),transparent 46%),radial-gradient(circle at 86% 82%,rgba(139,72,255,.145),transparent 43%),linear-gradient(180deg,#010207 0,#040610 36%,#050511 67%,#020309 100%);background-attachment:fixed;background-repeat:no-repeat;background-size:100% 100%;color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;text-transform:uppercase}
.shell{width:min(1540px,calc(100% - 28px));margin:auto;padding:17px 0 24px}
.hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"mascot title actions" "mascot network network" "mascot tagline tagline";column-gap:12px;row-gap:4px;align-items:center;padding:5px 3px 15px}
.hero-brand,.hero-copy{display:contents}.qq-mascot{grid-area:mascot;display:block;width:auto;height:104px;object-fit:contain;align-self:center;transform:none}
.hero-actions{grid-area:actions;justify-self:end;align-self:start;display:flex;align-items:center;gap:8px;flex-wrap:nowrap;width:auto}
.brandline{grid-area:title;margin:0;font-size:1.72rem;line-height:1.05;letter-spacing:.055em;white-space:nowrap;font-weight:900;color:#a9e7ff;overflow-wrap:normal}
.brandline .qq-brand{font:inherit;color:inherit;letter-spacing:inherit}
.networkline{grid-area:network;margin:0;color:var(--accent);font-size:1.02rem;line-height:1.15;font-weight:850;letter-spacing:.055em;white-space:normal;overflow-wrap:normal}
.networkline .brand-sep{color:var(--purple);padding:0 .32rem;font-size:.82em;font-weight:850}
h2{margin:0;font-size:1.12rem;letter-spacing:.015em}
.theme-tagline{grid-area:tagline;margin:0;color:var(--secondary);font-size:.72rem;font-weight:850;letter-spacing:.12em;line-height:1.15;white-space:normal;overflow-wrap:normal}
.eyebrow{margin:0 0 5px;letter-spacing:.125em;font-size:.76rem;font-weight:850;color:var(--accent)}
.health{width:30px;height:30px;display:grid;place-items:center;flex:0 0 30px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.025)}
.health-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dot{width:9px;height:9px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 3px rgba(255,207,102,.08)}
.health.good .dot{background:var(--good);box-shadow:0 0 0 3px rgba(98,211,148,.09)}
.health.error .dot{background:var(--bad);box-shadow:0 0 0 3px rgba(255,107,107,.09)}
.language-toggle{display:flex;align-items:center;padding:2px;border:1px solid var(--line);border-radius:999px;background:rgba(0,0,0,.16)}
.lang-btn{appearance:none;border:0;background:transparent;border-radius:999px;padding:4px 6px;min-width:36px;height:29px;cursor:pointer;display:grid;place-items:center}
.lang-btn img{display:block;width:24px;height:auto;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.14);opacity:.35;transition:opacity .15s ease}
.lang-btn.active{background:rgba(101,209,255,.12)}
.lang-btn.active img,.lang-btn:hover img{opacity:1}
.cards{display:grid;grid-template-columns:2.3fr repeat(4,1fr);gap:9px}
.card,.panel{border:1px solid var(--line);background:radial-gradient(circle at 12% 0%,rgba(70,91,255,.10),transparent 38%),radial-gradient(circle at 88% 100%,rgba(139,72,255,.09),transparent 42%),linear-gradient(180deg,rgba(12,17,28,.98),rgba(5,8,14,.99))}
.card{min-height:164px;border-radius:13px;padding:13px;display:flex;flex-direction:column;justify-content:flex-end}
.label{font-size:.7rem;letter-spacing:.1em;color:var(--muted);font-weight:850;margin-bottom:auto}
.card strong{font-size:1.44rem}
.card small{color:var(--secondary);font-size:.81rem;margin-top:3px}
.airtime-7d-summary{padding-top:5px;border-top:1px solid var(--line);margin-top:7px!important;font-size:.72rem!important;font-weight:800;letter-spacing:.035em}
.card.accent-blue,.card.accent-purple{position:relative;overflow:hidden}
.card.accent-blue:after,.card.accent-purple:after{content:none}
.onair{border-color:var(--line);transition:border-color .2s,box-shadow .2s}
.onair.active{border:3px solid var(--good);box-shadow:0 0 0 3px rgba(98,211,148,.12),0 0 22px rgba(98,211,148,.28);animation:onairPulse 1.25s ease-in-out infinite alternate}
@keyframes onairPulse{from{box-shadow:0 0 0 2px rgba(98,211,148,.1),0 0 10px rgba(98,211,148,.18)}to{box-shadow:0 0 0 4px rgba(98,211,148,.16),0 0 28px rgba(98,211,148,.42)}}
#onAir{display:flex;align-items:center;gap:8px;min-height:32px;flex-wrap:wrap}
#onAir strong{font-size:1.24rem}
#onAir .country-flag{flex:0 0 auto}
#onAir .onair-call{flex:0 0 auto;white-space:nowrap;overflow-wrap:normal;word-break:normal}
#onAir .onair-name-group{display:flex;align-items:baseline;gap:8px;min-width:0;flex:1 1 14rem}
#onAir .onair-sep,#onAir .onair-name{font-size:1.05rem;font-weight:700;color:var(--secondary)}
#onAir .onair-sep{flex:0 0 auto}
#onAir .onair-name{min-width:0;white-space:normal;overflow-wrap:break-word;word-break:normal;line-height:1.18}
.identifying{font-size:.79rem;color:var(--secondary)}
#onAirTimer{display:block;white-space:normal;overflow:visible;line-height:1.3}
.onair-status{color:var(--text);font-weight:800}
.onair-location{color:var(--secondary)}
.onair-via{display:flex;width:100%;min-height:var(--protocol-pill-height);margin-top:.32rem;align-items:center;gap:6px;font-size:.78rem;font-weight:900;letter-spacing:.055em;color:#9dddb8;line-height:1}
.onair-via-label{display:inline-flex;align-items:center;height:var(--protocol-pill-height);line-height:1;flex:0 0 auto}
.onair-id{font-size:.8rem;font-weight:900;color:var(--text);font-variant-numeric:tabular-nums}
.onair-access-detail{display:block;width:100%;min-height:.95rem;margin-top:.24rem;font-size:.72rem;line-height:1.25;font-weight:650;color:#aebbc8;white-space:normal;overflow-wrap:anywhere}
.onair-weather{display:block;width:100%;min-height:.95rem;margin-top:.24rem;font-size:.74rem;line-height:1.25;font-weight:800;letter-spacing:.035em;color:#d8e3ec;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.onair-weather-icon{display:inline-block;min-width:1.15em;text-align:center}
.weather-source{font-size:.62rem;font-weight:750;letter-spacing:.025em;color:var(--muted);text-decoration:none;border-bottom:1px solid rgba(135,148,163,.4)}
.weather-source:hover{color:var(--accent);border-bottom-color:var(--accent)}
.qrz{color:inherit;text-decoration:none;border-bottom:1px solid rgba(101,209,255,.35)}
.qrz:hover{color:var(--accent)}
.assisi-context strong{font-variant-numeric:tabular-nums}
.assisi-context .weather-icon{display:inline-block;min-width:1.15em;text-align:center}
.assisi-weather-link{color:inherit;text-decoration:none}
.open-meteo-label{font-size:.62rem;font-weight:750;letter-spacing:.025em;color:var(--muted);border-bottom:1px solid rgba(135,148,163,.4)}
.panel{border-radius:13px;overflow:hidden}
.last-heard,.activity-panel,.connections-panel{margin-top:9px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:9px;padding:12px 14px 9px}
.muted{color:var(--secondary);font-size:.78rem}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px}
.dashboard-grid .panel{min-width:0}
.table-wrap{overflow-x:auto;overflow-y:hidden}
table{width:100%;border-collapse:collapse;min-width:570px}
th,td{text-align:left;padding:7px 10px;border-top:1px solid var(--line);white-space:nowrap}
th{font-size:.79rem;letter-spacing:.08em;color:var(--muted);font-weight:850;background:rgba(0,0,0,.18)}
td{font-size:.83rem}
.rows20 .table-wrap{min-height:654px}.rows10 .table-wrap{min-height:344px}.rows6 .table-wrap{min-height:220px}.rows5 .table-wrap{min-height:189px}
.callsign{font-weight:850;letter-spacing:.03em}
.last-heard-table{height:calc(var(--connection-row-height) * 6);min-height:calc(var(--connection-row-height) * 6);overflow-y:auto;overflow-x:auto;scrollbar-gutter:stable}
.last-heard-mobile{display:none}
.chart-wrap{height:270px;padding:0 10px 10px;overflow:hidden}
canvas{width:100%;height:100%;display:block}
tbody tr:hover{background:rgba(101,209,255,.035)}
.flag-cell{text-align:center}
.country-flag{display:inline-block;width:24px;height:auto;vertical-align:middle;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.14)}
.country-flag.big{width:28px}
.country-flag-empty{display:inline-block;width:24px;height:16px;border:1px solid var(--line);border-radius:2px;opacity:.25}
.network-globe{display:inline-block;position:relative;width:24px;height:16px;vertical-align:middle;border:1px solid rgba(188,198,209,.62);border-radius:50%;opacity:.72}
.network-globe:before{content:"";position:absolute;left:6px;right:6px;top:-1px;bottom:-1px;border-left:1px solid rgba(188,198,209,.62);border-right:1px solid rgba(188,198,209,.62);border-radius:50%}
.network-globe:after{content:"";position:absolute;left:2px;right:2px;top:7px;border-top:1px solid rgba(188,198,209,.62)}
.history-toggle{display:flex;align-items:center;padding:2px;border:1px solid var(--line);border-radius:999px;background:rgba(0,0,0,.16)}
.history-toggle button{appearance:none;border:0;background:transparent;color:var(--muted);border-radius:999px;padding:6px 10px;font:800 .68rem/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;letter-spacing:.07em;cursor:pointer}
.history-toggle button.active{background:rgba(101,209,255,.12);color:var(--accent)}
.last-heard-controls{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.legend{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.protocol-pill{display:inline-grid;place-items:center;flex:0 0 var(--protocol-pill-width);width:var(--protocol-pill-width);min-width:var(--protocol-pill-width);max-width:var(--protocol-pill-width);height:var(--protocol-pill-height);min-height:var(--protocol-pill-height);max-height:var(--protocol-pill-height);border:1px solid;border-radius:999px;padding:0 4px;font-size:.72rem;font-weight:900;line-height:1;white-space:nowrap;overflow-wrap:normal;word-break:normal;overflow:hidden;vertical-align:middle;color:var(--text)}
.protocol-pill-label{display:block;width:3ch;text-align:center;font-family:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-weight:900;letter-spacing:0;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.protocol-pill.allstar{background:rgba(101,209,255,.30);border-color:rgba(101,209,255,.88)}
.protocol-pill.echolink{background:rgba(169,124,255,.30);border-color:rgba(169,124,255,.88)}
.protocol-pill.dmr{background:rgba(255,122,162,.30);border-color:rgba(255,122,162,.88)}
.protocol-pill.ysf{background:rgba(98,211,148,.30);border-color:rgba(98,211,148,.88)}
.connection-count{min-width:36px;height:30px;padding:0 10px;border:1px solid var(--line);border-radius:999px;display:grid;place-items:center;background:rgba(0,0,0,.16);color:var(--secondary);font-size:.82rem;font-weight:900;font-variant-numeric:tabular-nums}
.connection-table-wrap{min-height:calc(var(--connection-row-height) * 6);scrollbar-gutter:stable}
.active-connections-panel .connection-table-wrap{height:calc(var(--connection-row-height) * 6 + 2px);max-height:calc(var(--connection-row-height) * 6 + 2px);overflow-y:auto}
.connection-history-wrap{height:calc(var(--connection-row-height) * 6);max-height:calc(var(--connection-row-height) * 6);overflow-y:auto;scrollbar-gutter:stable}
.user-table{table-layout:fixed;min-width:1040px;border-collapse:separate;border-spacing:0}
.user-table .user-col-date{width:17ch}.user-table .user-col-flag{width:9ch}.user-table .user-col-call{width:10ch}.user-table .user-col-mode{width:7ch}.user-table .user-col-id{width:9ch}.user-table .user-col-duration{width:10ch}
.user-table th,.user-table td{height:var(--connection-row-height);padding:0 6px;text-align:left;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-table thead th{font-size:var(--user-column-heading-size)}
.user-table thead th:nth-child(6){text-align:center}
.user-table .user-date-cell{font-size:.76rem;font-variant-numeric:tabular-nums}
.user-table .user-flag-cell,.user-table .user-mode-cell{text-align:center}
.user-table .user-call-cell{max-width:10ch;font-weight:850;letter-spacing:.02em;color:var(--text)}
.user-table .user-name-cell,.user-table .user-location-cell{color:var(--secondary)}
.user-table td.feature-empty{height:calc(var(--connection-row-height) * 5);text-align:center;vertical-align:middle}
.feature-empty{min-height:105px;display:grid;place-items:center;color:var(--secondary);font-size:.8rem;font-weight:800;letter-spacing:.05em}
.source-mix{display:grid;gap:13px;padding:3px 10px 12px}
.mix-row{display:grid;gap:7px}.mix-head{display:flex;align-items:center;justify-content:space-between}.mix-head strong{font-size:1rem}.mix-bar{height:9px;border-radius:99px;background:rgba(255,255,255,.045);overflow:hidden}.mix-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#556cff,#955eff)}.mix-meta{font-size:.78rem;color:var(--secondary);font-weight:750;letter-spacing:.035em}
.credits{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:17px 0 2px;text-align:center}.credits-label{font-size:.71rem;font-weight:850;letter-spacing:.13em;color:var(--accent)}.credits-calls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;font-size:.84rem;font-weight:850;letter-spacing:.055em;color:var(--secondary)}footer{text-align:center;color:var(--secondary);font-size:.74rem;padding:8px 0 0}
@media(max-width:1100px){.cards{grid-template-columns:repeat(3,1fr)}.onair{grid-column:span 2}.dashboard-grid{grid-template-columns:1fr}.user-table{min-width:980px}}

@media(max-width:650px){.hero{grid-template-columns:auto minmax(0,1fr) auto;column-gap:10px;row-gap:4px;padding-top:5px}.qq-mascot{height:96px}.brandline{font-size:1.43rem}.networkline{font-size:.68rem;line-height:1.2;letter-spacing:.025em}.networkline .brand-sep{padding:0 .16rem;font-size:.78em}.theme-tagline{font-size:.54rem;line-height:1.2;letter-spacing:.075em}.hero-actions{justify-self:end}.last-heard-table{height:auto;min-height:0;overflow:visible;scrollbar-gutter:auto}.shell{width:calc(100% - 14px)}.eyebrow{font-size:.74rem;letter-spacing:.105em}.cards{grid-template-columns:1fr 1fr}.onair{grid-column:1/-1}.card{min-height:140px}.connection-table-wrap{min-height:0}.connection-history-wrap{height:auto;max-height:calc(var(--connection-row-height) * 6);min-height:0}.active-connections-panel .connection-table-wrap{height:auto;max-height:calc(var(--connection-row-height) * 6 + 2px);min-height:0}.dashboard-grid{grid-template-columns:1fr}.last-heard-table{display:none}.last-heard-mobile{display:grid}.card strong{font-size:1.23rem}.protocol-pill{font-size:.67rem}.section-head{align-items:center}.connection-count{height:28px;min-width:34px}.history-toggle button{padding:6px 8px;font-size:.64rem}}
@media(max-width:430px){.cards{grid-template-columns:1fr}.onair{grid-column:auto}.brandline{font-size:1.34rem}.networkline{font-size:clamp(.56rem,2.35vw,.64rem);letter-spacing:.015em}.theme-tagline{font-size:clamp(.46rem,1.95vw,.52rem);line-height:1.2;letter-spacing:.055em}.history-toggle{flex-wrap:wrap;justify-content:flex-end;border-radius:12px}.last-heard-controls{max-width:100%}}

/* FULL RESPONSIVE AUDIT 2026-09-01 */
.hero-brand,.hero-copy,.hero-actions,.section-head>*,.card,.panel,.dashboard-grid>*{min-width:0}
.brandline,.theme-tagline,.card strong,.card small,#onAirTimer,.lh-mobile,.lh-mobile-meta,.credits{overflow-wrap:anywhere}
@media(max-width:900px){.language-toggle,.health{flex:0 0 auto}.section-head{flex-wrap:wrap}.last-heard-controls{max-width:100%}.history-toggle{max-width:100%;flex-wrap:wrap}}
@media(max-width:650px){.hero-actions{width:auto;justify-content:flex-end;flex-wrap:nowrap}.section-head{align-items:flex-start}.last-heard-controls{width:100%;align-items:flex-start}.history-toggle{justify-content:flex-start}.lh-mobile-top{gap:8px;align-items:flex-start}.lh-mobile-identity,.lh-mobile-meta{min-width:0;overflow-wrap:anywhere}.lh-mobile-duration{flex:0 0 auto}.chart-wrap{padding-left:4px;padding-right:4px}.source-mix{padding-left:6px;padding-right:6px}}

/* USER-CONTENT SCROLL + MOBILE CONTRACT — 2026-09-02 */
.user-table thead{position:sticky;top:0;z-index:4;background:#090d15;box-shadow:0 1px 0 var(--line),0 4px 8px rgba(0,0,0,.32);isolation:isolate}.user-table thead th{position:static;background:#090d15}.user-table thead th,.compact-table thead th{font-size:var(--user-column-heading-size)}
.connection-mobile-list{display:none}
@media(max-width:650px){
  .active-connections-panel .connection-table-wrap,.history-connections-panel .connection-table-wrap,.last-heard-table{display:none!important}
  .connection-mobile-list,.last-heard-mobile{display:block!important;border-top:1px solid var(--line);height:auto;max-height:none;overflow:visible}
  .connection-mobile-row,.lh-mobile-row{padding:10px 12px;border-bottom:1px solid var(--line);background:rgba(0,0,0,.045)}
  .connection-mobile-row:last-child,.lh-mobile-row:last-child{border-bottom:0}
  .connection-mobile-top,.lh-mobile-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
  .connection-mobile-ident,.lh-mobile-ident{display:flex;align-items:center;gap:7px;min-width:0}
  .connection-mobile-ident .country-flag,.lh-mobile-ident .country-flag,.connection-mobile-ident .network-globe,.lh-mobile-ident .network-globe{width:22px;flex:0 0 auto}
  .connection-mobile-call,.lh-mobile-call{font-size:.94rem;font-weight:900;letter-spacing:.035em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .connection-mobile-duration,.lh-mobile-duration{text-align:right;color:var(--accent);font-size:.79rem;font-weight:850;white-space:nowrap}
  .connection-mobile-name,.lh-mobile-name{margin:5px 0 0 29px;font-size:.82rem;font-weight:750;color:var(--secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .connection-mobile-location,.lh-mobile-location{margin:2px 0 0 29px;font-size:.74rem;color:var(--secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .connection-mobile-meta,.lh-mobile-meta-row{margin:3px 0 0 29px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:.68rem;color:var(--muted);letter-spacing:.035em}
  .connection-mobile-empty,.lh-mobile-empty{padding:18px 12px;color:var(--secondary);font-size:.8rem}
  .connection-mobile-list .protocol-pill,.last-heard-mobile .protocol-pill{flex:0 0 var(--protocol-pill-width)}
}
@media(max-width:390px){
  .connection-mobile-row,.lh-mobile-row{padding:9px 10px}
  .connection-mobile-call,.lh-mobile-call{font-size:.9rem}
  .connection-mobile-name,.connection-mobile-location,.connection-mobile-meta,.lh-mobile-name,.lh-mobile-location,.lh-mobile-meta-row{margin-left:28px}
}

/* QQ NET HEADER BRAND BANNER */
.brand-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:start;padding:2px 3px 14px}
.qq-header-banner{display:block;width:min(100%,560px);height:auto;object-fit:contain;justify-self:center}
.brand-hero .hero-actions{justify-self:end;align-self:start;display:flex;align-items:center;gap:8px;flex-wrap:nowrap;width:auto}
@media(max-width:900px){.qq-header-banner{width:100%}}
@media(max-width:650px){.brand-hero{grid-template-columns:1fr;row-gap:4px;padding:0 0 10px}.brand-hero .hero-actions{justify-self:end;order:-1}.qq-header-banner{width:100%;max-width:none}}
