/*! NEXTARI · Flaechen · Author: Marvin Slotta · Build 2026.09.16 */
/* WER EINE FLAECHE TRAEGT, UND WER NICHT.
   Eine Flaeche fasst zusammen · sie gehoert dorthin, wo mehreres unter
   einem Kopf steht, und nicht unter jede Reihe. Getrennt wird mit der
   Flaeche, nicht mit einer Linie: halb sichtbare Linien zerlegen die
   Seite in Kaesten, ohne etwas zu ordnen.
   ------------------------------------------------------------------
     JA   · zusammenfassende / uebergeordnete Reihe oben  (.nx-charea)
     JA   · curated Reihen                                (.nx-charea)
     JA   · Widgets auf Home                        (.wg, .panel)
     NEIN · normale Reihen                                (.section)
     NEIN · Bildkacheln · dort traegt das Artwork
   ------------------------------------------------------------------
   Die kanonischen Graustufen stehen in nextari.css; hier werden nur
   gemeinsame Rollen auf diese Tokens abgebildet. */

/* ---- 0 · DIE ZWEI GRUNDWERTE ----
   Die Flaeche muss sich vom Grund unterscheiden, sonst liest sich eine
   Karte wie ein Loch. Gemessen stand die Seite auf reinem Schwarz und
   die Flaeche auf #1f1f24 · im Feed, wo viele kleine Flaechen
   nebeneinander liegen, verschwand der Unterschied.
   Spotify haelt denselben Abstand mit hellerem Grund UND hellerer
   Flaeche: die Seite ist dort nicht schwarz, und die Karte liegt
   sichtbar darueber. Dieselbe Beziehung, nur nach oben verschoben.
   Diese Datei laedt nach der Seiten-CSS und setzt die Werte deshalb
   fuer alle 53 Seiten an einer Stelle. */
/* DREI STUFEN, MEHR NICHT · Seite, Schiene, Tafel.
   Spotify haelt genau diese drei: die Seite fast schwarz, die Spalte
   ein Grau darueber, die Karte noch ein Grau darueber · und KEINE
   vierte. Gemessen trug Home sechs verschiedene Gruende (#101013,
   #121212, #17171b, #1f1f24, #0b0b12, #0b0b13); jeder davon war fuer
   sich begruendet, zusammen ergaben sie Unruhe ohne Aussage.
   Die Schiene stand auf reinem Grau, waehrend Seite und Tafel einen
   leichten Blaustich tragen · #17171b haelt denselben Abstand und
   bleibt in der Familie. */
:root{
  --bg: var(--nx-grund);
  --surface: var(--nx-flaeche);
  --surface2: var(--nx-flaeche-2);
  /* Die Schiene war ein vierter Grauton zwischen Seite und Flaeche (#17171b,
  8 Stufen ueber dem Grund) · die Spalten auf Home waren damit halb
  sichtbar, und die Karten darin lagen nur 9 Stufen darueber. Sie ist
  jetzt eine Flaeche wie jede andere. Der Name bleibt, damit nichts ins
  Leere greift. */
  --nx-schiene: var(--nx-flaeche);
  /* DIE SCHRIFTFARBEN GEHOEREN IN DIESELBE LEITER.
  --txt und --faint standen in zehn einzelnen Seiten-CSS, nicht hier · und
  wer ein neues Modul schrieb, schrieb deshalb #fff hin. Gemessen
  auf 1800 Stellen fuer eine einzige Farbe. Hier stehen sie einmal, und ein
  Modul kann sie ohne Rueckfallwert lesen, weil jede Seite diese Datei laedt. */
  --txt: var(--nx-text);
  /* DIE SCHRIFT-LEITER · vier Stufen: #fff fuer Titel, --txt fuer Text,
  --dim fuer leisen Text, --nx-leise fuer Hinweise. --faint war ein
  zweiter Name fuer denselben leisen Ton (#a9a9b6 neben #aaa9c0, fuer das
  Auge gleich) · er zeigt jetzt auf --dim. Dazwischen standen 137 Grautoene
  als Zahl; sie sind auf die naechste Stufe gezogen. */
  --dim: var(--nx-dim);
    --line: var(--nx-linie-subtle);
  --line2: var(--nx-linie);
  --faint: var(--nx-faint);
  /* Eine Laufweite fuer alles in Versalien (Etiketten, Augenbrauen, Pillen)
  · gemessen standen dort neun Werte zwischen 0,2 und 1,4 Punkten. */
  --nx-sperrung: .09em;
}
html, body{ background-color: var(--bg, var(--nx-grund)) !important; }

/* DER FOKUS GEHOERT IN DIE LEITER, NICHT IN SECHSUNDDREISSIG DATEIEN.

  Dieselbe Regel stand in 36 von 83 Seiten-CSS · und fehlte in den
  uebrigen. Gemessen wurde die Folge auf der Eventseite: "Join the lobby"
  liess sich antabben und zeigte dabei nichts. Wer mit der Tastatur
  bedient, weiss dann nicht, wo er steht.

  focus-visible, nicht focus: ein Mausklick soll keinen Rahmen
  hinterlassen, eine Tabulatortaste schon. Der Rahmen liegt AUSSEN
  (outline-offset), damit er nichts verdeckt und keine Flaeche verschiebt. */
:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ---- 1 · KEINE LINIEN ----
   DIE KLASSE STEHT DREIMAL. Gemessen trug die Kachel .nx-gf-k weiter
   eine 1px-Kante, obwohl sie hier schon stand: in der Seiten-CSS
   gewinnt ".nx-gf-carou .nx-gf-k" mit zwei Klassen gegen eine einzelne,
   auch wenn beide Vorrang haben. Dreimal geschrieben zaehlt die Regel
   drei Klassen und gewinnt gegen jede Seiten-Regel bis zwei. */
