/* Science-Signalsuche (/science/signals), Layout v2 im Stil des Zielscans (target-scan.css).
   Lageleiste oben, darunter Signale + Sonden + Energie | Empfänger | Peilung & Lage. Akzent violett (Science).
   Desktop ab 1280 px fester Bildschirm ohne Seitenrollen (--ssg-h setzt science-signals.js), die Spalten rollen
   in sich, Spektrum, Wasserfall und Lagekarte wachsen mit der Höhe. Tablet 760–1279 px Empfänger oben, darunter
   Signale | Peilung. Smartphone Reiter (data-tab am .ssg). */
.station-main:has(.ssg) { max-width: min(2800px, 100%); }
.ssg { --ssg-violet: #a78bfa; --ssg-violet-hi: #c4b5fd; --ssg-amber: #ffb347; --ssg-yellow: #f59e0b; --ssg-cyan: #06b6d4;
  --ssg-green: #10b981; --ssg-red: #ef4444; --ssg-dim: #374151; --ssg-well: #111827; --ssg-deep: #0d1520; --ssg-screen: #000510;
  --ssg-tint: rgba(167, 139, 250, .12);
  --ssg-spec-h: 200px; --ssg-water-h: 120px; --ssg-dial: 108px;
  display: flex; flex-direction: column; gap: 12px; min-width: 0; font-family: var(--font-mono, 'JetBrains Mono', monospace); }
.ssg-label { color: var(--text-muted); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: var(--tracking-label);
  display: flex; justify-content: space-between; gap: 8px; }
.ssg-label b { color: var(--text-primary); font-weight: 600; text-transform: none; letter-spacing: 0; font-variant-numeric: tabular-nums;
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ssg-hint { color: var(--text-muted); font-size: var(--text-xs); margin: 0; text-wrap: pretty; }
.ssg-amber { color: var(--ssg-amber); text-transform: none; letter-spacing: 0; }
.ssg-error { color: var(--accent-red); margin: 0; }
.ssg-ico { width: 16px; height: 16px; flex: none; fill: none; stroke: var(--ssg-violet); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ssg-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ssg [hidden] { display: none !important; }

/* ── Lageleiste ── */
.ssg-hud { background: var(--bg-panel); border: 1px solid var(--border-color); border-left: 3px solid var(--ssg-violet);
  border-radius: var(--radius-lg); overflow: hidden; flex: none; }
.ssg-hud__row { display: flex; flex-wrap: wrap; }
.ssg-hud__cell { padding: 14px 16px; min-width: 0; border-right: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); margin-bottom: -1px; }
.ssg-hud__sel { --stage: var(--text-muted); flex: 1 1 280px; display: flex; gap: 14px; align-items: center; }
.ssg-hud__ring { width: 52px; height: 52px; flex: none; border-radius: 50%; border: 1px solid var(--stage); display: grid; place-items: center;
  color: var(--stage); box-shadow: 0 0 10px color-mix(in srgb, var(--stage) 25%, transparent), inset 0 0 10px color-mix(in srgb, var(--stage) 25%, transparent); }
.ssg-hud__ring svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ssg-hud__who { min-width: 0; display: grid; gap: 3px; }
.ssg-hud__tags { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ssg-hud__stage { font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--stage); }
.ssg-hud__guard { font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--ssg-red);
  border: 1px solid var(--ssg-red); padding: 0 5px; border-radius: 2px; }
