/* * Screen-übergreifende Bausteine: Eingabefelder, Hinweisleiste, * Ersteinrichtung, Leerzustände, Ladeanzeige. */ /* -------------------------------------------------------- Eingabefelder */ .dm-eingabe, .dm-auswahl { font: inherit; font-weight: 300; font-size: 16px; color: var(--fg); background: none; border: 0; text-align: right; outline: none; min-width: 120px; max-width: 60%; padding: 0; } .dm-eingabe::placeholder { color: var(--fg3); } /* Die 16px oben sind nicht Geschmack, sondern Pflicht: unterhalb davon zoomt iOS beim Antippen eines Eingabefelds die ganze Seite heran, danach lässt sich die Ansicht verschieben - in einer nativen Hülle wirkt das wie ein Fehler (Nutzerbefund 2026-08-29, Willkommensbildschirm). Sie kamen bisher nie an: @audi-dash/ui setzt ".ads-feld input" auf 13.5px, und dieser Selektor ist spezifischer (Klasse + Typ) als das bloße ".dm-eingabe" - er gewinnt also, egal in welcher Reihenfolge geladen wird. Deshalb hier dieselbe Angabe noch einmal, spezifisch genug um zu greifen. @audi-dash/ui bleibt unangetastet, wie schon beim type=date-Fall unten. */ .ads-feld input.dm-eingabe, .ads-feld select.dm-auswahl { font-size: 16px; } /* type="date": ohne appearance-Reset behält Safari/WKWebView (die iOS-Hülle dieser App) sein eigenes, stark abgerundetes natives Eingabe-Chrome statt der Box-Optik aus @audi-dash/ui's Feld - beim Nutzer sichtbar als "gestreckter Kreis statt Box" (Reifen.tsx, Wechseltermin). @audi-dash/ui selbst bleibt unangetastet (kein appearance-Reset dort, andere Felder zeigen den Fehler nicht) - der Reset sitzt hier, spezifisch für type=date, höhere Selektor-Spezifität als das geteilte ".ads-feld input" schlägt dessen feste min-width:132px, die hier breiter ist als "27.08.2026" braucht. */ input[type="date"].dm-eingabe { -webkit-appearance: none; appearance: none; /* Kein width:fit-content mehr. Das stammte aus der Zeit, als .ads-feld input eine feste min-width von 132px hatte - die ist beim Paritaetsabgleich auf min-width:0 umgestellt worden, seither zwang fit-content das Feld in eine Breite, die je Datum und Stelle anders ausfiel. Jetzt bemisst es sich wie jedes andere Eingabefeld (flex:0 1 auto aus @audi-dash/ui), genau wie .feld input im Panel. */ text-align: right; } /* Eine Zeile aus einer bearbeitbaren Liste (z. B. Selbstbeteiligung im Vertrag) - zwei Eingaben plus Löschen-Knopf in einer Reihe, deckungsgleich mit .feld/.zeile-loeschen im Panel (audi-dashboard.css). */ .dm-selbst-zeile { display: inline-flex; align-items: center; gap: var(--sp-2); } .dm-zeile-loeschen { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border: none; background: none; color: var(--fg3); font-size: 18px; line-height: 1; padding: 0; cursor: pointer; flex: 0 0 auto; } .dm-zeile-loeschen::before { content: ""; position: absolute; inset: -11px; } .dm-zeile-loeschen:active { color: var(--bad); } .dm-auswahl { text-align: right; appearance: none; cursor: pointer; } .dm-auswahl option { color: var(--fg); background: var(--tile); } /* `.notiz` im Panel: --ios-fill statt --tile-2, 12px Radius, 14px Abstand nach oben, Zeilenhöhe 1,55 und normaler Schnitt. */ .dm-notiz { font: inherit; font-size: 16px; color: var(--fg); background: var(--ios-fill); border: 0; border-radius: 12px; padding: 10px 12px; margin-top: 14px; width: 100%; min-height: 88px; line-height: 1.55; resize: vertical; outline: none; } /* --------------------------------------------------------- Hinweisleiste */ .dm-hinweis { display: flex; align-items: center; gap: var(--sp-2); padding: 9px var(--sp-5); padding-top: calc(env(safe-area-inset-top, 0px) + 9px); font-size: 12.5px; font-weight: 300; color: var(--fg); background: var(--tile-2); border-bottom: 1px solid var(--line); } .dm-hinweis--offline { color: var(--warn); } .dm-hinweis svg { flex: none; } /* -------------------------------------------------------- Ersteinrichtung */ .dm-einrichtung { flex: 1; display: flex; align-items: center; justify-content: center; padding: 32px; overflow-y: auto; } .dm-einrichtung__karte { width: 100%; max-width: 420px; } .dm-einrichtung__titel { font-size: 28px; font-weight: 300; letter-spacing: -0.02em; margin: 10px 0 12px; } .dm-einrichtung__text { font-size: 14px; font-weight: 300; line-height: 1.55; color: var(--fg2); margin: 0 0 22px; text-wrap: pretty; } .dm-einrichtung__fehler { font-size: 13px; font-weight: 300; line-height: 1.5; color: var(--bad); margin: 14px 0 0; } .dm-einrichtung__knoepfe { display: flex; flex-direction: column; gap: 10px; margin-top: var(--sp-4); } .dm-einrichtung__hinweis { font-size: 12.5px; font-weight: 300; line-height: 1.5; color: var(--fg3); margin: 18px 0 0; } /* ------------------------------------------------- Leer- und Ladezustände */ /* `.leer` im Panel: linksbündig und knapp gesetzt (gap 8px, padding 4px 0 2px), Titel 16px/400 in --fg, Text 13,5px in --fg2. Hier war der Leerzustand zentriert, mit 44px Polster und dünnerem Schnitt - deutlich mehr Fläche als im Panel. */ .dm-leer { display: flex; flex-direction: column; gap: var(--sp-2); padding: 4px 0 2px; color: var(--fg2); } .dm-leer__titel { font-size: 16px; font-weight: 400; color: var(--fg); } .dm-leer__text { font-size: 13px; line-height: 1.55; margin: 0; text-wrap: pretty; } .dm-laden { display: flex; align-items: center; justify-content: center; gap: var(--sp-2); padding: 44px 24px; color: var(--fg2); font-size: 13px; font-weight: 300; } /* ------------------------------------------------------------ Übersicht */ /* Deckungsgleich mit .szene.bleed im Panel: randlos, keine Kartenfläche - Fahrzeugbild und Name/Kennzeichen sitzen direkt auf dem Seitenhintergrund, nicht in einer grauen Karte. War hier bis 2026-08-30 fälschlich als Kachel mit Hintergrund gebaut (Parität-Audit). */ /* Randloses Fahrzeugbild wie im Panel (`.szene.bleed{margin:-10px -20px 0; padding:0 0 10px}` plus `.szene.bleed .carbox{padding:0 8px}` und der Verlauf nach unten in die Fläche). Hier war das Bild bisher auf die Inhaltsbreite eingerückt und in eine abgerundete Kachel geschnitten - im Panel läuft es über die volle Bildschirmbreite und blendet nach unten aus. */ .dm-szene { position: relative; margin: -10px calc(-1 * var(--seitenrand)) 0; padding: 0 8px 10px; } /* Die drei oberen Kacheln der Übersicht tragen im Panel eigene Abstände (20/22/22 statt der 14 aller anderen). */ .dm-kopfblock { margin-bottom: 20px; } .dm-tankkachel, .dm-servicekachel { margin-bottom: 22px; } .dm-szene::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; /* 26/96 statt 42/78: der Verlauf soll die harte Bildkante ausblenden, nicht das Fahrzeug. Mit 42% Hoehe und Vollton ab 78% war das untere Drittel des Fotos praktisch einfarbig - Raeder und Schweller lagen darunter (gemeldet vom Eigentuemer, 2026-08-31). */ height: 26%; background: linear-gradient(to bottom, transparent, var(--canvas) 96%); pointer-events: none; z-index: 1; } /* Bodenschatten unter dem Fahrzeug (`.szene.strasse::after` / `.szene.winter::after` im Panel, abschaltbar über den Schalter „Boden" in den Einstellungen). */ .dm-szene--strasse::after, .dm-szene--winter::after { content: ""; position: absolute; left: 8%; right: 8%; bottom: 6px; height: 26px; border-radius: 50%; background: radial-gradient(ellipse at center, var(--shade), transparent 70%); pointer-events: none; } .dm-szene--winter::after { background: radial-gradient(ellipse at center, rgba(150, 190, 255, .16), transparent 70%); } /* Panel: .carbox ~120px, .szene ~130px hoch - ein schmales, breites Band, nicht das 4:3-Seitenverhältnis, das ImagePlaceholder sonst für Galerien verwendet (dort korrekt, hier war es das nie - "carfix klein" im Panel ist 16:8). Scoped auf die Übersicht-Szene, damit andere ImagePlaceholder- Stellen (Mein Audi, Reifen, ...) ihre eigene, richtige Größe behalten. */ .dm-szene .ads-bildbox { aspect-ratio: 16 / 8; } /* Ohne Foto bleibt die Fläche flach und läuft nicht randlos: sonst stünden 172px leerer Platzhalter vor der Reichweite, der wichtigsten Zahl der Seite (`.bildbox.bild-fehlt.carfix.klein{height:120px}` und `.szene.bleed:has(.bild-fehlt)` im Panel). */ /* Der Platzhalter belegt denselben Kasten wie ein echtes Foto (16:8). Er war zwischenzeitlich auf 120 und dann 72px gestaucht, um die Reichweite hoeher zu ruecken - auf Ansage des Besitzers steht er wieder in voller Groesse, weil ein Streifen nicht erkennen laesst, was dort hingehoert. */ .dm-szene .ads-bildbox:has(.ads-platzhalter) { aspect-ratio: 16 / 8; height: auto; } .dm-galerie-wechsel .ads-bildbox:has(.ads-platzhalter) { aspect-ratio: auto; height: 132px; } .dm-szene:has(.ads-platzhalter) { margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; } .dm-szene:has(.ads-platzhalter)::before { display: none; } .dm-szene .ads-bild, .dm-szene img { width: 100%; display: block; } /* Kein linkes/rechtes Innenpolster: das Panel stellt Kennzeichen/Marke in eine randlose "tile flat" (padding:0) - links/rechts eingerückt zu haben ließ diesen Text nicht mit "Reichweite" & Co. auf einer Kante stehen (Nutzerbericht "nicht linksbündig zum Rest der Seite", live gemessen: 38px hier gegen 22px bei "Reichweite" - im Panel beide bei 16px). Nur oben/unten bleibt Abstand (zum Bild bzw. zur nächsten Kachel). */ /* Ohne eigenes Polster: im Panel sitzen Typenschild, Kennzeichen und Statuszeile direkt in einer randlosen `.tile.flat` (padding 0), das Kennzeichen mit 10px Abstand zum Schild. Die 16/22px hier machten den Block 36px höher als im Panel (dort 89px, hier gemessen 125px). */ .dm-szene__text > .ads-eyebrow { margin-top: 10px; } /* Übersicht: "Nächster Service" als tippbare Kennzahl innerhalb der Kachel, darunter der Kilometerstand als ruhige Wertezeile. Nur der obere Teil ist ein Knopf, damit "differentiate controls from content" (Apple HIG) gilt - deckungsgleich mit .serviceblock/.servicezeile im Panel (audi-dashboard.css). */ .dm-serviceblock { position: relative; display: block; width: 100%; border: 0; background: none; padding: 0; margin: 0; font: inherit; text-align: left; color: inherit; } /* Nur wenn es wirklich ein Knopf ist (ein Termin vorhanden, siehe Uebersicht.tsx) - der "kein Eintrag"-Zustand ist ein reines
, ohne Zeigehand/Press-Feedback, deckungsgleich mit der nicht-klickbaren .tile-Variante im Panel. */ button.dm-serviceblock { cursor: pointer; } button.dm-serviceblock:active { opacity: 0.55; } .dm-serviceblock__chevron { position: absolute; top: 3px; right: 0; width: 6px; height: 10px; color: var(--fg3); fill: none; stroke: currentColor; stroke-width: 1.4; } /* Serviceart-Icon links der Kennzahl statt des Wortes "bis zum/zur ..." - deckungsgleich mit .fig-zeile im Panel (audi-dashboard.css). */ /* margin-top deckungsgleich mit .fig-zeile im Panel - fehlte hier, "Nächster Service:" und die Kennzahl standen ohne Abstand aufeinander (Parität- Audit 2026-08-30). Der zweite Selektor deckt den Fall ohne Serviceart- Icon ab (Hauptuntersuchung), wo das Panel dasselbe margin-top direkt auf .fig setzt statt auf eine Wrapper-Zeile. */ .dm-servicefig { display: flex; align-items: center; gap: 8px; margin-top: 8px; } .dm-serviceblock > .ads-fig { margin-top: 8px; } .dm-servicefig svg { color: var(--fg2); flex: none; } /* `.zahnrad` im Panel: rechts oben in der Kachel, 44px Trefferfläche, 17px Symbol. */ .dm-kachel--zahnrad { position: relative; } .dm-kachel--zahnrad > .ads-eyebrow:first-child { padding-right: 44px; } .dm-zahnrad { position: absolute; top: 11px; right: 11px; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: none; color: var(--fg3); cursor: pointer; padding: 0; } .dm-zahnrad:hover, .dm-zahnrad:active { background: var(--tile-2); color: var(--fg); } .dm-zahnrad:active { transform: scale(.92); } /* Rufnummern der Notruf-Kachel: sehen aus wie Aktionsknöpfe, sind aber Links (`` im Panel). */ .dm-waehlknopf { display: block; text-decoration: none; text-align: center; } /* `.tile` der Kfz-Steuer steht im Panel mit 26px Abstand nach der Vertragskachel. */ .dm-steuerkachel { margin-top: 26px; } .dm-diagramm__fuss { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; } /* Der Zoom-Knopf ist im Panel eine schmale Variante von `.aktion` (`padding:8px 16px;font-size:11px;width:auto;margin-top:0`). */ .dm-zoomzurueck { width: auto; min-height: 0; margin-top: 0; padding: 8px 16px; font-size: 11px; } .dm-diagramm__tooltip { margin-top: var(--sp-3); font-size: 13px; color: var(--fg2); } /* Ruhespannungs-Skala auf der Batterieseite (Panel: .bv-skala-kopf plus der Farbverlauf rot → gelb → grün und die drei Eckwerte darunter). */ .dm-skalakopf { display: flex; align-items: center; gap: 6px; margin-top: 16px; font-size: 13px; letter-spacing: .01em; color: var(--fg3); } .dm-skalabalken { margin-top: 8px; height: 8px; border-radius: var(--r-pill); background: linear-gradient(to right, var(--bad), var(--warn), var(--ok)); } .dm-skalamarken { display: flex; justify-content: space-between; margin-top: 6px; } .dm-skalamarken small { font-size: 12.5px; color: var(--fg3); } .dm-bewertung { display: inline-flex; align-items: center; gap: 8px; justify-content: flex-end; } .dm-bewertungstext { display: block; margin-top: 10px; color: var(--fg2); font-size: 13px; line-height: 1.6; } /* Antipp-Menü am Fahrzeugfoto (`.bildmenu` im Panel, iOS-Auflage: kein Rahmen, durchscheinend mit Weichzeichner). */ .dm-bildklick { position: relative; } .dm-bildklick__flaeche { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: pointer; } .dm-bildmenu-fang { position: fixed; inset: 0; z-index: 1000; } .dm-bildmenu { position: absolute; z-index: 1001; bottom: var(--sp-5); left: 50%; transform: translateX(-50%); min-width: 160px; display: flex; flex-direction: column; border: 0; border-radius: 14px; padding: var(--sp-2); background: rgba(40, 44, 52, .92); -webkit-backdrop-filter: saturate(180%) blur(22px); backdrop-filter: saturate(180%) blur(22px); box-shadow: 0 12px 40px rgba(0, 0, 0, .5); } [data-theme="tag"] .dm-bildmenu { background: rgba(250, 250, 252, .92); } .dm-bildmenu--rad { bottom: auto; top: 90px; left: 22px; transform: none; } .dm-bildmenu button { display: block; width: 100%; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--line); color: var(--fg); font-family: inherit; font-size: 16px; padding: 13px 16px; min-height: 46px; border-radius: 10px; cursor: pointer; } .dm-bildmenu button:last-child { border-bottom: 0; } .dm-bildmenu button:active { background: var(--shade); } .dm-bildmenu__loeschen { color: var(--bad); } /* Name des Autohauses: 15px in --fg, wie im Panel. */ .dm-autohaus__name { font-size: 15px; margin-top: var(--sp-3); } /* Fehlender Wert im technischen Datenblatt: „noch offen" in --fg3, wie im Panel (`
`). */ .dm-offen { color: var(--fg3); } /* Zweitzeile unter der Bezeichnung eines Beitragspostens (SF + Beitragssatz). */ .dm-beitragsposten__sf { color: var(--fg3); font-size: 11px; } /* ------------------------------------------------------------ Statistik */ /* `.tile-h` im Panel: der ganze Kachelkopf ist der Schalter zum Aufklappen, ohne eigenes Aussehen. */ .dm-statkopf { display: block; width: 100%; padding: 0; border: 0; background: none; font-family: inherit; text-align: left; color: inherit; cursor: pointer; } .dm-statkopf__kopfzeile { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); } .dm-statkopf__kopfzeile .ads-eyebrow { flex: 1; } .dm-statkopf[aria-expanded="true"] .ads-mark { transform: rotate(45deg); } .dm-statkopf__zeile { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-top: var(--sp-3); } .dm-statkopf__neben { padding-bottom: 5px; } /* `.quad` im Panel: vier Werte nebeneinander, Zahl im Wide-Schnitt. */ /* Fuenf Spalten (Jahr/Monat/Woche/Tag/Absolut) passen auf einem Telefon nicht nebeneinander: bei rund 300px Innenbreite blieben je 51px, und "209.177" braucht bei 16px Audi Type Wide etwa 60. auto-fit bricht deshalb um - auf dem Telefon drei plus zwei, auf einem breiten Bildschirm alle fuenf in einer Reihe. Deckungsgleich mit .quad im Panel. */ .dm-quad { display: grid; grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); gap: var(--sp-3); margin-top: var(--sp-3); } .dm-quad__n { display: block; font-family: var(--font-wide); font-size: 16px; font-weight: 300; color: var(--fg); line-height: 1.2; } .dm-quad__l { display: block; margin-top: 4px; font-size: 11px; letter-spacing: normal; color: var(--fg3); line-height: 1.3; } .dm-warnton { color: var(--warn); } /* `.wert` im Panel: der normale Fließtext einer Kachel. */ .dm-wert { font-size: 14px; letter-spacing: normal; color: var(--fg2); margin-top: var(--sp-2); } .dm-servicezeile { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-4); margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--line); } /* Service-Seite, "Anstehende Termine": drei sichtbar getrennte Bloecke statt einer Wertzeilen-Liste - deckungsgleich mit .termingruppe im Panel (audi-dashboard.css, vService()). Trennung ueber Abstand und eine Haarlinie zwischen den Bloecken, nicht ueber verschachtelte Kacheln (Audi-CI). */ .dm-termingruppe { padding: 18px 0; border-top: 1px solid var(--line); } .dm-termingruppe:first-of-type { padding-top: 2px; border-top: 0; } .dm-tgkopf { display: flex; align-items: center; gap: 9px; min-width: 0; } .dm-tgkopf svg { color: var(--fg2); flex: none; } .dm-tgkopf span { font-size: 16px; color: var(--fg); font-weight: 400; } .dm-tgvorgabe { font-size: 12.5px; color: var(--fg2); margin-top: 8px; } .dm-tgwert { /* Fehlte hier ganz - fiel auf die schmale Grundschrift zurück statt auf Audi Type Wide wie .tg-wert im Panel (Parität-Audit 2026-08-29). */ font-family: var(--font-wide); font-weight: 300; font-size: 22px; color: var(--fg); letter-spacing: -0.005em; margin-top: 4px; } .dm-tgwert--leer { font-weight: 400; font-size: 15px; color: var(--fg3); margin-top: 8px; } .dm-tgprognose { font-size: 12.5px; color: var(--fg2); margin-top: 6px; } /* Reichweiten-Kachel auf der Übersicht - deckungsgleich mit .tankzeile/.pct im Panel (audi-dashboard.css). */ .dm-tankzeile { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 14px; } .dm-tankzeile__pct { font-size: 15px; color: var(--fg2); padding-bottom: 6px; } .dm-navikachel__wert { margin-top: var(--sp-1); font-size: 15px; font-weight: 300; color: var(--fg); } /* "Letzte Fahrt"/"Letzte Tankung" auf der Übersicht - deckungsgleich mit .leaf .v/.leaf .v small im Panel (15px/400/var(--fg2), Zusatzzeile 12.5px/var(--fg3), KEINE Wide-Schrift/Hero-Zahl). War hier 20px/300 ohne Farbangabe - eine erfundene "große Zahl"-Behandlung, die dieser Kachel im Panel nie zustand (Parität-Audit 2026-08-30). Nur hier verwendet (die anderen NaviKachel-Aufrufe in MeinAudi.tsx/Service.tsx/Versicherung.tsx nutzen .dm-navikachel__wert direkt, unangetastet). */ .dm-navikachel__zahl { font-size: 15px; font-weight: 400; color: var(--fg2); } .dm-navikachel__wert .dm-navikachel__zahl + small { font-size: 12.5px; } .dm-navikachel__wert small, .dm-wertzeile small { display: block; margin-top: 2px; font-size: 12.5px; color: var(--fg3); } .dm-aktionen { display: flex; justify-content: center; padding: var(--sp-2) 0 var(--sp-4); } .dm-textknopf { border: 0; background: transparent; color: var(--fg2); font-size: 13px; font-weight: 300; padding: 10px 14px; border-radius: var(--r-pill); cursor: pointer; } .dm-textknopf:hover:not(:disabled) { background: var(--shade); color: var(--fg); } .dm-textknopf:disabled { opacity: 0.5; cursor: default; } /* --------------------------------------------------------- Werteliste */ .dm-werteliste { margin: var(--sp-3) 0 0; } /* Live am Panel gemessen (.row/dt/dd, audi-dashboard.css): beide Spalten 16px/400, dt (Feldname) in var(--fg) - NICHT grau, das ist der Wert (dd, var(--fg2)) - genau umgekehrt zu dem, was hier vorher stand (13px/grau Label, 14px/hell Wert). Betrifft jede Wertzeile app-weit (Parität-Audit 2026-08-30). */ .dm-wertzeile { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-4); padding: 11px 0; border-bottom: 1px solid var(--line); } .dm-wertzeile:last-child { border-bottom: 0; } .dm-wertzeile dt { font-size: 16px; font-weight: 400; color: var(--fg); } .dm-wertzeile dd { margin: 0; font-size: 16px; font-weight: 400; color: var(--fg2); text-align: right; } .dm-abschnitt { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-3) 2px 0; } /* Wechselbild "Mein Audi" - deckungsgleich mit carImg("galerie")/.dots im Panel: ein antippbares Bild, das zum nächsten Galerieplatz weiterschaltet, plus Punktanzeige darunter. */ .dm-galerie-wechsel { display: block; width: 100%; border: 0; background: none; padding: 0; cursor: pointer; } /* 16:9, wie carImg("galerie") im Panel ("carfix", nicht "carfix klein" - das 16:8-Maß gilt nur für die Übersicht-Szene). */ .dm-galerie-wechsel .ads-bildbox { aspect-ratio: 16 / 9; } .dm-galerie-punkte { display: flex; gap: 6px; justify-content: center; margin-top: 12px; } .dm-galerie-punkte span { width: 5px; height: 5px; border-radius: 50%; background: var(--line-strong); } .dm-galerie-punkte span.an { background: var(--red); } /* Klickbare Wertzeile (Batteriespannung → Verlauf) - deckungsgleich mit `.row[data-go]` im Panel: derselbe Zeilenaufbau wie .dm-wertzeile, nur als