/* 06-auswertungen.css — Teil der Aufteilung von style.css (2026-08-10).
   Urspruenglich Zeilen 3997-4368 der einen Datei. Auswertungen Report-Blatt (Scope .aw).
   Diese und alle anderen css/*.css-Dateien werden auf JEDER Seite
   gemeinsam geladen, in fester Reihenfolge - die Kaskade ist exakt
   dieselbe wie vorher, nur auf mehrere Dateien verteilt. */

/* =========================================================
   Auswertungen – Report-Blatt (Konzept C) · Scope: .aw
   Analog zu .pf/.ad. Globale nav{}/section{}/.content-Regeln
   werden im .aw-Scope neutralisiert. Font Awesome Icons.
   ========================================================= */

.content.aw { background: transparent; border: none; box-shadow: none; padding: 0; }
.content.aw h1, .content.aw h2 { color: rgb(var(--ink)); border: none; padding: 0; margin: 0; letter-spacing: normal; text-align: left; }

/* Glass-Grundfläche */
.aw-filters, .aw-sheet {
    background: var(--karte-bg);
    backdrop-filter: blur(18px) saturate(1.2);
    -webkit-backdrop-filter: blur(18px) saturate(1.2);
    border: 1px solid var(--karte-border);
    border-radius: 18px;
    box-shadow: 0 12px 36px var(--glass-shadow);
}

/* --- Filterleiste --- */
.aw .aw-filters {
    display: flex; gap: 14px; flex-wrap: wrap; align-items: flex-end;
    padding: 14px 16px; margin: 0 0 16px;
}
.aw-fld { display: flex; flex-direction: column; gap: 5px; }
.aw-fld label { font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.05em; color: rgba(var(--ink) / 0.6); }
.aw .aw-filters select {
    background: var(--feld-bg); color: rgb(var(--ink)); border: 1px solid rgba(var(--ink) / 0.22);
    border-radius: 9px; padding: 9px 11px; font-size: 0.85rem; min-width: 150px; height: auto;
}
.aw .aw-filters select option { color: var(--text-color); }
.aw-grow { flex: 1; }
.aw-seg { display: inline-flex; background: var(--feld-bg); border: 1px solid rgba(var(--ink) / 0.22); border-radius: 10px; padding: 3px; gap: 2px; }
.aw-seg button { padding: 8px 13px; border: none; background: none; border-radius: 7px; font-size: 0.82rem; color: rgba(var(--ink) / 0.72); cursor: pointer; font-family: inherit; }
.aw-seg button.on { background: var(--tigers-yellow); color: var(--tigers-black); font-weight: 700; }
.aw-btn-y { background: var(--tigers-yellow); color: var(--tigers-black); border: none; border-radius: 9px; padding: 10px 15px; font-weight: 800; font-size: 0.82rem; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }
.aw-btn-g { background: rgba(var(--ink) / 0.08); color: rgb(var(--ink)); border: 1px solid rgba(var(--ink) / 0.22); border-radius: 9px; padding: 10px 15px; font-weight: 500; font-size: 0.82rem; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; text-decoration: none; }
.aw-btn-g:hover, .aw-btn-y:hover { filter: brightness(1.08); }

/* --- Report-Blatt --- */
.aw .aw-sheet { padding: 22px 24px; margin: 0 0 20px; }
.aw-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-bottom: 16px; border-bottom: 2px solid var(--tigers-yellow); flex-wrap: wrap; }
.aw-title { font-size: 1.35rem; font-weight: 800; color: rgb(var(--ink)); }
.aw-meta { font-size: 0.72rem; color: rgba(var(--ink) / 0.6); margin-top: 3px; }
.aw-dl { display: flex; gap: 8px; }

/* Person-Kopf mit Foto */
.aw-person-id { display: flex; align-items: center; gap: 14px; }
.aw-photo { width: 58px; height: 58px; border-radius: 14px; overflow: hidden; background: var(--tigers-yellow); color: var(--tigers-black); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 1.35rem; flex: none; position: relative; }
.aw-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* KPI-Statzeile */
.aw-stats { display: flex; flex-wrap: wrap; gap: 26px; padding: 18px 2px; border-bottom: 1px solid rgba(var(--ink) / 0.10); }
.aw-stat .l { font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.05em; color: rgba(var(--ink) / 0.6); }
.aw-stat .v { font-size: 1.4rem; font-weight: 800; margin-top: 4px; color: rgb(var(--ink)); }
.aw-stat .v.y { color: var(--tigers-gold); }

