.space-weather{position:relative;flex:1;min-width:0;max-width:620px;margin:0 20px;color:#d0edfa;background:#061b2c;border:2px solid #526063;border-radius:5px;box-shadow:inset 0 2px 5px #000}.space-weather summary{padding:10px 12px;cursor:pointer;list-style:none;min-height:44px}.weather-title{display:block;color:#8eb5c8;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:5px}#weather-readout{font-size:.78rem;line-height:1.5;display:block}.space-weather[data-rating=favorable]{border-bottom-color:#6eb78d}.space-weather[data-rating=fair]{border-bottom-color:#e2c560}.space-weather[data-rating=poor]{border-bottom-color:#e8857e}.weather-detail{position:absolute;top:100%;left:0;z-index:200;width:min(600px,80vw);max-height:65vh;overflow:auto;padding:20px;background:#eaf0df;color:#18352d;border:2px solid #526063;box-shadow:0 8px 20px #0008}.weather-detail h2{font-size:1.2rem}.weather-detail p,.weather-detail a{font-size:.85rem;line-height:1.5}.weather-detail a{color:#145e5b}.weather-rating{padding:10px;font-weight:700;background:#d5dcd4}.weather-rating.favorable{background:#c6e7d3;color:#185135}.weather-rating.fair{background:#f4e2a5;color:#594511}.weather-rating.poor{background:#f4ceca;color:#762820}.weather-bands{display:flex;flex-wrap:wrap;gap:6px}.weather-bands span{background:#d8ddd5;padding:6px;font-size:.75rem}.radio-console .masthead{overflow:visible}.space-weather[open]{z-index:200}@media(max-width:1100px){.space-weather{margin:0 10px;max-width:350px}#weather-readout{font-size:.7rem}}@media(max-width:750px){.radio-console .masthead{flex-wrap:wrap}.space-weather{order:3;flex-basis:100%;max-width:none;margin:10px 0 0}.weather-detail{position:fixed;left:5vw;top:20vh;width:90vw;max-height:65vh}}@media print{.space-weather{display:none!important}}

.space-weather{max-width:390px;margin:0 10px}.weather-chip{display:inline-block;padding:3px 5px;border:1px solid currentColor;border-radius:3px;font-size:.65rem;white-space:nowrap}.weather-chip.favorable{color:#b5edc6;background:#143d2c}.weather-chip.fair{color:#ffe299;background:#463710}.weather-chip.poor{color:#ffbcb5;background:#4d2024}.weather-chip.unknown{color:#c6d0da;background:#283746}#weather-readout{display:flex;flex-wrap:wrap;gap:4px}.weather-source-links{display:grid;gap:10px}.license-spectrum{position:relative;min-width:140px;max-width:210px;flex:1;background:#061b2c;color:#d0edfa;border:2px solid #526063;border-radius:5px;margin-right:10px}.license-spectrum>summary{list-style:none;padding:9px;cursor:pointer;font-size:.75rem;min-height:44px}.license-mini{display:flex;gap:5px;margin-top:5px}.license-mini b{font-size:.6rem;border-bottom:3px solid #5bb8d8;padding:2px}.license-spectrum[open]{z-index:201}.license-spectrum .weather-detail{left:auto;right:0}.license-band-row{margin:14px 0;border-bottom:1px solid #a9b9ac;padding-bottom:12px}.license-band-row h3{font-size:1rem;margin:0 0 6px}.license-band-row small{font-size:.75rem}.license-band-row p{margin:6px 0}.license-track{height:12px;position:relative;background:#aeb8b5}.license-track i{position:absolute;top:0;height:100%;background:#146784}.license-spectrum .weather-detail a{display:inline-block;min-height:30px}.radio-console .masthead .brand{flex-shrink:1}
@media(max-width:1200px){.radio-console .masthead{flex-wrap:wrap;gap:8px}.space-weather{order:3;max-width:none;flex:2;margin:0}.license-spectrum{order:4;max-width:none;margin:0}.radio-console .header-actions{margin-left:auto}}
@media(max-width:750px){.license-spectrum{flex-basis:100%}.license-spectrum .weather-detail{position:fixed;left:5vw;right:auto;top:20vh}.space-weather{flex-basis:100%}}
@media print{.license-spectrum{display:none!important}}

/* Shared band-chart vocabulary: permission and mode are always labeled in text. */
.band-matrix{width:100%;border-collapse:collapse;margin:12px 0;font-size:.8rem;table-layout:fixed}.band-matrix caption{text-align:left;font-weight:700;padding:8px 0;color:#174d50}.band-matrix th,.band-matrix td{padding:9px 8px;text-align:left;border:1px solid #a6b8ad;overflow-wrap:anywhere}.band-matrix thead{background:#183e48;color:#fff}.band-matrix tbody{background:#f5f7ec}.band-matrix tbody th{font-weight:400;font-variant-numeric:tabular-nums}.band-matrix span,.band-legend span{display:inline-block;padding:4px 7px;border-radius:3px;font-weight:700}.band-legend{display:flex;gap:6px;flex-wrap:wrap}.mode-cw{background:#e4d9f2;color:#442b63}.mode-data{background:#c9e5e8;color:#154d58}.mode-phone{background:#d5e7c3;color:#294e1b}.mode-mixed{background:#d9e2ee;color:#253e60}.band-denied{background:#f5d9d6;color:#812b2b;padding:8px}.band-unavailable{background:#fae9e5;padding:12px;border:1px solid #c9928d}.band-unavailable h3{color:#812b2b}.band-unavailable .license-track{background:#b95650}.license-track i.mode-cw{background:#795594}.license-track i.mode-data{background:#267e91}.license-track i.mode-phone{background:#4f7c38}.license-track i.mode-mixed{background:#405f86}.full-band-range{font-variant-numeric:tabular-nums}.license-band-row .band-limits{font-size:.75rem;padding-top:8px;border-top:1px solid #b9c5ba;line-height:1.5}

.license-mini.band-access-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-top:7px}.license-mini.band-access-grid b{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3px 2px;border:1px solid #71828a;border-radius:2px;font-size:.61rem;line-height:1.2;white-space:nowrap}.band-access-grid .band-access-label{font-size:.5rem;font-weight:400;margin-top:2px}.license-mini.band-access-grid .tx-allowed{color:#c9f5d4;background:#16432d;border-color:#64a57a}.license-mini.band-access-grid .tx-denied{color:#ffdad5;background:#57252a;border-color:#c37b77}.license-mini.band-access-grid .tx-neutral{color:#d7e2e8;background:#233641}.band-grid-note{display:block;font-size:.57rem;line-height:1.3;margin-top:6px;color:#d0edfa}.license-spectrum>summary .weather-title{margin-bottom:3px}

.license-mini.band-access-grid b{white-space:normal;text-align:center}.band-access-grid .band-access-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