.wg.wg.wg,
.section.section.section,
.nx-charea.nx-charea.nx-charea,
.panel.panel.panel,
.nx-panel.nx-panel.nx-panel,
.card.card.card,
.gcard.gcard.gcard,
.lcard.lcard.lcard,
.nxsh-card.nxsh-card.nxsh-card,
.pcard.pcard.pcard,
.tcard.tcard.tcard,
.evcard.evcard.evcard,
.crow.crow.crow,
.nx-cl-row.nx-cl-row.nx-cl-row,
.nxk-text.nxk-text.nxk-text,
.t10item.t10item.t10item,
.ed-card.ed-card.ed-card,
.nx-grp-k.nx-grp-k.nx-grp-k,
.chcard.chcard.chcard,
.nxk-leer.nxk-leer.nxk-leer,
.nxk-hoch.nxk-hoch.nxk-hoch,
.nxk-quer.nxk-quer.nxk-quer,
.banner.banner.banner,
.nxp-art.nxp-art.nxp-art,
.nxsh-cover.nxsh-cover.nxsh-cover,
.nx-gf-k.nx-gf-k.nx-gf-k,
.mtile.mtile.mtile,
.nxfn-breit.nxfn-breit.nxfn-breit{
  border: none !important;
  box-shadow: none !important;
}

/* ---- 2 · GRUND NUR FUER DIE DREI GENANNTEN ----
   background-COLOR, nicht background · die Kurzform loescht auch
   Hintergrundbilder. */
/* WER EINEN GRUND BEKOMMT, BEKOMMT AUCH SEINE FORM.
   Hier stand nur die Farbe · die Blocke "Curated" und "Library" auf
   Games standen deshalb als eckige Flaeche unter dem Auftakt, waehrend
   jede Karte darin rund war. Eine Flaeche ohne Ecken ist kein Kasten,
   sondern ein Balken. */