/* Stapeldiagramm */
.aw-chart-wrap { padding: 20px 2px 4px; }
.aw-chart-h { display: flex; align-items: center; gap: 8px; font-size: 0.82rem; font-weight: 700; color: rgb(var(--ink)); margin-bottom: 4px; }
.aw-chart-h i { color: var(--tigers-yellow-ink); }
/* Diagramm mit €-Y-Achse (2026-07-17).
   2x2-Grid: [Y-Achse | Plot] / [leer | Monatsbeschriftungen].
   Spalte 1 wird von der Achsenbeschriftung bestimmt (auto), Spalte 2 nimmt den
   Rest. Beschriftungen liegen BEWUSST ausserhalb der Plotflaeche – sonst saesse
   die 0-Linie nicht auf der Balken-Grundlinie. Das Grid haelt Balken und
   Beschriftungen in derselben Spalte; ein Platzhalter mit fester Breite wuerde
   verrutschen, sobald die Betraege mehr Stellen bekommen. */
/* BASIS = altes Verhalten (eine Flex-Reihe). Bewusst als Rückfallebene erhalten:
   AuswertungChart.js hat in Auswertungen.php eine EIGENE ?v=-Query. Wird die
   vergessen, liefert der Browser die alte JS zur neuen CSS. Ohne diese Trennung
   landeten die alten .aw-col dann im 2-Spalten-Grid und das Diagramm zerfiel in
   „Jul|Aug / Sep|Okt" (passiert am 2026-07-17). Jetzt rendert es in dem Fall
   nur ohne Achse – aber korrekt. */
.aw-chart { display: flex; align-items: flex-end; gap: 10px; height: 210px; padding-top: 12px; }

/* Die Klasse setzt AUSSCHLIESSLICH renderStack() aus der neuen JS. Das Grid
   greift dadurch nur, wenn auch .aw-yax/.aw-plot/.aw-labs wirklich existieren. */
.aw-chart.aw-chart-ax {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: 210px auto;
    column-gap: 10px;
    align-items: initial;
    padding-top: 12px;
    height: auto;
}
.aw-yax {
    grid-column: 1; grid-row: 1;
    display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end;
    /* Negative Margins = halbe Zeilenhoehe (0.62rem / 2): dadurch liegen die
       MITTEN der ersten/letzten Beschriftung exakt auf 100 % bzw. 0 % und damit
       auf ihren Gitterlinien – mit reinem space-between waeren sie um eine halbe
       Zeilenhoehe versetzt. */
    margin-top: -0.31rem; margin-bottom: -0.31rem;
}
.aw-yt {
    /* font-size explizit: sonst setzt * { font-size: 1rem } hier 16px
       (dieselbe Falle wie bei .nav-profile-role) – und die Rechnung mit den
       negativen Margins oben haenge davon ab. */
    font-size: 0.62rem; line-height: 1;
    color: rgba(var(--ink) / 0.72);
    font-variant-numeric: tabular-nums; white-space: nowrap;
}
.aw-plot { grid-column: 2; grid-row: 1; display: flex; align-items: flex-end; gap: 10px; position: relative; min-width: 0; }
.aw-gl {
    position: absolute; left: 0; right: 0; height: 0; pointer-events: none;
    border-top: 1px dashed rgba(var(--ink) / 0.09);
}
.aw-gl.base { border-top: 1px solid rgba(var(--ink) / 0.22); }

.aw-labs { grid-column: 2; grid-row: 2; display: flex; gap: 10px; margin-top: 7px; min-width: 0; }
.aw-labs .aw-lab { flex: 1; text-align: center; min-width: 0; }

