.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%)}

/* Compact report: shared observation times span related rows. */
.space-weather .weather-detail{width:min(470px,90vw);padding:16px}
.weather-detail .weather-rating{margin:8px 0;padding:7px 10px;font-size:.85rem}
.weather-table{width:100%;font-size:.8rem;margin:8px 0;border-collapse:collapse}
.weather-table caption{padding:4px 0 7px;font-size:.72rem;text-align:left}
.weather-table th,.weather-table td{padding:7px 8px;border-bottom:1px solid #bdc9bd;border-top:0;white-space:normal}
.weather-table thead{background:#193e46;color:#fff}.weather-table thead th{font-size:.72rem}
.weather-table tbody th{font-size:.8rem;font-weight:600}.weather-table .weather-observed{font-size:.73rem;white-space:nowrap;vertical-align:middle}
.weather-value{font-weight:700}.weather-value.favorable{background:#c6e7d3;color:#185135}.weather-value.fair{background:#f4e2a5;color:#594511}.weather-value.poor{background:#f4ceca;color:#762820}.weather-value.unknown{background:#d9dfdf;color:#37464b}
.weather-detail .weather-update{font-size:.72rem;margin:7px 0}.weather-method{margin:8px 0}.weather-method summary{font-weight:600;font-size:.8rem}.weather-method p{margin:8px 0}
.weather-source-links{grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:10px}.weather-detail .weather-source-links a{font-size:.78rem}

/* NOAA-driven instruments. Fill is magnitude, color is operating context. */
.space-weather{align-self:stretch;display:flex;flex-direction:column;justify-content:center}.space-weather>summary{padding:7px 10px}.space-weather .weather-title{font-size:.62rem;margin-bottom:4px}
#weather-readout{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.weather-chip.weather-instrument{position:relative;display:grid;grid-template-columns:1fr auto;align-items:end;padding:2px 5px 4px;border-color:#63818a66;min-width:0;overflow:hidden;font-variant-numeric:tabular-nums}
.weather-gauge{width:100%;height:28px;grid-column:1/-1;overflow:visible}.gauge-track{fill:none;stroke:#7193a33b;stroke-width:3}.gauge-fill{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round}.solar-core{fill:currentColor}.solar-halo{fill:currentColor;fill-opacity:.12;stroke:currentColor;stroke-opacity:.35;stroke-width:.8;transform-origin:32px 25px}
.instrument-name{font-size:.52rem;line-height:1.2;white-space:nowrap}.instrument-value{font-size:.83rem;line-height:1.1;margin-left:3px}.weather-arrival .weather-instrument[data-fresh=true] .solar-halo{animation:solar-arrival 1.8s ease-in-out 2}.weather-instrument.unknown .solar-halo,.weather-instrument.unknown .solar-core{opacity:.25}
@keyframes solar-arrival{0%,100%{transform:scale(1);fill-opacity:.12}50%{transform:scale(calc(1.05 + var(--activity)*.25));fill-opacity:.26}}
@media(prefers-reduced-motion:reduce){.weather-arrival .solar-halo{animation:none!important}}
@media(max-width:750px){.weather-gauge{height:30px}.instrument-name{font-size:.6rem}.instrument-value{font-size:.9rem}}

/* Condition strength controls luminance; gauge fill remains raw magnitude. */
.weather-instrument.favorable{color:#c5ffdc;background:color-mix(in srgb,#128146 calc(var(--condition-strength)*55%),#06151a);border-color:color-mix(in srgb,#5beba0 calc(var(--condition-strength)*85%),#183339)}
.weather-instrument.fair{color:#ffe5a1;background:#463710;border-color:#b59940}
.weather-instrument.poor{color:#ffd4ce;background:color-mix(in srgb,#ad2636 calc(var(--condition-strength)*65%),#100b13);border-color:color-mix(in srgb,#ff6870 calc(var(--condition-strength)*90%),#35222c)}
.weather-instrument .gauge-fill{filter:drop-shadow(0 0 2px currentColor)}
