/* RT DAB+ Plugin – Frontend CSS
   Design: radiotell.ch (OnAir2-Theme)
   Fonts: Bree Serif (h), Source Sans Pro (body)
   Rot: #C0392B */

:root {
    --rtd-red: #C0392B;
    --rtd-red-dk: #962d22;
    --rtd-dark: #2a2a2a;
    --rtd-gray: #666;
    --rtd-light: #f4f4f4;
    --rtd-border: #e0e0e0;
    --rtd-white: #fff;
    --rtd-green: #2e7d32;
    --rtd-green-bg: #e8f5e9;
    --rtd-orange: #e65100;
    --rtd-orange-bg: #fff3e0;
    --rtd-red-bg: #fbe9e7;
    --rtd-font-head: 'Bree Serif', Georgia, serif;
    --rtd-font-body: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
    --rtd-radius: 4px;
    --rtd-shadow: 0 4px 24px rgba(0,0,0,0.1);
}

/* ── Base ── */
.rtd-wrap { font-family: var(--rtd-font-body); color: var(--rtd-dark); line-height: 1.5; }
.rtd-wrap * { box-sizing: border-box; }

/* ── Tabs ── */
.rtd-tabs { display: flex; border-bottom: 1px solid var(--rtd-border); background: var(--rtd-light); overflow-x: auto; }
.rtd-tab { padding: 10px 18px; font-size: 14px; font-family: var(--rtd-font-body); color: var(--rtd-gray);
    cursor: pointer; border: none; background: none; border-bottom: 2px solid transparent; transition: all .15s; white-space: nowrap; }
.rtd-tab:hover { color: var(--rtd-dark); }
.rtd-tab--active { color: var(--rtd-red); border-bottom-color: var(--rtd-red); font-weight: 600; }
.rtd-panel { display: none; }
.rtd-panel--active { display: block; }

/* ── Map ── */
.rtd-karte-wrap { border: 1px solid var(--rtd-border); border-radius: var(--rtd-radius); overflow: hidden; background: var(--rtd-white); }
.rtd-map-footer { padding: 10px 16px; font-size: 12px; color: var(--rtd-gray); border-top: 1px solid var(--rtd-border); background: var(--rtd-light); margin: 0; }

/* ── Dots ── */
.rtd-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.rtd-dot--red { background: var(--rtd-red); }
.rtd-dot--green { background: var(--rtd-green); }
.rtd-dot--orange { background: var(--rtd-orange); }
.rtd-dot--gray { background: #bbb; }

/* ── Badges ── */
.rtd-badge { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 10px; font-weight: 600; line-height: 1.5; }
.rtd-badge--green { background: var(--rtd-green-bg); color: var(--rtd-green); }
.rtd-badge--orange { background: var(--rtd-orange-bg); color: var(--rtd-orange); }
.rtd-badge--red { background: var(--rtd-red-bg); color: var(--rtd-red); }

/* ── Table ── */
.rtd-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.rtd-table th { text-align: left; font-size: 11px; font-weight: 600; color: var(--rtd-gray);
    letter-spacing: .04em; text-transform: uppercase; padding: 10px 12px; border-bottom: 1px solid var(--rtd-border); }
.rtd-table td { padding: 10px 12px; border-bottom: 1px solid var(--rtd-border); vertical-align: middle; }
.rtd-table tr:last-child td { border-bottom: none; }
.rtd-table td strong { font-weight: 600; }

/* Power bar */
.rtd-power-bar { display: inline-block; height: 6px; border-radius: 3px; background: var(--rtd-red); opacity: .7; vertical-align: middle; margin-right: 6px; min-width: 4px; }

/* ── Sendegebiet-Grid ── */
.rtd-gebiete-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding: 16px; }
@media (max-width: 768px) { .rtd-gebiete-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .rtd-gebiete-grid { grid-template-columns: 1fr; } }