.aw-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 7px; height: 100%; justify-content: flex-end; position: relative; z-index: 1; min-width: 0; }
.aw-tot { font-size: 0.68rem; font-weight: 700; color: rgb(var(--ink)); }
.aw-stack { width: 62%; max-width: 42px; display: flex; flex-direction: column-reverse; border-radius: 6px 6px 0 0; overflow: hidden; transition: height .25s; }
.aw-stack span { display: block; transition: height .25s; }
.aw-lab { font-size: 0.68rem; color: rgba(var(--ink) / 0.6); }
.aw-legend { display: flex; gap: 18px; margin-top: 12px; font-size: 0.76rem; color: rgba(var(--ink) / 0.6); flex-wrap: wrap; }
.aw-legend span { display: inline-flex; align-items: center; gap: 7px; }
.aw-legend .sw { width: 12px; height: 12px; border-radius: 4px; }
.aw-empty { color: rgba(var(--ink) / 0.6); padding: 18px 2px; }

/* Summen-Kacheln (Person) */
.aw-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 18px 0 4px; }
.aw-tile { background: rgba(var(--ink) / 0.06); border: 1px solid rgba(var(--ink) / 0.14); border-radius: 13px; padding: 16px 18px; display: flex; align-items: center; gap: 14px; }
.aw-tile .ic { width: 44px; height: 44px; border-radius: 12px; background: var(--tigers-yellow-16); color: var(--tigers-yellow-ink); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; flex: none; }
.aw-tile .l { font-size: 0.74rem; color: rgba(var(--ink) / 0.6); }
.aw-tile .v { font-size: 1.35rem; font-weight: 800; margin-top: 2px; color: rgb(var(--ink)); }
.aw-tile .v small { font-size: 0.72rem; color: rgba(var(--ink) / 0.6); font-weight: 500; }

