:root{--bg: #0b0f14;--panel: #121822;--panel-2: #0f141d;--border: #1e2733;--text: #e6edf3;--muted: #8b98a5;--accent: #4cc2ff;--accent-dim: #2b6f92;--green: #3fb950;--red: #f85149;--amber: #d29922;--row-hover: #17202b;--mono: ui-monospace, "SF Mono", "Cascadia Code", "Fira Code", Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}.app{max-width:1100px;margin:0 auto;padding:24px 16px 48px}.header{border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:16px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}h1{font-size:24px;font-weight:700;margin:0;letter-spacing:-.02em}h1 .dim{color:var(--accent-dim);font-weight:500}.subtitle{color:var(--muted);margin:6px 0 0}.controls{display:flex;align-items:center;gap:12px;margin-top:18px}.controls label{color:var(--muted);font-size:13px}select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:14px;min-width:220px;cursor:pointer}select:focus{outline:none;border-color:var(--accent-dim);box-shadow:0 0 0 2px #4cc2ff26}.count{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}.table{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--panel-2)}.row{display:grid;grid-template-columns:1.1fr .8fr .7fr 1fr .7fr 1.6fr .6fr;gap:8px;padding:10px 14px;align-items:center;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:none}.row.head{background:var(--panel)}.col-head{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;margin:0;color:var(--muted);font:inherit;font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none}.col-head:hover{color:var(--text)}.col-head.active{color:var(--accent)}.col-head:focus-visible{outline:2px solid var(--accent-dim);outline-offset:2px;border-radius:4px}.sort-indicator{font-size:9px;line-height:1;width:9px;display:inline-block}.row:not(.head):hover{background:var(--row-hover)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.strong{font-weight:700;color:var(--accent)}.region{color:var(--text)}.age{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.empty{padding:40px 16px;text-align:center;color:var(--muted)}.footer{margin-top:20px;color:var(--muted);font-size:12px}.footer-meta{text-align:center}.copyright{text-align:center;margin-top:24px;color:var(--text);font-weight:500}.broadcast-setup{text-align:center;margin-top:18px}.broadcast-line{color:var(--text);margin-bottom:8px}.broadcast-img{max-width:100%;height:auto;border:1px solid var(--border);border-radius:6px}.callsign-link{color:var(--accent);text-decoration:none}.callsign-link:hover{text-decoration:underline}.hotqsy{max-width:680px;margin:18px auto 0;border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow:hidden}.hotqsy summary{cursor:pointer;padding:12px 16px;font-weight:600;color:var(--text);list-style:none;-webkit-user-select:none;user-select:none}.hotqsy summary::-webkit-details-marker{display:none}.hotqsy summary:before{content:"▸";display:inline-block;margin-right:8px;color:var(--accent);transition:transform .15s ease}.hotqsy[open] summary:before{transform:rotate(90deg)}.hotqsy-body{padding:4px 20px 16px;color:var(--muted);line-height:1.55;font-size:13px;border-top:1px solid var(--border)}.hotqsy-body ol{padding-left:20px}.hotqsy-body li{margin:8px 0}.hotqsy-body a{color:var(--accent)}.hotqsy-body code{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-family:var(--mono);font-size:12px;color:var(--text)}.hotqsy-note{margin-top:12px;font-size:12px;opacity:.85}.badge{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--border);background:var(--panel)}.badge .dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.badge.live .dot{background:var(--green);box-shadow:0 0 8px var(--green)}.badge.connecting .dot{background:var(--amber)}.badge.error .dot{background:var(--red)}@media (max-width: 720px){.row{grid-template-columns:1fr .7fr .6fr 1fr}.row>*:nth-child(5),.row>*:nth-child(6),.row>*:nth-child(7){display:none}}