.rtd-gebiet-card { display: block; padding: 16px; border: 1px solid var(--rtd-border); border-radius: var(--rtd-radius);
    text-decoration: none; color: var(--rtd-dark); transition: transform .15s, box-shadow .15s, border-color .15s; background: var(--rtd-white); }
.rtd-gebiet-card:hover { transform: translateY(-2px); box-shadow: var(--rtd-shadow); border-color: var(--rtd-red); }
.rtd-gebiet-card__name { font-family: var(--rtd-font-head); font-size: 16px; margin-bottom: 4px; }
.rtd-gebiet-card:hover .rtd-gebiet-card__name { color: var(--rtd-red); }
.rtd-gebiet-card__channel { font-size: 12px; color: var(--rtd-gray); margin-bottom: 8px; }
.rtd-gebiet-card__stats { display: flex; gap: 16px; font-size: 13px; font-weight: 600; }
.rtd-gebiet-card__stats span { color: var(--rtd-gray); }

/* ── Check Widget ── */
.rtd-check-wrap { border: 1px solid var(--rtd-border); border-radius: var(--rtd-radius); overflow: hidden; background: var(--rtd-white); }
.rtd-check-header { padding: 16px 20px 4px; }
.rtd-check-title { font-family: var(--rtd-font-head); font-size: 18px; color: var(--rtd-dark); margin: 0 0 4px; }
.rtd-check-sub { font-size: 13px; color: var(--rtd-gray); margin: 0; }
.rtd-check-form { display: flex; gap: 8px; padding: 12px 20px 16px; align-items: center; }
.rtd-check-input-wrap { flex: 1; }
.rtd-check-input { width: 100%; height: 40px; border: 1px solid var(--rtd-border); border-radius: 8px; padding: 0 14px;
    font-size: 15px; font-family: var(--rtd-font-body); color: var(--rtd-dark); background: var(--rtd-white); transition: border-color .15s; }
.rtd-check-input:focus { outline: none; border-color: var(--rtd-red); }

