/* AFU-522: eigene Seiten von Funkamateuren (/funker/<rufzeichen>) und ihre Verwaltung (/konto/seite).
   Baut auf style.css und standort.css auf; eigene Klassen mit fk- (Seite) und nv- (Verwaltung). */

.fk-ruf { font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 700; letter-spacing: 0.04em; }
.fk-text { max-width: none; }
.fk-text img { max-width: 100%; height: auto; border-radius: 8px; }
.fk-text table { width: auto; }
.fk-text a { overflow-wrap: anywhere; }

/* Kästen in Texten (der Server setzt sie statt eines Bilds, das nicht gezeigt wird) */
.ns-bild-pruefung {
  display: flex; align-items: center; justify-content: center; text-align: center;
  width: min(100%, 28rem); aspect-ratio: 16 / 9; margin: 0.8rem 0; padding: 0.8rem;
  box-sizing: border-box; border: 1px dashed var(--border); border-radius: 8px;
  background: var(--card-hover); color: var(--muted); font-size: 0.9rem;
}
.ns-fremdbild { display: inline-block; max-width: 100%; vertical-align: top; }
.ns-fremdbild > img { display: block; max-width: 100%; height: auto; }
.ns-bild-quelle { display: block; margin-top: 0.2rem; font-size: 0.75rem; color: var(--muted); }