.ssg-hud__name { font-size: 1.3rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ssg-hud__sub { font-size: var(--text-xs); color: var(--text-muted); letter-spacing: .04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ssg-hud__job { flex: 2 1 380px; display: grid; gap: 8px; }
.ssg-hud__jobrow { display: flex; align-items: center; gap: 14px; }
.ssg-hud__pct { font-size: 2.2rem; font-weight: 700; color: var(--ssg-violet); text-shadow: 0 0 12px rgba(167, 139, 250, .55);
  font-variant-numeric: tabular-nums; min-width: 4.6ch; }
.ssg-hud__bar { flex: 1; min-width: 0; display: grid; gap: 4px; }
.ssg-segs { display: flex; gap: 2px; height: 16px; }
.ssg-segs > span { flex: 1; border-radius: 1px; background: #1a2333; }
.ssg-segs > span.is-on { background: var(--ssg-violet); box-shadow: 0 0 5px rgba(167, 139, 250, .75); }
.ssg-ladder { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.ssg-ladder > span { font-size: 9px; letter-spacing: .08em; line-height: 14px; text-transform: uppercase; color: var(--ssg-dim);
  border-left: 1px solid currentColor; padding-left: 4px; white-space: nowrap; overflow: hidden; }
.ssg-hud__kpis { flex: 1 1 300px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; align-content: center; border-right: 0; }
.ssg-kpi { display: grid; gap: 3px; min-width: 0; --kpi: var(--text-primary); }
.ssg-kpi .ssg-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
.ssg-kpi__v { font-size: 1rem; font-weight: 600; color: var(--kpi); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ssg-kpi__bar { display: block; height: 3px; background: var(--ssg-well); border-radius: 2px; overflow: hidden; }
.ssg-kpi__bar > span { display: block; height: 100%; width: 0; background: var(--kpi); transition: width .25s linear; }
.ssg-hud__msg { display: flex; gap: 10px; align-items: center; padding: 7px 16px; border-top: 1px solid var(--border-color);
  background: rgba(0, 0, 0, .18); font-size: var(--text-sm); }
.ssg-hud__msg > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ssg-hud__msgkey { font-size: var(--text-xs); color: var(--ssg-violet); letter-spacing: var(--tracking-label); font-weight: 700; text-transform: uppercase; flex: none; }

/* ── Panels ── */
.ssg-grid { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); min-width: 0; }
.ssg-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.ssg-panel { display: flex; flex-direction: column; min-width: 0; background: var(--bg-panel); border: 1px solid var(--border-color);
  border-left: 3px solid var(--ssg-violet); border-radius: var(--radius-lg); }
.ssg-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 8px 12px; flex-wrap: wrap; padding: 8px 16px;
  border-bottom: 1px solid var(--border-color); flex: none; }
.ssg-panel__title { display: flex; align-items: center; gap: 8px; margin: 0; font-size: var(--text-sm); font-weight: 600; text-transform: uppercase;
  letter-spacing: var(--tracking-wide); color: var(--text-primary); }
.ssg-panel__body { padding: 14px; display: grid; gap: 12px; align-content: start; min-width: 0; }
.ssg-screen { position: relative; border: 1px solid var(--border-color); border-radius: var(--radius-lg); background: var(--ssg-screen); overflow: hidden; }
/* Leinwand absolut: zählt nicht zur Größe des Rahmens (sonst wächst der Rahmen mit der Pixeldichte der Leinwand). */
.ssg-screen canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }

/* Signale */
.ssg-filters { padding: 8px 10px 0; display: flex; gap: 4px; flex-wrap: wrap; flex: none; }
.ssg-filters button { display: flex; align-items: center; gap: 5px; min-height: 28px; padding: 0 8px; font: inherit; font-size: var(--text-xs);
  font-weight: 700; letter-spacing: .06em; text-transform: uppercase; border-radius: 3px; border: 1px solid var(--border-color);
  background: transparent; color: var(--text-muted); cursor: pointer; }
.ssg-filters button[aria-pressed="true"] { border-color: var(--ssg-violet); background: var(--ssg-tint); color: var(--text-primary); }
.ssg-filters i { width: 6px; height: 6px; border-radius: 50%; background: var(--dot); }
.ssg-filters small { color: var(--text-muted); font-weight: 400; font-size: inherit; }
.ssg-list { padding: 10px; display: grid; gap: 6px; align-content: start; max-height: 560px; overflow-y: auto;
  scrollbar-width: thin; scrollbar-color: var(--border-color) transparent; }
.ssg-sig { --c: var(--text-muted); display: grid; grid-template-columns: 4px minmax(0, 1fr) auto; gap: 10px; align-items: center;
  padding: 9px 12px 9px 0; min-height: 60px; border: 1px solid var(--border-color); background: var(--ssg-well); border-radius: var(--radius-lg);
  cursor: pointer; text-align: left; font: inherit; color: inherit; overflow: hidden; transition: border-color .15s, background .15s; width: 100%; }
.ssg-sig:hover { border-color: rgba(167, 139, 250, .45); }
.ssg-sig.is-sel { border-color: var(--ssg-violet); background: rgba(167, 139, 250, .10);
  box-shadow: 0 0 0 1px rgba(167, 139, 250, .25), 0 0 12px rgba(167, 139, 250, .15); }
.ssg-sig__stripe { align-self: stretch; margin: -9px 0; background: var(--c); }
.ssg-sig__main { min-width: 0; display: grid; gap: 4px; }
.ssg-sig__name { display: flex; gap: 6px; align-items: center; min-width: 0; font-weight: 600; font-size: var(--text-sm); }
.ssg-sig__name > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ssg-sig__guard { flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--ssg-red); box-shadow: 0 0 5px var(--ssg-red); }
.ssg-sig__meta { font-size: var(--text-xs); color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ssg-sig__ladder { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.ssg-sig__ladder > span { height: 3px; border-radius: 1px; background: var(--border-color); }
.ssg-sig__ladder > span.is-on { background: var(--c); }
.ssg-sig__side { text-align: right; display: grid; gap: 2px; }
.ssg-sig__km { font-size: var(--text-md); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ssg-sig__stage { font-size: 0.65rem; letter-spacing: .08em; text-transform: uppercase; color: var(--c); white-space: nowrap; }
.ssg-empty { color: var(--text-muted); font-size: var(--text-sm); padding: 8px 4px; }

/* Sonden */
.ssg-probe { flex: none; }
.ssg-probe__body { gap: 10px; padding: 12px 14px; }
.ssg-pips { display: flex; gap: 4px; }
.ssg-pips > span { flex: 1; height: 22px; border-radius: 2px; border: 1px solid var(--border-color); }
.ssg-pips > span.is-on { border-color: var(--ssg-violet); background: rgba(167, 139, 250, .22); box-shadow: inset 0 0 6px rgba(167, 139, 250, .35); }
.ssg-pips > span.is-go { border-color: var(--ssg-amber); background: rgba(255, 179, 71, .18); }
.ssg-more summary { cursor: pointer; color: var(--text-muted); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: var(--tracking-label); }
.ssg-more p { margin-top: 6px; }
.ssg-energy { flex: none; }
.ssg-energy > summary { cursor: pointer; list-style: none; border-bottom: 0; }
.ssg-energy > summary::-webkit-details-marker { display: none; }
.ssg-energy > summary .ssg-panel__title::after { content: '▸'; color: var(--text-muted); margin-left: 2px; }
.ssg-energy[open] > summary { border-bottom: 1px solid var(--border-color); }
.ssg-energy[open] > summary .ssg-panel__title::after { content: '▾'; }
.ssg-energy__body { padding: 10px 12px; }

/* Empfänger */
.ssg-rx { position: relative; transition: border-color .3s; }
.ssg-rx.is-lockable { border-color: rgba(196, 181, 253, .6); border-left-color: var(--ssg-violet-hi); }
.ssg-rx.is-lockable::after { content: ''; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none; border: 1px solid var(--ssg-violet-hi);
  box-shadow: 0 0 16px rgba(167, 139, 250, .5), inset 0 0 12px rgba(167, 139, 250, .22); animation: ssg-pulse 2.4s ease-in-out infinite; }
@keyframes ssg-pulse { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
.ssg-bands { display: grid; gap: 6px; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); }
.ssg-band { display: grid; gap: 4px; text-align: left; padding: 8px 10px; font: inherit; color: inherit; border-radius: var(--radius-sm);
  border: 1px solid var(--border-color); background: var(--ssg-well); cursor: pointer; min-width: 0; }
.ssg-band:hover { border-color: rgba(167, 139, 250, .5); }
.ssg-band.is-on { border-color: var(--ssg-violet); background: var(--ssg-tint); box-shadow: 0 0 10px rgba(167, 139, 250, .2); }
.ssg-band__top { display: flex; justify-content: space-between; align-items: center; gap: 6px; }
.ssg-band__name { font-size: var(--text-xs); font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--text-muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ssg-band.is-on .ssg-band__name { color: var(--text-primary); }
.ssg-band__cnt { flex: none; white-space: nowrap; font-size: 0.65rem; color: var(--ssg-dim); font-variant-numeric: tabular-nums; }
.ssg-band__cnt.is-some { color: var(--ssg-violet); }
.ssg-band__range { font-size: 0.65rem; color: var(--text-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ssg-band__noise { display: flex; gap: 1px; height: 4px; }
.ssg-band__noise > span { flex: 1; background: var(--ssg-well); }
.ssg-band__noise > span.is-on { background: var(--ssg-dim); }
.ssg-band.is-on .ssg-band__noise > span.is-on { background: var(--ssg-violet); }
.ssg-spanrow { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ssg-seg { display: inline-flex; border: 1px solid var(--border-color); border-radius: var(--radius-sm); overflow: hidden; }
.ssg-seg button { min-height: 28px; padding: 0 12px; font: inherit; font-size: var(--text-xs); font-weight: 700; font-variant-numeric: tabular-nums;
  border: 0; border-right: 1px solid var(--border-color); background: transparent; color: var(--text-muted); cursor: pointer; }
.ssg-seg button:last-child { border-right: 0; }
.ssg-seg button[aria-pressed="true"] { background: var(--ssg-violet); color: #0a0e17; }
.ssg-spanrow .ssg-hint.is-ok { color: var(--ssg-violet); }
.ssg-fig { margin: 0; display: grid; gap: 6px; }
.ssg-screen--spec { height: var(--ssg-spec-h); }
.ssg-screen--spec canvas { cursor: crosshair; }
.ssg-screen--water { height: var(--ssg-water-h); background: #05070c; }
.ssg-tune { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); align-items: stretch; }
.ssg-dialbox { padding: 10px 12px; border: 1px solid var(--border-color); background: var(--ssg-well); border-radius: var(--radius-lg);
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; }
.ssg-dial { width: var(--ssg-dial); aspect-ratio: 1; border-radius: 50%; cursor: grab; touch-action: none; }
.ssg-dial:focus-visible { outline: 2px solid var(--focus-ring, #7dd3fc); outline-offset: 2px; }
.ssg-dial svg { width: 100%; height: 100%; overflow: visible; display: block; }
.ssg-dialinfo { display: grid; gap: 8px; min-width: 0; }
.ssg-freq { font-size: 1.6rem; font-weight: 700; color: var(--ssg-amber); text-shadow: 0 0 10px rgba(255, 179, 71, .45);
  font-variant-numeric: tabular-nums; white-space: nowrap; }
.ssg-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.ssg-steps button { min-height: 28px; font: inherit; font-size: var(--text-xs); font-weight: 700; border: 1px solid var(--border-color);
  background: var(--ssg-deep); color: var(--text-primary); border-radius: 3px; cursor: pointer; padding: 0 2px; }
.ssg-steps button:hover { border-color: var(--ssg-amber); color: var(--ssg-amber); }
.ssg-lock { padding: 12px; border: 1px solid var(--border-color); background: var(--ssg-well); border-radius: var(--radius-lg);
  display: grid; gap: 8px; align-content: start; transition: border-color .3s, background .3s; }
.ssg-lock__head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ssg-lock__title { font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); }
.ssg-lock .ssg-hint b { color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ssg-lock.is-snr .ssg-hint b { color: var(--ssg-violet); }
.ssg-lock.is-ready { border-color: rgba(196, 181, 253, .6); background: rgba(167, 139, 250, .08); }
.ssg-lock.is-ready .ssg-lock__title { color: #ede9fe; text-shadow: 0 0 6px var(--ssg-violet); }
.ssg-snr { display: flex; gap: 3px; height: 10px; }
.ssg-snr > span { flex: 1; border-radius: 1px; background: var(--ssg-deep); }
.ssg-snr > span.is-low { background: var(--ssg-yellow); box-shadow: 0 0 5px var(--ssg-yellow); }
.ssg-snr > span.is-on { background: var(--ssg-violet); box-shadow: 0 0 5px var(--ssg-violet); }
.ssg-under { font-size: var(--text-sm); color: var(--text-muted); }
.ssg-lock.is-ready .ssg-under { color: var(--ssg-yellow); font-weight: 600; }
.ssg-conds { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.ssg-conds > span { display: flex; align-items: center; justify-content: center; font-size: 9px; letter-spacing: .04em; text-transform: uppercase;
  padding: 3px 0; border-radius: 2px; border: 1px solid var(--ssg-dim); color: var(--ssg-dim); white-space: nowrap; overflow: hidden; }
.ssg-conds > span.is-ok { border-color: var(--ssg-violet); color: var(--ssg-violet); background: var(--ssg-tint); }
.ssg-lock__btn { width: 100%; justify-content: center; }

/* Peilung & Lage */
.ssg-bear { container-type: inline-size; }
.ssg-bear__body { grid-template-columns: minmax(0, 1fr); }
.ssg-bear__mapcol, .ssg-bear__info { display: grid; gap: 12px; align-content: start; min-width: 0; }
.ssg-mapbox { display: flex; justify-content: center; min-height: 0; }
.ssg-screen--map { aspect-ratio: 1; width: 100%; max-width: 460px; }
.ssg-screen--map[style] { aspect-ratio: auto; }
.ssg-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: var(--text-xs); color: var(--text-muted); }
.ssg-legend > span { display: flex; align-items: center; gap: 6px; }
.ssg-legend i { width: 14px; height: 3px; border-radius: 2px; }
.ssg-legend__ship { background: var(--ssg-amber); box-shadow: 0 0 4px var(--ssg-amber); }
.ssg-legend__bear { background: var(--ssg-yellow); }
.ssg-legend__est { background: var(--ssg-violet); box-shadow: 0 0 4px var(--ssg-violet); }
.ssg-facts { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.ssg-fact { --c: var(--text-primary); border: 1px solid var(--border-color); background: var(--ssg-well); border-radius: var(--radius-lg);
  padding: 9px 11px; display: grid; gap: 5px; min-width: 0; }
.ssg-fact__k { font-size: 0.65rem; font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); }
.ssg-fact__v { font-size: 1rem; font-weight: 600; color: var(--c); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ssg-fact__bar { display: block; height: 3px; background: var(--ssg-deep); border-radius: 2px; overflow: hidden; }
.ssg-fact__bar > span { display: block; height: 100%; background: var(--c); }
.ssg-bear__hint { font-size: var(--text-sm); }
.ssg-bear__hint.is-warn { color: var(--ssg-yellow); }
.ssg-bear__hint.is-ok { color: var(--ssg-green); }
.ssg-report { border: 1px solid var(--border-color); background: var(--ssg-well); border-radius: var(--radius-lg); padding: 10px 12px; display: grid; gap: 6px; }
.ssg-report.is-done { border-color: rgba(16, 185, 129, .35); background: rgba(16, 185, 129, .05); }
.ssg-report__head { display: flex; justify-content: space-between; font-size: 0.65rem; font-weight: 700; letter-spacing: var(--tracking-label);
  text-transform: uppercase; color: var(--text-muted); }
.ssg-report__chip { color: var(--chip, var(--text-muted)); font-weight: 400; letter-spacing: .04em; border: 1px solid currentColor; padding: 0 6px;
  border-radius: 2px; text-transform: none; }
.ssg-report__row { display: flex; justify-content: space-between; gap: 10px; font-size: var(--text-sm); border-bottom: 1px solid rgba(159, 194, 255, .08); }
.ssg-report__row > span:first-child { color: var(--text-muted); white-space: nowrap; }
.ssg-report__row > span:last-child { text-align: right; font-variant-numeric: tabular-nums; color: var(--c, var(--text-primary)); overflow-wrap: anywhere; }
.ssg-report__row.is-cipher > span:last-child { color: rgba(74, 222, 128, .55); letter-spacing: .04em; }
/* Breite Spalte: Karte links, Kennwerte und Befund rechts */
@container (min-width: 600px) {
  .ssg-bear__body { grid-template-columns: minmax(0, 1.5fr) minmax(220px, 1fr); align-items: start; }
}

@media (prefers-reduced-motion: reduce) {
  .ssg-rx.is-lockable::after { animation: none; }
}

/* ── Smartphone (unter 760 px): Reiter, eine Spalte ── */
.ssg-tabs { display: none; }
@media (max-width: 759px) {
  .ssg { --ssg-spec-h: 170px; --ssg-water-h: 90px; --ssg-dial: 96px; }
  .ssg-tabs { position: sticky; top: var(--alert-bar-h, 0px); z-index: 5; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px;
    padding: 4px; background: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: var(--radius-md); }
  .ssg-tabs button { min-height: 44px; border: 1px solid transparent; background: transparent; color: var(--text-muted);
    border-radius: var(--radius-sm); font: inherit; font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-label);
    text-transform: uppercase; cursor: pointer; display: grid; gap: 1px; place-items: center; }
  .ssg-tabs button small { font-size: 9px; font-weight: 400; color: var(--text-muted); letter-spacing: .04em; text-transform: none; }
  .ssg-tabs button[aria-selected="true"] { border-color: var(--ssg-violet); background: var(--ssg-tint); color: var(--text-primary); }
  .ssg[data-tab="signals"] [data-pane]:not([data-pane="signals"]),
  .ssg[data-tab="rx"] [data-pane]:not([data-pane="rx"]),
  .ssg[data-tab="bear"] [data-pane]:not([data-pane="bear"]) { display: none; }
  .ssg-hud__cell { border-right: 0; }
  .ssg-hud__sel { padding: 10px 12px; }
  .ssg-hud__job { padding: 10px 12px; }
  .ssg-hud__kpis { padding: 10px 12px; }
  .ssg-hud__pct { font-size: 1.6rem; }
  .ssg-hud__name { font-size: 1.1rem; }
  .ssg-panel__body { padding: 12px; }
  .ssg-bands { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ssg-steps button, .ssg-seg button, .ssg-filters button { min-height: 40px; }
  .ssg-conds > span { font-size: 8px; }
  .ssg-list { max-height: none; }
}

/* ── Tablet (760–1279 px): Empfänger oben über die ganze Breite, darunter Signale | Peilung ── */
@media (min-width: 760px) and (max-width: 1279px) {
  .ssg-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); grid-template-areas: "rx rx" "signals bear"; align-items: start; }
  .ssg-col--left { grid-area: signals; }
  .ssg-rx { grid-area: rx; }
  .ssg-bear { grid-area: bear; }
  .ssg-list { max-height: 520px; }
}

/* ── Desktop ab 1280 px: fester Bildschirm, kein Seitenrollen; die Spalten rollen in sich ── */
@media (min-width: 1280px) {
  .ssg { height: var(--ssg-h, auto); min-height: 620px; }
  /* --ssg-h zieht nur 16 px Rand ab, .station-main hat unten 24 px Innenabstand: sonst scrollt die Seite um 8 px. */
  .ssg[style*="--ssg-h"] { height: calc(var(--ssg-h) - 8px); }
  .ssg-grid { flex: 1 1 auto; min-height: 0; grid-template-columns: minmax(280px, 330px) minmax(0, 1.3fr) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr); align-items: stretch; }
  .ssg-col, .ssg-panel { min-height: 0; }
  /* Links: Liste füllt und rollt, Sonden und Energie bleiben stehen */
  .ssg-signals { flex: 1 1 auto; min-height: 240px; }
  .ssg-list { flex: 1 1 0; max-height: none; min-height: 120px; }
  .ssg-col--left { overflow-y: auto; scrollbar-width: thin; }
  /* Mitte: Spektrum und Wasserfall wachsen mit der Höhe, Regler und Erfassen unten */
  .ssg-rx__body { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow-y: auto; scrollbar-width: thin; }
  .ssg-rx__body > * { flex: none; }
  .ssg-rx__body > .ssg-fig { flex: 1 1 auto; min-height: 220px; grid-template-rows: auto minmax(110px, 1.7fr) minmax(70px, 1fr); }
  .ssg-screen--spec, .ssg-screen--water { height: auto; min-height: 0; }
  /* Rechts: Karte so groß, wie Breite und Höhe es zulassen (Kantenlänge setzt science-signals.js, fitMap);
     Kennwerte und Befund rollen nur, wenn es gar nicht reicht */
  .ssg-bear__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; scrollbar-width: thin; }
  .ssg-screen--map { max-width: none; flex: none; }
}
/* Schmale Desktops (1280–1599 px): Bandkacheln einzeilig, schmalere linke Spalte */
@media (min-width: 1280px) and (max-width: 1599px) {
  .ssg-grid { grid-template-columns: minmax(250px, 290px) minmax(0, 1.3fr) minmax(0, 1fr); }
  .ssg-bands { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
  .ssg-band { padding: 5px 8px; gap: 2px; }
  .ssg-band__range, .ssg-band__noise { display: none; }
  .ssg-spanrow .ssg-hint { display: none; }
  .ssg-tune { grid-template-columns: minmax(0, 1fr); }
  .ssg-dialbox { padding: 8px 10px; }
  .ssg-steps { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
/* Breite Bildschirme (1920 und mehr): mehr Platz für die Signalliste */
@media (min-width: 1800px) {
  .ssg-grid { grid-template-columns: minmax(300px, 380px) minmax(0, 1.3fr) minmax(0, 1fr); }
}
/* Niedrige Bildschirme (Laptop): kleinere Regler, kompakte Lageleiste */
@media (min-width: 1280px) and (max-height: 860px) {
  .ssg { --ssg-dial: 84px; }
  .ssg-hud__cell { padding: 10px 14px; }
  .ssg-hud__pct { font-size: 1.7rem; }
  .ssg-panel__body { padding: 10px 12px; gap: 10px; }
  .ssg-freq { font-size: 1.3rem; }
  .ssg-more { display: none; }
}
/* Hohe Bildschirme: größerer Regler */
@media (min-width: 1280px) and (min-height: 1060px) {
  .ssg { --ssg-dial: 124px; }
}