/* Buttons */
.rtd-btn { height: 40px; padding: 0 20px; border: none; border-radius: 8px; font-size: 14px; font-weight: 600;
    font-family: var(--rtd-font-body); cursor: pointer; transition: all .15s; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.rtd-btn--primary { background: var(--rtd-red); color: var(--rtd-white); }
.rtd-btn--primary:hover { background: var(--rtd-red-dk); }
.rtd-btn--secondary { background: transparent; color: var(--rtd-gray); border: 1px solid var(--rtd-border); padding: 0 14px; }
.rtd-btn--secondary:hover { border-color: var(--rtd-dark); color: var(--rtd-dark); }

/* Results */
.rtd-check-result { margin: 0 20px 16px; padding: 14px 16px; border-radius: 8px; display: flex; align-items: center; gap: 14px; }
.rtd-result-good { background: var(--rtd-green-bg); border: 1px solid #c8e6c9; }
.rtd-result-possible { background: var(--rtd-orange-bg); border: 1px solid #ffe0b2; }
.rtd-result-unlikely { background: var(--rtd-red-bg); border: 1px solid #ffcdd2; }
.rtd-result-icon { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center;
    justify-content: center; font-size: 18px; font-weight: 700; flex-shrink: 0; color: var(--rtd-white); }
.rtd-result-icon--good { background: var(--rtd-green); }
.rtd-result-icon--possible { background: var(--rtd-orange); }
.rtd-result-icon--unlikely { background: var(--rtd-red); }
.rtd-result-text strong { display: block; font-size: 15px; color: var(--rtd-dark); margin-bottom: 2px; }
.rtd-result-text span { font-size: 13px; color: var(--rtd-gray); }
.rtd-result-text b { font-weight: 600; color: var(--rtd-dark); }

/* Loading */
.rtd-check-loading { padding: 20px; text-align: center; color: var(--rtd-gray); font-size: 14px; display: flex; align-items: center; justify-content: center; gap: 10px; }
.rtd-spinner { width: 20px; height: 20px; border: 2px solid var(--rtd-border); border-top-color: var(--rtd-red);
    border-radius: 50%; animation: rtd-spin .6s linear infinite; }
@keyframes rtd-spin { to { transform: rotate(360deg); } }

/* ── Back-Link ── */
.rtd-back-link { display: inline-block; font-size: 14px; color: var(--rtd-red); text-decoration: none;
    margin-bottom: 16px; transition: color .15s; }
.rtd-back-link:hover { color: var(--rtd-red-dk); text-decoration: underline; }

/* ── Steckbrief Hero Image ── */
.rtd-steckbrief-hero { position: relative; width: 100%; min-height: 220px; border-radius: var(--rtd-radius);
    overflow: hidden; background-size: cover; background-position: center 40%; background-color: var(--rtd-dark); margin-bottom: 20px; }
.rtd-steckbrief-hero__overlay { position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.7) 0%, rgba(0,0,0,.15) 60%, transparent 100%);
    display: flex; flex-direction: column; justify-content: flex-end; padding: 24px 28px; }
.rtd-steckbrief-hero__title { font-family: var(--rtd-font-head); font-size: 26px; color: #fff; margin: 0;
    text-shadow: 0 1px 6px rgba(0,0,0,.5); }
.rtd-steckbrief-hero__meta { font-size: 13px; color: rgba(255,255,255,.8); margin: 4px 0 0;
    text-shadow: 0 1px 4px rgba(0,0,0,.5); }

/* ── Leaflet z-index Fix (verhindert Überlappung mit Hauptmenü) ──
   OnAir2 Hauptmenü: position:fixed, z-index:9999+
   Leaflet intern: .leaflet-pane z-index:400, .leaflet-top z-index:1000
   Lösung: Eigener Stacking-Context auf dem Karten-Container */
.rtd-steckbrief-map,
.rtd-karte-wrap,
#rtd-leaflet-map,
#rtd-steckbrief-map {
    position: relative !important;
    z-index: 0 !important;
    isolation: isolate;
}
.rtd-wrap .leaflet-container {
    z-index: 0 !important;
    position: relative !important;
}
/* Leaflet-Popups und Controls innerhalb des Containers — nicht global */
.rtd-wrap .leaflet-pane { z-index: auto !important; }
.rtd-wrap .leaflet-map-pane { z-index: 0 !important; }
.rtd-wrap .leaflet-tile-pane { z-index: 1 !important; }
.rtd-wrap .leaflet-overlay-pane { z-index: 2 !important; }
.rtd-wrap .leaflet-shadow-pane { z-index: 3 !important; }
.rtd-wrap .leaflet-marker-pane { z-index: 4 !important; }
.rtd-wrap .leaflet-tooltip-pane { z-index: 5 !important; }
.rtd-wrap .leaflet-popup-pane { z-index: 6 !important; }
.rtd-wrap .leaflet-top,
.rtd-wrap .leaflet-bottom { z-index: 7 !important; }

/* ── Steckbrief ── */
.rtd-steckbrief-head { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.rtd-steckbrief-icon { width: 48px; height: 48px; border-radius: 10px; background: var(--rtd-red);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rtd-steckbrief-name { font-family: var(--rtd-font-head); font-size: 22px; color: var(--rtd-dark); margin: 0; }
.rtd-steckbrief-meta { font-size: 13px; color: var(--rtd-gray); margin: 4px 0 0; }

.rtd-steckbrief-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 20px; }
@media (max-width: 480px) { .rtd-steckbrief-kpis { grid-template-columns: 1fr; } }
.rtd-kpi-card { padding: 14px; border-radius: 8px; background: var(--rtd-light); }
.rtd-kpi-num { font-size: 24px; font-weight: 600; color: var(--rtd-dark); }
.rtd-kpi-label { font-size: 12px; color: var(--rtd-gray); margin-top: 2px; }

.rtd-steckbrief-map { border-radius: var(--rtd-radius); overflow: hidden; border: 1px solid var(--rtd-border); margin-bottom: 20px;
    min-height: 280px; background: var(--rtd-light); }

.rtd-steckbrief-section { margin-bottom: 20px; }
.rtd-steckbrief-section-title { font-family: var(--rtd-font-head); font-size: 16px; color: var(--rtd-dark); margin: 0 0 10px;
    padding-bottom: 6px; border-bottom: 2px solid var(--rtd-red); display: inline-block; }

/* Sender list */
.rtd-sender-list { font-size: 14px; }
.rtd-sender-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--rtd-border); }
.rtd-sender-item:last-child { border-bottom: none; }
.rtd-sender-name { flex: 1; font-weight: 600; }
.rtd-sender-power { color: var(--rtd-gray); font-size: 13px; min-width: 60px; }
.rtd-sender-alt { color: var(--rtd-gray); font-size: 13px; min-width: 60px; }