/* Verwaltung */
.nv-kopfleiste { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.nv-beleg { margin: 0.4rem 0 1rem; }
.nv-beleg-text { margin: 0 0 0.3rem; font-size: 0.9rem; }
.nv-beleg-balken { height: 0.6rem; border-radius: 999px; background: var(--bg2); border: 1px solid var(--border); overflow: hidden; }
.nv-beleg-balken > span { display: block; height: 100%; min-width: 2px; background: var(--accent); }
.nv-beleg-balken.voll > span { background: #ef4444; }
.nv-fotos { display: grid; gap: 0.9rem; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); margin: 1rem 0; }
.nv-foto { margin: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.nv-foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; display: block; border: 1px solid var(--border); }
.nv-foto figcaption { display: flex; gap: 0.4rem; align-items: center; justify-content: space-between; font-size: 0.85rem; color: var(--muted); }
.nv-foto-schild { display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center; justify-content: space-between; }
.nv-hinweis { margin: 0.5rem 0 0; }
.nv-bildzeile { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; margin: 0.6rem 0 0; }
.nv-ok { display: flex; align-items: center; gap: 0.5rem; margin: 0.8rem 0 0; }

/* AFU-523: Club-, Sonder- und Contestseiten */
.fk-art { margin-left: 0.5rem; font-size: 0.8rem; font-weight: 500; letter-spacing: 0; vertical-align: middle; }
.fk-verwalter-liste { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; margin: 0; padding: 0; list-style: none; }

/* AFU-529 (ersetzt das Raster aus AFU-528): Text der Seiten unter /<rufzeichen> und der Standortseite in Abschnitten,
   gebaut von js/nutzerseite-abschnitte.js. Breit: Abschnitt mit Bildern als Zeile, Text auf Lesebreite, die Bilder
   in der restlichen Breite gleich hoch nebeneinander (Breite nach Seitenverhältnis --ar), nie beschnitten, jede zweite
   Zeile gespiegelt. Abschnitte ohne Bild nebeneinander als Kacheln, ein einzelner langer in zwei Spalten. Darunter nur
   Fotos, die nicht im Text stehen (Mauerwerk über die volle Breite), und die Fußzeile. Schmal alles untereinander,
   Bilder am Ende ihres Abschnitts. Bewusst hier und nicht in standort.css (Stationspaket). */
.fk-text > :first-child, .fk-text > :first-child > :first-child { margin-top: 0; }
.fk-abschnitt { display: grid; gap: 1rem 2.6rem; grid-template-columns: minmax(0, 1fr); margin: 1.8rem 0; }
.fk-abschnitt-text > :first-child { margin-top: 0; }
.fk-abschnitt-text > :last-child { margin-bottom: 0; }
.fk-abschnitt.nur-bilder > .fk-abschnitt-text { display: none; }
.fk-bilder { --hmax: min(75vh, 46rem); display: flex; flex-wrap: wrap; gap: 0.8rem; align-items: flex-start; min-width: 0; }
.fk-bild { --ar: 1.3333; flex: 1 1 100%; min-width: 0; max-width: calc(var(--hmax) * var(--ar)); margin: 0; }
.fk-bild .so-bildlink, .fk-bild .ns-fremdbild { display: block; }
.fk-text .fk-bild img { display: block; width: 100%; height: auto; max-height: none; object-fit: contain;
  border-radius: 8px; border: 1px solid var(--border); background: var(--bg2); }
.fk-bild figcaption { font-size: 0.82rem; color: var(--muted); margin-top: 0.3rem; }
.fk-bild-platz { flex: 1 1 16rem; max-width: 28rem; }
.fk-bild-platz .ns-bild-pruefung { width: 100%; margin: 0; }
.fk-kacheln { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); margin: 1.8rem 0; }
.fk-kachel { min-width: 0; padding: 1rem 1.2rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card-bg); }
.fk-kachel > :first-child { margin-top: 0; }
.fk-kachel > h2 { font-size: 1.3rem; }
.fk-kachel > :last-child { margin-bottom: 0; }
.fk-spalten > :first-child { margin-top: 0; }
/* Bilder mitten im Fließtext (neben Text im selben Absatz) bleiben kompakt */
.fk-text img { max-height: 26rem; width: auto; object-fit: contain; }
@media (min-width: 64rem) {
  .fk-abschnitt { grid-template-columns: minmax(0, var(--lesebreite)) minmax(0, 1fr); align-items: start; margin: 2.2rem 0; }
  .fk-abschnitt.gespiegelt { grid-template-columns: minmax(0, 1fr) minmax(0, var(--lesebreite)); }
  .fk-abschnitt.gespiegelt > .fk-abschnitt-text { order: 2; }
  .fk-abschnitt.gespiegelt > .fk-bilder { justify-content: flex-end; }
  .fk-abschnitt.nur-bilder { grid-template-columns: minmax(0, 1fr); }
  .fk-bilder { flex-wrap: nowrap; }
  .fk-bild { flex: var(--ar) 1 0; }
  .fk-spalten { columns: 30rem 4; column-gap: 2.6rem; }
  .fk-spalten p, .fk-spalten ul, .fk-spalten ol, .fk-kachel.fk-lang p { max-width: none; }
  .fk-spalten > :is(h2, h3) { column-span: all; }
  .fk-spalten > * { break-inside: avoid-column; }
  .fk-kachel.fk-lang { grid-column: 1 / -1; columns: 30rem 4; column-gap: 2.6rem; }
  .fk-kachel.fk-lang > :is(h2, h3) { column-span: all; }
}
/* Fotos, die nicht im Text stehen: Zeilen gleicher Höhe über die volle Breite (Breite nach --ar), nie beschnitten */
.fk-galerie { margin-top: 2.2rem; }
.fk-galerie > h2 { margin-top: 0; }
.fk-galerie .so-fotos, .so-fotos.fk-galerie-fotos { display: flex; flex-wrap: wrap; gap: 0.8rem; align-items: flex-start; margin-top: 1rem; }
.fk-galerie .so-foto, .fk-galerie-fotos .so-foto { --ar: 1.3333; flex: var(--ar) 1 calc(var(--ar) * 15rem); min-width: 0;
  max-width: calc(var(--ar) * min(75vh, 46rem)); margin: 0; }
.fk-galerie .so-foto img, .fk-galerie-fotos .so-foto img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; background: var(--bg2); }
.so-fotos.fk-galerie-fotos:empty { display: none; }
/* Fußzeile: Verwalter (Clubseiten) und Datum */
.fk-fuss { display: flex; flex-wrap: wrap; gap: 0.4rem 2rem; align-items: baseline; margin-top: 2.2rem; padding-top: 0.9rem;
  border-top: 1px solid var(--border); color: var(--muted); font-size: 0.88rem; }