.nx-charea, .wg, .panel, .nx-panel{
  background-color: var(--nx-flaeche, #1f1f24) !important;
}

/* ZWEI RUNDUNGEN, JEDE MIT EINEM BESITZER.
   Die zusammenfassende Flaeche ist 18, das Widget 14. Der Wert fuer das
   Widget stand bisher an ZWEI Stellen: ".wg" in der Home-CSS auf 16 und
   "#board .wg" auf 14 mit Vorrang. Wer im Brett sass, bekam 14 · die
   Zeitleiste sitzt in der Spalte und blieb als einziges Widget auf 16.
   Deshalb steht der Wert jetzt hier, wo auch der Grund entsteht. */
/* DIE RADIUS-LEITER · vier Stufen, einmal benannt.

Vorher stand der Radius derselben Feed-Karte an fuenf Stellen in vier
Werten: die Hausleiter sagte 12, nextari-home.css sagte 14 mit Vorrang,
nxm-mobil.css sagte 14 (wirkungslos), und nxm-feedton.js schrieb 10
direkt ins Element · der Knopf-Radius auf einer Karte. Gewonnen hat
keiner der beiden, die es entscheiden durften.

Ein Wert, der an fuenf Stellen steht, ist keine Entscheidung. Ab hier
steht die Zahl HIER und nirgends sonst; wer sie braucht, liest sie. */
:root{
  --nx-r-block:  18px;   /* Block · fasst mehrere Reihen                */
  --nx-r-tafel:  14px;   /* Tafel · ein Kopf, mehrere Dinge             */
  --nx-r-karte:  12px;   /* Karte · EIN Ding                            */
  --nx-r-bedien: 10px;   /* Knopf und Feld                              */
  --nx-r-marke:  6px;    /* Etikett, kleines Feld, Balken               */
  --nx-r-pille:  999px;  /* Pille · traegt einen Zustand                */

  /* DIE GRUND-LEITER · fuenf Stufen, mehr gibt es nicht.

  Gemessen auf 14 Seiten: 789 Flaechen tragen 33 verschiedene
  Gruende. Vier davon tragen 439 Stueck, die uebrigen 29 sind Zufall ·
  acht Abstufungen desselben Weiss (.024 .027 .03 .035 .04 .043 .06 .07),
  die kein Mensch unterscheiden kann, und sieben Fast-Schwarz, die alle
  den Seitengrund meinen.

  Die Zahlen sind hier noch nicht ersetzt: 1.225 Hintergruende in 188
  Dateien sind ein Massenumbau, und der gehoert hinter den Launch, mit
  Fingerabdruck-Bildern davor und danach. Was hier steht, ist das ZIEL ·
  ab sofort hat jede neue Flaeche einen Namen zu benutzen, und die
  Sperrklinke im Tor sorgt dafuer, dass die 1.225 nicht 1.300 werden. */
  /* OHNE RUECKFALLWERT · und das ist Absicht.
  Zuerst stand die Zahl als Rueckfall in allen 1.225 Stellen mit drin
  (var(--nx-hebung,rgba(255,255,255,.05))). Dann haette man sie zum
  Aendern wieder 1.225-mal anfassen muessen · also genau der Zustand,
  aus dem wir kommen. Geprueft: alle 52 Seiten laden diese Datei.
  Der Name steht, also darf er allein stehen. */
  /* DREI GRAUTOENE, WIE BEI SPOTIFY · Seite, Flaeche, Flaeche auf Flaeche.
  --nx-hebung ist EINE Stufe, durchscheinend: auf der Seite ergibt sie genau
  die Flaeche (#1f1f24), auf einer Flaeche genau Flaeche 2 (#2d2d34). Wer
  sie setzt, muss also nicht wissen, worauf sein Element liegt · es liegt
  immer eine Stufe darueber. Hier stand .05 Weiss: auf der Seite #1c1c1f,
  also ein ANDERES Grau als die Flaeche daneben, und dazu 30 weitere
  Deckkraefte zwischen .015 und .07, die als Zahl in 262 Dateien standen.
  Der leichte Blaustich (216,216,246) haelt die Familie: Seite und Flaeche
  tragen ihn auch.
  --nx-hebung-2 sind zwei Stufen · fuer den Zeiger ueber etwas, das schon
  eine Flaeche ist, und fuer Gewaehltes. */
  --nx-hebung: rgba(216,216,246,.075);
  --nx-hebung-2: rgba(216,216,246,.14);
  /* Glas fuer Leisten, die ueber dem Inhalt kleben: der Ton der Seite,
  durchscheinend. In Ruhe ist es die Seite, beim Rollen verschwimmt der
  Inhalt darunter. */
  --nx-glas: rgba(16,16,19,.74);
  /* SCHATTEN NUR FUER EBENEN · Menue, Dialog, Hinweis, schwebender Knopf.
  Im Fluss gibt es keinen (Spotify: "Keine Schatten"). Gemessen standen
  206 Schatten im Code, darunter violette Lichthoefe unter Knoepfen. */
  --nx-schatten: 0 18px 50px rgba(0,0,0,.55);
}
/* Die vier anderen Stufen stehen schon weiter oben und behalten ihre
Namen: --nx-grund (Seite), --nx-schiene (Schiene), --nx-flaeche (Tafel),
--surface2 (Karte auf einer Tafel). */
.nx-charea{ border-radius: var(--nx-r-block,18px); }
.wg, .panel, .nx-panel{ border-radius: var(--nx-r-tafel,14px) !important; }

/* Widgets mit Spiel-Artwork behalten ihren eigenen Grund · das Bild
   liegt in einem ::before mit z-index:-2 HINTER dem Widget
   (css/nextari-home.css:1535) und wird von einem deckenden Grund
   verdeckt. */
.wg[data-nxbg]{ background-color: transparent !important; }

/* Kein Kasten im Kasten. */
.nx-charea .section{ background-color: transparent; }

/* ---- 3 · Bildkacheln tragen ihr Artwork randlos ---- */
.gcard, .lcard, .nxsh-card, .t10item{ overflow: hidden !important; }

/* ------------------------------------------------------------------
   4 · DIE DREI BEREICHE SCHWEBEN · Bibliothek, Mitte und rechte Spalte
   liegen als eigene Flaechen auf dem Seitengrund, getrennt durch eine
   schmale Luecke. Keine Rahmen, 8px Rundung.

   DER GRUND IST NICHT SCHWARZ. Hier stand einmal reines Schwarz. Der
   Bezug dafuer war falsch gelesen: auch bei Spotify ist die Seite nicht
   schwarz, sondern ein dunkles Grau · erst dadurch liegt eine Karte
   sichtbar darueber. Auf reinem Schwarz verschwindet der Unterschied,
   und im Feed, wo viele kleine Flaechen nebeneinanderliegen, faellt es
   am staerksten auf. Der Wert steht oben in Abschnitt 0.
   ------------------------------------------------------------------ */

.shell{ gap: 8px; align-items: start; }

.shell > aside.col-left,
.shell > main,
.shell > aside.col-right{
  background: var(--nx-flaeche);
  border-radius: var(--nx-r-tafel);
  padding: 16px !important;
  box-sizing: border-box;
}
/* DIE MITTE VON HOME IST GRUND, NICHT FLAECHE (Entscheidung 06.10.
   "Feed-Posts als Flaechen"). Jeder Beitrag steht auf seiner eigenen
   Flaeche (#feed > .post in css/nextari-home.css); laege die Spalte selbst
   auf --nx-flaeche, waere zwischen und neben den Beitraegen kein Schwarz
   zu sehen. Die Schienen links und rechts behalten ihre Flaeche. */
.shell > main:has(> #feed){ background: none; }

/* Auf einer schwebenden Flaeche ist ein Widget keine zweite Flaeche. */
.shell > aside.col-left > *,
.shell > aside.col-right > *{
  background: transparent !important;
  border: none !important;
}


/* ==================================================================
  5 · DIE SPIELKACHEL IST EIN COVER

  Eine Spielkachel traegt bei Games das Artwork wie bei Netflix, und die
  graue Flaeche darf nicht aus der Kachel herausstehen.

  Beides war dieselbe Stelle: unter dem Artwork lag ein grauer Textstreifen
  von 32 px, das Bild deckte nur 68 bis 76 Prozent. nxm-karten.js macht
  Spielkacheln jetzt wieder zu Covern · hier bekommt der Text, der dann
  IM Bild liegt, seine Lesbarkeit: ein Verlauf, kein Kasten.
  ================================================================== */
.gcard[data-nxk="cover"]{ position:relative; overflow:hidden; }
.gcard[data-nxk="cover"] > .nxk-in,
.gcard[data-nxk="cover"] > .gmeta,
.gcard[data-nxk="cover"] > .cardtext{
  position:absolute; left:0; right:0; bottom:0;
  padding:30px 12px 11px;
  background:linear-gradient(to top,
    rgba(8,8,10,.94) 0%, rgba(8,8,10,.74) 48%, rgba(8,8,10,0) 100%);
  z-index:2;
}
/* Ein Titel, der im Bild steht, braucht seinen eigenen Schatten · ein
  helles Artwork frisst weisse Schrift sonst auf. */
.gcard[data-nxk="cover"] .nxk-t,
.gcard[data-nxk="cover"] .gtitle{
  text-shadow:0 1px 10px rgba(0,0,0,.9);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
/* Die zweite Zeile darf umbrechen, aber nur einmal · drei Zeilen im
  Bild lesen sich als Textblock, nicht als Kachel. */
.gcard[data-nxk="cover"] .nxk-m,
.gcard[data-nxk="cover"] .gsub{
  text-shadow:0 1px 8px rgba(0,0,0,.9);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}


/* ==================================================================
  6 · RADARKARTEN STEHEN AUF EINER LINIE

  Im Radar sassen die Plattformzeichen und die Pillen nicht auf einer
  Linie.

  Gemessen: die vier Karten einer Reihe sind gleich hoch, aber ihre
  Knoepfe sassen auf 197, 215, 233 und 215 Punkten · je nachdem, ob der
  Titel eine, zwei oder drei Zeilen braucht. Die Herkunftsmarke darunter
  wanderte mit. Vier Reihenenden auf vier Hoehen liest sich als Fehler.

  Dieselbe Loesung wie bei .nxk-f: was unten stehen soll, sinkt nach
  unten. Der Titel darf wachsen, das Ende bleibt, wo es ist.
  ================================================================== */
.nxsh-card{ display:flex; flex-direction:column; }
/* DER RUMPF WAECHST, DAMIT UNTEN KEINE LUECKE BLEIBT. Gemessen lagen
  auf People bis zu 67 px Leere unter dem letzten Wort einer Karte: die
  Reihe zieht alle Karten auf dieselbe Hoehe, aber der Textteil hiess
  hier .nxsh-body / .nxk-in und war in dieser Regel nicht genannt · er
  wuchs also nicht mit. */
.nxsh-card > .nxsh-in,
.nxsh-card > .nxsh-txt,
.nxsh-card > .nxsh-body,
.nxsh-card > .nxk-in{ display:flex; flex-direction:column; flex:1 1 auto; min-width:0; }

/* Der Weg nach draussen und die Herkunftsmarke sind das Ende der Karte. */
.nxsh-card .nxsh-cta,
.nxsh-card .nxsh-weg,
.nxsh-card .nxsh-go,
.nxsh-card a[class*="cta"]{ margin-top:auto; }
.nxsh-card .nx-herkunft{ margin-top:8px; align-self:flex-start; }

/* Drei Zeilen Titel sprengen die Reihe · zwei tragen, was gemeint ist. */
.nxsh-card .nxsh-t,
.nxsh-card .nxsh-titel{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}


/* ==================================================================
  7 · LIVE IST EIN ZUSTAND, KEIN LEUCHTKASTEN

  Im Bild gesehen: die "Live now"-Marke im Widget-Kopf war ein
  vollflaechiges Pink (rgb 255,77,109) ueber 147 x 23 Punkte · der einzige
  grelle Fleck in einer Spalte, die wir heute ruhig gemacht haben.

  Die Farbe bleibt, weil sie etwas sagt. Sie zieht nur um: vom Grund in
  den Punkt, genau wie in Fassung C. Derselbe Gedanke, dieselbe Form wie
  die Herkunftsmarke.
  ================================================================== */
/* KORRIGIERT, nachmittags · gefunden im visuellen Durchgang.
  Hier stand ".wg-h > b" und ".wg-h b[style]". Jeder Widget-Titel IST ein
  <b> in .wg-h · damit bekamen ALLE NEUN einen roten Rahmen und einen
  roten Punkt: "Around you", "Price drops", "Jump Back In", "On Your
  Wishlist" und die übrigen. Eine Regel, die einen Leuchtkasten zaehmen
  sollte, hat neun neue gebaut.

  Ich habe das nicht gesehen, weil ich nur gemessen habe, OB die
  Live-Marke gedaempft ist · nicht, was sonst noch getroffen wird. Genau
  der Fehler, den der ganze Tag behandelt.

  Die Live-Marke traegt data-nx-zustand, die Titel nicht. Danach wird
  jetzt ausgewaehlt. */
.wg-h > b[data-nx-zustand],
.wg .c-live,
.nx-live-pille{
  background: rgba(255,77,109,.13);
  color: #ff9db0;
  border: 1px solid rgba(255,77,109,.34);
  border-radius: var(--nx-r-bedien);
  padding: 3px 9px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
/* Der Punkt traegt die volle Farbe · klein genug, um nicht zu schreien,
  deutlich genug, um "jetzt" zu sagen. */
.wg-h > b[data-nx-zustand]::before,
.wg .c-live::before{
  content: "";
  width: 6px; height: 6px; border-radius: 50%;
  background: #ff4d6d;
  flex: none;
}

/* Das LIVE-Schild lag ueber dem Abspielzeichen der Vorschau · es gehoert
  an die Ecke, nicht in die Mitte. */
.wg .banner .live,
.wg [class*="banner"] [class*="live"]{
  top: 10px; left: 10px;
  right: auto; bottom: auto;
  z-index: 3;
}


/* ------------------------------------------------------------------
   8 · KNOEPFE · Fuellung statt Linie, und ein Gewicht je Karte

   Gemessen im Strom: auf einer Karte standen bis zu vierzehn Knoepfe,
   fast alle mit einem 1px-Rahmen, und ZWEI davon gefuellt · der echte
   Weg nach draussen und daneben "Read more" in einem fast schwarzen
   Grund mit violettem Rahmen. Zwei gefuellte Knoepfe heben sich
   gegenseitig auf, und ein Rahmen ist eine Linie.

   Die Regel dahinter steht in der Gestaltungsgrundlage: Form entsteht
   durch die Flaeche, und je Karte traegt genau EIN Bedienelement das
   volle Gewicht. Alles andere ist eine leise Flaeche oder blanker Text.
   ------------------------------------------------------------------ */
/* UEBERALL, NICHT NUR IM STROM · gemessen trug auf Games, People und
   Events JEDER Knopf einer Karte denselben 1px-Rahmen. Ein Rahmen ist
   eine Linie, und Linien gibt es nirgends. */
.btn, .rbtn, .nx-tune-btn, .nx-mehr,
.nxsh-go, .nx-cf-btn, .nx-pfl-btn, .nxad-btn, .nx-gf-btn,
.nxk-btn, .gbtn, .pbtn, .evbtn,
/* Und jedes Bedienelement, egal wie es heisst · gemessen trugen auch
   "Browse all", "+ Create team" und "Channels you follow" einen Rahmen
   in der Hausfarbe. Ausgenommen bleibt, was eine Pille oder ein Feld
   ist: eine Pille hat ihre Form, und ein Eingabefeld braucht seine
   Kante, damit man sieht, wo man schreibt.
   Ausgenommen ist auch der Reiter einer Leiste (data-nx-leiste): sein
   Strich unter dem gewaehlten Eintrag ist kein Rahmen, sondern der
   Zustand. Er wurde hier mitgeloescht, und auf Gruppe und Team war der
   aktive Reiter nur noch an der weissen Schrift zu erkennen. Die Ausnahme
   steht in :where() und aendert das Gewicht der Regel nicht. */
button:not([class*="pill"]):not([class*="chip"]):not([class*="tag"]):not(:where([data-nx-leiste] *)),
a[class*="btn"], [class*="-btn"], [class*="cta"]{
  border: none !important;
}
/* KEIN VERLAUF ALS ERSATZ FUER EINE KANTE · aber ein Verlauf als
  FUELLUNG bleibt. Hier stand background-image:none mit Vorrang, und das
  loeschte auch die gefuellten Knoepfe: auf der Bibliothek stand danach
  dunkelbraune Schrift auf dunklem Grund, gemessen ein Kontrast von
  1,02 · unsichtbar. Gemeint war nur der Verlauf, der eine Linie
  nachahmt, und den gibt es an einem Knopf ohne Kante nicht mehr. */
input, select, textarea{ border-width: 1px !important; }
/* Ein leiser Knopf traegt eine schwache Flaeche statt einer Kante.
   Wer schon eine gesaettigte Fuellung hat (der eine Weg nach draussen),
   behaelt sie · deshalb nur dort, wo der Grund durchsichtig war. */
/* "pri" ist der Kurzname fuer primary · die Ausnahme traf ihn nicht, die
   Fuellung wurde geloescht und der Schein darunter blieb stehen: ein
   violetter Fleck unter einem grauen Knopf, der die rechte Fluchtlinie der
   Seite um 12 Punkte ueberlief. */
/* ZWEI AUSNAHMEN, die ihr Besitzer schon ausgesprochen hat:
   - der Wortknopf (.ghost, .text) ist in nextari.css "Text-Aktion ohne
     Kasten" · diese Regel malte ihm mit Vorrang trotzdem die Flaeche;
   - data-nx-knopfgrund="blank" am Knopf ODER an seiner Reihe heisst "der
     Bauer malt selbst". Gemessen stand die Aktionsleiste der Spielseite
     sonst als Kastenreihe da, obwohl ihre Seite Worte will.
   Beide Ausnahmen stehen in :where() und aendern das Gewicht der Regel
   nicht · sie gewinnt und verliert gegen dieselben Regeln wie vorher. */
.btn:not([class*="primary"]):not(.pri):not([style*="background"]):not(:where(.ghost,.text,[data-nx-knopfgrund="blank"],[data-nx-knopfgrund="blank"] *)),
.rbtn:not(:where([data-nx-knopfgrund="blank"],[data-nx-knopfgrund="blank"] *)),
.nx-tune-btn:not(:where([data-nx-knopfgrund="blank"],[data-nx-knopfgrund="blank"] *)),
.nx-cf-btn:not(:where([data-nx-knopfgrund="blank"],[data-nx-knopfgrund="blank"] *)){
  /* --nx-knopf-flaeche · eine Reihe, die ihre leisen Knoepfe blank will,
     sagt es mit diesem Token (die Reaktionen im Strom am Telefon,
     css/nextari-feed.css). Ohne Token bleibt es die schwache Flaeche. */
  background-color: var(--nx-knopf-flaeche, var(--nx-hebung)) !important;
}
@media (hover:hover){.btn:hover:not(:where(.ghost,.text,[data-nx-knopfgrund="blank"],[data-nx-knopfgrund="blank"] *)),.rbtn:hover:not(:where([data-nx-knopfgrund="blank"],[data-nx-knopfgrund="blank"] *)),.nx-tune-btn:hover:not(:where([data-nx-knopfgrund="blank"],[data-nx-knopfgrund="blank"] *)),.nx-cf-btn:hover:not(:where([data-nx-knopfgrund="blank"],[data-nx-knopfgrund="blank"] *)){
  background-color: var(--nx-hebung-2);
}}

/* Der eine Weg nach draussen behaelt sein Gewicht · er traegt die
   Plattformfarbe, und nur er. */
#feed .btn-primary,
#feed .nxq-twitch .nx-weg,
#feed .nxq-youtube .nx-weg,
#feed .nxq-discord .nx-weg,
#feed .nxq-steam .nx-weg,
#feed .nxq-netflix .nx-weg{ background-image: none; }

/* "Read more" ist der ZWEITE Weg auf derselben Karte · es fuehrt
   weiter, wo der erste hinausfuehrt. Es bleibt eine Zeile, kein Knopf. */
#feed .nx-mehr{
  background-color: transparent;
  color: var(--dim,#aaa9c0);
  padding: 6px 0;
  border-radius: 0;
  letter-spacing: 0;
}
@media (hover:hover){#feed .nx-mehr:hover{ background-color: transparent; color: #fff; }}

/* Die Trennlinie ueber der Reaktionszeile ist eine Linie · Abstand
   trennt hier genauso gut. */
/* Kante und Abstand der Reaktionszeile setzt css/nextari-feed.css (EIN KNOPFMASS, --nx-luecke-wort) · eine zweite Fassung mit Vorrang steht hier nicht mehr. */

/* Auch der Weg nach draussen traegt keinen Rahmen · er ist gefuellt,
   und ein Rahmen in derselben Farbe sagt dasselbe ein zweites Mal
   (gemessen bei "Open Steam": Fuellung und Rand beide #66c0f4). */
#feed a[class*="nx-weg"],
#feed .nx-quellknopf,
#feed [data-nx-quellknopf]{ border: none; }

/* ==================================================================
   KEINE HAARLINIEN · gemessen auf Home: neun Stellen, an denen eine
   Linie ueber die ganze Breite lief (Kopfleiste, zwei Hauptbereiche,
   das Abendband, "Show more", "You're all caught up", "Customize this
   page", der Fuss und seine Leiste). Einzeln faellt keine auf,
   zusammen sind sie das Raster, das die Seite unruhig macht.

   Getrennt wird durch ABSTAND und FLAECHE. Wo eine Zeile sich abheben
   soll, bekommt sie einen schwachen Grund statt zweier Striche.
   ================================================================== */
/* Die Waehler stehen mehrfach, weil die Seiten-CSS ihre Striche mit
   zwei und drei Stufen setzt (.shell > main > #nxFeedManage).
   Gleicher Vorrang entscheidet die Staerke, nicht die Reihenfolge. */
html body main, html body main.wrap, html body main.wrap.nx-dashhome,
html body .shell.shell > main, html body .shell.shell > aside{
  border-top:none; border-bottom:none;
}
html body .footer.footer, html body .fbar.fbar{ border-top:none; }
html body .nx-tonight.nx-tonight,
html body #nxMehrStrom#nxMehrStrom,
html body .nx-caughtup.nx-caughtup,
html body #nxFeedManage#nxFeedManage{
  border:none;
}
#nxMehrStrom, .nx-caughtup, #nxFeedManage{
  background-color:var(--nx-hebung);
}
@media (hover:hover){#nxMehrStrom:hover,#nxFeedManage:hover{
  background-color:var(--nx-hebung-2);
}}
/* Ein Platz, der auf ein Widget wartet, ist eine Flaeche, kein
   gestricheltes Kaestchen. */
.wg.add, #board .add{
  border:none !important; border-style:none !important;
  background-color:var(--nx-hebung) !important;
}
@media (hover:hover){.wg.add:hover,#board .add:hover{
  background-color:var(--nx-hebung-2); color:var(--nx-text);
}}