/* Events mini */
.rtd-event-list { display: flex; flex-direction: column; gap: 6px; }
.rtd-event-mini { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 8px;
    background: var(--rtd-light); font-size: 14px; }
.rtd-event-date { font-weight: 600; color: var(--rtd-red); min-width: 55px; }
.rtd-event-name { flex: 1; color: var(--rtd-dark); }
.rtd-event-loc { color: var(--rtd-gray); font-size: 13px; }

/* ── Ticker Full ── */
.rtd-ticker-full { border: 1px solid var(--rtd-border); border-radius: var(--rtd-radius); background: var(--rtd-white); overflow: hidden; }
.rtd-ticker-full-head { display: flex; align-items: center; gap: 8px; padding: 14px 16px; border-bottom: 1px solid var(--rtd-border); }
.rtd-ticker-full-title { font-family: var(--rtd-font-head); font-size: 16px; color: var(--rtd-dark); margin: 0; }
.rtd-ticker-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 16px; border-bottom: 1px solid var(--rtd-border); font-size: 14px; }
.rtd-ticker-item:last-child { border-bottom: none; }
.rtd-ticker-item .rtd-dot { margin-top: 5px; }
.rtd-ticker-date { min-width: 70px; color: var(--rtd-gray); font-size: 13px; }
.rtd-ticker-text { color: var(--rtd-dark); }
.rtd-ticker-text strong { font-weight: 600; }
.rtd-ticker-text em { font-style: normal; color: var(--rtd-gray); }

/* ── Ticker Compact (Sidebar) ── */
.rtd-ticker-compact { border: 1px solid var(--rtd-border); border-radius: var(--rtd-radius); background: var(--rtd-white);
    overflow: hidden; max-width: 320px; }
.rtd-ticker-compact-head { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--rtd-border); }
.rtd-ticker-compact-title { font-family: var(--rtd-font-head); font-size: 14px; color: var(--rtd-dark); }
.rtd-ticker-compact-body { padding: 8px 14px; }
.rtd-ticker-compact-item { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--rtd-border); }
.rtd-ticker-compact-item:last-child { border-bottom: none; }
.rtd-ticker-compact-item .rtd-dot { margin-top: 5px; }
.rtd-ticker-compact-info { font-size: 13px; }
.rtd-ticker-compact-info strong { color: var(--rtd-dark); font-weight: 600; }
.rtd-ticker-compact-info span { color: var(--rtd-gray); }
.rtd-ticker-compact-foot { padding: 8px 14px; border-top: 1px solid var(--rtd-border); }
.rtd-ticker-compact-foot a { font-size: 13px; color: var(--rtd-red); text-decoration: none; }
.rtd-ticker-compact-foot a:hover { text-decoration: underline; }

/* ── Sender Toolbar + Filter ── */
.rtd-sender-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px;
    border-bottom: 1px solid var(--rtd-border); background: var(--rtd-light); flex-wrap: wrap; gap: 8px; }