/* Freibetrag-Karte */
.aw-fb { display: flex; align-items: center; gap: 18px; background: rgba(240,153,123,0.08); border: 1px solid rgba(240,153,123,0.30); border-radius: 13px; padding: 15px 18px; margin: 18px 0 4px; flex-wrap: wrap; }
.aw-fb .ic { width: 42px; height: 42px; border-radius: 12px; background: var(--tax-bg); color: var(--tax-text); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; flex: none; }
.aw-fb .body { flex: 1; min-width: 220px; }
.aw-fb .t { font-size: 0.8rem; font-weight: 700; color: rgb(var(--ink)); margin-bottom: 8px; display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.aw-fb .track { height: 10px; border-radius: 6px; background: rgba(var(--ink) / 0.10); overflow: hidden; }
.aw-fb .track > span { display: block; height: 100%; background: var(--tax-text); }

/* Hinweis-Karte fuer nicht automatisch zuordenbare Dokumente (Dateiname
   passt zu keinem bekannten Fahrt-/Trainer-Muster) - 2026-08-12. */
.aw-sonstiges { display: flex; align-items: flex-start; gap: 14px; background: rgba(var(--ink) / 0.05); border: 1px solid var(--border-light); border-radius: 13px; padding: 14px 18px; margin: 18px 0 4px; }
.aw-sonstiges .ic { width: 34px; height: 34px; border-radius: 10px; background: rgba(var(--ink) / 0.08); color: rgba(var(--ink) / 0.6); display: flex; align-items: center; justify-content: center; font-size: 1rem; flex: none; }
.aw-sonstiges .body { flex: 1; min-width: 220px; }
.aw-sonstiges .t { font-size: 0.8rem; font-weight: 700; color: rgb(var(--ink)); margin-bottom: 4px; }
.aw-sonstiges .cap { font-size: 0.76rem; color: rgba(var(--ink) / 0.72); }
.aw-sonstiges ul { margin: 6px 0 0; padding-left: 18px; font-size: 0.76rem; color: rgba(var(--ink) / 0.8); }
.aw-sonstiges li { margin: 2px 0; word-break: break-word; }
/* Delta-Spalte und Freibetrags-Ampel (frueher inline in _aw_view_monat.php
   bzw. _aw_view_person.php). Als Schrift muessen die Toene mit dem Theme
   kippen; die Balkenfuellung nutzt denselben Ton. */
.aw .aw-table td.aw-d-auf { color: var(--status-teal-ink); }
.aw .aw-table td.aw-d-ab { color: var(--tax-text); }
.aw .aw-table td.aw-d-neutral { color: rgba(var(--ink) / 0.4); }
.aw-fb .t .aw-fb-hoch { color: var(--tax-text); }
.aw-fb .t .aw-fb-mittel { color: var(--tigers-gold); }
.aw-fb .t .aw-fb-niedrig { color: var(--status-teal-ink); }
.aw-fb .track > span.aw-fb-hoch { background: var(--tax-text); }
.aw-fb .track > span.aw-fb-mittel { background: var(--tigers-yellow); }
.aw-fb .track > span.aw-fb-niedrig { background: var(--status-teal); }
.aw-fb .cap { font-size: 0.72rem; color: rgba(var(--ink) / 0.6); margin-top: 7px; }
.aw-fb .big { font-size: 1.45rem; font-weight: 800; text-align: right; color: rgb(var(--ink)); }
.aw-fb .big small { display: block; font-size: 0.68rem; color: rgba(var(--ink) / 0.6); font-weight: 500; }
.aw-mini-fb { min-width: 150px; }
.aw-mini-fb .track { height: 7px; border-radius: 5px; background: rgba(var(--ink) / 0.10); overflow: hidden; }
.aw-mini-fb .track > span { display: block; height: 100%; }
.aw-mini-fb .cap { font-size: 0.68rem; color: rgba(var(--ink) / 0.6); margin-top: 4px; }

/* Tabelle (globale .content table aushebeln) */
.aw .aw-table { width: 100%; border-collapse: collapse; border: none; margin: 14px 0 0; border-radius: 0; overflow: visible; box-shadow: none; font-size: 0.82rem; }
.aw .aw-table thead th { text-align: left; color: rgba(var(--ink) / 0.5); font-size: 0.64rem; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 700; padding: 10px 8px; border-bottom: 1px solid rgba(var(--ink) / 0.16); background: transparent; white-space: nowrap; }
.aw .aw-table td { padding: 10px 8px; color: rgba(var(--ink) / 0.92); border-bottom: 1px solid rgba(var(--ink) / 0.08); }
/* Zahlenspalten: die globale Regel `td, th { overflow-wrap: anywhere;
   word-break: break-word }` (00-basis-nav.css) zerreisst sonst Betraege
   mitten in der Zahl (aus 182,70 EUR wird 182, / 70 EUR), sobald die
   Spalte eng wird. */
.aw .aw-table th.num, .aw .aw-table td.num { text-align: right; font-variant-numeric: tabular-nums; overflow-wrap: normal; word-break: normal; }
.aw .aw-table tbody tr:hover { background: rgba(var(--ink) / 0.04); }
.aw .aw-table .amount { font-weight: 700; }
.aw .aw-table tfoot td { padding: 12px 8px; font-weight: 800; border-top: 2px solid var(--tigers-yellow-40); }
.aw .aw-table tfoot td.num { color: var(--tigers-gold); }
.aw-who { display: flex; align-items: center; gap: 10px; }
.aw-av { width: 30px; height: 30px; border-radius: 50%; overflow: hidden; background: rgba(var(--ink) / 0.12); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 0.66rem; color: rgb(var(--ink)); flex: none; position: relative; }
.aw-av img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.aw-pill { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 99px; font-size: 0.66rem; font-weight: 700; }
.aw-pill.team { background: var(--status-blue-bg); color: var(--status-blue); }
.aw-pill.tax { background: var(--tax-bg); color: var(--tax-text); }
.aw-pill.free { background: var(--status-teal-bg); color: var(--status-teal-ink); }

@media (max-width: 720px) {
    .aw-tiles { grid-template-columns: 1fr; }
    .aw .aw-filters select { min-width: 120px; }
}

/* Auswertungs-Tabellen: generische Karten-Transform (<=1024px) im .aw-Scope
   zuruecknehmen, damit auf Tablets die echte (schmale) Tabelle erhalten bleibt. */
@media (max-width: 1024px) {
    .aw .aw-table { display: table; }
    .aw .aw-table thead { display: table-header-group; }
    .aw .aw-table tbody { display: table-row-group; }
    .aw .aw-table tfoot { display: table-footer-group; }
    .aw .aw-table tr { display: table-row; margin: 0; border: 0; border-radius: 0; background: transparent; padding: 0; }
    .aw .aw-table thead th { display: table-cell; }
    .aw .aw-table td { display: table-cell; width: auto; }
    .aw .aw-table td::before { content: none; }
}

/* Auswertungs-Tabellen: auf dem Handy themenkonforme Karten pro Zeile. */
@media (max-width: 640px) {
    .aw .aw-filters { flex-direction: column; align-items: stretch; }
    .aw .aw-fld { width: 100%; }
    .aw .aw-filters select { width: 100%; min-width: 0; }

    .aw .aw-table,
    .aw .aw-table tbody,
    .aw .aw-table tfoot { display: block; }
    .aw .aw-table thead { display: none; }

    .aw .aw-table tr {
        display: block;
        border: 1px solid rgba(var(--ink) / 0.14);
        border-radius: 12px;
        background: rgba(var(--ink) / 0.05);
        padding: 12px 14px;
        margin-bottom: 10px;
    }

    .aw .aw-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        text-align: right;
        padding: 5px 0;
        border: 0;
    }

    .aw .aw-table td[data-label]::before {
        content: attr(data-label);
        text-align: left;
        color: rgba(var(--ink) / 0.72);
        font-weight: 600;
        white-space: nowrap;
    }

    /* Erste Zelle (Monat / Spieler) als Kartenkopf */
    .aw .aw-table tbody td:first-child,
    .aw .aw-table tfoot td:first-child {
        display: block;
        text-align: left;
        font-weight: 800;
        color: rgb(var(--ink));
        font-size: 0.98rem;
        padding: 0 0 8px;
        margin-bottom: 6px;
        border-bottom: 1px solid rgba(var(--ink) / 0.12);
    }
    .aw .aw-table tbody td:first-child::before,
    .aw .aw-table tfoot td:first-child::before { content: none; }

    .aw .aw-table tfoot tr { border-color: var(--tigers-yellow-45); }
    .aw .aw-table .aw-who { justify-content: flex-start; }
    .aw .aw-table td:empty { display: none; }
}