/* ------------------------------------------------------------------
   DIE LETZTEN LINIEN UEBER DIE GANZE BREITE.
   Gemessen auf Games, People, Events, Profil und Bibliothek: fuenfzehn
   Flaechen, die ihre Form aus einem Strich holen statt aus einem Grund.
   Wer schon einen Grund hat, verliert nur den Strich; wer keinen hat,
   bekommt einen schwachen. Trennstriche in Listen fallen ersatzlos weg ·
   dort trennt der Abstand.
   ------------------------------------------------------------------ */
html body .nxach-inner.nxach-inner,
html body .nxec-panel.nxec-panel,
html body .hybcard.hybcard,
html body .nx-pk-nav.nx-pk-nav,
html body .invhead.invhead,
html body .invrow.invrow,
html body .bhd.bhd,
html body .nx-lk-wahl.nx-lk-wahl{
  border:none;
}
/* DIE BEWERTUNGSLEISTE (.survey) hat hier ihren einen Besitzer fuer Kante
   und Abstand · vorher trugen fuenfzehn Seiten-CSS eine eigene Kopie mit
   24, 52 oder 80 Punkten oben (Games mit 32 Polster), und der sichtbare
   Abstand zum Block darueber lag zwischen 24 und 97. Breite und Innenrand
   wie jede Reihe, 20 bis zum Fuss. Den Abstand nach OBEN setzt der
   Reihentakt (nxm-rhythmus.js): er misst wie zwischen zwei Reihen die
   sichtbare Kante darueber und legt die Leiste auf dasselbe Mass. */