.rtd-sender-count { font-size: 13px; font-weight: 600; color: var(--rtd-dark); }
.rtd-sender-filter label { font-size: 13px; color: var(--rtd-gray); }
.rtd-sender-filter select { font-size: 13px; font-family: var(--rtd-font-body); padding: 4px 8px;
    border: 1px solid var(--rtd-border); border-radius: 4px; background: var(--rtd-white); color: var(--rtd-dark); }

/* ── Pagination ── */
.rtd-pagination { display: flex; align-items: center; justify-content: center; gap: 4px; padding: 14px 16px;
    border-top: 1px solid var(--rtd-border); }
.rtd-pag-btn { width: 32px; height: 32px; border: 1px solid var(--rtd-border); border-radius: 4px; background: var(--rtd-white);
    color: var(--rtd-dark); font-size: 13px; font-family: var(--rtd-font-body); cursor: pointer; transition: all .15s;
    display: inline-flex; align-items: center; justify-content: center; }
.rtd-pag-btn:hover { border-color: var(--rtd-red); color: var(--rtd-red); }
.rtd-pag-btn--active { background: var(--rtd-red); border-color: var(--rtd-red); color: var(--rtd-white); font-weight: 600; }

/* ── Error ── */
.rtd-error { color: var(--rtd-red); font-style: italic; padding: 12px; }

/* ── Leaflet Popup override ── */
.rtd-popup { font-family: var(--rtd-font-body); font-size: 13px; line-height: 1.5; }
.rtd-popup strong { display: block; font-size: 14px; margin-bottom: 4px; }
.rtd-popup-row { display: flex; justify-content: space-between; padding: 2px 0; }
.rtd-popup-row span:last-child { font-weight: 600; }

/* ── Responsive ── */
@media (max-width: 768px) {
    .rtd-table { font-size: 12px; }
    .rtd-table th, .rtd-table td { padding: 8px 6px; }
    .rtd-steckbrief-name { font-size: 18px; }
    .rtd-check-form { flex-wrap: wrap; }
    .rtd-check-input-wrap { flex: 1 1 100%; }
}

@media (max-width: 480px) {
    .rtd-tabs { gap: 0; }
    .rtd-tab { padding: 8px 12px; font-size: 13px; }
    .rtd-steckbrief-head { flex-direction: column; align-items: flex-start; gap: 10px; }
    .rtd-sender-item { flex-wrap: wrap; }
    .rtd-sender-power, .rtd-sender-alt { font-size: 12px; min-width: auto; }
    .rtd-event-mini { flex-wrap: wrap; }
}

/* ══════════════════════════════════════════
   CROWDSOURCE
   ══════════════════════════════════════════ */
.rtd-crowd-wrap { border: 1px solid var(--rtd-border); border-radius: var(--rtd-radius); overflow: hidden; background: var(--rtd-white); }
.rtd-crowd-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px;
    border-bottom: 1px solid var(--rtd-border); }
.rtd-crowd-title { font-family: var(--rtd-font-head); font-size: 18px; color: var(--rtd-dark); margin: 0; }
.rtd-crowd-sub { font-size: 13px; color: var(--rtd-gray); margin: 2px 0 0; }
.rtd-crowd-counter { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--rtd-gray); }
.rtd-crowd-body { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--rtd-border); }
@media (max-width: 640px) { .rtd-crowd-body { grid-template-columns: 1fr; } }
.rtd-crowd-form { padding: 16px 20px; border-right: 1px solid var(--rtd-border); }
@media (max-width: 640px) { .rtd-crowd-form { border-right: none; border-bottom: 1px solid var(--rtd-border); } }
.rtd-crowd-nearby { padding: 16px 20px; }
.rtd-crowd-field { margin-bottom: 14px; }
.rtd-crowd-label { display: block; font-size: 13px; color: var(--rtd-gray); margin-bottom: 6px; }
.rtd-crowd-plz-row { display: flex; gap: 8px; align-items: center; }
.rtd-crowd-ort-display { font-size: 13px; color: var(--rtd-gray); padding: 0 8px; height: 36px; display: flex;
    align-items: center; background: var(--rtd-light); border-radius: 6px; flex: 1; }