/* PRINT / PDF – helles Blatt */
@media print {
    body { background: #fff !important; color: #111 !important; }
    nav, .aw-filters, .aw-dl, footer, .footer { display: none !important; }
    .content.aw { padding: 0; }
    .aw .aw-sheet { background: #fff !important; border: none; box-shadow: none; color: #111; padding: 0; }
    .aw-title, .aw-stat .v, .aw-tile .v, .aw-fb .big, .aw-fb .t { color: #111 !important; }
    /* .aw-yt = Y-Achsen-Beschriftung (seit 2026-07-17). Ohne diese Zeile bliebe
       sie im PDF-Export weiss auf weiss – die Person-Ansicht hat einen
       Drucken-Knopf, das faellt sofort auf. */
    .aw-stat .l, .aw-tile .l, .aw-meta, .aw-chart-h, .aw-legend, .aw-fb .cap, .aw-lab, .aw-tot, .aw-yt { color: #333 !important; }
    /* Gitterlinien im Druck sichtbar halten (sonst helles Weiss auf Weiss) */
    .aw-gl { border-top-color: rgba(0,0,0,0.14) !important; }
    .aw-gl.base { border-top-color: rgba(0,0,0,0.4) !important; }
    .aw-stat .v.y, .aw .aw-table tfoot td.num { color: #a07b00 !important; }
    .aw .aw-table td, .aw .aw-table thead th { color: #111 !important; border-color: #ccc !important; }
    .aw-stack, .aw-stack span, .aw-fb .track > span, .aw-mini-fb .track > span { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

    /* KEINE UMBRUeCHE IN ZAHLEN (2026-09-02).
       Das Druckblatt ist nur ~700px breit. Damit greift zwar noch die
       Tabellen-Darstellung (die Karten-Umwandlung startet erst <=640px), die
       Betragsspalten werden aber so schmal, dass "182,70 EUR" mitten in der
       Zahl umbrach. Deshalb hier alle Zahlenfelder auf nowrap und im Gegenzug
       Schrift/Innenabstand der Tabelle etwas kleiner, damit die breiteren
       Spalten weiterhin auf die Seite passen. */
    .aw .aw-table { font-size: 0.74rem; }
    .aw .aw-table td, .aw .aw-table thead th { padding: 7px 5px; }
    .aw .aw-table th.num,
    .aw .aw-table td.num,
    .aw .aw-table .amount,
    .aw-stat .v, .aw-tile .v, .aw-fb .big, .aw-tot, .aw-lab, .aw-yt { white-space: nowrap; }
    /* Zeilen nicht ueber den Seitenumbruch zerreissen */
    .aw .aw-table tr { break-inside: avoid; page-break-inside: avoid; }

    /* STRICHE MITTEN DURCH DIE ZEILE (2026-09-02).
       Mit border-collapse: collapse zeichnet Chrome die geteilten Zell-
       rahmen im Druck rund eine halbe Zeile zu hoch - die Trennlinie lag
       dadurch quer durch den Text und sah aus wie durchgestrichen. Am
       Bildschirm sitzt sie richtig, nur im PDF nicht. Mit getrennten
       Rahmen (border-spacing 0, also optisch unveraendert) malt jede Zelle
       ihren eigenen Rahmen an der richtigen Stelle. */
    .aw .aw-table { border-collapse: separate; border-spacing: 0; }

    /* Die Summenzeile ist als table-footer-group deklariert (Karten-
       Umschaltung <=1024px). Beim Drucken wiederholt Chrome eine solche
       Gruppe auf JEDER Seite - die Gesamtsumme stand dann mitten in der
       Monatsliste und las sich wie eine Seitensumme. Im Druck gehoert sie
       einmal ans Ende. Der Tabellenkopf wird weiter wiederholt. */
    .aw .aw-table tfoot { display: table-row-group; }

    /* Derselbe Rahmen-Versatz trifft die 2px-Oberkante der Summenzeile: sie
       landete quer im letzten Monat statt ueber 'Gesamt'. Die Abgrenzung
       haengt im Druck daher an der letzten Datenzeile. */
    .aw .aw-table tfoot td { border-top: 0; }
    .aw .aw-table tbody tr:last-child td { border-bottom: 1.5pt solid #999; }

    /* WEISS AUF WEISS (2026-09-02, per Farbpruefung im erzeugten PDF gefunden).
       Alles, was seine Farbe selbst aus --ink setzt, bleibt im hellen Druck
       unsichtbar - die Regeln oben fangen nur die damals bekannten Stellen.
       Betroffen waren: Spielername und Initialen in der Mannschaftsansicht,
       die Kleingedruckten in den Kacheln und in der Freibetrags-Karte, der
       Leer-Hinweis und die Symbole. */
    .aw .aw-who, .aw .aw-who .aw-av,
    .aw-tile .v small, .aw-fb .big small, .aw-empty,
    .aw-tile .ic, .aw-fb .ic, .aw-sonstiges .ic,
    .aw-sonstiges .t, .aw-sonstiges .cap, .aw-sonstiges li { color: #333 !important; }
    /* Die Ampel im Freibetrag ist gelb bzw. tuerkis - auf Papier zu hell. */
    .aw-fb .t .aw-fb-hoch { color: #b3261e !important; }
    .aw-fb .t .aw-fb-mittel { color: #a07b00 !important; }
    .aw-fb .t .aw-fb-niedrig { color: #0f766e !important; }
}

/* Auswertungen – Umschalter (Pro Person / Pro Monat) */
.aw .aw-rtabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 18px; }
.aw .aw-rtab { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 12px; background: rgba(var(--ink) / 0.10); border: 1px solid rgba(var(--ink) / 0.22); color: rgba(var(--ink) / 0.7); font-size: 0.88rem; font-weight: 600; text-decoration: none; backdrop-filter: blur(18px) saturate(1.2); -webkit-backdrop-filter: blur(18px) saturate(1.2); }
.aw .aw-rtab:hover { background: rgba(var(--ink) / 0.16); color: rgb(var(--ink)); }
.aw .aw-rtab i { font-size: 1rem; }
.aw .aw-rtab.on { background: var(--tigers-yellow); color: var(--tigers-black); border-color: var(--tigers-yellow); font-weight: 800; }
.aw .aw-rtab.on i { color: var(--tigers-black); }
@media print { .aw .aw-rtabs { display: none !important; } }

/* FIX 08.07.: globale ".content>div" (graue/weisse Box) im .aw-Scope neutralisieren.
   Direkte Kinder von .content.aw sind sonst helle Kästen -> weisse Schrift unlesbar. */
.content.aw > div { margin: 0; padding: 0; background: transparent; border: none; border-radius: 0; box-shadow: none; }
.content.aw > .aw-rtabs { margin: 0 0 18px; }
.content.aw > .aw-sheet {
    margin: 0 0 20px;
    padding: 22px 24px;
    background: var(--karte-bg);
    border: 1px solid var(--karte-border);
    border-radius: 18px;
    box-shadow: 0 12px 36px var(--glass-shadow);
}

/* FIX 08.07.: globales *{color:var(--text-color)} faerbt den Namen im .aw-who-DIV schwarz
   (Beträge stehen direkt im td und bleiben weiss). Name explizit hell setzen. */
.aw .aw-who { color: rgba(var(--ink) / 0.92); }
.aw .aw-who .aw-av { color: rgb(var(--ink)); }

/* =========================================================================
   Premium-Passwortfeld (password-ui.js) – 08.07.2026
   Wiederverwendbar: Auge, Stärke-Balken, Regel-Chips.
   Basis = heller Karten-Hintergrund (register.html); Scopes .pf/.ad = dunkel.
   ========================================================================= */
.pwui-wrap { position: relative; width: 100%; display: block; }
.pwui-input { padding-right: 44px !important; }
/* Der relativ positionierte .pwui-wrap liegt im DOM nach dem linken Feld-Icon
   (z. B. Schloss in register.html) und würde es sonst mit dem weißen Input
   übermalen. Icon in eine höhere Paint-Ebene heben. */
.input-group .input-icon { z-index: 2; }
.pwui-toggle {
    position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
    width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
    background: none; border: none; padding: 0; cursor: pointer;
    color: #6b7280; font-size: 0.95rem; border-radius: 6px; line-height: 1;
    transition: color 0.15s ease, background 0.15s ease;
}
.pwui-toggle:hover  { color: #111; background: rgba(0,0,0,0.06); }
.pwui-toggle:focus-visible { outline: 2px solid var(--tigers-yellow); outline-offset: 1px; }

.pwui-meter { margin-top: 10px; display: none; }
.pwui-meter.show { display: block; }

.pwui-bar {
    height: 6px; border-radius: 999px; overflow: hidden;
    background: #e5e7eb;
}
.pwui-bar-fill {
    display: block; height: 100%; width: 0; border-radius: 999px;
    background: #ef4444;
    transition: width 0.25s ease, background 0.25s ease;
}
.pwui-meter[data-level="weak"]   .pwui-bar-fill { background: #ef4444; }
.pwui-meter[data-level="medium"] .pwui-bar-fill { background: #f59e0b; }
.pwui-meter[data-level="strong"] .pwui-bar-fill { background: #22c55e; }

.pwui-row {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: 6px; font-size: 0.72rem;
}
.pwui-strength-label { color: #6b7280; text-transform: uppercase; letter-spacing: 0.04em; }
.pwui-strength-val   { font-weight: 700; }
.pwui-meter[data-level="weak"]   .pwui-strength-val { color: #ef4444; }
.pwui-meter[data-level="medium"] .pwui-strength-val { color: #d97706; }
.pwui-meter[data-level="strong"] .pwui-strength-val { color: #16a34a; }

.pwui-rules {
    list-style: none; display: flex; flex-wrap: wrap; gap: 6px;
    margin: 9px 0 0; padding: 0;
}
.pwui-rules li {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 0.7rem; padding: 3px 9px; border-radius: 999px;
    color: #8a8f98; background: #f0f2f5;
    transition: color 0.2s ease, background 0.2s ease;
}
.pwui-rules li i { font-size: 0.62rem; }
.pwui-rules li.ok { color: #16a34a; background: rgba(34,197,94,0.13); }

/* Dunkle Karten (Profil .pf / Admin .ad): helle Schrift + Kontraste */
.pf .pwui-strength-label,
.ad .pwui-strength-label { color: rgba(var(--ink) / 0.6); }
.pf .pwui-bar,
.ad .pwui-bar { background: rgba(var(--ink) / 0.14); }
.pf .pwui-rules li,
.ad .pwui-rules li { color: rgba(var(--ink) / 0.72); background: rgba(var(--ink) / 0.08); }
.pf .pwui-rules li.ok,
.ad .pwui-rules li.ok { color: #4ade80; background: rgba(74,222,128,0.16); }
.pf .pwui-meter[data-level="medium"] .pwui-strength-val,
.ad .pwui-meter[data-level="medium"] .pwui-strength-val { color: #fbbf24; }
.pf .pwui-meter[data-level="strong"] .pwui-strength-val,
.ad .pwui-meter[data-level="strong"] .pwui-strength-val { color: #4ade80; }