html body .survey.survey{
  max-width:var(--nx-breite);margin:0 auto 20px;padding:0 var(--nx-rand);
  position:relative;z-index:1;box-sizing:border-box;
}
/* Die Karte darin: ebenfalls nur hier (vorher je Seite kopiert, mit 16 oder
   16/24 Polster und gestricheltem Rand auf drei Seiten). */
html body .surveycard{
  border-radius:var(--nx-r-karte);padding:16px;
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
}
.surveycard .q{font-family:var(--nx-f-text);font-weight:700;font-size:var(--nx-typo-kartenkopf);color:#fff}
.surveycard .muted{color:var(--dim);font-size:var(--nx-typo-text)}
.surveystars{display:flex;gap:8px;margin-left:auto}
html body .surveycard.surveycard{
  background-color:var(--nx-hebung);
}
html body .dbar.dbar,
html body .libbar.libbar,
html body .billboard.billboard,
html body .ptband.ptband{
  border:none;
  background-color:var(--nx-hebung);
}
/* DIE BLOECKE DES PROFILS SIND DECKEND. Sie liegen auf dem Grund, den der
   Mensch fuer sein Profil waehlt (violett, gold, ein Bild). Eine
   durchscheinende Stufe naehme diese Farbe an: gemessen standen die Bloecke
   danach violett statt grau, und die leeren Top-8-Plaetze leuchteten
   heller als der Inhalt daneben. Deckend bleibt die Farbe beim Grund, und
   die Moebel sind grau · so, wie das Profil vor dem Umbau der Grautoene
   stand, als es die gelungenste Seite des Hauses war. */
html body .block.block{
  border:none !important;
  background-color:var(--nx-flaeche) !important;
}
/* Ein Bild traegt seinen eigenen Grund · eine Flaeche mit Artwork
   bekommt keinen zweiten darueber. */
html body .billboard.nx-has-art,
html body .block[style*="url("],
html body .ptband[style*="url("]{
  background-color:transparent;
}

/* ------------------------------------------------------------------
   UND DIE LETZTEN. Gemessen ueber Profil, Games und Events: sechzehn
   weitere Klassen mit einer sichtbaren Kante an einer breiten Flaeche.
   Wer einen Grund hat, verliert nur die Kante; wer keinen hat, bekommt
   einen schwachen. Zwei Klassen sind Zeilen in einer Tabelle und
   Ueberschriften eines Blocks · dort trennt der Abstand.
   ------------------------------------------------------------------ */
html body .gr.gr,
html body .nx-sbz.nx-sbz,
html body #bandRecord#bandRecord,
html body .wissen.wissen,
html body .tablewrap.tablewrap,
html body .nx-sbh.nx-sbh,
html body .nx-kzh.nx-kzh,
html body .fuss.fuss,
html body .nx-tblfuss.nx-tblfuss,
html body .drow.drow,
html body .z.z{
  border:none !important;
}
html body .nx-sbk.nx-sbk,
html body .nx-kzk.nx-kzk,
html body .leer.leer{
  border:none !important;
  background-color:var(--nx-hebung);
}

/* ------------------------------------------------------------------
   GEMESSENE KANTEN · von mess/linien-weg.py geschrieben, nicht von Hand.
   Der Browser sagt, welche breiten Flaechen noch eine sichtbare Kante
   zeigen. Wer einen Grund hat, verliert nur die Kante; wer keinen hat,
   bekommt einen schwachen. Felder, Pillen und Marken bleiben aussen vor.
   Neu messen: python3 mess/linien-weg.py --schreiben
   ------------------------------------------------------------------ */
html body #bandWeek#bandWeek,
html body #nxEv3S#nxEv3S,
html body #nxFrageAus#nxFrageAus,
html body #nxKTuer#nxKTuer,
html body #nxKantWart#nxKantWart,
html body #nxPub#nxPub,
html body #nxRegCard#nxRegCard,
html body #nxTagMap#nxTagMap,
html body .acard.acard,
html body .act.act,
html body .actrow.actrow,
html body .b.b,
html body .card-h.card-h,
html body .composer.composer,
html body .conv.conv,
html body .convcol.convcol,
html body .convsearch.convsearch,
html body .convseg.convseg,
html body .crerow.crerow,
html body .csec.csec,
html body .drawer.drawer,
html body .drawer-f.drawer-f,
html body .drawer-h.drawer-h,
html body .dsec.dsec,
html body .eh-r.eh-r,
html body .eh-t.eh-t,
html body .freecanvas.freecanvas,
html body .ftile.ftile,
html body .gch-compose.gch-compose,
html body .gpost.gpost,
html body .grid.grid,
html body .grouprow.grouprow,
html body .grp-chat.grp-chat,
html body .grp-compose.grp-compose,
html body .grp-hero.grp-hero,
html body .grp-tabs.grp-tabs,
html body .keyline.keyline,
html body .msg.msg,
html body .msgshell.msgshell,
html body .nx-ab-mit.nx-ab-mit,
html body .nx-abo-soon.nx-abo-soon,
html body .nx-bl-fuss.nx-bl-fuss,
html body .nx-bl-k.nx-bl-k,
html body .nx-bw.nx-bw,
html body .nx-cal.nx-cal,
html body .nx-caps.nx-caps,
html body .nx-cck.nx-cck,
html body .nx-cf-foot.nx-cf-foot,
html body .nx-charea-inner.nx-charea-inner,
html body .nx-chx-row.nx-chx-row,
html body .nx-ci-fuss.nx-ci-fuss,
html body .nx-ci-k.nx-ci-k,
html body .nx-ci-s.nx-ci-s,
html body .nx-ck-note.nx-ck-note,
html body .nx-conbar.nx-conbar,
html body .nx-cpcomm.nx-cpcomm,
html body .nx-crs.nx-crs,
html body .nx-csp-item.nx-csp-item,
html body .nx-do-c.nx-do-c,
html body .nx-door.nx-door,
html body .nx-door-warte.nx-door-warte,
html body .nx-e3r.nx-e3r,
html body .nx-ent-h.nx-ent-h,
html body .nx-ent-r.nx-ent-r,
html body .nx-erf-selten.nx-erf-selten,
html body .nx-erst-s.nx-erst-s,
html body .nx-erst-z.nx-erst-z,
html body .nx-ev3-art.nx-ev3-art,
html body .nx-ev3-more.nx-ev3-more,
html body .nx-fb-dm.nx-fb-dm,
html body .nx-fk-r.nx-fk-r,
html body .nx-fm.nx-fm,
html body .nx-fm-row.nx-fm-row,
html body .nx-fr-c.nx-fr-c,
html body .nx-fr-h.nx-fr-h,
html body .nx-gb-f.nx-gb-f,
html body .nx-gen-diff.nx-gen-diff,
html body .nx-gen-in.nx-gen-in,
html body .nx-hact-leiste.nx-hact-leiste,
html body .nx-laeden.nx-laeden,
html body .nx-lk.nx-lk,
html body .nx-lk-url.nx-lk-url,
html body .nx-night.nx-night,
html body .nx-night-fakten.nx-night-fakten,
html body .nx-noti.nx-noti,
html body .nx-noti-foot.nx-noti-foot,
html body .nx-oc-karte.nx-oc-karte,
html body .nx-off-foot.nx-off-foot,
html body .nx-ops-c.nx-ops-c,
html body .nx-pd.nx-pd,
html body .nx-pd-row.nx-pd-row,
html body .nx-ped-sumrow.nx-ped-sumrow,
html body .nx-pl-r.nx-pl-r,
html body .nx-pmedia-c.nx-pmedia-c,
html body .nx-ppl.nx-ppl,
html body .nx-pz-feld.nx-pz-feld,
html body .nx-pz-panel.nx-pz-panel,
html body .nx-pz-plot.nx-pz-plot,
html body .nx-qst-r.nx-qst-r,
html body .nx-reason.nx-reason,
html body .nx-reiter.nx-reiter,
html body .nx-ritual.nx-ritual,
html body .nx-rm-card.nx-rm-card,
html body .nx-rm-row.nx-rm-row,
html body .nx-rn-card.nx-rn-card,
html body .nx-rw-teil.nx-rw-teil,
html body .nx-sb-item.nx-sb-item,
html body .nx-sc-c.nx-sc-c,
html body .nx-sc-p.nx-sc-p,
html body .nx-set-card.nx-set-card,
html body .nx-set-note.nx-set-note,
html body .nx-set-row.nx-set-row,
html body .nx-sev-kanon.nx-sev-kanon,
html body .nx-slive.nx-slive,
html body .nx-slots-wrap.nx-slots-wrap,
html body .nx-soc-z.nx-soc-z,
html body .nx-soon-strip.nx-soon-strip,
html body .nx-soon-zeile.nx-soon-zeile,
html body .nx-sq-linie.nx-sq-linie,
html body .nx-sq-r.nx-sq-r,
html body .nx-ss-foot.nx-ss-foot,
html body .nx-stev.nx-stev,
html body .nx-streamfield.nx-streamfield,
html body .nx-ur-schreib.nx-ur-schreib,
html body .nx-veil.nx-veil,
html body .nx-vr-leer.nx-vr-leer,
html body .nx-vw-f.nx-vw-f,
html body .nx-woche-k.nx-woche-k,
html body .nx-wz-item.nx-wz-item,
html body .nx-ytclip.nx-ytclip,
html body .nx-zf-fuss.nx-zf-fuss,
html body .nxch-auto.nxch-auto,
html body .nxfn.nxfn,
html body .nxk-leer.nxk-leer,
html body .pr.pr,
html body .req.req,
html body .safetybar.safetybar,
html body .sptrack.sptrack,
html body .spvia.spvia,
html body .srow.srow,
html body .stat.stat,
html body .surveycard.surveycard,
html body .t.t,
html body .tabs.tabs,
html body .thhead.thhead,
html body .tm-offen.tm-offen,
html body .tm-tabs.tm-tabs,
html body .trophy.trophy,
html body .w2psub.w2psub{
  border: none !important;
}
html body #nxLgEdit#nxLgEdit,
html body .bcard.bcard,
html body .clive.clive,
html body .edcard.edcard,
html body .hero.hero,
html body .mblk.mblk,
html body .newscard.newscard,
html body .nx-chan-row.nx-chan-row,
html body .nx-ci-tuer.nx-ci-tuer,
html body .nx-clip.nx-clip,
html body .nx-ev3-ad.nx-ev3-ad,
html body .nx-ev3-raf.nx-ev3-raf,
html body .nx-gh-m.nx-gh-m,
html body .nx-hostcard.nx-hostcard,
html body .nx-hw-aha.nx-hw-aha,
html body .nx-lk-leer.nx-lk-leer,
html body .nx-night-code.nx-night-code,
html body .nx-night-remind.nx-night-remind,
html body .nx-ped.nx-ped,
html body .nx-rec-z.nx-rec-z,
html body .nx-sr.nx-sr,
html body .nx-supp-box.nx-supp-box,
html body .nx-supp-c.nx-supp-c,
html body .nx-surf.nx-surf,
html body .nx-ur-leer.nx-ur-leer,
html body .tm-grund.tm-grund,
html body .tm-hero.tm-hero,
html body .tm-tile.tm-tile,
html body .uploadbox.uploadbox{
  border: none !important;
  /* --nx-tafelgrund · eine Seite, die eine dieser Flaechen am Telefon
     ohne Grund will, sagt es mit diesem Token (die Kaesten der
     Spielseite, css/nextari-game-detail.css). Ohne Token gilt die
     schwache Flaeche. */
  background-color: var(--nx-tafelgrund, var(--nx-hebung)) !important;
}


/* ==========================================================================
  EIN EINZIGES KIND FUELLT SEIN RASTER

  Gemessen an fuenf Stellen: die Karte "Smart Scheduling" stand auf der
  linken Haelfte eines 1115 Punkte breiten Rasters, rechts 549 mal 260
  Punkte Nichts. Dasselbe neben "Recent activity" in der Console (458 mal
  421), im Kasten Widgets auf dem Profil (408 mal 183), in der Reihe
  "Happening in Berlin" (1022 Punkte) und bei den Wave-Karten im Studio.

  Ein Raster mit zwei Spalten und einem Kind ist kein Raster · das Kind
  nimmt die Breite, die da ist. Das ist keine neue Gestaltung, sondern
  dieselbe Zeile, die css/nextari-studio-content.css schon fuehrt.
  ========================================================================== */
html body .nx-fm-grid > :only-child,
html body .two-col > :only-child,
html body .nx-door-wellen > :only-child,
html body [class*="-grid"] > :only-child:not(img):not(svg){
  grid-column:1 / -1}


/* ==========================================================================
  DIE SEITENLEISTE TRENNT MIT FLAECHE, NICHT MIT EINEM STRICH

  Zwischen Leiste und Inhalt lief eine helle Kante ueber die volle Hoehe.
  Gemessen bei y=700: links rgb(15,15,23), die Kante rgb(39,39,46), rechts
  rgb(13,13,17) · die beiden Flaechen unterscheiden sich um zwei Stufen,
  sichtbar war allein der Strich. Er faellt weg, und die Leiste bekommt
  ihre eigene, leise Flaeche, damit sie nicht im Seitengrund verschwindet.
  Steht auf allen Werkzeugseiten.
  ========================================================================== */
html body aside.side,
html body .fam-studio > aside,html body .fam-agency > aside,
html body .fam-console > aside,html body .fam-publisher > aside{
  border-right:none!important;background:var(--nx-hebung)}


/* ==========================================================================
  EINE WERBEFLAECHE JE SEITE · NIE ZWEI

  Die Hausregel steht in der Gestaltungsgrundlage und auf der Karte. Auf
  der Bibliothek standen zwei gleiche Kaesten mit demselben Satz und
  demselben Knopf, keine 900 Punkte auseinander. Sichtbar bleibt der
  erste; die weiteren bleiben im Bestand und im Quelltext, sie werden nur
  nicht gezeichnet.
  ========================================================================== */
html body .adwrap ~ .adwrap{display:none}



/* ---------------- EINE LEERE FLAECHE IST EINE FLAECHE ----------------
  Bis 05.10. trug .nxk-leer hier eine gestrichelte Kante (outline). Die
  Gestaltungsgrundlage Fassung 2 (DESIGN-REGELN.png, Kartenform nxk-leer)
  sagt: graue Flaeche, keine Linie, kein Wort DEMO. Die Kante ist weg,
  die Flaeche (nxm-leerreihe.js) bleibt. Die Variable bleibt fuer
  fremde Leser stehen, gezeichnet wird mit ihr nichts mehr. */
:root { --nx-leer-kante: transparent; }

/* ---------------- ABGEWAEHLT BLEIBT ABGEWAEHLT ----------------
  Gemessen beim ersten Besuch auf Home: die Monatskachel trug durchgehend
  die Marke nx-wg-aus, ihre Hoehe sprang trotzdem 0 - 303 - 0 - 319 - 0.
  Versteckt wurde sie mit einem Inline-display, und mehrere Module setzen
  beim Neuzeichnen die Inline-Stile aller Kacheln zurueck. Zwischen dem
  Zuruecksetzen und dem naechsten Ausblenden stand sie da · 319 Punkte
  hoch, und alles darunter sprang mit. Das war der sichtbarste Teil des
  Zitterns beim Aufschlagen der Seite.

  Eine Klasse kann das allein. Sie ueberlebt jedes Zuruecksetzen, und wer
  ausblendet, muss nichts mehr nachhalten. */
.wg.nx-wg-aus { display: none; }

/* ---------------- DER AUSGANG NIMMT KEINEN PLATZ WEG ----------------
  Gemessen beim ersten Besuch auf Home: "See all" wird bei 1436 ms an den
  Kopf der Kachel gehaengt. Der Kopf ist eine Flexzeile mit Umbruch, der
  Ausgang ist 66 Punkte breit und passt nicht daneben · also bricht er um,
  und die Kachel wird 48 Punkte hoeher. Alles darunter springt mit. Das
  ist das Ein- und Ausblenden, das man auf "Your evenings" sieht.

  Zwei Regeln loesen es zusammen:
  1. Der Kopf bricht nicht mehr um.
  2. Der Ausgang liegt darueber statt darin, und der Kopf haelt rechts
     den Platz dafuer frei · ob der Ausgang kommt oder nicht.

  Damit kostet ein spaeter Ausgang null Punkte. Der Titel wird NICHT
  beschnitten: er behaelt den ganzen Rest der Zeile. */
.wg .wg-h {
  position: relative;
}
/* Ein Widget-Ausgang ist nur ein Pfeil · Reserviert wird die Breite
  dieses kleinen Griffs, nicht mehr die des ausgeschriebenen Textes. */
.wg .wg-h:has(> .nx-ausgang, > .seeall) {
  padding-right: 42px;
}
/* Auf der Titelzeile, nicht in der Mitte des Kopfes · der Kopf hat jetzt
  eine zweite Zeile (die Notiz), und 50 Prozent laegen dazwischen. */
.wg .wg-h > .nx-ausgang,
.wg .wg-h > .seeall {
  position: absolute;
  right: 0;
  top: -2px;
  transform: none;
  margin: 0;
  flex: none;
  white-space: nowrap;
}
.wg .wg-h > .nx-ausgang,
.wg .wg-h > .seeall {
  box-sizing: border-box;
  width: 32px;
  min-width: 32px;
  height: 32px;
  min-height: 32px;
  padding: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--dim);
  font-size: 0;
  gap: 0;
  justify-content: center;
}
.wg .wg-h > .nx-ausgang::after,
.wg .wg-h > .seeall::after {
  content: "→";
  font: 700 18px/1 var(--nx-f-titel);
  color: var(--dim);
}
@media (hover:hover){.wg .wg-h > .nx-ausgang:hover,.wg .wg-h > .seeall:hover{
  background: var(--nx-hebung);
  color: var(--nx-text);
}}
@media (max-width: 767px) {
  .wg .wg-h:has(> .nx-ausgang, > .seeall) {
    padding-right: 52px;
  }
  .wg .wg-h > .nx-ausgang,
  .wg .wg-h > .seeall {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
  }
}