.rtd-crowd-ratings { display: flex; gap: 6px; }
.rtd-crowd-rating { flex: 1; padding: 10px 8px; border: 1px solid var(--rtd-border); border-radius: 8px;
    background: var(--rtd-white); cursor: pointer; text-align: center; transition: all .15s; }
.rtd-crowd-rating:hover { border-color: var(--rtd-dark); }
.rtd-crowd-rating--active { border-color: var(--rtd-red); border-width: 2px; }
.rtd-crowd-rating-dot { display: block; width: 12px; height: 12px; border-radius: 50%; margin: 0 auto 4px; }
.rtd-crowd-rating-text { font-size: 12px; font-weight: 600; color: var(--rtd-dark); }
.rtd-crowd-status { padding: 8px 0; font-size: 13px; }
.rtd-crowd-nearby-list { display: flex; flex-direction: column; gap: 4px; }
.rtd-crowd-nearby-empty { font-size: 13px; color: var(--rtd-gray); font-style: italic; }
.rtd-crowd-nearby-item { display: flex; align-items: center; gap: 8px; font-size: 13px; padding: 4px 0; }
.rtd-crowd-nearby-plz { color: var(--rtd-dark); }
.rtd-crowd-nearby-rating { color: var(--rtd-gray); }
.rtd-crowd-nearby-age { margin-left: auto; color: var(--rtd-gray); font-size: 12px; }
.rtd-crowd-footer { padding: 12px 20px; font-size: 13px; background: var(--rtd-light); }

/* ══════════════════════════════════════════
   TIMELINE
   ══════════════════════════════════════════ */
.rtd-timeline-wrap { border: 1px solid var(--rtd-border); border-radius: var(--rtd-radius); overflow: hidden; background: var(--rtd-white); }
.rtd-timeline-header { padding: 20px 24px 8px; }
.rtd-timeline-title { font-family: var(--rtd-font-head); font-size: 18px; color: var(--rtd-dark); margin: 0 0 4px; }
.rtd-timeline-sub { font-size: 13px; color: var(--rtd-gray); margin: 0; }
.rtd-timeline-chart-wrap { padding: 8px 24px; height: 220px; }
.rtd-timeline-slider-wrap { display: flex; align-items: center; gap: 12px; padding: 0 24px 12px; }
.rtd-timeline-slider-label { font-size: 12px; color: var(--rtd-gray); min-width: 36px; }
.rtd-timeline-slider-wrap input[type="range"] { flex: 1; }
.rtd-timeline-detail { padding: 8px 24px 16px; font-size: 14px; color: var(--rtd-dark); line-height: 1.6; }

/* ══════════════════════════════════════════
   HERO BANNER
   ══════════════════════════════════════════ */
