/* NetRichmond TV Stations page — styles are scoped to avoid changing other pages. */
.tv-stations { --tv-border: var(--line, #dfe8e3); --tv-muted: var(--muted, #65777b); }
.tv-stations-hero .eyebrow { text-transform: uppercase; letter-spacing: .14em; }
.tv-stations-section { padding-top: 18px; }
.tv-stations .tv-data-notice { margin-bottom: 18px; }
.tv-section-kicker { display: block; color: var(--teal, #1c7775); font-size: 10px; font-weight: 800; letter-spacing: .14em; line-height: 1.5; text-transform: uppercase; }
.tv-stations h2 { margin: 4px 0 7px; color: var(--deep, #16333b); font: 800 clamp(21px, 2.6vw, 27px)/1.22 var(--font-display, Manrope, sans-serif); letter-spacing: -.6px; }
.tv-stations h3 { color: var(--deep, #16333b); }
.tv-station-location { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(320px, 1.2fr); gap: 24px; padding: clamp(18px, 2.7vw, 26px); margin-bottom: 16px; }
.tv-location-copy p, .tv-map-heading p { margin: 0; color: var(--tv-muted); font-size: 13px; }
.tv-location-form label, .tv-filter-field label, .tv-reception-check label, .tv-radius-card label { display: block; color: var(--deep, #16333b); font-size: 12px; font-weight: 800; margin-bottom: 6px; }
.tv-location-row { display: flex; gap: 8px; }
.tv-location-row input, .tv-filter-field input, .tv-filter-field select, .tv-location-form select, .tv-radius-card select, .tv-reception-select { width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid #cfdcd7; border-radius: 9px; background: #fff; color: var(--ink, #172c34); font: inherit; font-size: 13px; }
.tv-location-row .button { flex: 0 0 auto; white-space: nowrap; border: 0; cursor: pointer; }
.tv-location-actions { display: flex; align-items: center; gap: 14px; margin-top: 9px; }
.tv-location-actions .button { padding: 8px 12px; cursor: pointer; }
.tv-text-button { padding: 6px 0; background: none; border: 0; color: var(--teal, #1c7775); text-decoration: underline; cursor: pointer; font: 700 12px var(--font-body, sans-serif); }
.tv-privacy-note { color: var(--tv-muted); font-size: 11px; line-height: 1.5; margin: 9px 0 0; }
.tv-location-status { margin: 9px 0 0; color: var(--teal, #1c7775); font-size: 12px; font-weight: 700; }
.tv-location-status[data-state="error"] { color: #a13d32; }
.tv-location-status[data-state="working"] { color: #86601d; }
.tv-map-layout { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(220px, .7fr); gap: 15px; align-items: stretch; margin: 15px 0 36px; }
.tv-map-panel { padding: 15px; min-width: 0; }
.tv-map-heading { display: flex; align-items: start; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.tv-map-heading h2 { font-size: 21px; }
.tv-map-report { flex-shrink: 0; font-size: 11px; font-weight: 750; text-decoration: none; margin-top: 6px; }
.tv-station-map { height: 435px; min-height: 330px; width: 100%; overflow: hidden; border: 1px solid var(--tv-border); border-radius: 11px; background: #edf3ef; z-index: 0; }
.tv-map-fallback { padding: 22px; color: #52656b; font-size: 13px; }
.tv-station-map.tv-map-ready .tv-map-fallback { display: none; }
.tv-map-attribution-note { padding: 8px 2px 0; color: var(--tv-muted); font-size: 10px; }
.tv-map-sidebar { display: flex; flex-direction: column; gap: 12px; }
.tv-map-legend, .tv-radius-card, .tv-map-stats { padding: 17px; }
.tv-map-legend h3, .tv-sources-card h3 { margin: 0 0 12px; font-size: 15px; }
.tv-map-legend p { display: flex; align-items: center; gap: 9px; margin: 10px 0; color: var(--tv-muted); font-size: 12px; }
.tv-map-dot { display: inline-block; width: 13px; height: 13px; border: 2px solid white; border-radius: 50%; box-shadow: 0 0 0 1px #55716c; flex: 0 0 13px; }
.tv-map-dot-tower { background: var(--teal, #1c7775); }
.tv-map-dot-home { background: #d79b34; box-shadow: 0 0 0 1px #a87624; }
.tv-map-line { display: inline-block; width: 18px; border-top: 2px dashed #b78630; flex: 0 0 18px; }
.tv-radius-card p { color: var(--tv-muted); font-size: 11px; margin: 8px 0 0; line-height: 1.5; }
.tv-map-stats { display: flex; flex-direction: column; gap: 3px; flex: 1; }
.tv-stat-label { color: var(--tv-muted); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.tv-map-stats strong { color: var(--deep, #16333b); font-size: 17px; }
.tv-map-stats span:not(.tv-stat-label) { color: var(--tv-muted); font-size: 12px; }
.tv-map-stats a { margin-top: auto; padding-top: 14px; font-size: 12px; font-weight: 800; text-decoration: none; }
.tv-directory { scroll-margin-top: 20px; }
.tv-directory-head { align-items: end; }
.tv-directory-head h2 { margin-top: 4px; }
.tv-result-count { white-space: nowrap; padding: 7px 10px; border-radius: 8px; background: var(--teal-light, #dff1ed); color: var(--teal, #1c7775); font-size: 11px; font-weight: 800; }
.tv-filter-panel { display: grid; grid-template-columns: minmax(220px, 1.8fr) minmax(180px, 1fr) minmax(165px, .9fr) auto; align-items: end; gap: 12px; padding: 15px; margin: 15px 0 12px; }
.tv-filter-field { min-width: 0; }
.tv-reset-filters { border: 1px solid var(--tv-border); cursor: pointer; padding: 9px 12px; white-space: nowrap; }
.tv-reception-explainer { display: flex; gap: 11px; align-items: start; margin: 10px 0 17px; padding: 13px 15px; background: #f0f7f4; border: 1px solid #d9eae3; border-radius: 10px; }
.tv-reception-icon { display: grid; place-items: center; flex: 0 0 25px; width: 25px; height: 25px; border-radius: 7px; background: #d7ece3; color: #23695c; font-weight: 900; }
.tv-reception-explainer p { margin: 0; color: #4a6263; font-size: 12px; line-height: 1.55; }
.tv-station-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.tv-station-card { padding: 0; overflow: hidden; min-width: 0; }
.tv-station-card[hidden], .tv-no-results[hidden] { display: none !important; }
.tv-station-card-top { display: flex; align-items: center; gap: 12px; padding: 17px 17px 14px; background: linear-gradient(115deg, #f6fbf8 0%, #fff 72%); border-bottom: 1px solid #edf1ee; }
.tv-channel-number { display: grid; place-items: center; min-width: 58px; height: 50px; padding: 0 8px; border-radius: 11px; background: var(--deep, #16333b); color: #fff; font: 800 19px var(--font-display, sans-serif); letter-spacing: -.5px; }
.tv-station-title { min-width: 0; flex: 1; }
.tv-station-title h3 { margin: 0; font: 800 18px/1.22 var(--font-display, Manrope, sans-serif); }
.tv-station-title p { margin: 3px 0 0; color: var(--tv-muted); font-size: 12px; line-height: 1.35; }
.tv-reception-pill { flex: 0 0 auto; align-self: start; padding: 5px 7px; border-radius: 6px; background: #edf0ed; color: #56655f; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.tv-reception-pill[data-status="received"] { background: #e2f4e8; color: #246d43; }
.tv-reception-pill[data-status="intermittent"] { background: #fff1d6; color: #85601e; }
.tv-reception-pill[data-status="not-received"] { background: #fbe6e2; color: #954238; }
.tv-station-facts { display: grid; grid-template-columns: .55fr 1.4fr 1fr; gap: 10px; padding: 13px 17px; border-bottom: 1px solid #edf1ee; }
.tv-station-facts > div { min-width: 0; }
.tv-station-facts span, .tv-address-row strong { display: block; color: var(--tv-muted); font-size: 10px; font-weight: 750; letter-spacing: .03em; }
.tv-station-facts strong { display: block; padding-top: 3px; color: var(--deep, #16333b); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.tv-station-addresses { padding: 13px 17px 8px; }
.tv-address-row { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 8px; padding: 4px 0 10px; }
.tv-address-icon { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 6px; color: var(--teal, #1c7775); background: #eaf5f0; font-size: 13px; }
.tv-address-row p { margin: 2px 0 0; color: var(--ink, #172c34); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.tv-address-row .tv-coordinates { color: var(--tv-muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.tv-distance { display: inline-block; margin-left: 4px; color: #936a1e; font-weight: 800; }
.tv-subchannels, .tv-technical-details { border-top: 1px solid #edf1ee; padding: 0 17px; }
.tv-subchannels summary, .tv-technical-details summary { padding: 12px 0; cursor: pointer; color: var(--teal, #1c7775); font-size: 12px; font-weight: 800; }
.tv-subchannels ul { list-style: none; padding: 0; margin: 0 0 9px; border: 1px solid #e7eeea; border-radius: 8px; overflow: hidden; }
.tv-subchannels li { display: grid; grid-template-columns: 43px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 8px 10px; border-bottom: 1px solid #edf1ee; }
.tv-subchannels li:last-child { border-bottom: 0; }
.tv-subchannel-number { color: var(--deep, #16333b); font-size: 12px; font-weight: 800; font-variant-numeric: tabular-nums; }
.tv-subchannels li strong { display: block; color: var(--ink, #172c34); font-size: 11px; line-height: 1.35; }
.tv-subchannels li small { display: block; padding-top: 2px; color: var(--tv-muted); font-size: 10px; }
.tv-subchannels li em { font-style: normal; color: var(--teal); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.tv-inline-warning { padding: 9px 10px; margin: 6px 0 12px; border-radius: 7px; background: #fff7e9; color: #725723; font-size: 11px; line-height: 1.5; }
.tv-technical-details dl { display: grid; grid-template-columns: minmax(110px, .6fr) minmax(0, 1fr); gap: 5px 12px; margin: 0 0 11px; }
.tv-technical-details dt { color: var(--tv-muted); font-size: 10px; font-weight: 800; }
.tv-technical-details dd { margin: 0; color: var(--ink, #172c34); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.tv-station-links { display: flex; flex-wrap: wrap; gap: 8px 13px; margin: 9px 0 14px; }
.tv-station-links a { font-size: 11px; font-weight: 800; text-decoration: none; }
.tv-reception-check { display: grid; grid-template-columns: minmax(0, 1fr) 160px; align-items: center; gap: 12px; padding: 12px 17px 15px; border-top: 1px solid #e8efeb; background: #fbfdfb; }
.tv-reception-check label { margin: 0; }
.tv-reception-select { padding: 7px 8px; font-size: 11px; }
.tv-no-results { margin-top: 12px; }
.tv-explainer { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(230px, .7fr); gap: 26px; align-items: start; margin: 38px 0 8px; padding: clamp(20px, 3vw, 30px); border-radius: 14px; background: #f6f9f6; }
.tv-explainer h2 { margin-top: 5px; }
.tv-explainer h3 { font-size: 16px; margin: 22px 0 6px; }
.tv-explainer p { margin: 0 0 12px; color: #4f6365; font-size: 13px; line-height: 1.7; }
.tv-sources-card { padding: 18px; background: white; border: 1px solid var(--tv-border); border-radius: 11px; }
.tv-sources-card p, .tv-sources-card li { font-size: 11px; line-height: 1.55; }
.tv-sources-card ul { padding-left: 17px; margin: 10px 0 14px; }
.tv-sources-card li { margin: 7px 0; }
.tv-sources-card .tv-data-updated { padding-top: 10px; margin: 0; border-top: 1px solid #edf1ee; color: var(--tv-muted); font-size: 10px; }
.tv-footer-note { margin: 18px 2px 0; color: var(--tv-muted); font-size: 11px; line-height: 1.6; }
.tv-map-popup h3 { margin: 0 0 5px; font: 800 14px var(--font-display, sans-serif); }
.tv-map-popup p { margin: 4px 0; font-size: 11px; line-height: 1.4; }
.tv-map-popup ul { margin: 5px 0 8px; padding-left: 17px; }
.tv-map-popup li { font-size: 11px; margin: 3px 0; }
.tv-map-popup a { font-size: 11px; font-weight: 800; }
.tv-stations button:focus-visible, .tv-stations input:focus-visible, .tv-stations select:focus-visible, .tv-stations a:focus-visible, .tv-stations summary:focus-visible { outline: 3px solid #e0ad4d; outline-offset: 2px; }

@media (min-width: 1400px) { .tv-station-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1050px) {
  .tv-station-location { grid-template-columns: 1fr; gap: 15px; }
  .tv-map-layout { grid-template-columns: minmax(0, 1fr); }
  .tv-map-sidebar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tv-map-stats { min-height: 140px; }
  .tv-filter-panel { grid-template-columns: minmax(200px, 1.5fr) minmax(165px, 1fr); }
  .tv-explainer { grid-template-columns: minmax(0, 1fr) minmax(220px, .75fr); gap: 18px; }
}
@media (max-width: 760px) {
  .tv-stations-section { padding-top: 12px; }
  .tv-location-row { flex-direction: column; }
  .tv-location-row .button { width: 100%; }
  .tv-map-sidebar { grid-template-columns: 1fr; }
  .tv-map-legend { display: grid; grid-template-columns: 1fr; }
  .tv-map-legend h3 { margin-bottom: 4px; }
  .tv-map-legend p { margin: 6px 0; }
  .tv-station-map { height: 360px; min-height: 300px; }
  .tv-map-heading { flex-direction: column; gap: 5px; }
  .tv-filter-panel { grid-template-columns: minmax(0, 1fr); }
  .tv-station-grid { grid-template-columns: minmax(0, 1fr); }
  .tv-directory-head { align-items: flex-start; }
  .tv-result-count { margin-top: 4px; }
  .tv-explainer { grid-template-columns: minmax(0, 1fr); gap: 15px; margin-top: 28px; }
  .tv-reception-check { grid-template-columns: minmax(0, 1fr) 145px; }
}
@media (max-width: 410px) {
  .tv-station-card-top { gap: 8px; padding: 13px 12px; }
  .tv-channel-number { min-width: 51px; height: 45px; font-size: 17px; }
  .tv-station-title h3 { font-size: 16px; }
  .tv-reception-pill { max-width: 80px; white-space: normal; text-align: center; }
  .tv-station-facts { padding: 11px 12px; grid-template-columns: .5fr 1.35fr .9fr; gap: 6px; }
  .tv-station-facts span { font-size: 9px; }
  .tv-station-facts strong { font-size: 11px; }
  .tv-station-addresses { padding: 11px 12px 6px; }
  .tv-subchannels, .tv-technical-details { padding: 0 12px; }
  .tv-reception-check { padding: 11px 12px 13px; }
  .tv-technical-details dl { grid-template-columns: 100px minmax(0, 1fr); }
}
@media print {
  .tv-location-form, .tv-filter-panel, .tv-reception-check, .tv-map-report, .tv-station-links, .tv-map-stats a { display: none !important; }
  .tv-station-map { height: 260px; }
  .tv-station-grid { grid-template-columns: 1fr 1fr; }
  .tv-station-card, .tv-explainer { break-inside: avoid; box-shadow: none; }
  .tv-station-card details:not([open]) > *:not(summary) { display: block; }
}

/* Novice-friendly virtual-channel explanation and channel-by-channel reception checks. */
.tv-channel-basics { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .82fr); gap: 20px 26px; padding: clamp(18px, 2.8vw, 28px); margin: 18px 0 20px; border-color: #dce9e2; background: linear-gradient(135deg, #fbfdfb 0%, #f1f8f4 100%); }
.tv-channel-basics-intro h2 { margin: 5px 0 8px; color: var(--deep, #16333b); font: 800 clamp(20px, 2.4vw, 27px)/1.18 var(--font-display, Manrope, sans-serif); }
.tv-channel-basics-intro p { margin: 0; color: #4c6262; font-size: 13px; line-height: 1.7; }
.tv-channel-example { overflow: hidden; align-self: start; border: 1px solid #dfe9e3; border-radius: 11px; background: #fff; }
.tv-channel-example-title { display: flex; justify-content: space-between; gap: 10px; padding: 11px 13px; color: #fff; background: var(--deep, #16333b); font-size: 10px; font-weight: 800; }
.tv-channel-example-title span:last-child { color: #d7e9e0; text-align: right; }
.tv-channel-example-row { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 9px 13px; border-bottom: 1px solid #edf1ee; }
.tv-channel-example-row:last-child { border-bottom: 0; }
.tv-channel-example-row > strong { color: var(--teal, #1c7775); font-size: 13px; font-variant-numeric: tabular-nums; }
.tv-channel-example-row b { display: block; color: var(--ink, #172c34); font-size: 12px; }
.tv-channel-example-row small { display: block; padding-top: 2px; color: var(--tv-muted, #687976); font-size: 10px; }
.tv-channel-example-row em { padding: 4px 6px; border-radius: 5px; color: #246d43; background: #e2f4e8; font-size: 9px; font-style: normal; font-weight: 800; }
.tv-channel-basics-notes { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tv-channel-basics-notes > div { padding-top: 13px; border-top: 1px solid #dce9e2; }
.tv-channel-basics-notes strong { display: block; color: var(--deep, #16333b); font-size: 11px; }
.tv-channel-basics-notes p { margin: 5px 0 0; color: #4f6365; font-size: 11px; line-height: 1.6; }
.tv-channel-tip { grid-column: 1 / -1; margin: 0; padding: 11px 13px; border-radius: 8px; background: #fff; color: #425b5a; font-size: 11px; line-height: 1.6; }
.tv-channel-tip strong { color: var(--deep, #16333b); }
.tv-subchannel-copy { min-width: 0; }
.tv-subchannel-test { display: block; margin: 0; min-width: 0; }
.tv-subchannel-test select { width: 100%; min-width: 0; padding: 6px 7px; border: 1px solid var(--tv-border, #dce5df); border-radius: 7px; color: var(--ink, #172c34); background: #fff; font: 600 10px/1.25 var(--font-body, "DM Sans", sans-serif); }
.tv-main-channel-status { align-self: center; color: var(--tv-muted, #687976); font-size: 10px; font-weight: 800; text-align: right; }
.tv-reception-check > span:first-child { display: block; }
.tv-reception-check > span:first-child strong { display: block; color: var(--deep, #16333b); font-size: 11px; }
.tv-reception-check > span:first-child small { display: block; margin-top: 3px; color: var(--tv-muted, #687976); font-size: 10px; line-height: 1.45; }
.tv-reception-pill { max-width: 118px; white-space: normal; text-align: center; line-height: 1.4; }
.tv-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 760px) {
  .tv-channel-basics { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .tv-channel-basics-notes { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .tv-channel-basics-notes > div { padding-top: 9px; }
}
@media (max-width: 520px) {
  .tv-subchannels li { grid-template-columns: 43px minmax(0, 1fr); align-items: start; }
  .tv-subchannel-test { grid-column: 2; width: 100%; margin-top: 2px; }
  .tv-subchannel-test select { width: 100%; font-size: 11px; }
  .tv-channel-example-title { flex-direction: column; gap: 3px; }
  .tv-channel-example-title span:last-child { text-align: left; }
}

/* Public launch cleanup: station directory and optional help. */
.tv-page-navigation,.tv-station-page-tools,.tv-bottom-nav { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.tv-page-navigation { margin-top:18px; }
.tv-station-page-tools { justify-content:space-between; padding:12px 14px; margin-bottom:20px; border:1px solid var(--tv-border,#dfe7e2); border-radius:10px; background:#fff; color:var(--tv-muted,#697a75); font-size:11px; }
.tv-station-page-tools a,.tv-bottom-nav a { text-decoration:none; font-weight:800; }
.tv-bottom-nav { justify-content:space-between; margin:22px 0 12px; }
.tv-bottom-nav-last { justify-content:flex-start; padding-top:12px; border-top:1px solid #e1eae4; }
.tv-station-card-top { align-items:center; }
.tv-station-title { min-width:0; flex:1; }
.tv-station-facts { grid-template-columns:minmax(95px,.7fr) minmax(0,1.4fr) minmax(0,1fr); }
.tv-subchannels li { grid-template-columns:54px minmax(0,1fr); align-items:start; }
.tv-subchannel-copy { min-width:0; }
.tv-subchannel-copy em { display:inline-block; margin-top:4px; font-style:normal; color:var(--teal,#1c7775); font-size:9px; font-weight:900; text-transform:uppercase; }
.tv-technical-details dl { margin-bottom:10px; }
.tv-data-detail-note { color:var(--tv-muted,#697a75); font-size:11px; line-height:1.6; margin:10px 0 0; }
.tv-help-bottom { margin:38px 0 10px; padding-top:26px; border-top:1px solid #e1eae4; }
.tv-help-top { margin-bottom:12px; }
.tv-help-top h2 { margin:4px 0; }
.tv-help-top p { color:var(--tv-muted,#697a75); font-size:12px; margin:0; }
.tv-help-accordion { margin-top:9px; overflow:hidden; }
.tv-help-accordion > summary { padding:15px 18px; cursor:pointer; list-style:none; color:var(--deep,#16333b); font-size:13px; font-weight:800; }
.tv-help-accordion > summary::-webkit-details-marker { display:none; }
.tv-help-accordion > summary::after { content:'+'; float:right; color:var(--teal,#1c7775); font-size:18px; line-height:1; }
.tv-help-accordion[open] > summary::after { content:'−'; }
.tv-help-content { padding:0 18px 18px; color:#4f6365; font-size:12px; line-height:1.7; }
.tv-help-content p { margin:0 0 10px; }
.tv-help-content .tv-channel-basics { margin:4px 0 0; padding:0; border:0; background:transparent; box-shadow:none; }
.tv-help-content .tv-channel-basics-intro h2 { font-size:21px; }
.tv-help-content .tv-channel-basics-notes { grid-template-columns:repeat(3,minmax(0,1fr)); }
.tv-help-content .tv-channel-basics-notes p { font-size:11px; }
.tv-station-grid { align-items:start; }
@media(max-width:760px) { .tv-station-page-tools{align-items:flex-start;flex-direction:column;} .tv-bottom-nav{flex-direction:column;align-items:stretch;} .tv-bottom-nav .button{justify-content:center;} .tv-help-content .tv-channel-basics-notes{grid-template-columns:minmax(0,1fr);} .tv-station-facts{grid-template-columns:1fr 1fr;} .tv-station-facts>div:last-child{grid-column:1/-1;} }

/* Station-level filtering and browser-only per-channel reception notes. */
.tv-reception-tools { display:grid; grid-template-columns:minmax(220px,1.5fr) minmax(160px,.9fr) minmax(170px,1fr) auto; align-items:end; gap:12px; margin:15px 0 10px; padding:15px; border:1px solid var(--tv-border,#dfe7e2); border-radius:11px; background:#fff; box-shadow:0 3px 14px rgba(25,50,45,.04); }
.tv-reception-tools label { display:block; margin:0 0 6px; color:#536965; font-size:11px; font-weight:800; }
.tv-reception-tools input,.tv-reception-tools select { width:100%; min-width:0; min-height:39px; padding:8px 10px; border:1px solid #d6e1db; border-radius:8px; color:var(--ink,#172c34); background:#fff; font:600 12px/1.3 var(--font-body,"DM Sans",sans-serif); }
.tv-reception-tools button { min-height:39px; white-space:nowrap; }
.tv-reception-note { margin:0 0 9px; padding:10px 13px; border:1px solid #dfe9e3; border-radius:8px; background:#f7faf8; color:#62766f; font-size:11px; line-height:1.55; }
.tv-reception-note span { display:inline-block; margin-left:5px; color:#176e6b; font-weight:800; }
.tv-reception-results-line { display:flex; justify-content:flex-end; margin:0 0 12px; color:var(--tv-muted,#697a75); font-size:11px; }
.tv-station-card[hidden] { display:none!important; }
.tv-station-card-top .tv-reception-pill { max-width:145px; flex:0 0 auto; align-self:center; }
.tv-subchannels li { grid-template-columns:54px minmax(0,1fr) minmax(140px,160px); }
.tv-subchannels li > .tv-subchannel-test { grid-column:auto; width:100%; margin:0; }
.tv-subchannels li > .tv-subchannel-test select { width:100%; min-height:33px; }
.tv-reception-check { display:grid; grid-template-columns:minmax(0,1fr) minmax(100px,auto); align-items:center; gap:12px; padding:12px 17px 14px; border-top:1px solid #e8efeb; background:#fbfdfb; }
.tv-reception-check > span:first-child strong { display:block; color:var(--deep,#16333b); font-size:11px; }
.tv-reception-check > span:first-child small { display:block; margin-top:3px; color:var(--tv-muted,#687976); font-size:10px; line-height:1.45; }
.tv-main-channel-status[data-status="received"] { color:#246d43; }
.tv-main-channel-status[data-status="intermittent"] { color:#85601e; }
.tv-main-channel-status[data-status="not-received"] { color:#954238; }
.tv-reception-tools input:focus-visible,.tv-reception-tools select:focus-visible { outline:3px solid #e0ad4d; outline-offset:2px; }
@media(max-width:1050px) { .tv-reception-tools { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
@media(max-width:760px) { .tv-reception-tools { grid-template-columns:minmax(0,1fr); padding:12px; } .tv-reception-results-line { justify-content:flex-start; } }
@media(max-width:520px) { .tv-subchannels li { grid-template-columns:43px minmax(0,1fr); align-items:start; } .tv-subchannels li > .tv-subchannel-test { grid-column:2; width:100%; margin-top:2px; } .tv-subchannels li > .tv-subchannel-test select { width:100%; font-size:11px; } .tv-station-card-top .tv-reception-pill { max-width:105px; font-size:9px; } }
@media print { .tv-reception-tools,.tv-reception-note,.tv-reception-check,.tv-subchannel-test,.tv-station-card-top .tv-reception-pill { display:none!important; } }
