/* AFU-244: ein Grün für „Empfang“ und „an“: die VFO-Anzeige bei Empfang, aktive Knöpfe, RX-Marke und Lampen.
   Schrift auf dem Grün dunkel (#0a0e1f, Kontrast ~8:1; weiß wären ~2,3:1). */
:root { --rm-an: #34c46a; --rm-an-schrift: #0a0e1f; }
/* Fernbedienung (/remote). Layout after the tool-page pattern of the design
   guide: dark header with the frequency, meters, waterfall with a control
   panel, button row, then the rig's control groups as boxes.
   Own classes only (rm-), colours from the tokens in style.css. */

.rm-app { margin-top: 1rem; --rm-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.rm-app .note { margin-bottom: 0.8rem; }
.rm-app .mono, .rm-einstellungen .mono { font-family: var(--rm-mono); }

/* ------------------------------------------------------------ VFO */
.rm-vfo-zeile { display: flex; align-items: center; gap: 0.6rem; }
.rm-vfo-name { font-family: var(--rm-mono); color: #8a93b3; font-weight: 700; width: 1ch; }
.rm-freq {
  font-family: var(--rm-mono); font-size: 2.4rem; font-weight: 700; line-height: 1.1;
  letter-spacing: 0.02em; color: #eef0fa; border: 1px solid transparent; border-radius: 6px;
  padding: 0.05rem 0.35rem; cursor: ns-resize; user-select: none; white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.rm-freq.klein { font-size: 1.25rem; color: #b8c0de; }
.rm-freq:focus { outline: none; }
.rm-freq:focus-visible { border-color: var(--accent); }   /* AFU-186: nur bei Tastaturbedienung */
.rm-freq .ziffer { display: inline-block; border-radius: 3px; }
.rm-freq .ziffer:hover { background: #1c2547; }
.rm-freq .trenner { color: #6b7599; }
.rm-freq .fuehrend { color: #3a4468; }
.rm-freq input {
  font: inherit; letter-spacing: inherit; background: #151b35; color: #eef0fa; border: 0;
  border-radius: 4px; width: 11ch; padding: 0;
}
.rm-freq input:focus { outline: none; }
.rm-modus {
  background: #2f6fed; color: #fff; border: 0; border-radius: 6px; padding: 0.3rem 0.5rem;
  font: inherit; font-weight: 700; font-size: 0.85rem; letter-spacing: 0.04em;
}
.rm-stationswahl {
  background: #151b35; color: #eef0fa; border: 1px solid #2a3358; border-radius: 6px;
  padding: 0.25rem 0.5rem; font: inherit; font-size: 1.1rem; font-weight: 600; max-width: 100%;
}
.rm-geraet { color: #8a93b3; font-size: 0.9rem; display: flex; align-items: center; gap: 0.35rem; }
/* AFU-61: Auslastung der Station unter dem Gerät */
.rm-auslastung { display: flex; gap: 0.8rem; font-size: 0.78rem; color: #8a93b3; font-variant-numeric: tabular-nums; }
.rm-auslastung[hidden] { display: none; }
.rm-auslastung .hoch { color: #e3b341; }
.rm-auslastung .voll { color: #f87171; font-weight: 600; }
/* icon key behind the version: look for a new afu-remote now */
.rm-pruefen { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; padding: 0;
  border-radius: 6px; cursor: pointer; background: transparent; border: 1px solid #2a3358; color: #8a93b3; }
.rm-pruefen:hover, .rm-pruefen:focus-visible { color: #eef0fa; border-color: #4a5590; }
.rm-pruefen[hidden] { display: none; }
.rm-pruefen.laeuft svg { animation: rm-dreh 0.8s linear infinite; }
.rm-lampe {
  padding: 0.3rem 0.9rem; border-radius: 6px; border: 1px solid #2a3358; font-size: 0.85rem;
  font-weight: 700; letter-spacing: 0.05em; min-width: 3.6rem; text-align: center;
}
/* AFU-143/144: Senden rot, Signal grün, sonst weiß (freqFarbe) */
.rm-freq.rx { color: var(--rm-an); }
.rm-freq.tx { color: #f25555; }
.rm-freq.rx .trenner { color: #1f7a43; }
.rm-freq.tx .trenner { color: #9a3434; }
.rm-lampe.an { color: var(--rm-an); border-color: var(--rm-an); }
.rm-lampe.aus { color: #8a93b3; }
.rm-lampe.warn { color: #d6a10b; border-color: #d6a10b; }
/* AFU-132: Spannung neben der Verbindung, ruhiger als die Lampe */
.rm-spannung { padding: 0.3rem 0.6rem; border-radius: 6px; border: 1px solid var(--border); font-size: 0.85rem; color: var(--muted); }
.rm-spannung[hidden] { display: none; }
/* ------------------------------------------------------------ meters */
/* Pegel links, so breit wie er etwas zeigt, die Regler rechts daneben als Leiste.
   Am Transceiver steht unter dem S-Meter das Feld PO/SWR/ALC/NF, alle bleiben sichtbar. */
.rm-meter {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; align-content: center;
  border: 1px solid var(--border); border-radius: 9px; background: var(--bg2); padding: 0.55rem 0.8rem;
}
.rm-meter-kopf { display: flex; justify-content: space-between; font-size: 0.8rem; color: var(--muted); margin-bottom: 0.2rem; }
.rm-meter-kopf .mono { color: var(--fg); font-weight: 600; }
/* Meter bars with some depth: a recessed track, a lit fill with a glossy
   top edge and a soft glow, and LED segments laid over both. The colour
   zones stay fixed to the scale (background-size on the full width), so a
   short bar is green and only a long one reaches yellow and red. */
.rm-balken {
  position: relative; height: 0.9rem; border-radius: 5px; overflow: hidden;
  background: linear-gradient(180deg, #05070f, #111731 60%, #0b1024);
  border: 1px solid #1f2849;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.7), 0 1px 0 rgba(255, 255, 255, 0.05);
}
.rm-balken > div {
  --voll: 0;
  height: 100%; width: 0; border-radius: 4px 2px 2px 4px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0.08) 45%, rgba(0, 0, 0, 0.25)),
    linear-gradient(90deg, #1f9d4c 0, #3bd16f 45%, #e8b923 62%, #f08a24 78%, #ef4444 90%);
  background-size: 100% 100%, var(--breite, 100vw) 100%;
  box-shadow: 0 0 8px rgba(59, 209, 111, 0.35);
  transition: width 0.12s linear;
}
.rm-balken::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(90deg, transparent 0 7px, rgba(5, 7, 15, 0.55) 7px 9px);
}
#rm-balken-s { height: 1.1rem; }
#rm-balken-s > div {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0.08) 45%, rgba(0, 0, 0, 0.25)),
    linear-gradient(90deg, #2f6fed, #5b7cff 55%, #9b6bff);
  box-shadow: 0 0 10px rgba(91, 124, 255, 0.45);
}
.rm-skala { display: flex; justify-content: space-between; font-size: 0.7rem; color: var(--muted); padding: 0.1rem 0.2rem 0; }
.rm-meter-klein { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.35rem 1rem; }
.rm-meter-klein > div { display: grid; grid-template-columns: 2.6rem minmax(0, 1fr) 4.6rem; align-items: center; gap: 0.4rem; font-size: 0.75rem; color: var(--muted); }
.rm-mz { text-align: right; color: var(--fg); font-size: 0.75rem; white-space: nowrap; }
.rm-meter-werte { font-size: 0.78rem; color: var(--muted); white-space: normal; }
.rm-meter-werte:empty { display: none; }

/* ----------------------------------------------- device test (audio tab) */
/* One under the other: device names (e.g. "Microphone Array (Qualcomm(R) ...)")
   are long, and a select is as wide as its longest option. width: 0 plus grow
   lets it fill the row instead, the name is cut off, the test key stays visible. */
.rm-zeile.rm-geraete { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.9rem; }
.rm-geraete > .field { min-width: 0; }
.rm-geraete .feld-zeile select { flex: 1 1 auto; width: 0; min-width: 0; text-overflow: ellipsis; }
.rm-geraete .feld-zeile { flex-wrap: nowrap; }
.rm-geraete .feld-zeile .btn-sm { flex: 0 0 auto; min-width: 5.5rem; }
.rm-test-knopf[aria-pressed="true"] { border-color: var(--accent); color: var(--fg);
  background: color-mix(in srgb, var(--accent) 22%, transparent); }
.rm-test-pegel { display: grid; grid-template-columns: minmax(0, 1fr) 5.2rem; gap: 0.5rem;
  align-items: center; margin-top: 0.45rem; }
.rm-test-pegel .rm-balken > div { transition: width 0.05s linear; }
.rm-test-wert { text-align: right; font-size: 0.78rem; color: var(--fg); white-space: nowrap;
  font-variant-numeric: tabular-nums; }
.rm-test-wert.rm-zu-laut { color: #ef4444; font-weight: 600; }
#rm-geraete-warnung { margin: 0 0 0.7rem; }

/* --------------------------------------------------------- waterfall */
/* Höhe der Wasserfallfläche: seit AFU-185 füllt der Wasserfall die Mitte des Gerüsts (siehe unten); --rm-wf-hoehe
   ist dort 0 und gilt nur noch für die Mindesthöhen der Anzeigearten. */
.rm-wf-zeile { --rm-wf-hoehe: 0px; }
.rm-wf { min-width: 0; display: flex; flex-direction: column; position: relative; }
.rm-wf-skala {
  position: relative; height: 1.3rem; font-size: 0.72rem; color: var(--muted);
  background: var(--bg2); border: 1px solid var(--border); border-bottom: 0; border-radius: 9px 9px 0 0;
}
.rm-wf-skala span { position: absolute; top: 0.2rem; transform: translateX(-50%); white-space: nowrap; }
.rm-spektrum { display: block; width: 100%; height: 5rem; background: #05070f; }
.rm-wasserfall {
  display: block; width: 100%; flex: 1 1 auto; height: 0; min-height: var(--rm-wf-hoehe); background: #000;
  border-radius: 0 0 9px 9px; cursor: crosshair; image-rendering: pixelated;
}
.rm-wf-info {
  position: absolute; right: 0.5rem; bottom: 0.4rem; font-size: 0.75rem; color: #eef0fa;
  background: rgba(10, 14, 31, 0.75); padding: 0.1rem 0.4rem; border-radius: 4px; pointer-events: none;
}
.rm-wf-info:empty { display: none; }
/* AFU-56: 3D-Ansicht an Stelle von Spektrum und Wasserfall, gleich hoch wie beide zusammen */
/* AFU-62: über dem Wasserfall, an Stelle des Spektrums */
.rm-3d { position: relative; flex: 0 0 auto; height: 11rem; background: #05070f; overflow: hidden; }
/* AFU-64: Anzeigearten. Der Kasten bleibt gleich hoch: was wegfällt, bekommen die anderen.
   Ton: Spektrum 5rem + Wasserfall; Empfänger: Spektrum 6rem + Fläche des Wasserfalls. */
.rm-wf[data-anzeige="3d_wf"] .rm-wasserfall { min-height: calc(var(--rm-wf-hoehe) - 6rem); }
.rm-rx[data-anzeige="3d_wf"] .rm-rx-flaeche { min-height: calc(var(--rm-wf-hoehe) - 5rem); }
.rm-wf[data-anzeige="wf"] .rm-spektrum, .rm-rx[data-anzeige="wf"] .rm-spektrum { display: none; }
.rm-wf[data-anzeige="wf"] .rm-wasserfall { min-height: calc(var(--rm-wf-hoehe) + 5rem); }
.rm-rx[data-anzeige="wf"] .rm-rx-flaeche { min-height: calc(var(--rm-wf-hoehe) + 6rem); }
.rm-wf[data-anzeige="spektrum"] .rm-wasserfall, .rm-rx[data-anzeige="spektrum"] .rm-rx-flaeche,
.rm-wf[data-anzeige="3d"] .rm-wasserfall, .rm-rx[data-anzeige="3d"] .rm-rx-flaeche { display: none; }
.rm-wf[data-anzeige="spektrum"] .rm-spektrum { height: calc(var(--rm-wf-hoehe) + 5rem); border-radius: 0 0 9px 9px; }
.rm-rx[data-anzeige="spektrum"] .rm-spektrum { height: calc(var(--rm-wf-hoehe) + 6rem); }
.rm-wf[data-anzeige="3d"] .rm-3d { height: calc(var(--rm-wf-hoehe) + 5rem); border-radius: 0 0 9px 9px; }
.rm-rx[data-anzeige="3d"] .rm-3d { height: calc(var(--rm-wf-hoehe) + 6rem); }
/* AFU-67: ? und Zahnrad oben rechts im Kasten (die Anzeige wählt man seit AFU-130 im Dialog) */
.rm-wf-knoepfe { position: absolute; top: 0.08rem; right: 0.4rem; z-index: 1; display: flex; gap: 0.3rem; align-items: center; }
.rm-wf-zahnrad { display: inline-flex; align-items: center; justify-content: center; width: 1.6rem; height: 1.15rem;
  padding: 0; border-radius: 5px; border: 1px solid var(--border); background: var(--bg2); color: var(--muted); cursor: pointer; }
.rm-wf-zahnrad:hover, .rm-wf-zahnrad:focus-visible { color: var(--accent); border-color: var(--accent); }
.rm-rx-kopf .rm-wf-zahnrad { height: 1.6rem; width: 1.8rem; }
/* der Dialog dazu */
.rm-wfd { width: min(48rem, 94vw); }
.rm-wfd-inhalt { max-height: min(78vh, 46rem); overflow-y: auto; padding-right: 0.2rem; }
.rm-wfd-inhalt h3 { margin: 1.1rem 0 0.4rem; font-size: 1rem; }
.rm-wfd-inhalt h3.rm-erste { margin-top: 0.2rem; }
.rm-wfd-inhalt .field { flex: 1 1 12rem; }
.rm-wfd-regler { align-items: end; }
.rm-wfd-regler.rm-auto .field { opacity: 0.6; }
/* AFU-69: Gerät */
.rm-gr-funk { margin: 0.6rem 0; }
.rm-gr-funk-titel { margin: 0 0 0.3rem; font-size: 0.76rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.rm-gr-funk .rm-schalter-reihe { display: flex; flex-wrap: wrap; gap: 0.3rem 1.1rem; }
.rm-gr-funk .field-hint { margin: 0.3rem 0 0; }
/* AFU-164: gefundene Funkgeräte */
.rm-gr-suche { margin: 0.4rem 0 0.6rem; }
.rm-gr-funde { list-style: none; margin: 0.4rem 0 0; padding: 0; display: grid; gap: 0.3rem; }
.rm-gr-funde li { display: flex; align-items: center; gap: 0.8rem; padding: 0.35rem 0.6rem; border: 1px solid var(--border); border-radius: 6px; }
.rm-gr-funde li > span { flex: 1; }
.rm-gr-funde li.aktuell { border-color: var(--accent); }
.rm-gr-funde .field-hint { margin: 0; }
.rm-3d-flaeche { position: absolute; inset: 0; width: 100%; height: 100%; display: block; cursor: crosshair; touch-action: pan-y; }
.rm-3d-skala { position: absolute; inset: 0; pointer-events: none; font-size: 0.72rem; color: #c3c9e0; }
.rm-3d-skala span { position: absolute; transform: translate(-50%, 0.3rem); white-space: nowrap;
  text-shadow: 0 0 3px #05070f, 0 0 3px #05070f; }
.rm-wf[data-anzeige="3d_wf"] .rm-spektrum, .rm-rx[data-anzeige="3d_wf"] .rm-spektrum,
.rm-wf[data-anzeige="3d"] .rm-spektrum, .rm-rx[data-anzeige="3d"] .rm-spektrum { display: none; }
/* externer Wasserfall (fremder SDR, z.B. OpenWebRX): tritt an die Stelle des
   eigenen (AFU-22), darum dieselbe Spalte, Höhe und Breite wie .rm-wf. */
.rm-extern-wf { grid-column: 1; min-width: 0; display: flex; flex-direction: column; position: relative; }
.rm-extern-wf-kopf {
  display: flex; align-items: center; justify-content: space-between; gap: 0.4rem 0.8rem;
  height: 1.3rem; padding: 0 0.5rem; font-size: 0.72rem; color: var(--muted);
  background: var(--bg2); border: 1px solid var(--border); border-bottom: 0; border-radius: 9px 9px 0 0;
}
.rm-extern-wf-kopf span:first-child { color: var(--fg); font-weight: 600; }
.rm-extern-wf iframe { display: block; width: 100%; flex: 1 1 auto; height: 0; min-height: calc(var(--rm-wf-hoehe) + 5rem);
  border: 1px solid var(--border); border-top: 0; border-radius: 0 0 9px 9px; background: #05070f; }

/* ----------------------------------------------------------- buttons */
.rm-tasten { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; margin: 0.7rem 0; }
.rm-baender { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.rm-baender .btn-sm { min-width: 3.4rem; text-align: center; }
.rm-baender .btn-sm[aria-current="true"] { border-color: var(--accent); color: var(--accent); font-weight: 700; }
.rm-tasten-luft { flex: 1 1 auto; }
.rm-tasten .btn-sm[disabled], .rm-tasten .btn[disabled] { opacity: 0.45; cursor: not-allowed; }
.rm-ptt { min-width: 7rem; font-weight: 700; letter-spacing: 0.06em; touch-action: none; user-select: none; }
.rm-ptt[aria-pressed="true"] { background: #ef4444; border-color: #ef4444; color: #fff; }
.rm-tasten .halt { background: #ef4444; color: #fff; border-color: transparent; font-weight: 700; }
.rm-tx-uhr { font-weight: 700; color: #ef4444; min-width: 4.5rem; text-align: right; }

/* ---------------------------------------------------- Kästen */
.rm-kasten { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--border); border-radius: 9px; background: var(--bg2); overflow: hidden; }
.rm-kasten-kopf {
  display: flex; align-items: center; padding: 0 0.6rem; height: 2.3rem; box-sizing: border-box;
  font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); font-weight: 600;
  border-bottom: 1px solid var(--border);
}
.rm-kasten-inhalt { display: grid; gap: 0.55rem; padding: 0.6rem 0.7rem 0.8rem; }
.rm-kasten-inhalt .field { margin: 0; }
/* Chat je Station: nur zwischen den Bedienern, nicht mit dem Gerät */
.rm-chat-liste { display: flex; flex-direction: column; gap: 0.3rem; max-height: 12rem; overflow-y: auto;
  font-size: 0.85rem; }
.rm-chat-liste:empty::before { content: "Noch nichts geschrieben."; color: var(--muted); }
.rm-chat-zeile { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: baseline; }
.rm-chat-wer { font-weight: 600; color: var(--fg); }
.rm-chat-wer.rm-chat-eigen { color: var(--accent); }
.rm-chat-wer.rm-chat-support { color: #f59e0b; }
.rm-chat-zeit { font-size: 0.72rem; color: var(--muted); }
.rm-chat-text { flex-basis: 100%; }
.rm-chat-form { display: flex; gap: 0.4rem; }
.rm-chat-form input { flex: 1 1 auto; min-width: 0; }
/* AFU-146: Felder wie überall (.field input in style.css), nicht im Aussehen des Browsers */
.rm-chat-form input { background: var(--bg2); color: var(--fg); border: 1px solid var(--border); border-radius: 9px;
  padding: 0.5rem 0.7rem; font: inherit; font-size: 0.95rem; height: 2.45rem; line-height: 1.3; box-sizing: border-box; }
.rm-chat-form input:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.rm-chat-form input.mono { font-family: var(--rm-mono); }
/* AFU-188: Nachricht und Senden in einem Feld; das Feld trägt Rahmen und Fokus, der Knopf sitzt rechts darin */
.rm-chat-feld { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 2px; height: 2.45rem; box-sizing: border-box;
  padding: 0 3px 0 0; background: var(--bg2); border: 1px solid var(--border); border-radius: 9px; }
.rm-chat-feld:focus-within { outline: 2px solid var(--accent); outline-offset: 1px; }
.rm-chat-form .rm-chat-feld input { flex: 1 1 auto; height: 100%; border: 0; background: transparent; border-radius: 9px 0 0 9px; }
.rm-chat-form .rm-chat-feld input:focus { outline: none; }
.rm-chat-senden { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 1.9rem; height: 1.9rem;
  padding: 0; border: 0; border-radius: 7px; background: var(--accent); color: #fff; cursor: pointer; }
.rm-chat-senden:hover { filter: brightness(1.12); }
.rm-chat-senden:focus-visible { outline: 2px solid var(--fg); outline-offset: 1px; }
.rm-chat-feld:has(input:placeholder-shown) .rm-chat-senden { background: transparent; color: var(--muted); }
/* AFU-58: Rufzeichen der Gäste vor der Nachricht */
.rm-chat-form .rm-chat-ruf { flex: 0 0 7.5rem; text-transform: uppercase; }
/* Eigenes Logbuch (AFU-17) */
.rm-lb-vorbelegt { display: flex; flex-wrap: wrap; gap: 0.9rem; font-size: 0.85rem; color: var(--muted); }
.rm-logbuch-liste { display: flex; flex-direction: column; gap: 0.25rem; max-height: 14rem; overflow-y: auto;
  font-size: 0.85rem; }
.rm-logbuch-zeile { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: baseline;
  border-top: 1px solid var(--border); padding-top: 0.25rem; }
.rm-logbuch-stand { margin-left: auto; font-size: 0.75rem; }
.rm-logbuch-wartet { color: var(--muted); }
.rm-logbuch-uebertragen { color: #10b981; }
.rm-logbuch-fehler, .rm-logbuch-ohne_konto { color: #ef4444; }
.rm-knopfreihe { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.rm-schalter-reihe { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.rm-an {
  font: inherit; font-size: 0.82rem; cursor: pointer; padding: 0.3rem 0.7rem; border-radius: 7px;
  border: 1px solid var(--border); background: var(--bg); color: var(--fg);
}
.rm-an:hover { border-color: var(--accent); }
.rm-an[aria-pressed="true"] { background: var(--rm-an); border-color: var(--rm-an); color: var(--rm-an-schrift); }
.rm-regler label { display: flex; justify-content: space-between; gap: 0.5rem; }
.rm-regler label .einheit { font-family: var(--rm-mono); color: var(--fg); }
.rm-regler input[type="range"] { width: 100%; }
.rm-app [data-tx="1"]:disabled, .rm-app .gesperrt { opacity: 0.45; cursor: not-allowed; }

/* ---------------------------------------------------------- settings */
.rm-einstellungen {
  width: min(94vw, 68rem); max-height: 92vh; overflow: hidden; box-sizing: border-box;
  border: 1px solid var(--border); border-radius: var(--radius); padding: 1rem 1.4rem 1.4rem;
  background: var(--bg2); color: var(--fg); box-shadow: var(--shadow);
}
.rm-einstellungen::backdrop, .rm-klein-dialog::backdrop { background: rgba(0, 0, 0, 0.55); }
/* offener Dialog: die Seite dahinter blättert nicht mit */
html:has(dialog:modal), html:has(dialog:modal) body { overflow: hidden; }
dialog, .rm-tab-seite, .rm-einst-nav { overscroll-behavior: contain; }
.rm-dialog-kopf { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.6rem; }
.rm-dialog-kopf h2 { margin: 0; }
.rm-einst-rumpf { display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: 1.4rem; }
.rm-einst-nav {
  display: flex; flex-direction: column; gap: 2px; max-height: min(70vh, 46rem); overflow-y: auto;
  padding-right: 0.9rem; border-right: 1px solid var(--border);
}
.rm-nav-gruppe {
  margin: 1rem 0 0.3rem 0.7rem; font-size: 0.74rem; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--muted);
}
.rm-nav-gruppe:first-child { margin-top: 0.2rem; }
.rm-nav-station { display: block; margin-top: 0.1rem; font-weight: 400; letter-spacing: 0; text-transform: none; font-size: 0.82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rm-nav-station:empty { display: none; }
.rm-tab {
  font: inherit; cursor: pointer; padding: 0.45rem 0.7rem; text-align: left;
  border: 0; border-radius: 7px; background: transparent; color: var(--muted);
}
.rm-tab:hover { color: var(--fg); background: var(--bg); }
.rm-tab[aria-selected="true"] { color: var(--fg); font-weight: 600; background: var(--bg); box-shadow: inset 3px 0 0 var(--accent); }
.rm-tab-seite { height: min(70vh, 46rem); overflow-y: auto; padding-right: 0.4rem; }
.rm-et[data-et="log"]:not([hidden]) { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; }
.rm-einstellungen h3.rm-erste { margin-top: 0; }
.rm-einstellungen table.data td { white-space: normal; }
@media (max-width: 760px) {
  .rm-einstellungen { padding: 0.8rem 1rem 1rem; }
  .rm-einst-rumpf { grid-template-columns: minmax(0, 1fr); gap: 0.8rem; }
  .rm-einst-nav { flex-direction: row; max-height: none; overflow-x: auto; padding: 0 0 0.4rem; border-right: 0; border-bottom: 1px solid var(--border); }
  .rm-nav-gruppe { display: none; }
  .rm-tab { white-space: nowrap; }
  .rm-tab[aria-selected="true"] { box-shadow: inset 0 -3px 0 var(--accent); }
  .rm-tab-seite { height: min(62vh, 40rem); }
}
/* AFU-124: Seiten mit Unterreitern, ein Knopf je Seite, kompakter */
.rm-einstellungen .rm-tab { padding: 0.32rem 0.65rem; font-size: 0.9rem; }
.rm-einstellungen .rm-tab-seite { font-size: 0.9rem; display: flex; flex-direction: column; }
.rm-einstellungen .rm-tab-seite[hidden], .rm-et[hidden], .rm-ut[hidden] { display: none; }
.rm-unterreiter { display: flex; gap: 0; flex: 0 0 auto; border-bottom: 1px solid var(--border); margin: 0 0 0.6rem; overflow-x: auto;
  position: sticky; top: 0; z-index: 2; background: var(--bg2); scrollbar-width: thin; }
.rm-ut { font: inherit; font-size: 0.86rem; cursor: pointer; padding: 0.32rem 0.8rem; margin-bottom: -1px; white-space: nowrap;
  border: 1px solid transparent; border-bottom: 0; border-radius: 7px 7px 0 0; background: transparent; color: var(--muted); }
.rm-ut:hover { color: var(--fg); }
.rm-ut[aria-selected="true"] { color: var(--fg); font-weight: 600; background: var(--bg); border-color: var(--border); border-bottom: 1px solid var(--bg); }
.rm-ut-marke { font-size: 0.7rem; color: var(--muted); margin-left: 0.3rem; font-weight: 400; }
.rm-ut-marke:empty { display: none; }
.rm-et { flex: 1 0 auto; }
.rm-et:has(> .rm-einst-fuss):not([hidden]) { display: flex; flex-direction: column; }
.rm-einst-fuss { position: sticky; bottom: 0; z-index: 2; display: flex; flex-wrap: wrap; gap: 0.4rem 0.7rem; align-items: center;
  margin-top: auto; padding: 0.55rem 0 0.1rem; border-top: 1px solid var(--border); background: var(--bg2); }
.rm-einst-fuss[hidden] { display: none; }
.rm-einstellungen h3 { font-size: 0.96rem; margin: 0.9rem 0 0.3rem; padding-top: 0.6rem; border-top: 1px solid var(--border); }
.rm-einstellungen h3.rm-erste { margin-top: 0; padding-top: 0; border-top: 0; }
.rm-einstellungen p { margin: 0.3rem 0; }
.rm-einstellungen .field-hint { font-size: 0.76rem; line-height: 1.35; }
.rm-einstellungen p.field-hint { margin: 0.15rem 0 0.3rem; }
.rm-einstellungen .rm-zeile { gap: 0.5rem 0.8rem; margin: 0.25rem 0 0.4rem; }
.rm-karten { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
.rm-karte { border: 1px solid var(--border); border-radius: 9px; padding: 0.5rem 0.7rem; background: var(--bg); min-width: 0; }
.rm-karte[hidden] { display: none; }
.rm-karte.rm-karte-breit { grid-column: 1 / -1; }
.rm-karte h4, .rm-karte h3, .rm-einstellungen .rm-karte h3 { margin: 0 0 0.1rem; padding: 0; border: 0; font-size: 0.9rem;
  display: flex; justify-content: space-between; gap: 0.5rem; align-items: baseline; }
.rm-karte-zustand { font-size: 0.74rem; font-weight: 500; color: var(--muted); }
.rm-karte-zustand.rm-gut { color: var(--dx-aktiv, #27af57); }
.rm-verweis { color: var(--accent); text-decoration: none; cursor: pointer; }
.rm-verweis:hover, .rm-verweis:focus-visible { text-decoration: underline; }
.rm-verweis.rm-rechts { margin-left: auto; }
@media (max-width: 760px) {
  .rm-karten { grid-template-columns: minmax(0, 1fr); }
  .rm-einstellungen .rm-tab { padding: 0.4rem 0.65rem; }
}
.rm-log { flex: 1 1 auto; min-height: 8rem; margin: 0; overflow: auto; font-size: 0.8rem; background: var(--bg); border: 1px solid var(--border); border-radius: 7px; padding: 0.5rem; white-space: pre-wrap; }
.rm-einstellungen .note.warn { border-color: #d6a10b; }
.rm-zeile { display: flex; flex-wrap: wrap; gap: 0.8rem 1.1rem; align-items: end; margin: 0.4rem 0 0.6rem; }
.rm-zeile[hidden] { display: none; }   /* AFU-312: Zeilen je Art im Wächter-Formular */
.rm-schalter { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.92rem; }
.rm-schalter input { accent-color: var(--accent); }
.rm-anleitung li { margin-bottom: 0.35rem; }
.rm-anleitung code, .rm-einstellungen code { font-size: 0.85em; }
.rm-klein-dialog { width: min(92vw, 36rem); max-height: 90vh; overflow-y: auto; }
.rm-toml { background: var(--bg); border: 1px solid var(--border); border-radius: 7px; padding: 0.6rem; font-size: 0.8rem; overflow-x: auto; }
.rm-stationen-tabelle td .rm-knopfreihe { flex-wrap: nowrap; }
.rm-punkt { display: inline-block; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: #6b7599; margin-right: 0.4rem; }
.rm-punkt.an { background: #27af57; }

/* -------------------------------------------------------- Stationslog (AFU-16) */
.rm-slog-tabs { display: flex; gap: 0.4rem; border-bottom: 1px solid var(--border); margin: 0.6rem 0; }
.rm-slog-tab {
  font: inherit; cursor: pointer; padding: 0.3rem 0.8rem; font-size: 0.88rem; margin-bottom: -1px;
  border: 1px solid transparent; border-bottom: 0; border-radius: 8px 8px 0 0;
  background: transparent; color: var(--muted);
}
.rm-slog-tab:hover { color: var(--fg); }
.rm-slog-tab[aria-selected="true"] { color: var(--fg); font-weight: 600; background: var(--bg2); border-color: var(--border); border-bottom: 1px solid var(--bg2); }
.rm-slog-th { cursor: pointer; user-select: none; white-space: nowrap; }
.rm-slog-th:hover { color: var(--accent); }
.rm-slog-th .rm-slog-pfeil { display: inline-block; width: 0.9em; opacity: 0.7; }
.rm-slog-fuss { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; margin: 0.6rem 0; font-size: 0.88rem; }
.rm-slog-fuss select { font: inherit; }
.rm-slog-leer { color: var(--muted); }

/* ------------------------------------------------------------ toasts */
.rm-toasts { position: fixed; right: 1rem; bottom: 1rem; display: grid; gap: 0.4rem; z-index: 1000; max-width: min(92vw, 26rem); }
.rm-toast { padding: 0.55rem 0.8rem; border-radius: 8px; border: 1px solid var(--border); background: var(--bg2); color: var(--fg); box-shadow: var(--shadow); font-size: 0.9rem; border-left-width: 4px; }
.rm-toast.gut { border-left-color: #27af57; }
.rm-toast.warnung { border-left-color: #d6a10b; }
.rm-toast.fehler { border-left-color: #ef4444; }
.rm-toast.info { border-left-color: var(--accent); }

/* Direct access (page served by afu-remote itself) */
.rm-lokal-hinweis { color: var(--muted); font-size: 0.85rem; margin-left: auto; }
.rm-lokal-hinweis + .bar-actions { margin-left: 1rem; }
.rm-laut-zeile { display: flex; align-items: center; gap: 0.5rem; }
.rm-laut-zeile input[type="range"] { flex: 1 1 auto; min-width: 0; }
.rm-an#rm-stumm[aria-pressed="true"] { background: #ef4444; border-color: #ef4444; color: #fff; }

/* ------------------------------------------------ step, control, tx bar */
.rm-schrittwahl { background: var(--bg); color: var(--fg); border: 1px solid var(--border); border-radius: 6px; padding: 0.2rem 0.4rem; font: inherit; font-size: 0.8rem; }
.rm-zyklus[aria-pressed="true"] { background: var(--rm-an); border-color: var(--rm-an); color: var(--rm-an-schrift); }
.rm-baender .btn-sm.rm-nur-rx { border-style: dashed; }
/* AFU-15: non-amateur band the owner switched on for tx (never UKW-Rundfunk). */
.rm-baender .btn-sm.rm-cb-frei { border-color: var(--warn, #c9862b); color: var(--warn, #c9862b); border-style: solid; }
#rm-ribbon-name.rm-cb-frei { color: var(--warn, #c9862b); font-weight: 600; }
.rm-app.rm-zuhoeren .rm-knoepfe, .rm-app.rm-zuhoeren .rm-baender { opacity: 0.55; }

/* ------------------------------------------------------------ band scale */
.rm-ribbon { border: 1px solid var(--border); border-radius: 9px; background: var(--bg2); padding: 0.4rem 0.7rem 0.5rem; margin-bottom: 0.7rem; }
.rm-ribbon-kopf { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.6rem; font-size: 0.78rem; color: var(--muted); margin-bottom: 0.2rem; }
.rm-ribbon-kopf .btn-sm { padding: 0.1rem 0.55rem; min-width: 2rem; }
.rm-skala-plan { display: flex; flex-wrap: wrap; gap: 0.2rem 0.7rem; }
.rm-legende { display: inline-flex; align-items: center; gap: 0.3rem; }
.rm-legende i { display: inline-block; width: 0.8rem; height: 0.45rem; border-radius: 2px; }
.rm-bandskala { position: relative; height: 70px; cursor: crosshair; color: var(--fg); border-radius: 6px;
  background: linear-gradient(180deg, transparent 0 var(--rm-oben, 16px), color-mix(in srgb, var(--accent) 8%, transparent) var(--rm-oben, 16px) 100%); }
.rm-bandskala svg { display: block; width: 100%; height: 100%; }
.rm-skala-text { font: 11px var(--rm-mono, monospace); fill: currentColor; }
.rm-skala-durchlass { font: 600 10px var(--rm-mono, monospace); fill: #f5d90a; }
.rm-marke { position: absolute; top: 17px; transform: translateX(-50%); font: inherit; font-size: 0.72rem; line-height: 1.1;
  padding: 0.12rem 0.35rem; border-radius: 4px; border: 0; background: #b5b516; color: #0a0e1f; font-weight: 600;
  white-space: nowrap; cursor: pointer; max-width: 9rem; overflow: hidden; text-overflow: ellipsis; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); }
.rm-marke::after { content: ""; position: absolute; left: 50%; top: 100%; transform: translateX(-50%);
  border: 4px solid transparent; border-top-color: #b5b516; }
.rm-marke:hover { background: #e0e030; }
/* höhere Reihen: Stiel bis zur Skala, damit klar ist, wohin das Fähnchen zeigt */
.rm-marke::before { content: ""; position: absolute; left: 50%; top: calc(100% + 4px); height: var(--stiel, 0px);
  border-left: 1px solid rgba(181, 181, 22, 0.7); pointer-events: none; }
.rm-marke { overflow: visible; }
.rm-marke > span { display: block; overflow: hidden; text-overflow: ellipsis; }
.rm-marke.klein { width: 6px; min-width: 0; padding: 0; height: 15px; border-radius: 2px; }
.rm-marke:hover, .rm-marke:focus-visible { z-index: 2; }
/* AFU-71: DX-Spots, Farbe nach Seltenheit (remote-dx.js STUFEN), verblassen mit dem Alter */
.rm-marke.rm-dx { --dx-farbe: #3fb6c9; background: var(--dx-farbe); color: #0a0e1f; border-radius: 9px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-weight: 600; }
.rm-marke.rm-dx::after { border-top-color: var(--dx-farbe); }
.rm-marke.rm-dx::before { border-left-color: var(--dx-farbe); border-left-style: dotted; }
.rm-marke.rm-dx:hover, .rm-marke.rm-dx:focus-visible { filter: brightness(1.2); opacity: 1 !important; }
.rm-marke.rm-dx.klein { border-radius: 3px; }
.rm-ribbon-kopf .rm-dx-knopf[aria-pressed="true"] { background: #3fb6c9; border-color: #3fb6c9; color: #0a0e1f; }
.rm-dx-stand { font-size: 0.72rem; white-space: nowrap; cursor: help; }
.rm-dx-stand.warn { color: #d6a10b; }
.rm-dx-stand:empty { display: none; }
.rm-dx-quellen { gap: 0.3rem 1rem; }
/* auf der kHz-Skala der Engine: kleine Fähnchen am oberen Rand */
.rm-rx-skala .rm-dx-rx { position: absolute; top: 0.08rem; transform: translateX(-50%); z-index: 1; font: inherit;
  font-size: 0.66rem; line-height: 1.05rem; height: 1.1rem; padding: 0 0.3rem; border: 0; border-radius: 8px;
  background: var(--dx-farbe, #3fb6c9); color: #0a0e1f; font-weight: 600; cursor: pointer; white-space: nowrap;
  max-width: 7rem; overflow: hidden; text-overflow: ellipsis; }
.rm-rx-skala .rm-dx-rx:hover, .rm-rx-skala .rm-dx-rx:focus-visible { z-index: 2; opacity: 1 !important; max-width: none; }

/* ------------------------------------------------ bookmarks and memories */
/* die Kästen warten in #rm-listen, bis ablagenBauen sie in ihre Ablage hängt; was nicht da ist, bleibt dort */
.rm-listen { display: none; }
.rm-lz-nurband { font-size: 0.8rem; justify-self: start; }
.rm-klein-tabelle td, .rm-klein-tabelle th { padding: 0.3rem 0.45rem; }
/* Lesezeichen: dicht, damit auch lange Listen in eine schmale Box passen */
table.rm-lz-tabelle { font-size: 0.8rem; }
table.rm-lz-tabelle td, table.rm-lz-tabelle th { padding: 0.12rem 0.4rem; }
table.rm-lz-tabelle th { font-size: 0.68rem; }
table.rm-lz-tabelle .rm-knopfreihe { gap: 0.25rem; justify-content: flex-end; }
table.rm-lz-tabelle .btn-sm { min-height: 1.6rem; height: 1.6rem; padding: 0 0.6rem; font-size: 0.75rem; }
table.rm-lz-tabelle .btn-weg:not(.mit-wort), table.rm-lz-tabelle .btn-stift:not(.mit-wort) { width: 1.6rem; padding: 0; }
table.rm-lz-tabelle .btn-weg svg, table.rm-lz-tabelle .btn-stift svg { width: 0.85rem; height: 0.85rem; }
table.rm-lz-tabelle td:last-child { width: 1%; }
/* AFU-51: Filter im Kopf und Fuß, so dicht wie die Tabelle */
table.rm-lz-tabelle .filterzeile th { padding: 0.15rem 0.3rem 0.3rem; }
table.rm-lz-tabelle .filterzeile input, table.rm-lz-tabelle .filterzeile select { font-size: 0.78rem; min-height: 1.7rem; padding: 0.1rem 0.4rem; }
table.rm-lz-tabelle .filterzeile th[data-filter="lz-f"] input { width: 6.5rem; }
@media (min-width: 48rem) { .rm-lz-filter, .rm-ax-filter { display: none; } }
.rm-lz-filter[hidden], #rm-lz-fuss[hidden], #rm-lz-zahl[hidden] { display: none; }
[data-kasten="lesezeichen"] .count-line { margin: 0; font-size: 0.78rem; }
#rm-lz-fuss { font-size: 0.8rem; margin: 0; }
.rm-klein-tabelle .rm-knopfreihe { flex-wrap: nowrap; }
/* AFU-59: Bänder und Antennen des Empfängers */
.rm-rxp-antennen { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 0.8rem; }
.rm-rxp-antenne { border: 1px solid var(--border); border-radius: 9px; padding: 0.7rem 0.8rem; background: var(--bg2); }
.rm-rxp-antenne h4 { margin: 0 0 0.5rem; font-size: 0.95rem; }
.rm-rxp-antenne .rm-zeile { margin: 0.3rem 0; }
.rm-rxp-antenne .field { flex: 1 1 8rem; min-width: 0; }
.rm-rxp-antenne .rm-rxp-bereiche { flex-basis: 100%; }
.rm-rxp-auf { font-size: 0.82rem; color: var(--muted); margin: 0.4rem 0 0; }
.rm-rxp-tabelle input, .rm-rxp-tabelle select { width: 100%; min-width: 0; padding: 0.25rem 0.4rem; min-height: 1.9rem; }
.rm-rxp-tabelle .rm-rxp-name { min-width: 6rem; }
.rm-rxp-tabelle .num input { text-align: right; min-width: 4.5rem; max-width: 7rem; }
.rm-gruppe { color: var(--muted); font-size: 0.85em; }
.rm-dtmf-feld { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.35rem; margin-top: 0.6rem; }
.rm-dtmf-feld .btn-sm { font-size: 1.1rem; padding: 0.5rem 0; }

.rm-fenster-platzhalter { display: grid; gap: 0.5rem; justify-items: start; }
.rm-fenster-platzhalter .field-hint { margin: 0; }

/* eigenes Browserfenster (remote-fenster.html): kein Kopf/Fuß der Seite,
   nur der eine Kasten */
.rm-fenster-body { margin: 0; padding: 0.7rem 0.8rem 1rem; }
.rm-fenster-kopf {
  font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted);
  font-weight: 600; margin-bottom: 0.5rem;
}
.rm-fenster-inhalt { display: grid; gap: 0.55rem; }
.rm-fenster-inhalt .field { margin: 0; }

/* ------------------------------------------------------------ frequency lock */
.rm-fsperre { font-size: 1.1rem; line-height: 1; padding: 0.3rem 0.4rem; border-radius: 6px; cursor: pointer;
  background: transparent; border: 1px solid #2a3358; color: #eef0fa; }
.rm-fsperre[aria-pressed="true"] { background: #d6a10b; border-color: #d6a10b; }
.rm-app.rm-freq-gesperrt #rm-freq-a, .rm-app.rm-freq-b-gesperrt #rm-freq-b { cursor: not-allowed; }
.rm-app.rm-freq-gesperrt #rm-freq-a .ziffer:hover, .rm-app.rm-freq-b-gesperrt #rm-freq-b .ziffer:hover { background: transparent; }
.rm-vfo-b .rm-fsperre { font-size: 0.9rem; padding: 0.2rem 0.3rem; }

/* ------------------------------------------------------------ update hint */
.rm-update { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; justify-content: flex-end;
  font-size: 0.8rem; color: #d6a10b; }
@media (max-width: 900px) { .rm-update { justify-content: center; } }
/* Gewichteter Hinweis (AFU-14): kosmetisch/funktion bleiben in der normalen Farbe des
   Kastens, sicherheit/bruch stechen zusaetzlich heraus. */
.rm-update-gewicht { font-weight: 600; }
.rm-update-gewicht.sicherheit { color: #d6a10b; }
.rm-update-gewicht.bruch { color: #ef4444; }
/* AFU-114: Update-Kanal; dev hebt sich ab, damit jeder sieht, dass eine Testfassung läuft */
.rm-update-kanal { padding: 0 0.35rem; border: 1px solid currentColor; border-radius: 3px; font-size: 0.72rem; }
.rm-update-kanal.dev { color: #a78bfa; }

/* ------------------------------------------------------------ changelog */
/* "Neu" key in the header: looks like the other header keys (the rules for
   .bar-actions > button come from style.css), plus a count badge. */
.rm-cl-knopf { position: relative; }
.rm-cl-zahl:empty { display: none; }
.rm-cl-zahl { position: absolute; top: -0.3rem; right: -0.3rem; min-width: 1.1rem; height: 1.1rem; padding: 0 0.25rem;
  border-radius: 999px; background: #d6a10b; color: #0a0e1f; font-size: 0.7rem; font-weight: 700; line-height: 1.1rem; text-align: center; }
.rm-cl-knopf.ungelesen { border-color: #d6a10b; }
.rm-cl-liste { max-height: 60vh; overflow-y: auto; }
.rm-neu-eintrag { padding: 0.2rem 0 0.4rem; border-bottom: 1px solid var(--border); }
.rm-neu-eintrag h3 { margin: 0.6rem 0 0.3rem; font-size: 1rem; }
.rm-neu-eintrag ul { margin: 0; padding-left: 1.2rem; }
.rm-neu-eintrag li { margin-bottom: 0.25rem; }
.rm-neu-eintrag:not(.ungelesen) { color: var(--muted); }
.rm-neu-datum { color: var(--muted); font-weight: 400; }
.rm-neu-marke { margin-left: 0.5rem; font-size: 0.72rem; padding: 0.05rem 0.4rem; border-radius: 999px; background: #d6a10b; color: #0a0e1f; vertical-align: middle; }

/* ------------------------------------------------------------ update banner */
.rm-update-banner { position: sticky; top: 0; z-index: 50; margin: 0 auto 0.6rem; max-width: var(--maxw);
  padding: 0.7rem 1rem; border-radius: 0 0 9px 9px; font-weight: 600; text-align: center;
  background: #d6a10b; color: #0a0e1f; box-shadow: var(--shadow); }
.rm-update-banner.fehler { background: #ef4444; color: #fff; }

/* controls that do not work in the current mode */
.rm-wirkt-nicht label, .rm-wirkt-nicht input[type="range"] { opacity: 0.45; }
.rm-modus-hinweis { margin-top: 0.15rem; color: #d6a10b; }
/* RIT unter VFO A (AFU-54): aus = nur der Knopf, an = Ablage und Schritte daneben */
.rm-rit-zeile.aus > :not(.rm-rit-an) { display: none; }
.rm-rit-zeile[hidden], .rm-rit-zeile > [hidden] { display: none; }
.rm-rit-an[aria-pressed="true"] { background: #f5d90a !important; border-color: #f5d90a !important; color: #0a0e1f !important; font-weight: 700; }
.rm-rit-wert { min-width: 52px; text-align: center; font-weight: 700; color: #f5d90a; cursor: ns-resize; background: var(--bg) !important; }

/* hover readout on the band scale */
.rm-skala-hover { position: absolute; top: 14px; bottom: 14px; width: 0; border-left: 1px dashed #eef0fa; pointer-events: none; opacity: 0.8; }
.rm-skala-hover-text { position: absolute; top: -12px; left: 0; transform: translateX(-50%); white-space: nowrap;
  font-size: 0.72rem; padding: 0.05rem 0.35rem; border-radius: 4px; background: #eef0fa; color: #0a0e1f; }
.rm-skala-hover-text.links { transform: none; }
.rm-skala-hover-text.rechts { transform: translateX(-100%); }

/* confirm key of the safety question */
.btn.rm-gefahr { background: #ef4444; border-color: #ef4444; color: #fff; }

/* ------------------------------------------ compact band keys, header TX row */
.rm-ribbon .rm-baender { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-bottom: 0.4rem; }
.rm-ribbon .rm-baender .btn-sm { min-width: 0; padding: 0.12rem 0.55rem; font-size: 0.78rem; line-height: 1.3; }
/* header on phones: no station hint, the key keeps one word (see bedienungKurz) */
@media (max-width: 52rem) { .rm-lokal-hinweis { display: none; } }
/* spinner while the station reads from the rig */
.rm-spinner { display: inline-block; width: 1em; height: 1em; margin-right: 0.5em; vertical-align: -0.15em;
  border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%;
  animation: rm-dreh 0.8s linear infinite; }
@keyframes rm-dreh { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .rm-spinner { animation-duration: 2.4s; } }

/* band scale box, compact: small keys (not the 2.5 rem field height) */
.rm-ribbon { padding: 0.35rem 0.6rem 0.3rem; }
.rm-ribbon .rm-baender { gap: 0.2rem; margin-bottom: 0.25rem; }
.rm-ribbon .rm-baender .btn-sm, .rm-ribbon-kopf .btn-sm { min-height: 1.6rem; padding: 0 0.5rem; font-size: 0.76rem; }
.rm-ribbon-kopf .btn-sm { min-width: 1.6rem; padding: 0 0.35rem; }
.rm-ribbon-kopf select { min-height: 1.6rem; height: 1.6rem; padding: 0 1.6rem 0 0.5rem; font-size: 0.76rem; }
.rm-ribbon-kopf { margin-bottom: 0; }
@media (max-width: 40rem) {
  .rm-ribbon-kopf .rm-tasten-luft { flex-basis: 100%; height: 0; }
}

/* "Neu" key: same look as the header keys (Melden) */
.rm-cl-knopf { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.42rem 0.7rem; font: inherit;
  font-size: 0.9rem; cursor: pointer; border: 1px solid var(--border); border-radius: 999px;
  background: var(--card-bg); color: inherit; }
.rm-cl-knopf:hover { border-color: var(--accent); background: var(--card-hover); }
.rm-cl-knopf[hidden] { display: none; }
/* In der schmalen Kopfzeile von afu.tools nur das Zeichen, wie bei Suchen und Melden */
@media (max-width: 78rem) and (min-width: 52.01rem) { .bar-actions .rm-cl-knopf .nur-breit { display: none; } }

/* direct way over HAMNET not working: hint with link and retry key */
.rm-direkt-banner { position: static; background: var(--bg2); color: var(--fg); border: 1px solid #d6a10b;
  border-radius: 9px; font-weight: 400; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.3rem; }
.rm-direkt-banner a { color: var(--accent); font-weight: 600; }

/* ---------------------------------------- Empfänger mit eigener Engine (R2T2)
   Zustände am <body>, weil Teile der Seite (Bedienung, "Neu") im Direktzugriff in
   die Kopfzeile wandern und damit aus .rm-app heraus. */
body.rm-nur-empfaenger .rm-nur-trx { display: none !important; }
body.rm-gast .rm-kein-gast { display: none !important; }
body.rm-gast:not(.rm-nur-empfaenger) .rm-trx-bedienung { display: none !important; }
/* Gast an einer Station mit Funkgerät: Frequenz und Skala zeigen nur an */
body.rm-gast:not(.rm-nur-empfaenger) .rm-vfo .rm-freq,
body.rm-gast:not(.rm-nur-empfaenger) #rm-skala { pointer-events: none; }

/* Funktionsmatrix der Station (station/afu_remote/rigs/funktionen.py): was das Gerät
   nicht hat, fehlt. Als Attribut, weil Skripte className einzelner Elemente neu setzen. */
[data-funktion-aus] { display: none !important; }

/* derselbe Platz wie .rm-wf, gleich hoch wie das Panel daneben */
.rm-rx { grid-column: 1; min-width: 0; display: flex; flex-direction: column; position: relative; }
.rm-rx-kopf {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.5rem; min-height: 2.3rem; box-sizing: border-box;
  padding: 0.3rem 0.5rem; font-size: 0.8rem; color: var(--muted);
  background: var(--bg2); border: 1px solid var(--border); border-bottom: 0; border-radius: 9px 9px 0 0;
}
.rm-rx-name { color: var(--fg); font-weight: 600; }
.rm-rx-kopf select { min-height: 1.6rem; height: 1.6rem; padding: 0 1.6rem 0 0.5rem; font-size: 0.76rem; }
.rm-rx-baender { display: flex; flex-wrap: wrap; gap: 0.2rem; }
.rm-rx-baender .btn-sm { min-height: 1.6rem; padding: 0 0.5rem; font-size: 0.76rem; position: relative; }
.rm-rx-baender .btn-sm[aria-current="true"] { border-color: var(--accent); color: var(--accent); font-weight: 700; }
/* dort hört schon jemand: kostet keinen Empfänger */
.rm-rx-baender .btn-sm.rm-rx-aktiv::after {
  content: ""; position: absolute; top: 3px; right: 3px; width: 6px; height: 6px; border-radius: 50%; background: #27af57;
}
.rm-rx-rechts { display: inline-flex; align-items: center; gap: 0.5rem; margin-left: auto; white-space: nowrap; }
.rm-rx-frei { color: var(--fg); font-variant-numeric: tabular-nums; cursor: help; }
/* Verbindung zur Engine als Symbol (Stecker): grün verbunden, gelb verbindet, grau getrennt */
.rm-rx-lampe { display: inline-flex; align-items: center; justify-content: center; width: 1.6rem; height: 1.6rem;
  border-radius: 999px; border: 1px solid currentColor; color: #8a93b3; }
.rm-rx-lampe.an { color: var(--rm-an); }
.rm-rx-lampe.warn { color: #d6a10b; }
/* nur eine Station (Direktzugriff): ihr Name statt der Auswahl */
.rm-stationsname { background: #151b35; color: #eef0fa; border: 1px solid #2a3358; border-radius: 6px;
  padding: 0.25rem 0.7rem; font-size: 1.1rem; font-weight: 600; max-width: 100%;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rm-rx-belegt { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; margin: 0; border-radius: 0;
  border-left-width: 1px; border-top: 0; font-size: 0.85rem; }
.rm-rx-belegt[hidden] { display: none; }
.rm-rx-belegt .btn-sm { min-height: 1.6rem; padding: 0 0.5rem; font-size: 0.78rem; }
.rm-rx-skala { border-radius: 0; }
.rm-rx-spektrum { height: 6rem; cursor: crosshair; touch-action: pan-y; }
.rm-rx-flaeche { position: relative; flex: 1 1 auto; display: flex; flex-direction: column; min-height: var(--rm-wf-hoehe); }
.rm-rx-flaeche .rm-wasserfall { min-height: 0; touch-action: pan-y; }
.rm-rx-durchlass {
  position: absolute; top: 0; bottom: 0; pointer-events: none; background: rgba(245, 217, 10, 0.12);
  border-left: 1px solid rgba(245, 217, 10, 0.8); border-right: 1px solid rgba(245, 217, 10, 0.8);
}
.rm-rx-panel { display: grid; gap: 0.6rem; }
.rm-rx-panel > .btn-sm { justify-self: start; }
.rm-rx-panel.rm-panadapter .rm-rx-hoeren { display: none !important; }
/* AFU-130: Zoom als kleine Knöpfe im Kopf des Empfängers, neben ? und Zahnrad */
.rm-rx-zoom { display: inline-flex; align-items: center; gap: 0.25rem; }
.rm-rx-zoom-wert { min-width: 2.2rem; text-align: center; font-size: 0.76rem; color: var(--muted); }
.rm-rx-zoom .rm-wf-zahnrad { font-size: 0.95rem; line-height: 1; }
.rm-rx-online-tabelle td { white-space: nowrap; }

/* ------------------------------------------------- AFU-48: Decoder */
.rm-dec-zeile { display: flex; flex-wrap: wrap; gap: 0.5rem 0.8rem; align-items: end; }
.rm-dec-zeile .field { flex: 1 1 7rem; min-width: 6rem; margin: 0; }
.rm-dec-zeile .field input, .rm-dec-zeile .field select { width: 100%; }
.rm-dec:not([data-art="cw"]) .rm-dec-cw, .rm-dec:not([data-art="rtty"]) .rm-dec-rtty { display: none; }
/* AFU-243: CW-Decoder, Kanaltabelle und Text mit blassen unsicheren Zeichen und Rufzeichen als Knopf */
.rm-dec .rm-cw-ohnepitch[hidden] { display: none; }
.rm-cw-kanaele { display: grid; gap: 0.3rem; }
.rm-cw-kanaele .count-line { margin: 0; font-size: 0.78rem; }
.rm-cw-tabelle tr.rm-cw-zeile { cursor: pointer; }
.rm-cw-tabelle tr.akt td { background: color-mix(in srgb, var(--accent) 14%, transparent); }
.rm-cw-tabelle tr.zu td { color: var(--muted); }
.rm-cw-tabelle .rm-cw-letzte { max-width: 18rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rm-cw-ruf { font: inherit; font-weight: 700; color: var(--accent); background: none; border: 0; padding: 0; cursor: pointer;
  text-decoration: underline; text-underline-offset: 2px; }
.rm-cw-ruf:hover, .rm-cw-ruf:focus-visible { color: var(--fg); }
.rm-cw-ruf.q, .rm-dec-text .q { opacity: 0.45; }
.rm-cw-zeit { color: var(--muted); font-size: 0.78rem; }
.rm-cw-marke { font-size: 0.72rem; font-weight: 600; color: var(--muted); white-space: nowrap; }
.rm-cw-marke.neu { color: #4caf7d; }
.rm-cw-marke.multi { color: #c77dff; }
.rm-cw-marke.dupe { color: #ef5350; }
.rm-dec-anzeige { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: 0.6rem; align-items: center; }
.rm-dec-status { font-size: 0.78rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rm-dec-text {
  margin: 0; min-height: 6rem; max-height: 16rem; overflow-y: auto; padding: 0.5rem 0.6rem;
  font: 0.9rem/1.45 var(--rm-mono, monospace); white-space: pre-wrap; overflow-wrap: anywhere;
  background: var(--bg); border: 1px solid var(--border); border-radius: 7px; color: var(--fg);
}
.rm-dec-text:empty::before { content: "Noch nichts decodiert."; color: var(--muted); }
.rm-abdock .rm-kasten .rm-dec-text { max-height: none; flex: 1 1 auto; }
.rm-dec .field-hint { margin: 0; }

/* ------------------------------------------------- AFU-49: FT8/FT4 */
.rm-dec:not([data-art="ft8"]):not([data-art="ft4"]) .rm-dec-ft { display: none; }
/* AFU-126: AX.25 und APRS */
.rm-dec:not([data-art="ax25"]) .rm-dec-ax, .rm-dec:not([data-ax="300"]) .rm-dec-ax300,
  .rm-dec[data-art="ax25"] .rm-dec-textteil { display: none; }
.rm-ax { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; container-type: inline-size; }
@container (max-width: 520px) { .rm-ax-tabelle .rm-ax-weg { display: none; } }
.rm-ax .count-line { margin: 0; font-size: 0.78rem; }
.rm-ax .rm-knopfreihe { align-items: center; }
#rm-ax-fuss { font-size: 0.8rem; margin: 0; }
#rm-ax-hinweis:empty { display: none; }
table.rm-ax-tabelle { font-size: 0.78rem; }
table.rm-ax-tabelle td, table.rm-ax-tabelle th { padding: 0.12rem 0.4rem; vertical-align: top; }
table.rm-ax-tabelle th { font-size: 0.66rem; }
table.rm-ax-tabelle td.rm-ax-text { white-space: pre-wrap; overflow-wrap: anywhere; min-width: 12rem; }
table.rm-ax-tabelle td.rm-ax-weg { color: var(--muted); overflow-wrap: anywhere; }
table.rm-ax-tabelle td.rm-ax-ruf { white-space: nowrap; }
table.rm-ax-tabelle tr.rm-ax-mitpos { cursor: pointer; }
table.rm-ax-tabelle tr.rm-ax-mitpos:hover td { background: var(--card-hover); }
.rm-ax-sym { width: 18px; height: 18px; vertical-align: -4px; margin-right: 0.3rem; }
.rm-ax-karte { height: 18rem; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: var(--bg); }
.rm-ax-karte[hidden] { display: none; }
.rm-abdock .rm-kasten .rm-ax-karte { height: 50vh; }
.rm-ax-marke { background: none; border: 0; }
.rm-ax-marke img, .rm-ax-marke i { display: block; width: 24px; height: 24px; }
.rm-ax-marke i { border-radius: 50%; background: #6aa6ff; transform: scale(0.5); }
.rm-ax-marke span { position: absolute; left: 26px; top: 3px; white-space: nowrap; font: 600 11px/1.4 var(--rm-mono, monospace);
  color: #1a2235; background: rgba(255, 255, 255, 0.82); border-radius: 3px; padding: 0 3px; pointer-events: none; }
/* AFU-66: SSTV */
.rm-dec:not([data-art="sstv"]) .rm-dec-sstv, .rm-dec[data-art="sstv"] .rm-dec-textteil { display: none; }
.rm-dec-sstv { display: grid; gap: 0.5rem; }
.rm-dec-sstv .rm-knopfreihe { align-items: center; }
.rm-sstv-rahmen { position: relative; background: #05070f; border: 1px solid var(--border); border-radius: 8px;
  overflow: hidden; display: flex; justify-content: center; align-items: center; min-height: 8rem; }
#rm-sstv-bild { display: block; max-width: 100%; max-height: 26rem; width: auto; height: auto; cursor: zoom-in; }
.rm-abdock .rm-kasten #rm-sstv-bild { max-height: none; }
.rm-sstv-leer { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; margin: 0;
  padding: 1rem; text-align: center; color: #8a93b3; font-size: 0.85rem; background: #05070f; }
.rm-sstv-leer[hidden] { display: none; }
.rm-sstv-galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); gap: 0.5rem; }
.rm-sstv-galerie:empty { display: none; }
.rm-sstv-galerie figure { margin: 0; display: grid; gap: 0.2rem; }
.rm-sstv-galerie a { display: block; cursor: zoom-in; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; line-height: 0; }
.rm-sstv-galerie img { width: 100%; height: auto; display: block; }
.rm-sstv-galerie figcaption { font-size: 0.72rem; color: var(--muted); display: flex; justify-content: space-between; gap: 0.3rem; }
.rm-sstv-galerie figcaption button { font: inherit; font-size: 0.72rem; padding: 0; border: 0; background: none; color: var(--accent); cursor: pointer; }
.rm-dec[data-art="ft8"] .rm-dec-textteil, .rm-dec[data-art="ft4"] .rm-dec-textteil { display: none; }
.rm-dec-textteil, .rm-dec-ft { display: grid; gap: 0.5rem; }
.rm-dec-ft .count-line { margin: 0; font-size: 0.78rem; }
#rm-ft-fuss { font-size: 0.8rem; margin: 0; }
table.rm-ft-tabelle { font-size: 0.78rem; }
table.rm-ft-tabelle td, table.rm-ft-tabelle th { padding: 0.12rem 0.4rem; }
table.rm-ft-tabelle th { font-size: 0.66rem; }
table.rm-ft-tabelle tbody tr { cursor: pointer; }
table.rm-ft-tabelle tr.rm-ft-cq td { color: var(--fg); font-weight: 600; }
table.rm-ft-tabelle tr.rm-ft-fokus { background: color-mix(in srgb, var(--accent) 16%, transparent); }
table.rm-ft-tabelle tr.rm-ft-neu td:first-child { box-shadow: inset 3px 0 0 var(--accent); }
.rm-ft-marke { position: absolute; top: 1.3rem; bottom: 0; width: 0; border-left: 2px solid #f5d90a; pointer-events: none; z-index: 2; }
.rm-ft-marke[hidden] { display: none; }

/* ------------------------------------------------- AFU-50: PSK Reporter */
.rm-psk { display: grid; gap: 0.3rem; padding: 0.5rem 0.6rem; border: 1px solid var(--border); border-radius: 7px; }
.rm-psk[hidden] { display: none; }
.rm-psk .rm-knopfreihe { align-items: end; }
.rm-psk-zusatz { margin: 0; }
.rm-psk-zusatz input { width: 5em; }
.rm-psk-status { margin: 0; font-size: 0.76rem; color: var(--muted); }
.rm-psk-status:empty { display: none; }

/* Bandskala im Kasten des Wasserfalls: oben die Bänder, darunter die Skala, dann Spektrum
   und Wasserfall, ohne eigene Ränder dazwischen. Beim Empfänger mit Engine sitzt sie unter
   seinem Kopf (ribbonPlatz() in remote.js). */
.rm-wf-spalte { min-width: 0; display: flex; flex-direction: column; }
.rm-wf-spalte > .rm-wf, .rm-wf-spalte > .rm-rx, .rm-wf-spalte > .rm-extern-wf { flex: 1 1 auto; }
.rm-wf-spalte .rm-ribbon { margin: 0; border-bottom: 0; border-radius: 9px 9px 0 0; }
.rm-wf-spalte > .rm-ribbon ~ * .rm-wf-skala, .rm-wf-spalte > .rm-ribbon ~ * .rm-extern-wf-kopf { border-radius: 0; }
.rm-rx > .rm-ribbon { border-radius: 0; border-top: 0; padding-top: 0.15rem; }
.rm-ribbon:not(:has(#rm-skala-teil:not([hidden]))):not(:has(.rm-baender > *)) { display: none; }

/* Spektrum des Funkgeräts (features.scope): Umschalter HF/NF am Wasserfall aus dem Ton */
.rm-wf > .rm-quelle-knopf { position: absolute; top: 0.08rem; left: 0.4rem; z-index: 1; font: inherit;
  font-size: 0.7rem; height: 1.15rem; padding: 0 0.45rem; border-radius: 5px; border: 1px solid var(--border);
  background: var(--bg2); color: var(--muted); cursor: pointer; }
.rm-wf > .rm-quelle-knopf:hover { color: var(--fg); border-color: var(--accent); }
.rm-scope .rm-rx-kopf .btn-sm { height: 1.6rem; padding: 0 0.55rem; font-size: 0.76rem; }

/* ------------------------------------------------ Zeitmaschine (AFU-72) */
.rm-zm-leiste { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.6rem; margin: 0.2rem 0 0.4rem; }
.rm-zm-leiste .btn-sm { min-height: 1.7rem; }
.rm-zm-stand { font-size: 0.75rem; color: var(--muted); }
.rm-zm-bild { position: relative; height: 220px; border-radius: 6px 6px 0 0; overflow: hidden; background: #000; }
.rm-zm-canvas { display: block; width: 100%; height: 100%; cursor: crosshair; touch-action: none; }
.rm-zm-zeiten { position: absolute; inset: 0 auto 0 0; pointer-events: none; font-size: 0.68rem; }
.rm-zm-zeiten span { position: absolute; left: 0.3rem; transform: translateY(-50%); color: #eef0fa;
  background: rgba(10, 14, 31, 0.6); padding: 0 0.25rem; border-radius: 3px; white-space: nowrap; }
.rm-zm-cursor { position: absolute; left: 0; right: 0; height: 0; border-top: 2px solid #f5d90a; pointer-events: none; }
.rm-zm-cursor span { position: absolute; right: 0.3rem; top: 2px; font-size: 0.7rem; color: #0a0e1f;
  background: #f5d90a; padding: 0 0.3rem; border-radius: 3px; white-space: nowrap; }
.rm-zm-auswahl { position: absolute; left: 0; right: 0; background: rgba(245, 217, 10, 0.18);
  border-top: 1px dashed #f5d90a; border-bottom: 1px dashed #f5d90a; pointer-events: none; }
.rm-zm-skala { position: relative; height: 1.2rem; font-size: 0.68rem; color: var(--muted);
  background: var(--bg2); border: 1px solid var(--border); border-top: 0; border-radius: 0 0 6px 6px; }
.rm-zm-skala span { position: absolute; top: 0.15rem; transform: translateX(-50%); white-space: nowrap; }
.rm-zm-skala span.links { transform: none; left: 0.3rem !important; }
.rm-zm-skala span.rechts { transform: translateX(-100%); left: calc(100% - 0.3rem) !important; }
.rm-wf-spalte { position: relative; }
.rm-zm-badge { position: absolute; bottom: 0.8rem; left: 50%; transform: translateX(-50%); z-index: 5; font: inherit;
  font-size: 0.78rem; font-weight: 600; padding: 0.15rem 0.7rem; border-radius: 999px; border: 0; cursor: pointer;
  background: #f5d90a; color: #0a0e1f; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); }
.rm-zm-badge[hidden] { display: none; }

/* ------------------------------------------------ Brücke (AFU-73) */
.rm-br-befehl { white-space: pre-wrap; word-break: break-all; font-size: 0.8rem; padding: 0.5rem 0.7rem;
  background: var(--bg2); border: 1px solid var(--border); border-radius: 6px; margin: 0.3rem 0 0.8rem; }
#rm-br-neu .feld-mit-knopf { max-width: 44rem; display: flex; }
#rm-br-token { flex: 1 1 auto; min-width: 0; width: 100%; }

/* ------------------------------------------------ Wächter (AFU-74) */
.rm-wae-form { margin: 0.6rem 0 1rem; padding: 0.6rem 0.8rem; border: 1px solid var(--border); border-radius: 8px; }
.rm-wae-form .field { min-width: 7rem; }
#rm-wae-ruf, #rm-wae-gebiet { width: 12em; }

/* ------------------------------------------------ „Was ist das?“ (AFU-76) */
.rm-sig-knopf { font-weight: 700; font-size: 0.85rem; }
body.rm-markieren .rm-wasserfall, body.rm-markieren .rm-spektrum { cursor: col-resize; }
body.rm-markieren [data-sig] { background: var(--accent); color: #fff; border-color: var(--accent); }
.rm-sig-rahmen { position: absolute; background: rgba(245, 217, 10, 0.25); border-left: 2px solid #f5d90a;
  border-right: 2px solid #f5d90a; pointer-events: none; z-index: 3; }
.rm-sig-sicher { font-size: 0.85rem; color: var(--muted); margin-top: -0.4rem; }
.rm-sig-sicher:empty { display: none; }

/* ------------------------------------------------ Bakenuhr (AFU-75) */
/* AFU-98: nach der Breite des Kastens, nicht des Fensters (die Breite stellt jeder selbst ein). Schmal steht alles
   untereinander; die Tafeln rollen in ihrem Platz, statt über die Einstellungen zu ragen. */
.rm-bk > .rm-kasten-inhalt { container-type: inline-size; }
.rm-bk-oben, .rm-bk-ergebnis { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.6rem 1.2rem; align-items: start; }
.rm-bk-ergebnis { gap: 0.8rem; margin-top: 0.6rem; }
.rm-bk-uhr-platz { overflow-x: auto; min-width: 0; }
@container (min-width: 900px) {
  .rm-bk-oben { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .rm-bk-ergebnis { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
}
.rm-bk-kartenteil #rm-bk-karte { max-width: 520px; }
.rm-bk-uhr td, .rm-bk-uhr th, .rm-bk-tabelle td, .rm-bk-tabelle th { padding: 0.2rem 0.45rem; font-size: 0.8rem; }
.rm-bk-uhr tr.hier td { background: color-mix(in srgb, var(--accent) 14%, transparent); }
.rm-bk-uhr tr { cursor: pointer; }
.rm-bk-uhr .ruf, .rm-bk-tabelle .ruf { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-weight: 600; }
.rm-bk-tabelle td.g { background: color-mix(in srgb, #27af57 25%, transparent); }
.rm-bk-tabelle td.m { background: color-mix(in srgb, #d6a10b 25%, transparent); }
.rm-bk-tabelle td.n { background: color-mix(in srgb, #ef4444 15%, transparent); }
.rm-bk-karte { width: 100%; height: auto; display: block; }
.rm-bk-karte .meer { fill: color-mix(in srgb, var(--accent) 8%, var(--bg2)); stroke: var(--border); }
.rm-bk-karte .land { fill: color-mix(in srgb, var(--muted) 30%, transparent); stroke: none; }
.rm-bk-karte .land-rand { fill: none; stroke: color-mix(in srgb, var(--muted) 40%, transparent); stroke-width: 0.6; }
.rm-bk-karte .ring { fill: none; stroke: var(--border); stroke-dasharray: 3 4; }
.rm-bk-karte .ring-text, .rm-bk-karte .richtung { fill: var(--muted); font-size: 10px; }
.rm-bk-karte .pfad { stroke-width: 1.4; opacity: 0.55; }
.rm-bk-karte .bake text { fill: var(--fg); font-size: 10px; font-family: ui-monospace, monospace; }
.rm-bk-karte .bake circle { stroke: var(--bg); stroke-width: 1; }
.rm-bk-karte .mitte { fill: var(--accent); }
.rm-marke.rm-bake { background: #8b5cf6; color: #fff; border-radius: 2px; }
.rm-marke.rm-bake::after { border-top-color: #8b5cf6; }

/* ------------------------------------------------ Band-Logbuch (AFU-77) */
.rm-bl-bild { position: relative; height: 340px; border-radius: 6px 6px 0 0; overflow: hidden; background: #000; margin-top: 0.4rem; }
.rm-bl-canvas { display: block; width: 100%; height: 100%; cursor: crosshair; }
.rm-bl-auswertung { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.8rem 1.2rem; margin-top: 0.8rem; }
@media (max-width: 1000px) { .rm-bl-auswertung { grid-template-columns: minmax(0, 1fr); } }
.rm-bl-auswertung h4 { margin: 0 0 0.3rem; font-size: 0.85rem; }
.rm-bl-auswertung section > h4 + div + h4 { margin-top: 0.8rem; }
.rm-bl-diagramm { width: 100%; height: auto; display: block; }
.rm-bl-diagramm .achse { stroke: var(--border); }
.rm-bl-diagramm text { fill: var(--muted); font-size: 10px; }
.rm-bl-diagramm .linie { fill: none; stroke: var(--accent); stroke-width: 1.5; }
.rm-bl-diagramm .linie2 { fill: none; stroke: #d6a10b; stroke-width: 1.5; }
.rm-bl-diagramm .balken { fill: color-mix(in srgb, var(--accent) 55%, transparent); }
.rm-bl-diagramm .k { fill: color-mix(in srgb, #ef4444 45%, transparent); }
.rm-bl-auswertung table td, .rm-bl-auswertung table th { padding: 0.2rem 0.45rem; font-size: 0.8rem; }

/* ------------------------------------------------ Satellit (AFU-80) */
.rm-sat-oben { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(0, 2fr); gap: 0.6rem 1.2rem; margin: 0.5rem 0; align-items: start; }
@media (max-width: 800px) { .rm-sat-oben { grid-template-columns: minmax(0, 1fr); } }
.rm-sat-werte { display: grid; grid-template-columns: auto 1fr; gap: 0.15rem 0.8rem; margin: 0; font-size: 0.85rem; }
.rm-sat-werte dt { color: var(--muted); }
.rm-sat-werte dd { margin: 0; }
.rm-sat-balken { width: 100%; height: auto; display: block; }
.rm-sat-balken .flaeche { fill: color-mix(in srgb, var(--accent) 25%, transparent); stroke: var(--accent); }
.rm-sat-balken .jetzt { stroke: #ef4444; stroke-width: 2; }
.rm-sat-balken text { fill: var(--muted); font-size: 10px; }
.rm-sat-balken .achse { stroke: var(--border); }
.rm-sat-karte { width: 100%; height: auto; display: block; border-radius: 6px; }
.rm-sat-karte .meer { fill: color-mix(in srgb, var(--accent) 8%, var(--bg2)); }
.rm-sat-karte .land { fill: color-mix(in srgb, var(--muted) 30%, transparent); }
.rm-sat-karte .fuss { fill: color-mix(in srgb, #27af57 18%, transparent); stroke: #27af57; stroke-width: 1.2; }
.rm-sat-karte .spur { fill: none; stroke: #d6a10b; stroke-width: 1; stroke-dasharray: 4 3; }
.rm-sat-karte .station { fill: var(--accent); stroke: var(--bg); }
.rm-sat-karte .sat { fill: #ef4444; stroke: var(--bg); }
.rm-sat #rm-sat-start[aria-pressed="true"] { background: var(--rm-an); border-color: var(--rm-an); color: var(--rm-an-schrift); }
.rm-sat-trfeld input { width: 100%; }

/* ------------------------------------------------ Rotor (AFU-81) */
.rm-ro-gitter { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0.8rem 1.2rem; align-items: start; }
/* nach der Breite des Kastens, nicht des Fensters: die Breite stellt jeder selbst ein */
.rm-ro > .rm-kasten-inhalt { container-type: inline-size; }
@container (max-width: 480px) {
  .rm-ro-gitter { grid-template-columns: minmax(0, 1fr); }
  .rm-ro-rose { max-width: 240px; justify-self: center; width: 100%; }
}
.rm-ro-rose { cursor: crosshair; max-width: 440px; }
.rm-ro-rose svg { width: 100%; height: auto; display: block; }
.rm-ro-wert { font-size: 1.6rem; margin: 0 0 0.4rem; }
.rm-ro-wert .field-hint { font-size: 0.8rem; }
.rm-bk-karte .rose-strich { stroke: var(--muted); stroke-width: 1; }
.rm-bk-karte .rose-zahl { fill: var(--muted); font-size: 10px; }
.rm-bk-karte .rose-nadel { stroke: #ef4444; stroke-width: 3; stroke-linecap: round; }
.rm-bk-karte .rose-spitze { fill: #ef4444; }
.rm-bk-karte .rose-ziel { stroke: #f5d90a; stroke-width: 2; stroke-dasharray: 6 4; }

/* ------------------------------------------------ Zwei Antennen (AFU-78) */
/* umbrechend statt fester Spalten: der Kasten ist mal schmal, mal breit */
.rm-za-gitter, .rm-za-peil { display: flex; flex-wrap: wrap; gap: 0.8rem 1.6rem; align-items: flex-start; margin: 0.6rem 0; }
.rm-za-gitter > * { flex: 1 1 240px; min-width: 0; }
.rm-za-rose { flex: 1 1 280px; }
.rm-za-peil-felder { flex: 1 1 240px; min-width: 0; }
.rm-za-tabelle { border-collapse: collapse; font-size: 0.9rem; }
.rm-za-tabelle th, .rm-za-tabelle td { padding: 0.25rem 0.6rem 0.25rem 0; text-align: left; border-bottom: 1px solid var(--border); }
.rm-za-tabelle thead th { color: var(--muted); font-weight: 500; }
.rm-za-tabelle tbody th { color: var(--muted); font-weight: 400; }
.rm-za-tabelle td.gewaehlt { font-weight: 600; color: var(--accent); }
.rm-za-dl { display: grid; grid-template-columns: auto 1fr; gap: 0.2rem 0.8rem; margin: 0; }
.rm-za-dl dt { color: var(--muted); }
.rm-za-dl dd { margin: 0; }
.rm-bk-karte .rose-peil { stroke: #22c55e; stroke-width: 2.5; stroke-linecap: round; }
.rm-bk-karte .rose-peil2 { stroke: #22c55e; stroke-width: 1.5; stroke-dasharray: 4 4; opacity: 0.7; }
.rm-bk-karte .rose-grund { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 2 3; }

/* ------------------------------------------------ Antennenvergleich (AFU-79) */
.rm-av progress { width: 100%; height: 8px; }
.rm-av-jetzt { margin: 0.3rem 0; }
.rm-av-satz { font-size: 1.25rem; font-weight: 600; margin: 0.6rem 0 0.4rem; }
.rm-av-bild svg { width: 100%; height: auto; display: block; max-width: 760px; }
.rm-av-uebersicht { margin: 0 0 0.4rem; padding-left: 1.2rem; }
.av-diagramm .av-gitter { stroke: var(--border); stroke-width: 1; }
.av-diagramm .av-achse { fill: var(--muted); font-size: 10px; }
.av-diagramm .av-leg { font-size: 11px; }
.av-diagramm .av-a { fill: none; stroke: #3b82f6; stroke-width: 1.5; opacity: 0.8; }
.av-diagramm .av-a-p, .av-diagramm .av-a-t { fill: #3b82f6; }
.av-diagramm .av-b { fill: none; stroke: #f59e0b; stroke-width: 1.5; opacity: 0.8; }
.av-diagramm .av-b-p, .av-diagramm .av-b-t { fill: #f59e0b; }
.av-diagramm .av-balken { fill: var(--muted); opacity: 0.6; }
.av-diagramm .av-null { stroke: var(--fg); stroke-width: 1; stroke-dasharray: 3 3; }
/* breite Tabelle: rollt im Kasten, statt ihn aufzudrücken */
.rm-av .rm-kasten-inhalt, .rm-av .rm-kasten-inhalt > * { min-width: 0; }
.rm-av .data-wrap { overflow-x: auto; }

/* ------------------------------------------------ Shack (AFU-82) */
.rm-sh-kacheln { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.6rem; }
.rm-sh-kachel { border: 1px solid var(--border); border-left: 4px solid #22c55e; border-radius: 9px; padding: 0.45rem 0.6rem;
  background: var(--bg2); min-width: 0; display: flex; flex-direction: column; gap: 0.15rem; }
.rm-sh-kachel.warn { border-left-color: #f59e0b; }
.rm-sh-kachel.alarm { border-left-color: #ef4444; background: color-mix(in srgb, #ef4444 10%, var(--bg2)); }
.rm-sh-kachel.alt, .rm-sh-kachel.leer { border-left-color: var(--muted); opacity: 0.75; }
.rm-sh-kachel .name { font-size: 0.8rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rm-sh-kachel .wert { font-size: 1.45rem; font-family: var(--mono, monospace); line-height: 1.2; }
.rm-sh-kachel .klein { font-size: 0.72rem; color: var(--muted); }
.rm-sh-kachel .btn-sm { align-self: flex-start; }
.rm-sh-kachel .sh-verlauf { width: 100%; height: 30px; display: block; }
.sh-verlauf .sh-linie { fill: none; stroke: var(--accent); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.sh-verlauf .sh-grenze { stroke: #f59e0b; stroke-width: 1; stroke-dasharray: 3 3; vector-effect: non-scaling-stroke; opacity: 0.7; }
.rm-sh-marke { margin-left: 0.4rem; font-size: 0.7rem; padding: 0.05rem 0.4rem; border-radius: 9px; background: #ef4444; color: #fff; }
.rm-sh-marke.warn { background: #f59e0b; color: #111; }
.rm-sh-bruecke .rm-knopfreihe .btn-sm[aria-pressed="true"] { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 18%, transparent); }
.rm-sh-ausgaenge { display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; font-size: 0.85rem; margin-top: 0.4rem; }
.rm-sh-kameras { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0.8rem; margin-top: 0.8rem; }
.rm-sh-kamera { margin: 0; }
.rm-sh-kamera img { width: 100%; height: auto; border-radius: 8px; display: block; cursor: zoom-in; background: var(--bg2); min-height: 60px; }
.rm-sh-kamera figcaption { display: flex; justify-content: space-between; gap: 0.5rem; font-size: 0.8rem; color: var(--muted); margin-top: 0.2rem; }

/* ------------------------------------------------ Gewitter (AFU-83) */
.rm-gw-lage { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.8rem; padding: 0.6rem 0.8rem; border-radius: 9px;
  border-left: 5px solid #22c55e; background: var(--bg2); }
.rm-gw-lage.gelb { border-left-color: #eab308; background: color-mix(in srgb, #eab308 12%, var(--bg2)); }
.rm-gw-lage.orange { border-left-color: #f97316; background: color-mix(in srgb, #f97316 14%, var(--bg2)); }
.rm-gw-lage.rot { border-left-color: #ef4444; background: color-mix(in srgb, #ef4444 16%, var(--bg2)); }
.rm-gw-lage.aus { border-left-color: var(--muted); }
.rm-gw-stufe { font-size: 1.3rem; font-weight: 600; }
.rm-gw-grund { color: var(--muted); }
.rm-gw-liste { margin: 0; padding-left: 1.1rem; }
.rm-gw-liste li.drin { font-weight: 600; }
.rm-gw-stufen { display: grid; gap: 0.7rem; }
.rm-gw-karte { border: 1px solid var(--border); border-radius: 9px; padding: 0.6rem 0.8rem; background: var(--bg2); }
.rm-gw-karte h4 { margin: 0 0 0.4rem; display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; }
.rm-gw-karte .rm-zeile { margin-top: 0.3rem; }

/* ------------------------------------------------ Suchlauf (AFU-84) */
.rm-sl .rm-kasten-inhalt, .rm-sl .rm-kasten-inhalt > * { min-width: 0; }
.rm-sl .data-wrap { overflow-x: auto; }
.rm-sl-stand { font-family: var(--mono, monospace); margin: 0.4rem 0; }
.rm-sl-stand .haelt { color: #22c55e; font-weight: 600; }
.rm-sl tr.aktiv td:first-child { box-shadow: inset 3px 0 0 #22c55e; }

/* ------------------------------------------------ Kalender (AFU-85) */
.rm-kal-lage { font-weight: 600; margin: 0 0 0.3rem; }
.rm-kal-woche-text { color: var(--muted); }
.rm-kal-raster { display: grid; grid-template-columns: 2.6rem repeat(7, minmax(0, 1fr)); border: 1px solid var(--border);
  border-radius: 9px; overflow: hidden; font-size: 0.75rem; }
.rm-kal-raster .kopf { text-align: center; padding: 0.25rem 0; background: var(--bg2); border-bottom: 1px solid var(--border); }
.rm-kal-raster .kopf.heute { color: var(--accent); font-weight: 600; }
.rm-kal-raster .stunden, .rm-kal-raster .tag { position: relative; height: 384px; }
.rm-kal-raster .tag { border-left: 1px solid var(--border); cursor: copy;
  background-image: linear-gradient(var(--border) 1px, transparent 1px); background-size: 100% 16px; }
.rm-kal-raster .tag.vorbei { background-color: color-mix(in srgb, var(--muted) 8%, transparent); }
.rm-kal-raster .stunden span { position: absolute; right: 0.3rem; transform: translateY(-50%); color: var(--muted); }
.rm-kal-raster .block { position: absolute; left: 2px; right: 2px; border-radius: 4px; padding: 1px 3px; overflow: hidden;
  background: color-mix(in srgb, var(--accent) 22%, var(--bg)); border: 1px solid var(--accent); cursor: pointer; line-height: 1.2; }
.rm-kal-raster .block.meins { background: color-mix(in srgb, #22c55e 25%, var(--bg)); border-color: #22c55e; }
.rm-kal-raster .block.gewaehlt { outline: 2px solid var(--fg); }
.rm-kal-raster .jetzt { position: absolute; left: 0; right: 0; height: 2px; background: #ef4444; pointer-events: none; }

/* ------------------------------------------------ Gastzugang (AFU-87) */
.rm-gp-qr { display: flex; justify-content: center; background: #fff; border-radius: var(--radius); padding: 1rem; }
.rm-gp-qr svg { width: min(320px, 70vw); height: auto; display: block; }
.rm-gp-zeit { text-align: center; font-weight: 600; margin: 0.6rem 0; }

/* AFU-88: geführte Touren */
.rm-sh-marke.gut { background: #22c55e; color: #04130a; }
.rm-tk-liste { display: grid; gap: 0.3rem; }
.rm-tk-tour { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 0.6rem; align-items: center;
  padding: 0.3rem 0.3rem 0.3rem 0.6rem; border: 1px solid var(--border); border-radius: 9px; background: var(--bg); }
.rm-tk-tour h3 { margin: 0; font-size: 0.9rem; font-weight: 600; }
.rm-tk-min { color: var(--muted); font-size: 0.8rem; white-space: nowrap; }
.rm-tour { position: fixed; right: 1rem; bottom: 1rem; z-index: 60; width: min(30rem, calc(100vw - 2rem));
  max-height: min(80vh, 46rem); display: flex; flex-direction: column; background: var(--bg2); color: var(--fg);
  border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45); }
.rm-tour[hidden] { display: none; }
.rm-tour-kopf { display: flex; align-items: center; gap: 0.6rem; height: 2.3rem; box-sizing: border-box; padding: 0 0.4rem 0 0.8rem;
  border-bottom: 1px solid var(--border); font-size: 0.76rem; color: var(--muted); font-variant: small-caps; }
.rm-tour-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rm-tour-gross { font-variant: normal; }
.rm-tour-punkte { display: flex; gap: 0.3rem; padding: 0.5rem 0.9rem 0; }
.rm-tour-punkte span { flex: 1 1 0; height: 4px; border-radius: 2px; background: var(--border); }
.rm-tour-punkte span.da { background: linear-gradient(90deg, var(--accent), var(--accent2)); }
.rm-tour-inhalt { padding: 0.6rem 0.9rem; overflow-y: auto; flex: 1 1 auto; }
.rm-tour-inhalt h3 { margin: 0.2rem 0 0.5rem; font-size: 1.1rem; }
.rm-tour-inhalt p { margin: 0 0 0.6rem; line-height: 1.5; }
.rm-tour-status { color: var(--accent); font-style: italic; }
.rm-tour-status::before { content: ""; display: inline-block; width: 0.6em; height: 0.6em; margin-right: 0.45em; border-radius: 50%;
  background: currentColor; animation: rm-tour-puls 1s ease-in-out infinite; }
@keyframes rm-tour-puls { 50% { opacity: 0.25; } }
.rm-tour-inhalt table.data td:first-child { white-space: nowrap; font-family: var(--mono, monospace); font-weight: 600; }
.rm-tour-lernen { margin: 0.4rem 0 0; padding-left: 1.1rem; }
.rm-tour-lernen li { margin: 0.2rem 0; }
.rm-tour-fuss { display: flex; gap: 0.5rem; align-items: center; padding: 0.6rem 0.9rem; border-top: 1px solid var(--border); }
.rm-tour-fuss span { flex: 1 1 auto; }
.rm-tour.gross { width: min(46rem, calc(100vw - 2rem)); max-height: 88vh; }
.rm-tour.gross .rm-tour-inhalt { font-size: 1.35rem; }
.rm-tour.gross .rm-tour-inhalt h3 { font-size: 1.7rem; }
.rm-tour.gross .rm-tour-fuss .btn, .rm-tour.gross .rm-tour-fuss .btn-sm { font-size: 1.1rem; }
.rm-tour-ziel { outline: 3px solid var(--accent); outline-offset: 3px; border-radius: 9px; animation: rm-tour-ziel 1.6s ease-in-out infinite; }
@keyframes rm-tour-ziel { 50% { outline-color: var(--accent2); } }
@media (prefers-reduced-motion: reduce) { .rm-tour-ziel, .rm-tour-status::before { animation: none; } }
@media (max-width: 700px) { .rm-tour { right: 0.5rem; left: 0.5rem; bottom: 0.5rem; width: auto; max-height: 60vh; } }
.rm-tour-inhalt table.data td { white-space: normal; vertical-align: top; }

/* AFU-89: nur für den Bildschirmleser */
.rm-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.rm-freq:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }

/* AFU-90: Skimmer */
.rm-sk-lage { margin: 0 0 0.5rem; }
.rm-ske-baender { border: 1px solid var(--border); border-radius: 9px; padding: 0.4rem 0.7rem; margin: 0; }
.rm-ske-baender legend { font-size: 0.8rem; color: var(--muted); padding: 0 0.3rem; }
.rm-ske-baender label { margin-right: 0.9rem; }
.rm-ske-zustand { margin: 0.8rem 0; font-size: 0.9rem; }
.rm-ske-zustand ul { margin: 0.3rem 0; padding-left: 1.2rem; }

/* AFU-91: Decode-Archiv */
.rm-ar-form { align-items: flex-end; flex-wrap: wrap; }
.rm-ar-satz { font-weight: 600; margin: 0.6rem 0; }
.rm-ar-lage { margin: 0 0 0.5rem; color: var(--muted); }
.rm-ar-heat { overflow-x: auto; max-height: 34rem; overflow-y: auto; }
.rm-ar-balken svg { max-width: 44rem; display: block; }
.rm-ar h4 { margin: 0.8rem 0 0.3rem; font-size: 0.85rem; color: var(--muted); font-weight: 600; }

/* AFU-93: Erreichbarkeit */
.rm-weg-wahl { border: 0; padding: 0; margin: 0.6rem 0; display: grid; gap: 0.6rem; }
.rm-weg-wahl .rm-schalter { align-items: flex-start; }
.rm-weg-wahl input[disabled] + span { opacity: 0.5; }

/* AFU-95: Zuhören: Bedienelemente des Funkgeräts gesperrt */
.rm-app .rm-gesperrt { opacity: 0.5; cursor: not-allowed; filter: grayscale(0.4); }
.rm-app [data-nicht-nutzbar] { display: none !important; }   /* hier gerade nicht nutzbar (nutzbarStellen in remote.js) */
.rm-hoerer { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.8rem; }
.rm-hoerer[hidden] { display: none; }
.rm-hoerer span { flex: 1 1 20rem; }

/* Quellen in Kästen: eine kleine Zeile statt eines Absatzes; leere Zustandszeilen nehmen keinen Platz */
.rm-quelle { margin: 0; font-size: 0.72rem; color: var(--muted); }
.rm-quelle a { color: inherit; }
.rm-kasten-inhalt .field-hint:empty { display: none; }

/* Chat mit Teilnehmern, Logbuch als Tabelle (aus 3d885fb) */
/* Chat: wer an der Station ist (Marken oben), Höhe am Griff unten (einst.chatHoehe) */
.rm-chat-untertitel { margin-left: 8px; font-size: 11.5px; font-weight: 400; color: var(--muted); text-transform: none; letter-spacing: 0; }
.rm-chat-leute { display: flex; flex-wrap: wrap; gap: 6px; }
.rm-chat-leute:empty { display: none; }
.rm-chat-marke { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12px;
  background: var(--bg); border: 1px solid var(--border); color: var(--fg); white-space: nowrap; }
.rm-chat-marke::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #27af57; }
.rm-chat-marke.bedient::before { background: var(--accent); }
.rm-chat-marke.sendet::before { background: #ef4444; }
.rm-chat-marke.support::before { background: #f59e0b; }   /* AFU-269: der Support einer Sitzung */
/* Lesezeichen: + und „Aus Datei laden“ nebeneinander */
.rm-lz-knoepfe { flex-wrap: nowrap; align-items: center; }
.rm-lz-knoepfe .rm-lz-plus { width: 30px; min-width: 30px; padding: 0; justify-content: center; font-size: 16px; }
.rm-kasten-kopf .rm-chat-untertitel { margin-right: auto; }
#rm-chat-titel { flex: 0 0 auto; }
/* Logbuch: kompaktes Formular, Beschriftung vor dem Feld (nur Bemerkung darüber), darunter die QSOs als Tabelle */
.rm-lb-form { display: grid; grid-template-columns: auto minmax(7rem, 1fr) auto 3.4rem auto 3.4rem; gap: 6px 8px; align-items: center; }
.rm-lb-form > label { font-size: 12px; color: var(--muted); white-space: nowrap; margin: 0; text-transform: none; letter-spacing: 0; }
.rm-lb-form input { height: 30px; min-height: 30px; padding: 0 8px; font-size: 13px; min-width: 0; width: 100%; box-sizing: border-box; }
.rm-lb-form .rm-lb-ruf { text-transform: uppercase; font-weight: 600; }
.rm-lb-form .rm-lb-rst { text-align: center; padding: 0 4px; }
.rm-lb-form .rm-lb-qth { grid-column: 4 / -1; }
.rm-lb-form .rm-lb-loc { grid-column: 4 / -1; text-transform: uppercase; }
.rm-lb-form select { height: 30px; min-height: 30px; font-size: 13px; min-width: 0; width: 100%; }
.rm-lb-form .rm-lb-gearbeitet { grid-column: 1 / -1; margin: 0; min-height: 0; }
.rm-lb-form .rm-lb-gearbeitet:empty { display: none; }
.rm-lb-bem { grid-column: 1 / -1; display: grid; gap: 3px; }
.rm-lb-bem > label { font-size: 12px; color: var(--muted); margin: 0; text-transform: none; letter-spacing: 0; }
.rm-lb-bem-zeile { display: flex; gap: 8px; }
.rm-lb-bem-zeile input { flex: 1 1 auto; }
.rm-lb-bem-zeile .btn-sm { height: 30px; min-height: 30px; white-space: nowrap; }
.rm-lb-vorbelegt { margin: 0 0 2px; font-size: 12.5px; }
.rm-lb-tabelle .rm-lb-t-ruf { font-weight: 600; }
.rm-lb-tabelle tr.hat-bemerkung .rm-lb-t-ruf { text-decoration: underline dotted; text-underline-offset: 3px; cursor: help; }
.rm-lb-tabelle .rm-logbuch-stand { text-align: right; font-size: 11.5px; }
@container (max-width: 420px) { .rm-lb-form { grid-template-columns: auto 1fr auto 3.4rem; } .rm-lb-form .rm-lb-qth, .rm-lb-form .rm-lb-loc { grid-column: 2 / -1; } }
[data-kasten="logbuch"] { container-type: inline-size; }
.rm-lb-tabelle td { white-space: nowrap; max-width: 9rem; overflow: hidden; text-overflow: ellipsis; }
.rm-logbuch-liste { max-height: none; display: block; overflow: visible; }
/* Chat: Eingabe oben, darunter die Nachrichten, die neueste zuerst */
/* AFU-146: eingeklappt verschwindet alles samt Eingabe (vorher hielt das !important den Inhalt sichtbar) */
[data-kasten="chat"]:not(.zu) > .rm-kasten-inhalt { display: flex !important; flex-direction: column; gap: 8px; }
[data-kasten="chat"] .rm-chat-liste { flex: 1 1 auto; min-height: 0; }
[data-kasten="chat"] .rm-chat-liste { justify-content: flex-start; }
[data-kasten="chat"] .rm-chat-zeile { flex: 0 0 auto; }
.rm-lb-form input, .rm-lb-form select { background: var(--bg); color: var(--fg); border: 1px solid var(--border); border-radius: 8px; font-family: inherit; }
.rm-lb-form input.mono { font-family: var(--rm-mono); }
.rm-lb-form input:focus { outline: none; border-color: var(--accent); }
#rm-lb-filter[hidden], #rm-lb-fuss[hidden], #rm-lb-zahl[hidden] { display: none; }
#rm-lb-zahl { margin: 4px 0 0; }
.rm-lb-tabelle .filterzeile select { min-width: 70px; }
[data-kasten="logbuch"] > .rm-kasten-inhalt { min-width: 0; }
.rm-logbuch-liste { min-width: 0; max-width: 100%; overflow-x: auto; }
.rm-lb-tabelle .filterzeile select { min-width: 62px; max-width: 80px; }
.rm-lb-tabelle .filterzeile input { min-width: 0; width: 100%; max-width: 110px; }
.rm-lb-tabelle th, .rm-lb-tabelle td { padding-left: 6px; padding-right: 6px; }
[data-kasten="chat"] .rm-chat-text { flex-basis: auto; }
/* Logbuch, zweite Fassung: Rufzeichen, Austausch, RST empf., RST ges. in einer Zeile; Name, QTH, UTC darunter */
.rm-lb-form { grid-template-columns: auto minmax(7rem, 1.4fr) auto minmax(4rem, 1fr) auto 3.4rem auto 3.4rem; }
.rm-lb-form .rm-lb-qth { grid-column: 4 / 7; }
.rm-lb-form .rm-lb-uhr { grid-column: 8; text-align: center; padding: 0 4px; }
.rm-lb-ruf-feld { position: relative; min-width: 0; }
.rm-lb-vorschlaege { position: absolute; z-index: 20; top: calc(100% + 2px); left: 0; min-width: 100%; width: max-content; max-width: 22rem;
  margin: 0; padding: 4px; list-style: none; background: var(--bg2); border: 1px solid var(--border); border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35); }
.rm-lb-vorschlaege[hidden] { display: none; }
.rm-lb-vorschlaege li { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 5px 8px;
  border-radius: 6px; cursor: pointer; font-size: 13px; }
.rm-lb-vorschlaege li .mono { font-weight: 600; }
.rm-lb-vorschlaege li small { color: var(--muted); font-size: 11px; white-space: nowrap; }
.rm-lb-vorschlaege li:hover, .rm-lb-vorschlaege li[aria-selected="true"] { background: color-mix(in srgb, var(--accent) 22%, transparent); }
@container (max-width: 560px) {
  .rm-lb-form { grid-template-columns: auto 1fr auto 3.4rem; }
  .rm-lb-form .rm-lb-qth { grid-column: 2 / -1; }
  .rm-lb-form .rm-lb-uhr { grid-column: auto; }
}
/* Bakenuhr: Liste aller Baken einklappbar, ab Werk zu */
.rm-bk-liste { min-width: 0; }
.rm-bk-liste > summary { cursor: pointer; font-size: 12.5px; color: var(--muted); padding: 4px 0; list-style-position: inside; }
.rm-bk-liste > summary:hover { color: var(--fg); }
.rm-bk-liste[open] > summary { margin-bottom: 6px; }

/* AFU-131: in der Zeile nur ein kleiner Knopf, alle Bereiche im Tooltip in Spalten (Spaltenzahl setzt remote.js) */
.rm-skala-plan { flex: none; align-items: center; flex-wrap: nowrap; }
.rm-legende i { flex: none; }
.rm-legende-knopf { display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 8px; border-radius: 11px;
  border: 1px solid var(--border); background: transparent; color: var(--muted); font: inherit; font-size: 11px; cursor: pointer; white-space: nowrap; }
.rm-legende-knopf:hover, .rm-legende-knopf:focus-visible, .rm-legende-knopf[aria-expanded="true"] { border-color: var(--accent); color: var(--fg); }
.rm-legende-farben { display: inline-flex; gap: 1px; }
.rm-legende-farben i { display: block; width: 5px; height: 10px; border-radius: 1px; }
.rm-legende-zahl { font-weight: 600; color: var(--fg); }
.rm-legende-pop { position: fixed; inset: auto; margin: 0; min-width: 200px; max-width: 92vw; max-height: 60vh; overflow: auto;
  padding: 10px 12px; background: var(--bg2); color: var(--fg); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow); }
.rm-legende-pop .rm-pop-kopf { font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.rm-legende-liste { display: grid; grid-auto-flow: column; gap: 6px 18px; }
.rm-legende-liste .rm-legende { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; line-height: 1.3; white-space: normal; }
.rm-legende-liste .rm-legende i { width: 14px; height: 9px; border-radius: 2px; margin-top: 3px; }
@media (max-width: 40rem) { .rm-legende-liste { grid-auto-flow: row; grid-template-columns: 1fr !important; grid-template-rows: none !important; } }

/* schmale Fenster: der Kopf eines Wasserfalls bricht um, statt die Seite zu verbreitern */
@media (max-width: 700px) {
  .rm-rx-kopf { flex-wrap: wrap; row-gap: 0.3rem; }
  .rm-rx-rechts { flex-wrap: wrap; white-space: normal; justify-content: flex-end; row-gap: 0.3rem; }
}

/* AFU-141: ein Kasten im eigenen Fenster (abdocken in remote.js). Er füllt das Fenster; Lösen, Ziehen und Breite
   gibt es dort nicht, der Knopf ⇲ holt ihn zurück. */
.rm-abdock-body { margin: 0; background: var(--bg); color: var(--fg); }
.rm-app.rm-abdock { margin: 0; padding: 0.5rem; min-height: 100vh; box-sizing: border-box; display: flex; flex-direction: column; }
.rm-abdock > .rm-kasten { flex: 1 1 auto; margin: 0; }
.rm-abgedockt .rm-fenster-knopf { display: inline-block; }
.rm-kasten.rm-abgedockt > .rm-kasten-kopf { cursor: default; }

/* AFU-142: die Fernbedienung nimmt die ganze Breite des Fensters, Kopf- und Fußzeile gehen mit */
.wrap.rm-app, body:has(> main .rm-app) .topbar .wrap, body:has(> main .rm-app) footer .wrap {
  width: calc(100% - 2rem); max-width: none;
}

/* ------------------------------------------------------------ AFU-145: eigene Breiten, Spektrum/Wasserfall
   remote.js setzt die Variablen an .rm-app (groessenAnwenden); ohne sie gilt die Vorgabe. Die Breiten regelt seit
   09.10.2026 das Raster der Kästen. */
/* Spektrum und Wasserfall: Höhe beider zusammen bleibt, der Griff verschiebt nur die Grenze */
.rm-wf .rm-spektrum { height: var(--rm-h-spek, 5rem); }
.rm-rx .rm-rx-spektrum { height: var(--rm-h-spek, 6rem); }
.rm-wf .rm-wasserfall { min-height: calc(var(--rm-wf-hoehe) + 5rem - var(--rm-h-spek, 5rem)); }
.rm-rx .rm-rx-flaeche { min-height: calc(var(--rm-wf-hoehe) + 6rem - var(--rm-h-spek, 6rem)); }
.rm-wf .rm-3d, .rm-rx .rm-3d { height: var(--rm-h-d3, 11rem); }
.rm-wf[data-anzeige="3d_wf"] .rm-wasserfall { min-height: calc(var(--rm-wf-hoehe) + 5rem - var(--rm-h-d3, 11rem)); }
.rm-rx[data-anzeige="3d_wf"] .rm-rx-flaeche { min-height: calc(var(--rm-wf-hoehe) + 6rem - var(--rm-h-d3, 11rem)); }
.rm-spek-griff { display: none; flex: 0 0 auto; height: 10px; margin: -5px 0; position: relative; z-index: 3;
  cursor: ns-resize; touch-action: none; }
.rm-wf:not([data-anzeige]) > .rm-spek-griff-spek, .rm-wf[data-anzeige="spektrum_wf"] > .rm-spek-griff-spek,
.rm-rx:not([data-anzeige]) > .rm-spek-griff-spek, .rm-rx[data-anzeige="spektrum_wf"] > .rm-spek-griff-spek,
.rm-wf[data-anzeige="3d_wf"] > .rm-spek-griff-d3, .rm-rx[data-anzeige="3d_wf"] > .rm-spek-griff-d3 { display: block; }
.rm-spek-griff:hover, .rm-spek-griff:focus-visible, .rm-spek-griff.zieht {
  background: linear-gradient(180deg, transparent 4px, var(--accent) 4px, var(--accent) 6px, transparent 6px); outline: none; }

/* AFU-147: Relais als Lesezeichen (Dialog wie „Relais hinzufügen“ in Rigstudio) */
.rm-klein-dialog.rm-lzr-dialog { width: min(96vw, 64rem); }
.rm-lzr-filter { display: flex; flex-wrap: wrap; gap: 0.6rem 0.9rem; align-items: flex-start; margin-top: 0.6rem; }
.rm-lzr-filter .field { margin: 0; }
.rm-lzr-filter .field.grow { flex: 1 1 14rem; }
.rm-lzr-tabelle tr.gesperrt td { opacity: 0.55; }
.rm-lzr-dialog .count-line { margin: 0.8rem 0 0.4rem; }

/* AFU-154: Gerätetest */
.rm-gt-lage { font-weight: 600; margin: 0 0 0.3rem; }
.rm-gt-warn { margin: 0 0 0.6rem; }
.rm-gt-gruppe { margin: 0.9rem 0 0.3rem; }
.rm-gt-schritt { padding: 0.5rem 0.6rem; border: 1px solid var(--border); border-radius: 9px; margin-bottom: 0.5rem;
  border-left-width: 3px; }
.rm-gt-schritt[data-ergebnis="ok"] { border-left-color: #10b981; }
.rm-gt-schritt[data-ergebnis="fehler"] { border-left-color: #ef4444; }
.rm-gt-schritt[data-ergebnis="aus"] { border-left-color: var(--muted); }
.rm-gt-schritt p { margin: 0 0 0.25rem; }
.rm-gt-kopf { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.rm-gt-nr { color: var(--muted); font-variant-numeric: tabular-nums; }
.rm-gt-erwartet { color: var(--muted); font-size: 0.9em; }
.rm-gt-wahl { align-items: end; }
.rm-gt-knoepfe { display: flex; gap: 0.3rem; flex-wrap: wrap; }
.rm-gt-knoepfe .btn-sm[aria-pressed="true"].rm-gt-ok { background: #10b981; border-color: #10b981; color: #fff; }
.rm-gt-knoepfe .btn-sm[aria-pressed="true"].rm-gt-fehler { background: #ef4444; border-color: #ef4444; color: #fff; }
.rm-gt-knoepfe .btn-sm[aria-pressed="true"].rm-gt-aus { background: var(--muted); border-color: var(--muted); color: var(--bg); }
.rm-gt-notiz { flex: 1 1 12em; margin: 0; }
/* AFU-322: bisheriger Stand aus den zusammengeführten Protokollen */
.rm-gt-bisher { font-size: 0.85em; color: var(--muted); }
.rm-gt-bisher.rm-gt-b-ok { color: #10b981; }
.rm-gt-bisher.rm-gt-b-fehler { color: #ef4444; }
.rm-gt-bisher-zeile { align-items: center; gap: 0.6rem; flex-wrap: wrap; margin: 0 0 0.5rem; }
#rm-gt-nur-neue[aria-pressed="true"] { border-color: var(--accent); color: var(--fg); }
.rm-gt-nur-neue .rm-gt-schritt.rm-gt-geprueft { display: none; }

/* ------------------------------------------------------------ AFU-161: Bedienpult */
.rm-pu-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; }
.rm-pu-chip { border: 1px solid var(--border); border-radius: 999px; padding: 0.15rem 0.7rem; font-size: 0.85rem; color: var(--muted); }
.rm-pu-chip.ok { border-color: #2bd47d; color: #2bd47d; }
.rm-pu-kopf { display: flex; flex-wrap: wrap; gap: 0.6rem 1.2rem; align-items: end; margin-bottom: 0.8rem; }
.rm-pu-kopf .rm-pu-chips { flex: 1 1 100%; }
.rm-pu-kopf .feld-zeile { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.rm-pu-kopf .ankreuz { margin: 0 0 0.5rem; }
.rm-pu-gitter { display: grid; grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr); gap: 1.2rem; align-items: start; }
@media (max-width: 860px) { .rm-pu-gitter { grid-template-columns: minmax(0, 1fr); } }
.rm-pu-ansicht { display: flex; gap: 0.2rem; border-bottom: 1px solid var(--border); margin-bottom: 0.6rem; }
.rm-pu-ansicht button { font: inherit; font-size: 0.88rem; cursor: pointer; background: transparent; color: var(--muted);
  border: 1px solid transparent; border-bottom: 0; border-radius: 8px 8px 0 0; padding: 0.35rem 0.7rem; margin-bottom: -1px; }
.rm-pu-ansicht button[aria-selected="true"] { color: var(--fg); font-weight: 600; background: var(--bg2); border-color: var(--border);
  border-bottom: 1px solid var(--bg2); }
.rm-pu-geraetkasten { background: #05070f; border: 1px solid var(--border); border-radius: 18px; padding: 1rem; }
.rm-pu-ebenen { display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center; }
.rm-pu-ebenen .btn-sm[aria-pressed="true"] { background: linear-gradient(90deg, var(--accent), var(--accent2)); color: #0a0e1f; border-color: transparent; }
.rm-pu-geraetkasten .field-hint { margin: 0.2rem 0 0.6rem; min-height: 1em; }
.rm-pu-lcd { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6rem; }
.rm-pu-unten, .rm-pu-reihe { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6rem; margin-top: 0.9rem; align-items: start; }
.rm-pu-reihe { grid-template-columns: repeat(auto-fill, minmax(5.2rem, 1fr)); margin-top: 0; }
.rm-pu-zelle { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; min-width: 0; }
.rm-pu-lbl { font-size: 0.72rem; color: var(--muted); text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.rm-pu-el { cursor: pointer; border: 2px solid #2a3358; background: #111830; color: var(--fg); padding: 0; font: inherit; }
.rm-pu-el:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.rm-pu-el.sel { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent); }
.rm-pu-display { width: 100%; aspect-ratio: 1; border-radius: 10px; overflow: hidden; display: block; }
.rm-pu-display canvas { width: 100%; height: 100%; display: block; image-rendering: auto; }
.rm-pu-taste { width: 3.6rem; height: 1.3rem; border-radius: 6px; background: #1c2135; }
.rm-pu-reihe .rm-pu-taste { width: 100%; height: 2.2rem; }
.rm-pu-code { font-size: 0.72rem; color: var(--muted); }
.rm-pu-knopf { width: 4rem; height: 4rem; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #59607a, #1c2135); position: relative; }
.rm-pu-dreh { position: absolute; left: 50%; top: 0.35rem; width: 3px; height: 0.8rem; margin-left: -1.5px; background: #c8cde0; border-radius: 2px; }
.rm-pu-karte { border: 1px solid var(--border); border-radius: var(--radius); padding: 0.8rem 1rem; margin-bottom: 0.8rem; }
.rm-pu-karte h3 { margin: 0 0 0.5rem; border-top: 0; padding-top: 0; }
table.rm-pu-tabelle { width: 100%; table-layout: fixed; }
table.rm-pu-tabelle th:nth-child(1) { width: 30%; }
table.rm-pu-tabelle th:nth-child(2) { width: 38%; }
table.rm-pu-tabelle td select, table.rm-pu-tabelle td input:not([type="checkbox"]):not([type="radio"]):not(.rm-pu-ms) { width: 100%; min-width: 0; }
table.rm-pu-tabelle td:first-child { white-space: normal; }
table.rm-pu-tabelle td { vertical-align: middle; }
table.rm-pu-tabelle td:first-child { color: var(--muted); }
table.rm-pu-tabelle tr.rm-pu-aus td { opacity: 0.45; }
table.rm-pu-tabelle input.rm-pu-ms { width: 4.6rem; min-width: 0; padding: 0.3rem 0.4rem; }
table.rm-pu-lernen { table-layout: auto; }
th.rm-pu-gruppe { padding-top: 0.8rem; text-align: left; }
.rm-pu-arten { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.2rem 0 0.8rem; }
.rm-pu-arten label { border: 1px solid var(--border); border-radius: 8px; padding: 0.3rem 0.7rem; cursor: pointer; display: flex; gap: 0.35rem; align-items: center; }
.rm-pu-arten label:has(input:checked) { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, transparent); }
.rm-pu-felder { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 0.5rem 0.8rem; align-items: center; }
.rm-pu-felder > label:not(.ankreuz), .rm-pu-felder > span:nth-child(odd) { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--muted); font-weight: 600; }
.rm-pu-felder > .ankreuz { margin: 0; }
.rm-pu-felder input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]), .rm-pu-felder select,
.rm-pu-kopf input#rm-pu-profil-name {
  background: var(--bg2); color: var(--fg); border: 1px solid var(--border); border-radius: 9px;
  padding: 0.45rem 0.7rem; font: inherit; font-size: 0.95rem; min-width: 8.5rem; max-width: 100%;
}
.rm-pu-felder .feld-zeile { display: flex; gap: 0.4rem; align-items: center; }
.rm-pu-felder input[type="color"] { width: 2.4rem; height: 1.8rem; padding: 0; border: 1px solid var(--border); border-radius: 6px; background: none; vertical-align: middle; }
.rm-pu-vorschau { display: flex; gap: 0.6rem; }
.rm-pu-vorschau canvas { width: 72px; height: 72px; border-radius: 10px; border: 2px solid #222b4d; }
.rm-pu-verbunden { list-style: none; padding: 0; margin: 0.4rem 0 0.8rem; display: grid; gap: 0.3rem; }
.rm-pu-verbunden li { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.rm-pu-vorlagen { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 0.8rem; }
.rm-pu-vorlage { border: 1px solid var(--border); border-radius: var(--radius); padding: 0.8rem 1rem; display: flex; flex-direction: column; gap: 0.4rem; align-items: start; }
.rm-pu-vorlage h4 { margin: 0; }
.rm-pu-vorlage p { margin: 0; flex: 1 1 auto; }
.rm-pu .rm-pu-ebenen { align-self: end; margin-bottom: 0.15rem; }
.rm-pu .rm-pu-chips { margin-bottom: 0.4rem; }
.rm-pu-lernen td .btn-sm { white-space: nowrap; }
.rm-pu-fuss { justify-content: space-between; }
.rm-pu-schwelle { display: inline-flex; gap: 0.3rem; align-items: center; white-space: nowrap; color: var(--muted); font-size: 0.85rem; }
table.rm-pu-tabelle td > * + .rm-pu-schwelle { margin-top: 0.3rem; }
/* AFU-157: Frequenz im Logbuch, läuft mit dem Gerät, bis man sie ändert */
.rm-lb-vorbelegt { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; }
.rm-lb-vorbelegt label { font-size: 12.5px; color: var(--muted); margin: 0; text-transform: none; letter-spacing: 0; font-weight: 400; }
.rm-lb-vorbelegt .rm-lb-freq { width: 7.6rem; height: 28px; padding: 0 6px; font: inherit; font-family: var(--rm-mono); font-size: 13px;
  text-align: right; background: var(--bg); color: var(--fg); border: 1px solid var(--border); border-radius: 8px; }
.rm-lb-vorbelegt .rm-lb-freq:focus { outline: none; border-color: var(--accent); }
.rm-lb-vorbelegt .rm-lb-freq[data-fest] { border-color: color-mix(in srgb, var(--accent) 60%, var(--border)); }
/* AFU-158: Contest-Modus im Logbuch */
.rm-lb-contest { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: end; margin: 0 0 6px; }
.rm-lb-contest .field { min-width: 0; }
/* AFU-227: in der Contest-Ansicht stellt der Logger Nummer und Austausch selbst ein (Reiter Einrichten) */
.rm-lb-contestmodus #rm-lb-c-nr-feld, .rm-lb-contestmodus #rm-lb-c-text-feld, .rm-lb-contestmodus #rm-lb-c-art,
.rm-lb-contestmodus #rm-lb-contest-info, .rm-lb-contestmodus .rm-lb-vorbelegt { display: none !important; }
.rm-lb-contest .field label { font-size: 12px; text-transform: none; letter-spacing: 0; font-weight: 400; }
#rm-logbuch-kasten .rm-lb-contest select, #rm-logbuch-kasten .rm-lb-contest input:not([type="checkbox"]) {
  height: 30px; min-height: 30px; padding: 0 8px; font-size: 13px; min-width: 0;
  background: var(--bg); color: var(--fg); border: 1px solid var(--border); border-radius: 8px; box-sizing: border-box; }
#rm-logbuch-kasten .rm-lb-contest select { max-width: 24rem; }
#rm-logbuch-kasten .rm-lb-contest input.mono { font-family: var(--rm-mono); }
#rm-logbuch-kasten .rm-lb-contest #rm-lb-stx { width: 5.2rem; text-align: right; font-weight: 600; }
#rm-logbuch-kasten .rm-lb-contest #rm-lb-stx-text { width: 7rem; }
#rm-logbuch-kasten .rm-lb-contest #rm-lb-contest-eigen { width: 10rem; text-transform: uppercase; }
#rm-logbuch-kasten .rm-lb-contest select:focus, #rm-logbuch-kasten .rm-lb-contest input:focus { outline: none; border-color: var(--accent); }
#rm-logbuch-kasten .rm-lb-c-art input[type="checkbox"] { width: 1rem; height: 1rem; }
.rm-lb-c-art { display: flex; gap: 10px; align-items: center; padding-bottom: 4px; }
.rm-lb-c-art .ankreuz { margin: 0; font-size: 12.5px; }
.rm-lb-contest-info { flex: 1 1 100%; margin: 0; font-size: 12px; }
/* AFU-235: in der Contest-Ansicht steht die Auswahl im Kopf des Loggers, die Zeile bleibt leer */
.rm-lb-contestmodus .rm-lb-contest { display: none; }
#rm-logbuch-kasten .rm-lb-ikon { height: 30px; min-height: 30px; width: 32px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
#rm-logbuch-kasten .rm-lb-ikon[hidden] { display: none; }
.rm-lb-contest [hidden] { display: none; }
/* AFU-161, Geräteverwaltung: nur gekoppelte Geräte, auch mehrere gleiche */
.rm-pu-hinzu { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.8rem; margin-bottom: 0.4rem; }
.rm-pu-hinzu .rm-pu-vorlage p { flex: 0 0 auto; }
.rm-pu-keins { border: 1px dashed var(--border); border-radius: var(--radius); padding: 1rem 1.2rem; }
.rm-pu-keins p { margin: 0 0 0.6rem; }
.rm-pu-geraete-tabelle { table-layout: auto; }
.rm-pu-geraete-tabelle input.rm-pu-name { width: 100%; min-width: 9rem; }
.rm-pu-knoepfe { display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center; }
td.rm-pu-ok { color: #2bd47d; }
td.rm-pu-aus { color: var(--muted); }
.rm-pu-assistent { border-color: var(--accent); }
/* AFU-163: über die Brücke */
.rm-pu-bruecke { border-color: var(--accent); }
.rm-pu-bruecke .rm-zeile { align-items: flex-end; flex-wrap: wrap; }
table.rm-pu-br-tabelle td .badge { margin-left: 0.4rem; }
table.rm-pu-br-tabelle tr.rm-pu-br-erkannt td { background: color-mix(in srgb, var(--accent) 12%, transparent); }
.rm-pu-assistent-schritt { margin: 0 0 0.4rem; font-size: 1.05rem; }
.rm-pu-assistent-liste { margin: 0.4rem 0 0.6rem; padding-left: 1.4rem; font-size: 0.88rem; color: var(--muted); columns: 2 16rem; }
.rm-pu-assistent-liste li.jetzt { color: var(--fg); font-weight: 600; }
.rm-pu-assistent-liste li.fertig { color: #2bd47d; }
.rm-pu-stand { font-size: 0.85rem; color: var(--muted); margin-right: 0.4rem; }
.rm-pu-stand.gut { color: #2bd47d; }
.rm-pu-stand.offen { color: #e8c33a; }
.rm-pu-stand.fehler { color: #ff6b6b; }
/* D100H wie das Gerät: oben drei Tasten, links und rechts je zwei, der Drehknopf in der Mitte */
.rm-pu-d100h-oben { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6rem; margin: 0 3.4rem 0.8rem; }
.rm-pu-d100h-mitte { display: grid; grid-template-columns: 1fr auto 1fr; gap: 0.8rem; align-items: center; }
.rm-pu-seite { display: grid; gap: 0.8rem; }
.rm-pu-d100h-knopf .rm-pu-knopf { width: 6.5rem; height: 6.5rem; }
.rm-pu-d100h-oben .rm-pu-taste { width: 100%; }
.rm-pu-seite .rm-pu-taste { width: 100%; height: 2.4rem; }
/* N3 wie das Gerät: links Displays und runde Tasten, rechts großer Knopf, darunter zwei kleine */
.rm-pu-n3 { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 0.9rem; align-items: start; }
.rm-pu-gitter:has(.rm-pu-n3) { grid-template-columns: minmax(20rem, 28rem) minmax(0, 1fr); }
.rm-pu-n3-rechts { display: grid; gap: 0.8rem; justify-items: center; }
.rm-pu-n3-gross .rm-pu-knopf { width: 6rem; height: 6rem; }
.rm-pu-n3-klein { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; width: 100%; justify-items: center; }
.rm-pu-n3-klein .rm-pu-knopf { width: 3.4rem; height: 3.4rem; }
.rm-pu-n3 .rm-pu-unten .rm-pu-taste { width: 2.2rem; height: 2.2rem; border-radius: 50%; }
.rm-pu-n3 .rm-pu-lcd { gap: 0.45rem; }

/* AFU-179: FT8 / FT4 / JS8 mit Senden, die Seiten /ft8 und /js8 im Kasten */
.rm-dg-zeile { display: flex; flex-wrap: wrap; gap: .5rem .75rem; align-items: flex-end; }
.rm-dg-zeile .field { margin: 0; }
.rm-dg-status.rm-dg-sendet { color: #ef4444; font-weight: 600; }
.rm-dg-rahmen { display: block; width: 100%; height: min(92vh, 1100px); margin-top: .5rem; border: 1px solid var(--border);
  border-radius: 8px; background: var(--bg); }
.rm-dg-rahmen[hidden] { display: none; }

/* =====================================================================================================================
   AFU-185: Bedienseite nach Mockup 10 v8 und der Richtlinie „Dichte Betriebsseiten“ (12.10.2026)
   Festes Gerüst: Menüleiste, Gerätefront, Mitte (Wasserfall ‖ Ablage rechts), Griff, Dock (Ablage unten links ‖ unten
   rechts). Ab 1101 px genau so hoch wie das Fenster, ohne zu blättern; darunter alles untereinander. Knöpfe und Felder
   im Bedienbereich 24 px (.k), auf dem Telefon 32 px. Jeder Kasten ist ein Reiter in einer Ablage (remote-ablagen.js).
   ===================================================================================================================== */
.rm-app { margin-top: 8px; --rm-knopf: color-mix(in srgb, var(--fg) 8%, var(--bg2)); --rm-pop: color-mix(in srgb, var(--fg) 4%, var(--bg2)); }
.rm-app .note { margin-bottom: 6px; }
/* ab 1101 px kein Seitenfuß: die Seite füllt das Fenster (Cockpit-Regel, Quellen stehen in den Kästen) */
@media (min-width: 1101px) { body:has(.rm-geruest) .footer { display: none; } }

/* ---- Knöpfe und Felder 24 px */
.rm-app .k { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: 5px; height: 24px;
  min-height: 24px; padding: 0 9px; margin: 0; border: 1px solid var(--border); border-radius: 5px; background: var(--rm-knopf);
  color: var(--fg); font: inherit; font-size: 12px; font-weight: 500; line-height: 1; white-space: nowrap; cursor: pointer;
  box-shadow: none; }
.rm-app .k:hover:not(:disabled) { border-color: var(--accent); }
.rm-app .k[aria-pressed="true"], .rm-app .k.an, .rm-app .k.gruen { background: var(--rm-an); border-color: var(--rm-an); color: var(--rm-an-schrift); font-weight: 700; }
/* Schlösser bleiben gelb (Warnzeichen), am VFO und am Gerät gleich */
.rm-app .rm-schloss[aria-pressed="true"] { background: #d6a10b; border-color: #d6a10b; color: var(--rm-an-schrift); }
.rm-app .k:disabled { opacity: 0.45; cursor: not-allowed; }
.rm-app .k[hidden] { display: none; }
.rm-app .k svg { width: 14px; height: 14px; display: block; flex: 0 0 auto; }
.rm-app .rm-seg { display: inline-flex; align-items: center; }
.rm-app .rm-seg > .k, .rm-app .rm-seg > select { border-radius: 0; margin-left: -1px; }
.rm-app .rm-seg > :first-child { border-radius: 5px 0 0 5px; margin-left: 0; }
.rm-app .rm-seg > :last-child { border-radius: 0 5px 5px 0; }
.rm-app .rm-seg > :only-child { border-radius: 5px; }
.rm-app .rm-seg[hidden], .rm-app .rm-seg:empty { display: none; }
.rm-app .rm-sel, .rm-app .rm-front select, .rm-app .rm-menue select {
  box-sizing: border-box; height: 24px; min-height: 24px; padding: 0 6px; border: 1px solid var(--border); border-radius: 5px;
  background: var(--bg); color: var(--fg); font: inherit; font-size: 12px; line-height: 1; }
.rm-app .rm-front select.rm-modus { background: #2f6fed; border-color: #2f6fed; color: #fff; font-weight: 700; letter-spacing: 0.04em; }
.rm-app .rm-ikon { padding: 0 6px; }

/* ---- Gerüst */
.rm-geruest { --rm-seite: 380px; --rm-dock: 250px; display: grid; gap: 6px; min-width: 0;
  grid-template-rows: auto auto minmax(0, 1fr) 8px var(--rm-dock); }
@media (min-width: 1101px) {
  .rm-geruest { height: calc(100vh - var(--rm-geruest-oben, 120px) - 8px); height: calc(100dvh - var(--rm-geruest-oben, 120px) - 8px); }
  /* AFU-195: Höhe nach Inhalt: die Mitte hat eine feste Höhe, die unteren Ablagen wachsen nach unten, die Seite wird länger */
  .rm-geruest.rm-nach-inhalt { height: auto; grid-template-rows: auto auto var(--rm-mitte) 8px var(--rm-dock); }
}
.rm-box { border: 1px solid var(--border); border-radius: 8px; background: var(--bg2); min-width: 0; }

/* ---- Menüleiste */
.rm-menue { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 5px 8px 7px;
  overflow: hidden; font-size: 12px; color: var(--fg); }
.rm-menue .rm-stationswahl { height: 24px; font-size: 12.5px; font-weight: 600; padding: 0 6px; background: var(--bg); color: var(--fg); border-color: var(--border); max-width: 16rem; }
.rm-menue .rm-stationsname { padding: 0 8px; height: 24px; line-height: 22px; font-size: 12.5px; background: var(--bg); color: var(--fg);
  border-color: var(--border); box-sizing: border-box; }
.rm-menue .rm-geraet { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--muted); white-space: nowrap; }
.rm-menue .rm-pruefen { width: 20px; height: 20px; border-radius: 4px; }
.rm-menue .rm-lampe { display: inline-flex; align-items: center; gap: 5px; padding: 0; border: 0; min-width: 0; font-size: 12px;
  font-weight: 600; letter-spacing: 0; }
.rm-menue .rm-lampe::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.rm-menue .rm-lampe.an::before { box-shadow: 0 0 6px var(--rm-an); }
.rm-menue .rm-spannung { padding: 0; border: 0; font-size: 11.5px; color: var(--muted); }
.rm-menue .rm-bediener { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.rm-menue .rm-bediener:empty { display: none; }
.rm-chip { height: 20px; line-height: 18px; padding: 0 7px; border-radius: 10px; border: 1px solid var(--border); font-size: 11px;
  color: var(--muted); white-space: nowrap; box-sizing: border-box; }
.rm-chip.aktiv { color: var(--fg); border-color: var(--accent); }
.rm-chip.rm-chip-support { color: var(--fg); border-color: #f59e0b; }   /* AFU-269 */
.rm-menue .rm-bedienung { display: inline-flex; flex-wrap: nowrap; align-items: center; gap: 6px; font-size: 12px; color: var(--fg); }
.rm-menue .rm-bedienung #rm-bedienung-text { font-weight: 600; white-space: nowrap; }
.rm-menue .rm-bedienung[hidden] { display: none; }
.rm-menue .rm-update { display: inline-flex; flex-wrap: nowrap; align-items: center; gap: 6px; max-width: 34rem; min-width: 0;
  height: 22px; padding: 0 4px 0 9px; border-radius: 11px; border: 1px solid #d6a10b; color: #d6a10b; font-size: 11.5px; }
.rm-menue .rm-update[hidden] { display: none; }
.rm-menue .rm-update #rm-update-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* AFU-191: Kanal, Gewicht und Knöpfe brechen nie um, gekürzt wird nur der Text (voll im title) */
.rm-menue .rm-update > * { white-space: nowrap; flex: 0 0 auto; }
.rm-menue .rm-update > #rm-update-text { flex: 0 1 auto; }
.rm-menue .rm-update-kanal { height: 16px; line-height: 14px; padding: 0 5px; border-radius: 8px; font-size: 10.5px; box-sizing: border-box; }
.rm-menue .rm-update-gewicht { min-width: 0; overflow: hidden; text-overflow: ellipsis; flex: 0 1 auto; max-width: 14rem; }
.rm-menue .rm-update .k { height: 18px; min-height: 18px; padding: 0 7px; font-size: 11px; border-radius: 9px; }
.rm-luft { flex: 1 1 auto; }
.rm-menue .rm-auslastung { display: inline-flex; gap: 0; font-size: 11px; color: var(--muted); white-space: nowrap; }
.rm-menue .rm-auslastung[hidden] { display: none; }
.rm-rxtx-marke { height: 20px; line-height: 18px; padding: 0 8px; border-radius: 4px; border: 1px solid var(--border); box-sizing: border-box;
  font-size: 11px; font-weight: 700; letter-spacing: 0.05em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rm-rxtx-marke.rx { background: var(--rm-an); border-color: var(--rm-an); color: var(--rm-an-schrift); }
.rm-rxtx-marke.tx { background: #ef4444; border-color: #ef4444; color: #fff; }
.rm-uhr { font: 700 15px var(--rm-mono); white-space: nowrap; }
.rm-uhr small { font: 11px var(--rm-mono); color: var(--muted); margin-left: 6px; }
.rm-uhr small[hidden] { display: none; }
.rm-txstreifen { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: #ef4444; transition: width 0.9s linear; pointer-events: none; }
.rm-menue .rm-ikon-knopf.an { color: #fff; }
.rm-menue .rm-ikon-knopf.wartet { color: #e0b44a; border-color: #6a5420; }

/* ---- Gerätefront */
.rm-front { display: grid; grid-template-columns: auto 440px minmax(0, 1fr) 250px auto; gap: 8px 14px; padding: 6px 10px; align-items: center; }
.rm-vfo { display: grid; gap: 3px; }
.rm-front .rm-vfo-zeile { display: flex; align-items: center; gap: 6px; }
.rm-vfo-zeile2 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding-left: 18px; font-size: 12px; }
.rm-vfo-zeile2.rm-vfo-b { padding-left: 0; }
.rm-front .rm-vfo-name { width: 12px; font: 700 11px var(--rm-mono); color: var(--muted); }
.rm-front .rm-freq { font-size: 30px; line-height: 1; background: #070a16; border: 1px solid var(--border); border-radius: 6px; padding: 3px 10px; }
.rm-front .rm-freq.klein { font-size: 14px; font-weight: 600; background: none; border-color: transparent; padding: 0 2px; color: var(--muted); }
.rm-front .rm-freq:focus-visible { border-color: var(--accent); }
.rm-front .rm-fsperre { height: 24px; padding: 0 6px; font-size: 13px; line-height: 1; border-radius: 5px; background: var(--rm-knopf); }
.rm-front .rm-fsperre[aria-pressed="true"] { background: #d6a10b; border-color: #d6a10b; }
.rm-front .rm-meter { padding: 6px 10px; gap: 5px; border-radius: 8px; }
.rm-geraet-regler { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3px; align-content: center; min-width: 0; }
.rm-geraet-regler[hidden] { display: none; }
/* AFU-192: Regler nicht über die ganze Restbreite ziehen (höchstens 300 px je Spalte). AFU-244: zwei Spalten nur, wenn sie in
   die Zelle passen; sonst untereinander (vorher liefen bei fünf Reglern die Werte über „Hier im Browser“ und die Seite wurde
   bei 1200 px zu breit) */
@media (min-width: 1101px) {
  .rm-front .rm-geraet-regler { grid-template-columns: repeat(auto-fit, minmax(170px, 300px)); column-gap: 18px; justify-content: start; }
}
.rm-regel { display: grid; grid-template-columns: 64px minmax(0, 1fr) 44px; align-items: center; gap: 6px; font-size: 11.5px; min-width: 0; }
.rm-regel:has(select) { grid-template-columns: 64px minmax(0, 1fr) auto; }
.rm-regel[hidden] { display: none; }
.rm-regel > label, .rm-regel > span:first-child { color: var(--muted); margin: 0; font-size: 11.5px; font-weight: 400; text-transform: none;
  letter-spacing: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rm-regel input[type="range"] { accent-color: var(--accent); width: 100%; height: 14px; margin: 0; min-width: 0; }
.rm-regel.rm-leistung input[type="range"] { accent-color: #f59e0b; }
.rm-regel.rm-wirkt-nicht { opacity: 0.45; }
.rm-w { font-size: 11px; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rm-regel select { min-width: 0; width: 100%; }
.rm-ton { display: grid; gap: 4px; align-content: center; min-width: 0; font-size: 11.5px; }
.rm-unterkopf { margin: 0; font-size: 10px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
.rm-ton #rm-stumm[aria-pressed="true"] { background: #ef4444; border-color: #ef4444; color: #fff; }
.rm-ton .rm-rx-panel { display: grid; gap: 4px; }
.rm-ton .rm-rx-panel[hidden] { display: none; }
.rm-ton .rm-rx-panel .field { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 6px; margin: 0; }
.rm-ton .rm-rx-panel .field[hidden] { display: none; }
.rm-ton .rm-rx-panel .field > label { margin: 0; font-size: 11.5px; color: var(--muted); font-weight: 400; text-transform: none; letter-spacing: 0;
  display: flex; justify-content: space-between; gap: 4px; }
.rm-ton .rm-rx-panel select { height: 24px; min-height: 24px; padding: 0 6px; font-size: 12px; }
.rm-ton .rm-rx-panel input[type="range"] { width: 100%; }
.rm-ton .rm-rx-panel .field-hint { margin: 0; font-size: 10.5px; }
.rm-ptt-feld { display: grid; gap: 4px; justify-items: stretch; }
.rm-app .rm-ptt { width: 110px; min-width: 0; height: 52px; border-radius: 8px; border: 2px solid #7a2d2d; background: #2a1420; color: #ffb4b4;
  font: 800 17px system-ui, sans-serif; letter-spacing: 0.12em; cursor: pointer; touch-action: none; user-select: none; padding: 0; }
.rm-app .rm-ptt[aria-pressed="true"] { background: #ef4444; border-color: #ff8a8a; color: #fff; box-shadow: 0 0 18px #ef444488; }
.rm-app .rm-ptt:disabled { opacity: 0.45; cursor: not-allowed; }
.rm-ptt-unter { display: flex; }
.rm-ptt-unter .k { flex: 1 1 0; padding: 0 4px; }
.rm-ptt-unter:not(:has(.k:not([hidden]))) { display: none; }
/* AFU-252: Tune-Warnung über der PTT (Mockup 44), nur Hinweis */
.rm-tune-warnung { display: flex; align-items: center; gap: 6px; max-width: 200px; min-height: 24px; padding: 2px 3px 2px 6px;
  background: #3a2e0a; border: 1px solid #d6a10b; color: #ffd75e; border-radius: 4px; font-size: 11.5px; line-height: 1.2; }
.rm-tune-warnung[hidden] { display: none; }
.rm-tune-warnung-text { flex: 1 1 auto; min-width: 0; }
.rm-app .rm-tune-warnung .k { flex: 0 0 auto; height: 20px; min-height: 20px; padding: 0 8px; font-size: 11px;
  background: #d6a10b; border-color: #d6a10b; color: #1a1400; font-weight: 700; }
.rm-app .rm-tune-warnung .k:disabled { opacity: 0.5; }
.rm-ptt-feld:has(.rm-tune-warnung:not([hidden])) .rm-ptt { width: 100%; }
/* AFU-318: die Station sperrt das Senden über diese Antenne (rot), Tune nur wenn nur das Abstimmen fehlt */
.rm-tune-warnung.rm-tune-sperre { background: #3a1716; border-color: #ef4444; color: #ffd9d5; }
.rm-app .k.rm-k-gesperrt { opacity: 0.45; cursor: not-allowed; }
.rm-app .k.rm-k-frei { text-decoration: line-through; }
.rm-app .k.rm-k-gesperrt.rm-k-rot { opacity: 1; background: #ef4444; border-color: #ef4444; color: #fff; text-decoration: none; }
.rm-app .k.rm-halt { background: #ef4444; border-color: #ef4444; color: #fff; font-weight: 800; }
.rm-knoepfe { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 5px 12px; padding-top: 6px; border-top: 1px solid var(--border); }
.rm-knoepfe:empty { display: none; }
.rm-grp { display: inline-flex; align-items: center; gap: 4px; }
.rm-grp-titel { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }

/* ---- Mitte: Wasserfall füllt die Resthöhe */
.rm-mitte { display: grid; grid-template-columns: minmax(0, 1fr) 8px var(--rm-seite); min-height: 0; }
.rm-mitte > .rm-wf-zeile { display: flex; flex-direction: column; min-height: 0; min-width: 0; overflow: hidden; margin: 0; }
.rm-wf-zeile .rm-wf-spalte { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; position: relative; }
.rm-wf-spalte > .rm-wf, .rm-wf-spalte > .rm-rx, .rm-wf-spalte > .rm-scope, .rm-wf-spalte > .rm-extern-wf { flex: 1 1 auto; min-height: 0; }
.rm-wf-spalte > [hidden] { display: none !important; }
.rm-wf-zeile .rm-ribbon { border: 0; border-bottom: 1px solid var(--border); border-radius: 0; margin: 0; background: transparent; }
.rm-wf-zeile .rm-wf-skala, .rm-wf-zeile .rm-rx-kopf { border-left: 0; border-right: 0; border-radius: 0; }
.rm-wf-zeile .rm-rx-kopf { border-top: 0; }
.rm-wf-zeile .rm-wasserfall { border-radius: 0; min-height: 0; }
.rm-wf-zeile .rm-rx-flaeche { min-height: 0; }
.rm-wf-zeile .rm-extern-wf iframe { min-height: 0; border: 0; border-radius: 0; }
.rm-wf-zeile .rm-wf[data-anzeige="spektrum"] .rm-spektrum, .rm-wf-zeile .rm-rx[data-anzeige="spektrum"] .rm-spektrum,
.rm-wf-zeile .rm-wf[data-anzeige="3d"] .rm-3d, .rm-wf-zeile .rm-rx[data-anzeige="3d"] .rm-3d { flex: 1 1 auto; height: auto; min-height: 0; border-radius: 0; }
.rm-wf-zeile .rm-baender .btn-sm { border-radius: 12px; }

/* ---- Ablagen mit Reitern: keine Scrollleiste, ‹ › mit Zahl der verdeckten Reiter */
.rm-ablage { display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; min-height: 0; min-width: 0; }
.rm-ablage.ziel { outline: 2px dashed var(--accent); outline-offset: -2px; }
.rm-reiter { display: flex; align-items: stretch; border-bottom: 1px solid var(--border); min-width: 0; }
.rm-rtabs { position: relative; display: flex; flex: 1 1 auto; min-width: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none;
  scroll-behavior: auto; touch-action: none; }
.rm-rtabs::-webkit-scrollbar { display: none; }
.rm-rtab { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px; margin: 0; border: 0; border-bottom: 2px solid transparent;
  border-radius: 0; background: transparent; color: var(--muted); font: inherit; font-size: 12px; padding: 6px 8px 5px; cursor: pointer;
  white-space: nowrap; user-select: none; }
.rm-rtab:hover { color: var(--fg); }
.rm-rtab.an { color: var(--fg); border-bottom-color: var(--accent); font-weight: 600; }
.rm-rtab:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.rm-rtab.quelle { opacity: 0.3; }
.rm-zahl { display: inline-block; min-width: 16px; padding: 0 4px; border-radius: 8px; background: var(--accent); color: #fff; font-size: 10px;
  line-height: 15px; text-align: center; font-weight: 700; box-sizing: border-box; }
.rm-tab-marke { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); }
.rm-tab-marke.gut { background: #27af57; }
.rm-tab-marke.warn { background: #d6a10b; }
.rm-tab-fenster { font-size: 11px; color: var(--muted); }
.rm-reiter .rm-leer { align-self: center; padding: 0 10px; color: var(--muted); font-size: 11.5px; font-style: italic; white-space: nowrap; }
.rm-pfeil { display: none; flex: 0 0 auto; min-width: 24px; padding: 0 4px; margin: 0; border: 0; border-radius: 0; background: var(--bg2);
  color: var(--accent); font: 700 15px/1 system-ui, sans-serif; cursor: pointer; position: relative; z-index: 1; }
.rm-pfeil small { font: 600 9.5px var(--rm-mono); margin: 0 1px; vertical-align: 2px; }
.rm-pfeil.l { box-shadow: 6px 0 8px -5px #000; }
.rm-pfeil.r { box-shadow: -6px 0 8px -5px #000; }
.rm-pfeil:hover:not(:disabled) { background: var(--rm-knopf); }
.rm-pfeil:disabled { color: var(--border); cursor: default; box-shadow: none; }
.rm-reiter.ueber .rm-pfeil { display: block; }
.rm-einfuege { position: absolute; top: 4px; bottom: 4px; width: 2px; margin-left: -1px; border-radius: 1px; background: var(--accent); pointer-events: none; }
.rm-rk { flex: 0 0 auto; display: flex; align-items: center; gap: 4px; padding: 0 6px; border-left: 1px solid var(--border); }
.rm-geist { position: fixed; z-index: 60; pointer-events: none; padding: 4px 9px; border-radius: 5px; background: var(--bg2);
  border: 1px solid var(--accent); color: var(--fg); font-size: 12px; font-weight: 600; box-shadow: 0 6px 18px #000a;
  transform: translate(-50%, -120%); white-space: nowrap; }
body.rm-zieht-reiter, body.rm-zieht-reiter * { cursor: grabbing !important; }
.rm-ablage-inhalt { display: flex; flex-direction: column; overflow: auto; min-height: 0; min-width: 0; }
.rm-ablage-inhalt > .rm-kasten { flex: 0 0 auto; border: 0; border-radius: 0; background: transparent; overflow: visible; min-width: 0; }
.rm-ablage-inhalt > .rm-kasten.zu { display: none; }
.rm-ablage .rm-kasten > .rm-kasten-kopf { display: none; }
.rm-ablage .rm-kasten-inhalt { padding: 6px 8px 8px; gap: 0.45rem; }
.rm-ablage-hinweis { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 10px; color: var(--muted); font-size: 12px; }
.rm-ablage-hinweis[hidden] { display: none; }
/* rechts füllen Chat und Logbuch die Höhe, ihre Listen blättern */
.rm-mitte .rm-ablage-inhalt > .rm-kasten[data-kasten="chat"]:not(.zu) { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.rm-mitte [data-kasten="chat"] > .rm-kasten-inhalt { flex: 1 1 auto; min-height: 0; }
.rm-mitte [data-kasten="chat"] .rm-chat-liste { max-height: none; }
.rm-ablage .rm-knopfreihe .rm-an, .rm-ablage .rm-knopfreihe .btn-sm { min-height: 24px; height: 24px; padding: 0 9px; font-size: 12px; border-radius: 5px; }
.rm-sp-geraet { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: end; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
.rm-sp-geraet[hidden] { display: none; }
.rm-sp-geraet .field { margin: 0; }
[data-kasten="geraet"] h3.rm-unterkopf { margin-top: 2px; }
[data-kasten="geraet"] h3.rm-unterkopf:not(:first-child) { margin-top: 4px; padding-top: 5px; border-top: 1px solid var(--border); }
/* AFU-244: Regler und Wahl in den Bedienkästen eine Zeile, breitere Namensspalte als vorn */
:is([data-kasten="geraet"], [data-kasten="fm"], [data-kasten="cw"], .rm-sp-geraet) .rm-regel { grid-template-columns: 7.5rem minmax(0, 1fr) 44px; }
:is([data-kasten="geraet"], [data-kasten="fm"], [data-kasten="cw"], .rm-sp-geraet) .rm-regel.rm-regel-knopf { grid-template-columns: 7.5rem minmax(0, 1fr) 44px auto; }
/* AFU-257: Ablage mit Auswahl der üblichen Werte vor dem Schieber, Wert als „7,6 MHz“ */
:is([data-kasten="geraet"], [data-kasten="fm"], [data-kasten="cw"], .rm-sp-geraet) .rm-regel.rm-ablage-zeile { grid-template-columns: 7.5rem minmax(0, 1fr) 56px; }
.rm-ablagewahl { display: flex; align-items: center; gap: 6px; min-width: 0; }
.rm-ablagewahl select { width: auto; flex: none; }
.rm-ablagewahl input[type="range"] { flex: 1 1 auto; }
.rm-ablagewahl [hidden] { display: none; }
:is([data-kasten="geraet"], [data-kasten="fm"], [data-kasten="cw"], .rm-sp-geraet) .rm-regel.rm-wahl { grid-template-columns: 7.5rem minmax(0, 1fr); }
.rm-wahl-knoepfe { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }
.rm-wahl-knoepfe > select { max-width: 100%; }
.rm-sp-geraet > .rm-regel { flex: 1 1 100%; }

/* ---- Griffe: im Kasten, nie halb außerhalb */
.rm-griff-s { cursor: col-resize; display: flex; align-items: center; justify-content: center; touch-action: none; }
.rm-griff-s::before { content: ""; width: 4px; height: 48px; border-radius: 2px; background: var(--border); transition: height 0.12s; }
.rm-griff-s:hover::before, .rm-griff-s.zieht::before, .rm-griff-s:focus-visible::before { background: var(--accent); height: 96px; }
.rm-griff-h { position: relative; cursor: row-resize; display: flex; align-items: center; justify-content: center; touch-action: none; }
.rm-griff-h::before { content: ""; width: 48px; height: 4px; border-radius: 2px; background: var(--border); transition: width 0.12s; }
.rm-griff-h:hover::before, .rm-griff-h.zieht::before, .rm-griff-h:focus-visible::before { background: var(--accent); width: 96px; }
.rm-griff-s:focus-visible, .rm-griff-h:focus-visible { outline: none; }
.rm-griff-info { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); z-index: 2; display: flex; align-items: center; gap: 6px;
  padding: 0 6px; background: var(--bg); font-size: 10.5px; color: var(--muted); white-space: nowrap; cursor: default; }
.rm-griff-info:empty { display: none; }
.rm-griff-info button { height: 16px; padding: 0 6px; border: 1px solid var(--border); border-radius: 4px; background: var(--rm-knopf); color: var(--fg);
  font: inherit; font-size: 10.5px; cursor: pointer; }
.rm-griff-info button:hover { border-color: var(--accent); }
.rm-griff-info .fest { color: #f59e0b; }
.rm-dock { display: grid; grid-template-columns: minmax(0, 1fr) 8px minmax(0, 1fr); min-height: 0; }
.rm-dock .rm-ablage, .rm-mitte .rm-ablage { min-height: 0; }

/* ---- Kästen ▾: Popover an der Menüleiste */
.rm-app .rm-kaesten-pop { position: fixed; inset: auto; margin: 0; width: 300px; max-height: 80vh; overflow: auto; background: var(--rm-pop);
  border: 1px solid var(--border); border-radius: 8px; padding: 6px; box-shadow: 0 8px 28px #000a; font-size: 12px; color: var(--fg); }
.rm-pop-kopf { margin: 4px 6px; font-size: 10.5px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }
.rm-pop-hinweis { margin: 0 6px 4px; font-size: 11px; color: var(--muted); }
.rm-pop-unter { margin: 8px 6px 2px; font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
.rm-pop-zeile { display: flex; justify-content: space-between; gap: 6px; align-items: center; padding: 1px 2px 1px 6px; }
.rm-pop-zeile.rm-leer { color: var(--muted); font-style: italic; }
.rm-app .rm-pop-zeile .k { height: 20px; min-height: 20px; padding: 0 6px; font-size: 11px; }
.rm-pop-fuss { display: flex; justify-content: space-between; gap: 6px; margin: 10px 2px 2px; }

/* ---- AFU-244: die Front braucht nebeneinander ~1450 px (VFO, Pegel 440, Regler, Ton 250, PTT); darunter stehen die Regler
   in einer zweiten Zeile wie bis 1100 px, sonst liefen sie über „Hier im Browser“ und die Seite wurde zu breit */
@media (max-width: 1450px) {
  .rm-front { grid-template-columns: auto minmax(0, 1fr) auto; }
  .rm-front .rm-meter { grid-column: 2; }
  .rm-front .rm-geraet-regler { grid-column: 1 / 3; }
  .rm-front .rm-ton { grid-column: 3; grid-row: 2; }
  .rm-front .rm-ptt-feld { grid-column: 3; grid-row: 1; }
}
/* ---- bis 1100 px: alles untereinander, ohne Griffe */
@media (max-width: 1100px) {
  .rm-geruest { grid-template-rows: none; height: auto; }
  .rm-front { grid-template-columns: auto minmax(0, 1fr) auto; }
  .rm-front .rm-meter { grid-column: 2; }
  .rm-front .rm-geraet-regler { grid-column: 1 / 3; }
  .rm-front .rm-ton { grid-column: 3; grid-row: 2; }
  .rm-front .rm-ptt-feld { grid-column: 3; grid-row: 1; }
  .rm-mitte { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .rm-mitte > .rm-wf-zeile { height: 420px; }
  .rm-griff-s, .rm-griff-h { display: none; }
  .rm-ablage { height: 300px; }
  .rm-dock { grid-template-columns: minmax(0, 1fr) !important; gap: 6px; }
}
/* ---- Telefon: eine Spalte, 32 px zum Tippen, PTT fest unten im Daumenbereich */
@media (max-width: 700px) {
  .rm-app .k, .rm-app .rm-sel, .rm-app .rm-front select, .rm-app .rm-menue select { height: 32px; min-height: 32px; font-size: 13px; }
  .rm-menue { flex-wrap: wrap; }
  .rm-menue .rm-seg { flex: 1 1 100%; }
  .rm-menue .rm-seg > .k { flex: 1 1 0; }
  .rm-front { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .rm-front > * { grid-column: 1 !important; grid-row: auto !important; }
  .rm-front .rm-freq { font-size: 26px; }
  .rm-front .rm-vfo-zeile { flex-wrap: wrap; }
  .rm-vfo-zeile2 { padding-left: 0; }
  .rm-knoepfe .rm-grp { flex: 1 1 100%; }
  .rm-knoepfe .rm-grp .rm-seg { flex: 1 1 auto; }
  .rm-knoepfe .rm-grp .rm-seg > .k { flex: 1 1 0; }
  .rm-regel input[type="range"] { height: 22px; }
  .rm-ptt-feld { position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 15; grid-template-columns: minmax(0, 1fr) auto;
    background: var(--bg); padding: 6px; border: 1px solid var(--border); border-radius: 10px; }
  .rm-app .rm-ptt { width: 100%; height: 56px; }
  .rm-ptt-unter { flex-direction: column; }
  .rm-ptt-unter .k { height: 26px; min-height: 26px; }
  .rm-tune-warnung { grid-column: 1 / -1; max-width: none; }
  body:not(.rm-nur-empfaenger):not(.rm-gast) .rm-app:has(.rm-tune-warnung:not([hidden])) { padding-bottom: 120px; }
  body:not(.rm-nur-empfaenger):not(.rm-gast) .rm-app { padding-bottom: 90px; }
  .rm-mitte > .rm-wf-zeile { height: 520px; }
  .rm-wf-zeile .rm-baender { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .rm-wf-zeile .rm-baender .btn-sm { flex: 0 0 auto; }
  .rm-meter-klein { grid-template-columns: minmax(0, 1fr); }
  .rm-ablage { height: 340px; }
  .rm-rtab { padding: 9px 10px 8px; font-size: 13px; }
  .rm-pfeil { min-width: 34px; }
}

/* ---- Felder in den Ablagen: dicht wie die Bedienung (28 px), Knöpfe 24 px */
.rm-ablage .field { margin: 0; }
.rm-ablage .field > label { font-size: 11px; margin-bottom: 2px; }
.rm-ablage .field input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
.rm-ablage .field select, .rm-ablage .rm-kasten-inhalt > select {
  min-height: 28px; height: 28px; padding: 0 8px; font-size: 12.5px; border-radius: 6px; box-sizing: border-box; }
.rm-ablage .field select { padding-right: 1.6rem; }
.rm-ablage .field textarea { font-size: 12.5px; }
.rm-ablage .btn-sm { min-height: 24px; height: 24px; padding: 0 9px; font-size: 12px; border-radius: 5px; }
.rm-ablage .btn { min-height: 28px; height: 28px; padding: 0 12px; font-size: 12.5px; border-radius: 6px; }
.rm-ablage .rm-an { padding: 0 9px; height: 24px; font-size: 12px; border-radius: 5px; }
.rm-ablage .rm-regler label { font-size: 11px; }
.rm-ablage .field-hint { font-size: 11px; }
/* Bedienkästen des Geräts (Gerät, FM / Relais, CW): Felder in Spalten statt über die ganze Breite */
:is([data-kasten="geraet"], [data-kasten="fm"], [data-kasten="cw"]) > .rm-kasten-inhalt {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); align-items: center; column-gap: 18px; row-gap: 5px; }
:is([data-kasten="geraet"], [data-kasten="fm"], [data-kasten="cw"]) > .rm-kasten-inhalt > :is(h3, .rm-knopfreihe, .rm-modus-hinweis) { grid-column: 1 / -1; }
/* „Neu“ in der Kopfzeile am Telefon nur als Zeichen, schmal: sonst ist die Kopfzeile bei 390 px 7 px zu breit */
@media (max-width: 52rem) { .bar-actions .rm-cl-knopf .nur-breit { display: none; } }
@media (max-width: 480px) { .bar-actions .rm-cl-knopf { padding: 0.42rem 0.45rem; gap: 0; } }
@media (max-width: 26rem) {
  /* mit „Neu“ sind es sechs Knöpfe: so eng wie style.css es für kleine Telefone macht */
  body:has(.bar-actions .rm-cl-knopf:not([hidden])) .bar-actions { gap: 0.2rem; }
  body:has(.bar-actions .rm-cl-knopf:not([hidden])) .bar-actions > :is(a, button, details > summary) { min-width: 2.2rem; padding-left: 0.4rem; padding-right: 0.4rem; }
}

/* ---- Bandplan in Bahnen (AFU-185): verschachtelte Bereiche eine Bahn tiefer, Hervorheben, Liste mit Nummern */
.rm-bandskala svg rect.rm-bp { stroke: var(--bg2); stroke-width: 1; opacity: 0.9; cursor: help; }
.rm-bandskala svg.hervor rect.rm-bp { opacity: 0.18; }
.rm-bandskala svg.hervor rect.rm-bp.an { opacity: 1; stroke: var(--fg); }
.rm-bp-klammer { position: absolute; top: 0; bottom: 16px; z-index: 2; pointer-events: none;
  background: color-mix(in srgb, var(--bpf) 16%, transparent); border-left: 1px dashed var(--bpf); border-right: 1px dashed var(--bpf); }
.rm-bp-klammer span { position: absolute; left: 2px; bottom: 2px; padding: 1px 5px; border-radius: 3px; background: var(--bpf); color: #fff;
  font: 600 10.5px var(--rm-mono); white-space: nowrap; }
.rm-bp-klammer span.rechts { left: auto; right: 2px; }
.rm-legende-pop { overflow: auto; padding: 8px 10px !important; }
.rm-bp-kopf { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.rm-bp-kopf h4 { margin: 0; font-size: 10.5px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
.rm-bp-kopf > span { font-size: 11px; color: var(--muted); }
.rm-bp-marken-kopf { margin-top: 8px; }
.rm-bp-arten { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 6px 0 8px; font-size: 11px; color: var(--muted); }
.rm-bp-arten i { display: inline-block; width: 12px; height: 8px; border-radius: 2px; margin-right: 4px; }
.rm-bp-liste { columns: 3 260px; column-gap: 14px; }
.rm-bp-zeile { display: flex; gap: 7px; width: 100%; break-inside: avoid; text-align: left; border: 0; border-radius: 5px; background: none;
  color: var(--fg); padding: 3px 4px 3px calc(4px + var(--tief, 0) * 12px); font: inherit; font-size: 12px; cursor: pointer; }
.rm-bp-zeile:hover, .rm-bp-zeile.an { background: var(--rm-knopf); }
.rm-bp-nr { flex: 0 0 auto; min-width: 22px; height: 17px; border-radius: 4px; background: var(--bpf, var(--muted)); color: #0a0e1f;
  font: 700 10.5px/17px var(--rm-mono); text-align: center; }
.rm-bp-marken .rm-bp-nr { background: none; color: var(--muted); }
.rm-bp-was { display: grid; }
.rm-bp-von { font-size: 10.5px; color: var(--accent); }
.rm-bp-in { color: var(--muted); }

/* AFU-258: Kasten Weltkarte */
.rm-wk-leiste { flex-wrap: wrap; gap: 6px; }
.rm-wk-wahl { display: inline-flex; gap: 4px; align-items: center; color: var(--muted); font-size: 12px; }
.rm-wk-karte { height: 240px; border-radius: 4px; overflow: hidden; background: #14324f; margin-top: 6px; }
.rm-wk-azimutal { margin-top: 6px; max-width: 420px; }
.rm-wk-ziel { margin-top: 6px; padding: 6px 8px; border: 1px solid #ffd23f; border-radius: 4px;
  background: color-mix(in srgb, #ffd23f 10%, transparent); font-size: 13px; }
.rm-wk-ruf { font-weight: 700; font-size: 15px; }
.rm-wk-neu { background: var(--rm-an); color: var(--rm-an-schrift); border-radius: 3px; padding: 0 5px; font-size: 11px; font-weight: 700; }
.rm-wk-legende { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; font-size: 11px; color: var(--muted); }
.rm-wk-legende i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 3px; vertical-align: middle; }

/* AFU-268: Andere Programme (Einstellungen › Station › Dienste) */
.rm-pg td { white-space: normal; vertical-align: middle; }
.rm-pg .rm-pg-netz td { background: color-mix(in srgb, var(--card-hover) 60%, transparent); }
.rm-pg-seg { display: inline-flex; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.rm-pg-seg button { background: var(--bg2); color: var(--muted); border: 0; border-right: 1px solid var(--border); padding: 0.35rem 0.65rem;
  font: inherit; font-size: 0.86rem; cursor: pointer; white-space: nowrap; }
.rm-pg-seg button:last-child { border-right: 0; }
.rm-pg-seg button[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); font-weight: 600; }
.rm-pg-seg button:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.rm-pg .badge { white-space: nowrap; display: inline-block; margin-top: 0.25rem; }
.rm-pg .rm-pg-netz .field.grow { flex: 1 1 16rem; }
.rm-pg .rm-pg-netz .field.grow input { width: 100%; box-sizing: border-box; }
.rm-pg .note.warn { margin: 0.4rem 0 0; }

/* AFU-318: Funkgerät › Senden, Antennen je Band und Übernahme aus dem Katalog */
.rm-pf-tabelle select.rm-pf-ant[data-wert="tuner"] { border-color: #d6a10b; }
.rm-pf-tabelle select.rm-pf-ant[data-wert="-"] { color: var(--muted); }
.rm-pf-leise { color: var(--muted); }
tr.rm-pf-aus td { opacity: 0.55; }
.rm-pf-kat .k { margin-left: 4px; }
.rm-pf-marke { font-size: 11px; padding: 1px 6px; border-radius: 9px; border: 1px solid #d6a10b; color: #d6a10b; }
.rm-pfk-dialog { width: min(560px, 94vw); }
.rm-pfk-chip { display: inline-block; font-size: 11px; padding: 0 6px; border-radius: 9px; margin: 1px; }
.rm-pfk-chip.d { background: #1d4a35; color: #bdf0d6; }
.rm-pfk-chip.t { background: #4d3d12; color: #ffe7a6; }
.rm-app table.data.rm-pf-tabelle td, table.data.rm-pf-tabelle td { white-space: nowrap; }
.rm-app table.data.rm-pf-tabelle select.rm-pf-ant, table.data.rm-pf-tabelle select.rm-pf-ant { width: auto; min-width: 0; }