.rtd-hero-wrap { position: relative; border-radius: var(--rtd-radius); overflow: hidden; min-height: 280px;
    background-color: #f5f5f5; background-size: cover; background-position: center; }
.rtd-hero-overlay { position: absolute; inset: 0;
    background: rgba(255,255,255,.82);
    border-left: 4px solid var(--rtd-red); }
.rtd-hero-content { position: relative; padding: 36px 32px; display: flex; align-items: center; gap: 28px; min-height: 280px; }
.rtd-hero-text { flex: 1; }
.rtd-hero-subtitle { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--rtd-red); margin-bottom: 8px; }
.rtd-hero-title { font-family: var(--rtd-font-head); font-size: 24px; color: var(--rtd-dark); line-height: 1.3; margin: 0 0 10px; }
.rtd-hero-desc { font-size: 15px; color: var(--rtd-gray); line-height: 1.6; margin: 0 0 12px; }
.rtd-hero-stats { font-size: 13px; color: var(--rtd-gray); margin-bottom: 16px; display: flex; flex-wrap: wrap; gap: 4px; }
.rtd-hero-stats-sep { color: #ccc; }
.rtd-hero-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.rtd-hero-btn { display: inline-flex; align-items: center; gap: 6px; padding: 12px 28px; background: #fff;
    color: var(--rtd-red); font-weight: 600; font-size: 14px; border-radius: 8px; text-decoration: none;
    border: 1px solid var(--rtd-border); transition: background .15s, transform .15s; }
.rtd-hero-btn:hover { background: #f9f9f9; transform: translateY(-1px); border-color: var(--rtd-red); }
.rtd-hero-btn--secondary { background: #fff; color: var(--rtd-red); border: 1px solid var(--rtd-border); }
.rtd-hero-btn--secondary:hover { background: #f9f9f9; border-color: var(--rtd-red); }
.rtd-hero-logo { display: flex; flex-direction: column; align-items: center; gap: 8px; flex-shrink: 0; }
.rtd-hero-logo-img { max-width: 120px; max-height: 70px; border-radius: 6px; padding: 8px;
    background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.rtd-hero-logo-label { font-size: 11px; color: var(--rtd-gray); text-transform: uppercase; letter-spacing: .06em; }

/* ══════════════════════════════════════════
   EMPFANG (Kombination Check + Crowdsource)
   ══════════════════════════════════════════ */
.rtd-empfang-wrap { border: 1px solid var(--rtd-border); border-radius: var(--rtd-radius); overflow: hidden; background: var(--rtd-white); }
.rtd-empfang-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px;
    border-bottom: 1px solid var(--rtd-border); }
.rtd-empfang-title { font-family: var(--rtd-font-head); font-size: 18px; color: var(--rtd-dark); margin: 0; }
.rtd-empfang-sub { font-size: 13px; color: var(--rtd-gray); margin: 2px 0 0; }
.rtd-empfang-input-section { padding: 16px 20px; }
.rtd-empfang-plz-row { display: flex; align-items: center; gap: 8px; }
.rtd-empfang-ort { font-size: 14px; color: var(--rtd-gray); padding-left: 4px; }
.rtd-empfang-prognose { padding: 0 20px 16px; }
.rtd-empfang-prognose-card { display: flex; gap: 14px; align-items: flex-start; padding: 16px; border-radius: 8px; border: 1px solid var(--rtd-border); }
.rtd-empfang-prognose-icon { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    font-size: 16px; font-weight: 700; flex-shrink: 0; }
.rtd-empfang--good .rtd-empfang-prognose-icon { background: #e8f5e9; color: #2e7d32; }
.rtd-empfang--good .rtd-empfang-prognose-card { border-color: #c8e6c9; background: #f9fdf9; }
.rtd-empfang--possible .rtd-empfang-prognose-icon { background: #fff3e0; color: #e65100; }
.rtd-empfang--possible .rtd-empfang-prognose-card { border-color: #ffe0b2; background: #fffdf9; }
.rtd-empfang--unlikely .rtd-empfang-prognose-icon { background: #fbe9e7; color: #c62828; }
.rtd-empfang--unlikely .rtd-empfang-prognose-card { border-color: #ffcdd2; background: #fdf9f9; }
.rtd-empfang--planned .rtd-empfang-prognose-icon { background: #e3f2fd; color: #1565c0; }
.rtd-empfang--planned .rtd-empfang-prognose-card { border-color: #bbdefb; background: #f9fbff; }
.rtd-empfang-prognose-label { font-size: 16px; font-weight: 600; color: var(--rtd-dark); margin-bottom: 2px; }
.rtd-empfang-location { font-size: 13px; color: var(--rtd-gray); }
.rtd-empfang-nearest { font-size: 13px; color: var(--rtd-gray); margin-top: 4px; }
.rtd-empfang-crowd { padding: 0 20px 16px; }
.rtd-empfang-crowd-header { margin-bottom: 10px; }
.rtd-empfang-crowd-header strong { font-size: 14px; color: var(--rtd-dark); }
.rtd-empfang-crowd-header span { font-size: 13px; color: var(--rtd-gray); margin-left: 8px; }
.rtd-empfang-crowd-ratings { display: flex; gap: 6px; }
.rtd-empfang-nearby { padding: 0 20px 16px; }
.rtd-empfang-nearby-header { font-size: 13px; color: var(--rtd-gray); margin-bottom: 8px; font-weight: 600; }

@media (max-width: 640px) {
    .rtd-hero-content { flex-direction: column; padding: 24px 20px; align-items: flex-start; }
    .rtd-hero-title { font-size: 20px; }
    .rtd-hero-logo { flex-direction: row; gap: 8px; }
    .rtd-crowd-ratings, .rtd-empfang-crowd-ratings { flex-wrap: wrap; }
    .rtd-crowd-rating { min-width: calc(50% - 3px); }
    .rtd-empfang-plz-row { flex-wrap: wrap; }
}

/* ── Program Toggle Buttons ── */
.rtd-program-toggles {
    display: flex;
    gap: 6px;
    padding: 10px 12px;
    background: var(--rtd-light);
    border-top: 1px solid var(--rtd-border);
    flex-wrap: wrap;
}
.rtd-prog-toggle {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 2px solid var(--prog-color, var(--rtd-red));
    border-radius: var(--rtd-radius);
    background: transparent;
    cursor: pointer;
    font-family: var(--rtd-font-body);
    font-size: 13px;
    transition: all .15s ease;
    color: var(--rtd-dark);
}
.rtd-prog-toggle:hover {
    background: rgba(0,0,0,.03);
}
.rtd-prog-toggle--off {
    opacity: .35;
    border-style: dashed;
}
.rtd-prog-toggle__dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.rtd-prog-toggle--off .rtd-prog-toggle__dot {
    background: #aaa !important;
}
.rtd-prog-toggle__label {
    font-weight: 600;
}
.rtd-prog-toggle__meta {
    font-size: 11px;
    color: var(--rtd-gray);
    margin-left: 2px;
}

/* ── Gebiete grouped by program ── */
.rtd-gebiete-section { margin-bottom: 20px; }
.rtd-gebiete-section-title {
    font-family: var(--rtd-font-body);
    font-size: 15px;
    font-weight: 600;
    margin: 16px 0 8px;
    color: var(--rtd-dark);
}
.rtd-gebiete-section-count {
    font-weight: 400;
    font-size: 12px;
    color: var(--rtd-gray);
    margin-left: 8px;
}
.rtd-gebiet-card {
    border-left: 3px solid var(--card-accent, var(--rtd-red));
}

@media (max-width: 640px) {
    .rtd-program-toggles { flex-direction: column; }
    .rtd-prog-toggle { justify-content: flex-start; }
}

/* ── Program Badge ── */
.rtd-prog-badge {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: #fff;
    vertical-align: middle;
    margin-right: 4px;
}

/* Hauptkanal toggle no longer always-on */

/* ── Empfang: Per-Programm Verfügbarkeit ── */
.rtd-empfang-programs {
    display: flex;
    gap: 8px;
    margin-top: 10px;
    flex-wrap: wrap;
}
.rtd-empfang-prog-item {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: var(--rtd-radius);
    font-size: 13px;
    background: var(--rtd-light);
    border: 1px solid var(--rtd-border);
}
.rtd-empfang-prog--good { background: var(--rtd-green-bg); border-color: var(--rtd-green); }
.rtd-empfang-prog--possible { background: var(--rtd-orange-bg); border-color: var(--rtd-orange); }
.rtd-empfang-prog--unlikely { opacity: .5; }
.rtd-empfang-prog-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.rtd-empfang-prog-label { font-weight: 600; }
.rtd-empfang-prog-icon { font-size: 14px; }
.rtd-empfang-prog-dist { font-size: 11px; color: var(--rtd-gray); }