.fk-fuss > p { margin: 0; }
.fk-fuss-verwalter { display: flex; flex-wrap: wrap; gap: 0.3rem 0.8rem; align-items: baseline; }
.fk-fuss-titel { font-weight: 600; }

/* Verwaltung: Vorschau der Fotos unbeschnitten, Rest der Kachel als Fläche */
.nv-foto img { object-fit: contain; background: var(--bg2); }

/* AFU-531: Bildpositionen aus dem Blockeditor. Links/Rechts über .gespiegelt, Größe als Breite der Bildspalte, Über,
   Unter und große Galerien als Reihe über die Breite des Abschnitts, Hier als Reihe auf Lesebreite an ihrer Stelle. */
.fk-reihe { --hmax: min(65vh, 38rem); display: flex; flex-wrap: wrap; gap: 0.8rem; align-items: flex-start; margin: 1.2rem 0; }
.fk-reihe .fk-bild { flex: var(--ar) 1 calc(var(--ar) * 11rem); }
.fk-reihe-hier { max-width: var(--lesebreite); }
.fk-reihe-oben { margin-top: 0.6rem; }
@media (min-width: 64rem) {
  .fk-abschnitt.bild-klein { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .fk-abschnitt.bild-klein.gespiegelt { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
  .fk-abschnitt.bild-gross { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
  .fk-abschnitt.bild-gross.gespiegelt { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .fk-abschnitt.bild-klein > .fk-abschnitt-text, .fk-abschnitt.bild-gross > .fk-abschnitt-text { max-width: var(--lesebreite); }
}
/* Video erst nach Klick (Datenschutz), Datei, Knopf */
.fk-video { max-width: var(--lesebreite); margin: 1.2rem 0; }
.fk-video-start, .fk-video iframe { display: flex; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--radius); }
.fk-video-start { flex-direction: column; align-items: center; justify-content: center; gap: 0.4rem; padding: 1rem;
  border: 1px solid var(--border); background: var(--bg2); color: var(--fg); font: inherit; cursor: pointer; }
.fk-video-start:hover, .fk-video-start:focus-visible { background: var(--card-hover); }
.fk-video-zeichen { display: flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; border-radius: 50%;
  background: linear-gradient(90deg, var(--accent), var(--accent2)); color: var(--bg); font-size: 1.6rem; }
.fk-video-text { font-weight: 600; }
.fk-video-hinweis { font-size: 0.82rem; color: var(--muted); }
.fk-video iframe { border: 0; background: #000; }
.fk-video figcaption { font-size: 0.82rem; color: var(--muted); margin-top: 0.3rem; }
.fk-datei { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.9rem; border: 1px solid var(--border);
  border-radius: 10px; background: var(--card-bg); text-decoration: none; }
.fk-datei:hover { background: var(--card-hover); }
.fk-datei-zeichen, .nv-pdf { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.04em; padding: 0.15rem 0.4rem; border-radius: 4px;
  background: #d9483b; color: #fff; }
.ns-datei-pruefung { color: var(--muted); }
p.knopf { margin: 1.2rem 0; }

/* AFU-531: Verwaltung mit Blockeditor (Mockup 259 v2): Blatt auf Lesebreite, rechts die Kästen, schmal eine Spalte mit
   fester Leiste unten. Editor.js bringt eigene Regeln mit; hier nur Farben und die eigenen Blöcke (be-). */
.nv-ed { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
.nv-blatt { min-width: 0; max-width: calc(var(--lesebreite) + 8rem); padding: 1.4rem clamp(1rem, 3vw, 3.2rem) 2rem;
  background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius); }
.nv-titelfeld { width: 100%; box-sizing: border-box; padding: 0.2rem 0 0.5rem; border: 0; border-bottom: 1px dashed var(--border);
  background: transparent; color: var(--fg); font: inherit; font-size: clamp(1.3rem, 2.4vw, 1.7rem); font-weight: 700; }
.nv-titelfeld:focus { outline: none; border-bottom-color: var(--accent); }
.nv-adresse { margin: 0.4rem 0 1.2rem; font-size: 0.85rem; color: var(--muted); }
.nv-editor { max-width: none; }
.nv-editor .ce-block__content, .nv-editor .ce-toolbar__content { max-width: none; }
.nv-editor .codex-editor__redactor { padding-bottom: 6rem !important; }
.nv-editor .ce-paragraph, .nv-editor .ce-header { line-height: 1.6; }
.nv-editor h2.ce-header { padding-left: 0.7rem; border-left: 3px solid var(--accent); }
.nv-editor .ce-toolbar__plus, .nv-editor .ce-toolbar__settings-btn { color: var(--fg); background: var(--bg); border: 1px solid var(--border); }
.nv-editor .ce-toolbar__plus:hover, .nv-editor .ce-toolbar__settings-btn:hover { background: var(--card-hover); }
/* AFU-532: section borders as on the page (set by abschnitteMarkieren in js/blockeditor.js) */
.nv-editor .ce-block[data-abschnitt] { margin-top: 1.1rem; border-top: 1px dashed var(--border); padding-top: 0.15rem; }
.nv-editor .ce-block[data-abschnitt]:first-child { margin-top: 0; border-top: 0; }
.nv-editor .ce-block[data-abschnitt]::before { content: attr(data-abschnitt); display: block; font-size: 0.72rem;
  letter-spacing: 0.03em; color: var(--muted); user-select: none; pointer-events: none; }
.nv-editor .ce-block--selected .ce-block__content { background: color-mix(in srgb, var(--accent) 14%, transparent); }
.nv-editor .ce-popover, .nv-editor .ce-inline-toolbar, .nv-editor .ce-conversion-toolbar, .ce-popover__container {
  --color-background: var(--bg2); --color-text-primary: var(--fg); --color-text-secondary: var(--muted);
  --color-border: var(--border); --color-background-item-hover: var(--card-hover); --color-background-icon: var(--bg);
  --color-background-item-focus: var(--card-hover); --color-shadow: rgba(0, 0, 0, 0.45);
  color: var(--fg); }
.nv-editor .ce-popover__container, .nv-editor .ce-inline-toolbar { background: var(--bg2); border-color: var(--border); }
.nv-editor .cdx-search-field { background: var(--bg); border-color: var(--border); }
.nv-editor .cdx-search-field__input { color: var(--fg); }
.nv-editor .ce-inline-tool, .nv-editor .ce-inline-toolbar__dropdown { color: var(--fg); }
.nv-editor .ce-inline-tool:hover, .nv-editor .ce-inline-toolbar__dropdown:hover { background: var(--card-hover); }
.nv-editor .ce-inline-tool-input { background: var(--bg); color: var(--fg); border-color: var(--border); }
.nv-editor .cdx-quote__text { min-height: 3rem; }
.nv-editor .cdx-input { border-color: var(--border); background: var(--bg); color: var(--fg); box-shadow: none; }
.nv-editor .ce-delimiter { line-height: 1.6em; }
.nv-editor [contentEditable=true][data-placeholder]::before, .nv-editor .ce-paragraph[data-placeholder]:empty::before { color: var(--muted); }
.be-icon { font-size: 15px; line-height: 1; }
.be-tool { margin: 0.5rem 0; padding: 0.6rem; border: 1px solid var(--border); border-radius: 10px; background: var(--bg);
  display: grid; gap: 0.45rem; font-size: 0.88rem; }
.be-tool input, .be-tool textarea { width: 100%; box-sizing: border-box; padding: 0.35rem 0.55rem; border: 1px solid var(--border);
  border-radius: 7px; background: var(--bg2); color: var(--fg); font: inherit; font-size: 0.88rem; }
.be-kopf { display: flex; flex-wrap: wrap; gap: 0.4rem 0.9rem; align-items: center; color: var(--muted); font-size: 0.82rem; }
.be-kopf > span:first-child { font-weight: 600; color: var(--fg); }
.be-link { padding: 0; border: 0; background: none; color: var(--accent); font: inherit; font-size: 0.85rem; cursor: pointer; text-decoration: underline; }
.be-bildzeile { display: flex; gap: 0.8rem; align-items: flex-start; }
.be-vorschau { flex: 0 0 auto; width: 10rem; max-height: 9rem; object-fit: contain; border-radius: 6px; background: var(--bg2); border: 1px solid var(--border); }
.be-felder { flex: 1; min-width: 0; display: grid; gap: 0.4rem; }
.be-zeile { display: flex; flex-wrap: wrap; gap: 0.35rem 0.6rem; align-items: center; margin: 0; }
.be-lbl { flex: 0 0 5.6rem; color: var(--muted); font-size: 0.82rem; }
.be-zeile > input { flex: 1; min-width: 10rem; width: auto; }
.be-klein, .nv-klein { font-size: 0.8rem; color: var(--muted); }
.be-fehler { color: #ef4444; }
.be-leiste { display: inline-flex; flex-wrap: wrap; gap: 0.15rem; padding: 0.15rem; border: 1px solid var(--border); border-radius: 8px; background: var(--bg2); }
.be-leiste button { display: inline-flex; align-items: center; gap: 0.25rem; min-height: 1.75rem; padding: 0 0.5rem; border: 0;
  border-radius: 6px; background: transparent; color: var(--muted); font: inherit; font-size: 0.8rem; cursor: pointer; }
.be-leiste button:hover { background: var(--card-hover); color: var(--fg); }
.be-leiste button[aria-pressed="true"] { background: var(--accent); color: var(--bg); font-weight: 600; }
.be-leiste.aus { opacity: 0.45; }
.be-mix { margin: 0; font-size: 0.82rem; }
.be-raster { display: grid; gap: 0.5rem; grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); }
.be-gal-bild { position: relative; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; background: var(--bg2); cursor: grab; }
.be-gal-bild img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.be-gal-weg, .be-gal-alt { position: absolute; top: 0.25rem; width: 1.6rem; height: 1.6rem; display: flex; align-items: center;
  justify-content: center; padding: 0; border: 1px solid var(--border); border-radius: 6px; background: var(--bg); color: var(--fg); cursor: pointer; }
.be-gal-weg { right: 0.25rem; }
.be-gal-alt { right: 2.1rem; }
.be-gal-alt svg { width: 0.95rem; height: 0.95rem; }
.be-gal-text { display: block; padding: 0.15rem 0.35rem; font-size: 0.75rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.be-html-vorschau { padding: 0.5rem 0.7rem; border: 1px dashed var(--border); border-radius: 8px; max-width: none; }
.be-html-vorschau > :first-child { margin-top: 0; }
.be-html-vorschau img { max-width: 100%; height: auto; }
.be-html-vorschau, .be-tool { min-width: 0; overflow-wrap: anywhere; }
.be-html textarea { font-family: ui-monospace, monospace; font-size: 0.82rem; }
.nv-seite { display: grid; gap: 1rem; min-width: 0; }
.nv-kasten { padding: 0.9rem 1rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card-bg); }
.nv-kasten h2 { margin: 0 0 0.6rem; padding: 0; border: 0; font-size: 1rem; }
.nv-kasten h2::before { display: none; }
.nv-z { display: flex; justify-content: space-between; gap: 0.6rem; margin: 0.3rem 0; font-size: 0.86rem; }
.nv-z > span:first-child { color: var(--muted); }
.nv-z > span:last-child { text-align: right; }
.nv-offen { color: #f59e0b; }
.nv-punkt { display: inline-block; width: 0.5rem; height: 0.5rem; margin-right: 0.35rem; border-radius: 50%; background: var(--muted); vertical-align: middle; }
.nv-punkt.ok { background: #10b981; }
.nv-punkt.no { background: #ef4444; }
.nv-kasten .field { margin: 0.6rem 0; }
.nv-kasten select { width: 100%; }
.nv-pub-knoepfe { margin: 0.6rem 0 0.3rem; }
.nv-leiste-unten { display: none; }
@media (min-width: 64rem) {
  .nv-ed { grid-template-columns: minmax(0, 1fr) 17rem; }
  .nv-seite { position: sticky; top: calc(var(--kopf-hoehe, 44px) + 1rem); }
}
@media (max-width: 47.5rem) {
  .nv-pub-knoepfe { display: none; }
  .nv-leiste-unten { position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center;
    justify-content: space-between; margin: 1rem calc(-1 * var(--rand, 1rem)) 0; padding: 0.55rem var(--rand, 1rem);
    background: var(--bg); border-top: 1px solid var(--border); font-size: 0.82rem; }
  .nv-leiste-unten .btn-row { margin: 0; }
  .be-bildzeile { flex-direction: column; }
  .be-vorschau { width: 100%; max-height: 14rem; }
  .be-lbl { flex-basis: 100%; }
}
/* Mediathek */
.nv-ablage-zone { display: grid; gap: 0.3rem; justify-items: center; padding: 1.1rem; margin: 0 0 1rem; text-align: center;
  border: 2px dashed var(--border); border-radius: 12px; color: var(--muted); cursor: pointer; }
.nv-ablage-zone.drueber, .nv-ablage-zone:focus-visible { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, transparent); }
.nv-ablage-stand { margin: 0; font-size: 0.85rem; color: var(--fg); }
.nv-ablage-stand:empty { display: none; }
.nv-ablage-stand.fehler { color: #ef4444; }
.nv-medien { display: grid; gap: 0.7rem; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }
.nv-medium { display: flex; flex-direction: column; padding: 0; overflow: hidden; text-align: left; border: 1px solid var(--border);
  border-radius: 10px; background: var(--bg); color: var(--fg); font: inherit; font-size: 0.8rem; cursor: pointer; }
.nv-medium:hover { border-color: var(--accent); }
.nv-medium.gewaehlt { outline: 2px solid var(--accent); outline-offset: -1px; }
.nv-medium img, .nv-medium .nv-pdf { display: flex; width: 100%; height: 7rem; object-fit: contain; background: var(--bg2); }
.nv-medium .nv-pdf { align-items: center; justify-content: center; border-radius: 0; font-size: 1.1rem; background: #4b1f1b; }
.nv-medium-unten { display: grid; gap: 0.2rem; justify-items: start; padding: 0.45rem 0.55rem; }
.nv-medium-unten b { max-width: 100%; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nv-detail { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.nv-detail-bild { width: 100%; max-height: 18rem; object-fit: contain; border-radius: 8px; background: var(--bg2); border: 1px solid var(--border); }
.nv-pdf.gross { display: flex; align-items: center; justify-content: center; height: 8rem; font-size: 1.4rem; text-decoration: none; }
.nv-detail-felder > * { margin: 0 0 0.6rem; }
.nv-detail-felder .feld-zeile { display: flex; gap: 0.5rem; }
.nv-detail-felder .feld-zeile input { flex: 1; min-width: 0; }
@media (min-width: 48rem) { .nv-detail { grid-template-columns: 16rem minmax(0, 1fr); } }
.nv-medien-dlg { width: min(60rem, 94vw); max-height: 90vh; }
.nv-medien-dlg .nv-medien { max-height: 52vh; overflow: auto; padding: 2px; }
/* Versionen */
.nv-versionen-dlg { width: min(60rem, 94vw); max-height: 90vh; }
.nv-versionen { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 48rem) { .nv-versionen { grid-template-columns: 16rem minmax(0, 1fr); } }
.nv-vliste { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.2rem; max-height: 60vh; overflow: auto; }
.nv-vliste button { display: grid; gap: 0.05rem; width: 100%; padding: 0.45rem 0.6rem; text-align: left; border: 1px solid transparent;
  border-radius: 8px; background: none; color: var(--fg); font: inherit; font-size: 0.86rem; cursor: pointer; }
.nv-vliste button span { color: var(--muted); font-size: 0.78rem; }
.nv-vliste li.an button, .nv-vliste button:hover { border-color: var(--accent); background: var(--card-hover); }
.nv-vergleich { max-height: 52vh; overflow: auto; padding: 0.7rem 0.9rem; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); font-size: 0.86rem; }
.nv-vergleich p { margin: 0.3rem 0; }
.nv-vergleich del { color: #ef4444; }
.nv-vergleich ins { color: #10b981; text-decoration: none; }
