
    /* ===================================================================
       KONSISTENZ-ABSCHNITT - kopierte Stilbloecke aus der DE-Listenansicht
       (..\..\Listendarstellung\Tagesgeld DE\tagesgeld-vergleich.css) fuer gerenderte Paritaet der
       Einstellungsleiste / des "weitere Filter"-Panels / des #hilfe-Umschalters /
       des Hochkontrast-Hell-Modus. Herkunft je Block als Regelname vermerkt.
       Bewusst NICHT uebernommen: listen-spezifische Bloecke (Produktkarten,
       Zins-Balken, Detail-Tabs/Accordion, Expand-/Sort-/Mehr-Buttons, Badge-Zeile,
       Merkmal-Zellen, Erfahrungsberichte-/CTA-Karte). Drift-Risiko dokumentiert;
       gerenderte Paritaet sichert der cross-view-konsistenz-pruefer. em/rem, kein px.
       =================================================================== */

    /* --- aus der Listen-CSS (.zugangsweg-filter-group / .filter-checkbox / Pill-Label-Kontrastpolitur) --- */
    .zugangsweg-filter-group .checkbox-group {
        display: flex;
        gap: 12px;
    }
    .filter-checkbox {
        display: flex;
        align-items: center;
        gap: 0.5em;
        padding: 0.375em 0;
        min-height: 2.25rem;
        cursor: pointer;
        font-size: 0.85rem;
        color: var(--text-secondary, #aab);
        transition: color 150ms ease;
        line-height: 1.35;
    }
    .filter-checkbox:hover {
        color: var(--text-primary, #fff);
    }
    .filter-checkbox input[type="checkbox"] {
        width: 1.25rem;
        height: 1.25rem;
        min-width: 1.25rem;
        accent-color: #00528d;
        cursor: pointer;
    }
    .filter-checkbox input[type="checkbox"]:checked + span {
        color: var(--text-primary, #fff);
        font-weight: 600;
    }
    /* Kontrast-Politur 2026-06-12 (Schwester-Rollout): Overrides fuer Shared-
       Komponenten aus vergleich.min.css (Spezifitaets-Override hier in der View-CSS). */
    .vergleich-dashboard .laufzeit-pill { color: rgba(255,255,255,0.85); }
    .vergleich-dashboard .laufzeit-pill:hover { color: var(--text-primary, #fff); }
    .vergleich-dashboard .laufzeit-pill.active { color: var(--primary-darker, #004578); }
    .vergleich-dashboard .filter-label { color: rgba(255,255,255,0.85); }

    /* --- aus der Listen-CSS (Filter-Section, Overlay/Panel, Panel-Close, Filter-Row/-Column,
           Checkbox-Grid, Flaggen, Panel-Titel, Eingrenzungsfilter, Aktive-Filter-Hinweis) --- */
    .vergleich-dashboard .filter-section { position: relative; margin-top: -1.1em; margin-bottom: 5em; overflow: visible; }
    .anpassen-overlay {
        display: none;
    }
    .anpassen-overlay.open {
        display: block;
    }
    .anpassen-backdrop {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.45);
        z-index: 100;
        opacity: 0;
        transition: opacity 125ms ease;
    }
    .anpassen-overlay.open .anpassen-backdrop {
        opacity: 1;
    }
    .anpassen-panel {
        position: relative;
        z-index: 101;
        width: 90%;
        max-width: 60rem;
        margin: -3em auto 1em;
        background: rgba(9, 87, 143, 0.92);
        backdrop-filter: blur(1.25em);
        -webkit-backdrop-filter: blur(1.25em);
        border-radius: var(--radius-md, 12px);
        padding: 1.75em 1.5em 1.25em;
        border: 1px solid rgba(255,255,255,0.12);
        box-shadow:
            0 0.5em 2.5em rgba(0, 0, 0, 0.35),
            0 0.125em 0.5em rgba(0, 0, 0, 0.2),
            inset 0 1px 0 rgba(255,255,255,0.08);
        opacity: 0;
        transform: translateY(-0.75em);
        transition: opacity 125ms ease, transform 125ms ease;
    }
    .anpassen-overlay.open .anpassen-panel {
        opacity: 1;
        transform: translateY(0);
    }
    .panel-close-btn {
        position: absolute;
        top: 0;
        right: 0;
        width: 1.85em;
        height: 1.85em;
        padding: 0;
        background: rgba(48, 55, 61, 0.85);
        color: rgba(255, 255, 255, 0.85);
        border: none;
        border-top-right-radius: var(--radius-md, 12px);
        border-bottom-left-radius: 0;
        font-size: 1.5rem;
        line-height: 1;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background 125ms ease, color 125ms ease;
        z-index: 102;
    }
    .panel-close-btn:hover,
    .panel-close-btn:focus {
        background: rgba(61, 69, 76, 0.85);
        color: #fff;
        outline: none;
    }
    .filter-row {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
        gap: 1rem;
    }
    .filter-column {
        padding: 4px 0;
    }
    .filter-column-separator {
        border-left: 1px solid rgba(255,255,255,0.1);
        padding-left: 1rem;
    }
    .filter-row-separator {
        border-top: 1px solid rgba(255,255,255,0.1);
        padding-top: 0.75rem;
        margin-top: 0.25rem;
    }
    .checkbox-group-wrap {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 6px 12px;
    }
    /* Sitz-Zeile: nebeneinander ab 50em, untereinander darunter */
    /* 50.01em statt 50em (Audit A-7.2 / Phase K6, Rollout Tagesgeld CT-0148 2026-08-26):
       zusammen mit dem `max-width: 50em`-Block darunter traf exakt 800px BEIDE Bloecke.
       Der Offset sitzt bewusst auf der min-width-Seite, damit 800px zur schmalen
       Variante gehoert; folgt dem Bestands-Vorbild `min-width: 72.01em`. `.01em` statt
       `.0625em`, weil letzteres exakt 801px waere und eine volle Pixel-Breite
       unversorgt liesse. Der `max-width: 50em`-Block bleibt unveraendert. */
    @media (min-width: 50.01em) {
        .filter-row-separator[style] .filter-column-separator { border-top: none; padding-top: 0; margin-top: 0; border-left: 1px solid var(--border); padding-left: var(--space-lg); margin-left: var(--space-md); }
    }
    @media (max-width: 50em) {
        .filter-row-separator[style] { grid-template-columns: 1fr !important; }
    }
    .flag-emoji, .badge-flag-emoji {
        vertical-align: middle;
    }
    .flag-emoji { font-size: 1.15rem; margin-right: 2px; position: relative; top: -2px; }
    .badge-flag-emoji { font-size: 0.85rem; margin-left: 4px; position: relative; top: -2px; }
    .flag-img-variant { display: none; vertical-align: middle; }
    .flag-emoji-variant { vertical-align: middle; }
    .no-emoji-flags .flag-emoji-variant { display: none; }
    .no-emoji-flags .flag-img-variant { display: inline; }
    .filter-panel-titel {
        display: block;
        font-size: 0.7rem;
        font-weight: 600;
        color: rgba(255, 255, 255, 0.7);
        text-transform: uppercase;
        letter-spacing: 0.5px;
        padding-bottom: 0.5em;
        margin-bottom: 0.75em;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }
    .eingrenzungsfilter {
        border-top: 1px solid rgba(255,255,255,0.1);
        padding-top: 10px;
        margin-top: 10px;
    }
    .eingrenzungsfilter-title {
        font-weight: 600;
        font-size: 0.85rem;
        color: var(--text-secondary, #aab);
        display: block;
        margin-bottom: 6px;
    }
    .aktive-filter-hinweis {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px 12px;
        background: rgba(0, 82, 141, 0.15);
        border-radius: 6px;
        margin-bottom: 8px;
        font-size: 0.82rem;
        color: var(--text-secondary, #aab);
    }
    .filter-hinweis-icon {
        font-size: 0.9rem;
    }
    .filter-hinweis-text {
        flex: 1;
    }
    .filter-reset-btn {
        cursor: pointer;
        border: none;
        background: transparent;
        text-decoration: underline;
        color: var(--link-color, #6cb4ee);
        font-size: 0.82rem;
        padding: 2px 4px;
        white-space: nowrap;
    }
    .filter-reset-btn:hover {
        color: var(--text-primary, #fff);
    }

    /* --- aus der Listen-CSS (52em-Block: Betragsstufen-Pills als Nav-Scroll-Strip + Masken + Drag-to-scroll) --- */
    @media (max-width: 52em) {
        .vergleich-dashboard .laufzeit-nav {
            flex-wrap: nowrap;
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
            scroll-snap-type: x mandatory;
            /* Angleichung an Tabelle und Liste (Audit A-7.1 / Phase K6, Rollout Tagesgeld
               CT-0148 2026-08-26). ACHTUNG — die Aenderungsrichtung ist hier eine ANDERE
               als in den Schwester-Views, der Kommentar dort passt NICHT auf diese Datei:

               NEU ist `safe center`. Die `flex-start`-Zeile darueber ist Bestand und war
               bis dahin die einzige Ausrichtung dieser Leiste. Ein Gefahrenzustand
               "linke Pills bei Overflow unerreichbar" hat hier deshalb NIE bestanden —
               das inline gesetzte `flex-start` (0,2,0) schlug immer schon das zentrale
               `center` aus vergleich.min.css (0,1,0).

               Gemessene Folge in Chromium (>= 115, versteht `safe`): die Leiste wechselt
               unter 52em von linksbuendig auf ZENTRIERT, sobald alle Pills passen; bei
               Overflow faellt `safe` von selbst auf flex-start zurueck, die linken Pills
               bleiben also erreichbar. In WebKit/Safari und Chrome < 115 aendert sich
               nichts: die `safe`-Deklaration wird dort komplett verworfen, es bleibt bei
               `flex-start`. Das ist der Zweck der Reihenfolge.

               Tabelle und Liste zentrieren denselben Fall ueber Auto-Margins an der
               ersten/letzten Pill; die hat diese View nicht, hier ist `justify-content`
               der einzige Mechanismus. Die Auto-Margins waeren der engine-unabhaengige
               Weg und sind als Cross-View-Politur vorgemerkt. */
            justify-content: flex-start;
            justify-content: safe center;
            gap: 0.25em;
            padding: 0.2em;
            width: 100%;
            max-width: 100%;
        }
        .vergleich-dashboard .laufzeit-nav::-webkit-scrollbar { display: none; }
        .vergleich-dashboard .laufzeit-nav .laufzeit-pill {
            min-height: 2.75em;
            scroll-snap-align: center;
            flex-shrink: 0;
            padding-left: 0.75em;
            padding-right: 0.75em;
        }
        .nav-scroll-wrapper {
            -webkit-mask-image: linear-gradient(to right, transparent, black 1.5em, black calc(100% - 1.5em), transparent);
            mask-image: linear-gradient(to right, transparent, black 1.5em, black calc(100% - 1.5em), transparent);
        }
        .nav-scroll-wrapper.scroll-start {
            -webkit-mask-image: linear-gradient(to right, black, black calc(100% - 1.5em), transparent);
            mask-image: linear-gradient(to right, black, black calc(100% - 1.5em), transparent);
        }
        .nav-scroll-wrapper.scroll-end {
            -webkit-mask-image: linear-gradient(to right, transparent, black 1.5em, black);
            mask-image: linear-gradient(to right, transparent, black 1.5em, black);
        }
        .nav-scroll-wrapper.scroll-start.scroll-end {
            -webkit-mask-image: none;
            mask-image: none;
        }
    }
    @media (max-width: 52em) and (hover: hover) and (pointer: fine) {
        .vergleich-dashboard .laufzeit-nav { cursor: grab; }
        .vergleich-dashboard .laufzeit-nav.is-dragging {
            cursor: grabbing;
            scroll-behavior: auto;
            user-select: none;
        }
        .vergleich-dashboard .laufzeit-nav.is-dragging .laufzeit-pill { pointer-events: none; }
    }

    /* --- aus der Listen-CSS (Tablet-Responsive der Leiste + Panel; nur leisten-/panel-relevante Regeln) --- */
    @media (max-width: 52em) {
        .vergleich-dashboard { padding: 0.75em; }
        .vergleich-dashboard .filter-section { flex-direction: column; align-items: center; }
        .vergleich-dashboard .filter-group { width: 100%; justify-content: center; }
        .vergleich-dashboard .filter-row { grid-template-columns: 1fr; }
        .vergleich-dashboard .filter-column-separator { border-left: none; padding-left: 0; border-top: 1px solid rgba(255,255,255,0.1); padding-top: 0.75rem; }
        .vergleich-dashboard .aktive-filter-hinweis { flex-wrap: wrap; font-size: 0.875rem; }
    }

    /* CT-0007 (2026-08-21): Pendant zum 52em-Block oben. Der gilt auch unterhalb 38em und
       schlaegt dort per Quellreihenfolge die zentrale <=38em-Regel aus vergleich.min.css
       (beide Spezifitaet 0,1,0, diese Datei wird nach vergleich.min.css geladen). Ohne dieses Pendant blieben
       hier 0.75em = 9,60px stehen statt der 6,40px des uebrigen Bestands (live gemessen
       2026-08-21). Wert wortgleich zur Listen-/Tabellen-Schwester. */
    @media (max-width: 38em) {
        .vergleich-dashboard { padding: 0.5em; }
    }

    /* --- aus der Listen-CSS (#hilfe-Icon-Farben Ruhe/Hover) --- */
    #hilfe .icon { color: #A9F6DB; }
    #hilfe a:hover .icon { color: #DFFDF2; }
    /* --- Diagramm-Glyphe: eigenes Inline-SVG "Skyline-Silhouette" (V4, analog Festgeld
           .zg-view-icon aus diagramm-festgeld-core.inc.php Z.689-696). Die zentralen
           .icon-Regeln (position:absolute, font-size:3em, negative Margins, left-Offsets)
           treffen auch unser i.icon -> Basis-Regel neutralisiert position/margin/left
           komplett und spiegelt die Groessen-Kaskade der Fontello-Pendants. --- */
    #hilfe .zg-view-icon { display: block; position: static; margin: 0 auto; width: 1.3em; line-height: 1; font-size: 1.85em; }
    #hilfe .zg-view-icon svg { width: 1.3em; height: 0.91em; vertical-align: -0.08em; display: inline-block; }
    @media only screen and (max-width: 88em) {
        #hilfe .zg-view-icon { font-size: 1.3em; }
    }
    @media only screen and (max-width: 72em) {
        #hilfe .zg-view-icon { font-size: 1.2em; position: static; margin: 0; }
    }

    /* --- aus der Listen-CSS (Focus-Visible der Betrags-Pills; Sortier-Buttons hier ergaenzt) ---
       `.sort-btn` nachgezogen (A1, CT-0148 2026-08-26): als <button> erbt er den
       globalen `a:focus-visible` aus style.css NICHT und trug hier als einzige der
       drei Tagesgeld-Views noch den UA-Ring. Der ist nicht barrierefrei kaputt
       (3,58:1 default / 18,04:1 hell, gemessen — ganzer UA-Ring), aber eine Optik-Inkonsistenz zu
       Tabelle und Liste. Hell-Modus braucht keine eigene Regel — `--accent` wird
       zentral in vergleich.min.css remappt. */
    .vergleich-dashboard .laufzeit-pill:focus-visible,
    .vergleich-dashboard .sort-btn:focus-visible {
        outline: 2px solid var(--accent, #A9F6DB);
        outline-offset: 0.125em;
    }

    /* --- aus der Listen-CSS (Bar-Indikator-Toggles: Sonderzins = grow, Ausland = dash,
           inkl. Zustaende, Pfeil, Tooltip, Touch-Ausnahme, Mobile-Abstand, reduced-motion) --- */
    .vergleich-dashboard .balken-toggle {
        position: relative;
        display: flex; align-items: center; gap: 1em;
        width: fit-content;
        border: none; background: transparent; cursor: pointer;
        padding: 0.25em 0; margin: 0; font-family: inherit; line-height: 1;
    }
    .vergleich-dashboard .balken-toggle-state {
        font-size: 14px; font-weight: 700; width: 2.125em;
        text-align: left; color: #F1F6FC; flex: none;
    }
    .vergleich-dashboard .balken-toggle-bars { display: flex; gap: 0.25em; }
    .vergleich-dashboard .balken-toggle-arrow {
        display: inline-flex; flex: none;
        color: #DCEBF8;
    }
    .vergleich-dashboard .balken-toggle-arrow svg { display: block; }

    /* Auslandsanlagen - Dash-Indikator: Fuellstand (8/13 -> 13/13) */
    .vergleich-dashboard .balken-toggle-bars-dash { align-items: center; }
    .vergleich-dashboard .balken-toggle-bars-dash .balken-toggle-bar {
        flex: none; width: 0.3125em; height: 0.625em; border-radius: 0.0625em;
        background: rgba(4,36,64,0.42); transition: background 0.18s ease;
    }
    .vergleich-dashboard .balken-toggle[data-state="off"] .balken-toggle-bars-dash .balken-toggle-bar:nth-child(-n+8) { background: #DCEBF8; }
    .vergleich-dashboard .balken-toggle[data-state="on"] .balken-toggle-bars-dash .balken-toggle-bar { background: #DCEBF8; }

    /* Sonderzinsen - Balken-Indikator: Hoehe waechst (8px -> 13px) */
    .vergleich-dashboard .balken-toggle-bars-grow { align-items: flex-end; height: 0.8125em; margin-bottom: 0.0625em; }
    .vergleich-dashboard .balken-toggle-bars-grow .balken-toggle-bar {
        flex: none; width: 0.3125em; height: 0.5em; border-radius: 0.0625em;
        background: rgba(4,36,64,0.42); transition: height 0.2s ease, background 0.2s ease;
    }
    /* Ja-Zustand (Politur 2): der Zuwachs (0.5em -> 0.8125em, oberste 38.5%) wird als
       goldene "Aufsatz"-Spitze gefaerbt — gleiche Semantik wie die Aufsatz-Segmente
       der Tuerme (Sockel bleibt im bisherigen Hell-Blau). */
    .vergleich-dashboard .balken-toggle[data-state="on"] .balken-toggle-bars-grow .balken-toggle-bar { height: 0.8125em; background: linear-gradient(to top, #DCEBF8 61.5%, #ECBA13 61.5%); }

    /* Sonderzins-Hervorhebung (Politur 2): handgezeichnete Unterstreichung in der
       Gold-Akzentfarbe der Aufsatz-Segmente. Ruhezustand = fertig gezeichnet;
       .sz-anim (nur Erstaufruf je Session, IIFE unten) zeichnet den Strich einmal. */
    .vergleich-dashboard .sz-wort { position: relative; display: inline-block; }
    .vergleich-dashboard .sz-strich {
        position: absolute; left: -0.15em; bottom: -0.26em;
        width: calc(100% + 0.3em); height: 0.45em;
        color: #ECBA13; pointer-events: none; overflow: visible;
    }
    #vergleich.kontrast-hell .vergleich-dashboard .sz-strich { color: #A5820A; }
    .vergleich-dashboard .sz-strich path { stroke-dasharray: 100; stroke-dashoffset: 0; }
    .vergleich-dashboard .sz-strich.sz-anim path {
        animation: szStrichZeichnen 0.7s ease-out 0.35s backwards;
    }
    @keyframes szStrichZeichnen {
        from { stroke-dashoffset: 100; }
        to   { stroke-dashoffset: 0; }
    }
    @media (prefers-reduced-motion: reduce) {
        .vergleich-dashboard .sz-strich.sz-anim path { animation: none; }
    }

    /* Breiten-Sizer (Politur 2): unsichtbare Zeile mit dem laengeren Bestands-Label,
       damit die sonderzins-filter-group so breit ist wie in Liste/Tabelle und der
       Ausland-Toggle (space-evenly) horizontal an derselben Stelle steht. Unter 52em
       (Spalten-Layout, Gruppen 100% breit) ohne Funktion und abgeschaltet, damit die
       nowrap-Zeile schmale Viewports nicht aufsprengt. */
    .vergleich-dashboard .sonderzins-filter-group .label-sizer {
        display: block; height: 0; overflow: hidden;
        visibility: hidden; white-space: nowrap;
    }
    @media (max-width: 52em) {
        .vergleich-dashboard .sonderzins-filter-group .label-sizer { display: none; }
    }

    .vergleich-dashboard .balken-toggle[data-tooltip]::after {
        content: attr(data-tooltip);
        position: absolute;
        top: calc(100% + 0.5em);
        right: 0;
        width: max-content;
        max-width: 16em;
        padding: 0.5em 0.75em;
        background: rgba(15, 20, 30, 0.95);
        color: #fff;
        font-size: 0.75em;
        line-height: 1.4;
        border-radius: 0.375em;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
        backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
        white-space: normal;
        text-align: left;
        pointer-events: none;
        opacity: 0;
        transform: translateY(-0.25em);
        transition: opacity 0.15s ease, transform 0.15s ease;
        z-index: 100;
    }
    .vergleich-dashboard .balken-toggle[data-tooltip]:hover::after,
    .vergleich-dashboard .balken-toggle[data-tooltip]:focus-visible::after {
        opacity: 1;
        transform: translateY(0);
    }
    @media (hover: none) {
        .vergleich-dashboard .balken-toggle[data-tooltip]:hover::after { opacity: 0; }
    }
    @media (max-width: 48em) {
        .vergleich-dashboard .filter-section .sonderzins-filter-group,
        .vergleich-dashboard .filter-section .ausland-filter-group { margin-top: var(--space-sm); }
    }
    @media (prefers-reduced-motion: reduce) {
        .vergleich-dashboard .balken-toggle-bar,
        .vergleich-dashboard .balken-toggle-arrow { transition: none; }
    }

    /* --- aus der Listen-CSS (Europakarte-Laenderfilter: Buehne, Land-/Marker-Zustaende,
           Presets, Glas-Spalten, Tooltip, Responsive) --- */
    .vergleich-dashboard .ek-sektion { position: relative; overflow: hidden; margin-left: -1.5em; margin-right: -1.5em; padding: var(--space-md) calc(var(--space-md) + 1.5em); background: linear-gradient(160deg, rgba(10,48,82,0.88), rgba(14,64,108,0.78)); border: 1px solid var(--border); border-left: 0; border-right: 0; min-height: 27em; display: flex; flex-direction: column; justify-content: center; }
    .ek-kopf { flex: 0 0 auto; }
    .ek-karte-wrap { position: absolute; inset: 0; z-index: 0; pointer-events: none; display: flex; align-items: center; justify-content: center; }
    .ek-karte-wrap svg { width: 100%; height: 100%; }
    .ek-karte-wrap .ek-land, .ek-karte-wrap .ek-marker { pointer-events: auto; }
    .ek-kopf, .ek-spalten { position: relative; z-index: 1; }
    .ek-kopf, .ek-spalten { pointer-events: none; }
    .ek-kopf > *, .ek-spalten .filter-column { pointer-events: auto; }
    .ek-silhouette path { fill: rgba(255,255,255,0.07); }
    .ek-land { fill: rgba(255,255,255,0.2); stroke: rgba(10,48,82,0.9); stroke-width: .5; cursor: pointer; transition: fill var(--transition-base), filter var(--transition-base); }
    .ek-land.ek-gewaehlt { fill: var(--primary); filter: drop-shadow(0 0 6px rgba(0,112,192,0.55)); }
    .ek-land:not(.ek-gesperrt):not(.ek-gewaehlt):hover { fill: rgba(0,112,192,0.45); }
    .ek-land.ek-gesperrt { fill: rgba(255,255,255,0.02); cursor: default; }
    .ek-marker { fill: rgba(255,255,255,0.14); stroke: rgba(255,255,255,0.55); stroke-width: .5; cursor: pointer; transition: fill var(--transition-base), filter var(--transition-base); }
    .ek-marker.ek-gewaehlt { fill: var(--primary); filter: drop-shadow(0 0 6px rgba(0,112,192,0.55)); }
    .ek-marker:not(.ek-gesperrt):not(.ek-gewaehlt):hover { fill: rgba(0,112,192,0.45); }
    .ek-marker.ek-gesperrt { fill: rgba(255,255,255,0.05); cursor: default; }
    @keyframes ekPop { 0% { opacity: .55; } 100% { opacity: 1; } }
    .ek-pop { animation: ekPop 250ms ease; }
    .ek-kopf { display: flex; flex-wrap: wrap; gap: .5em .75em; margin-bottom: .75em; align-items: center; }
    .ek-presets { display: inline-flex; flex-wrap: wrap; gap: .3em; align-items: center; }
    .ek-presets-label { color: var(--text-secondary); font-size: .75em; margin-right: .2em; }
    .ek-preset-btn {
        cursor: pointer; font: inherit; font-size: .75em;
        padding: .3em .85em; border-radius: 1.4em; color: rgba(255,255,255,0.85);
        background: transparent; border: 1px solid rgba(255,255,255,0.3);
        transition: background var(--transition-base), border-color var(--transition-base);
    }
    .ek-preset-btn:hover { background: rgba(169,246,219,0.25); border-color: rgba(169,246,219,0.5); }
    .ek-zaehler { color: var(--text-secondary); font-size: .85em; margin-left: auto; align-self: center; }
    .ek-spalten { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2em, 24%, 16em); row-gap: var(--space-md); }
    .ek-spalten .filter-column { background: rgba(10,48,82,0.26); backdrop-filter: blur(1px); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: .75em; }
    .ek-spalte { cursor: pointer; transition: background var(--transition-base), border-color var(--transition-base); }
    .ek-spalte:not(.ek-spalte-aktiv):hover { border-color: rgba(255,255,255,0.35); }
    .ek-spalten .ek-spalte-aktiv { background: rgba(169,246,219,0.15); border-color: var(--accent); }
    .ek-spalte-kopf { display: block; width: 100%; background: none; border: none; padding: 0; margin: 0; font: inherit; color: inherit; text-align: left; cursor: pointer; }
    .ek-spalten .filter-column-separator { margin: 0; }
    .ek-tooltip { position: absolute; z-index: 2; pointer-events: none; background: rgba(10,37,64,0.92); color: #fff; padding: .3em .6em; border-radius: .4em; font-size: .8em; white-space: nowrap; opacity: 0; transition: opacity 150ms ease; }
    .ek-tooltip.ek-sichtbar { opacity: 1; }
    /* Untere Kante 50.01em statt 50em (Audit A-7.2 / Phase K6, Rollout Tagesgeld
       CT-0148 2026-08-26): exakt 800px traf sonst diesen Block UND den
       `max-width: 50em`-Block darunter gleichzeitig. */
    @media (min-width: 50.01em) and (max-width: 64em) {
        .ek-spalten .checkbox-group-wrap { grid-template-columns: 1fr; }
    }
    @media (max-width: 50em) {
        .ek-spalten { grid-template-columns: 1fr; }
        .ek-karte-wrap { opacity: .18; }
    }

    /* --- aus der Listen-CSS (Hochkontrast-Hell Ebene C, produktspezifische Hardcode-Overrides).
           NUR leisten-/panel-/europakarte-relevante Regeln; listen-card-spezifische
           Overrides (Rang-Chip, Zins-Balken, Merkmal-Icons, cardgift, Erfahrungsberichte,
           CTA) bewusst weggelassen. ALLE per #vergleich.kontrast-hell-Praefix, NIE !important. --- */
    #vergleich.kontrast-hell .vergleich-dashboard .laufzeit-nav { background: rgba(0,82,141,0.06); }
    #vergleich.kontrast-hell .vergleich-dashboard .laufzeit-pill { color: #003A66; }
    #vergleich.kontrast-hell .vergleich-dashboard .laufzeit-pill:hover { background: rgba(0,82,141,0.08); color: #003A66; }
    #vergleich.kontrast-hell .vergleich-dashboard .laufzeit-pill.active { background: #0070C0; color: #fff; }
    #vergleich.kontrast-hell .vergleich-dashboard .filter-label,
    #vergleich.kontrast-hell .vergleich-dashboard .filter-column-title { color: #003A66; }
    #vergleich.kontrast-hell .vergleich-dashboard .toggle-group,
    #vergleich.kontrast-hell .vergleich-dashboard .filter-group .toggle-group { background: rgba(0,82,141,0.06); }
    #vergleich.kontrast-hell .vergleich-dashboard .toggle-btn { color: #003A66; }
    #vergleich.kontrast-hell .vergleich-dashboard .toggle-btn:hover { background: rgba(0,82,141,0.08); color: #003A66; }
    #vergleich.kontrast-hell .vergleich-dashboard .toggle-btn.active { background: #0070C0; color: #fff; }

    #vergleich.kontrast-hell .vergleich-dashboard .balken-toggle-state { color: #003A66; }
    #vergleich.kontrast-hell .vergleich-dashboard .balken-toggle-arrow { color: #00528D; }
    #vergleich.kontrast-hell .vergleich-dashboard .balken-toggle[data-state="on"] .balken-toggle-bars-grow .balken-toggle-bar,
    #vergleich.kontrast-hell .vergleich-dashboard .balken-toggle[data-state="on"] .balken-toggle-bars-dash .balken-toggle-bar,
    #vergleich.kontrast-hell .vergleich-dashboard .balken-toggle[data-state="off"] .balken-toggle-bars-dash .balken-toggle-bar:nth-child(-n+8) { background: #0070C0; }
    /* Politur 2: goldene Aufsatz-Spitze auch im Hell-Modus (abgedunkeltes Gold wie
       Aufsatz-Palette hell); steht nach der Sammelregel darueber und gewinnt daher. */
    #vergleich.kontrast-hell .vergleich-dashboard .balken-toggle[data-state="on"] .balken-toggle-bars-grow .balken-toggle-bar { background: linear-gradient(to top, #0070C0 61.5%, #A5820A 61.5%); }

    #vergleich.kontrast-hell .anpassen-filter-btn { background: #F7F9FC; box-shadow: 0 0.125em 0.5em rgba(0,82,141,0.25); }
    #vergleich.kontrast-hell .anpassen-filter-btn:hover, #vergleich.kontrast-hell .anpassen-filter-btn.open { background: rgba(0,112,192,0.14); }
    #vergleich.kontrast-hell .anpassen-filter-btn:focus-visible { outline-color: #0070C0; }
    #vergleich.kontrast-hell .anpassen-filter-btn .ecke-tl { border-top-color: #0070C0; border-left-color: #0070C0; }
    #vergleich.kontrast-hell .anpassen-filter-btn .ecke-tr { border-top-color: #0070C0; border-right-color: #0070C0; }
    #vergleich.kontrast-hell .anpassen-filter-btn .ecke-bl { border-bottom-color: #0070C0; border-left-color: #0070C0; }
    #vergleich.kontrast-hell .anpassen-filter-btn .ecke-br { border-bottom-color: #0070C0; border-right-color: #0070C0; }
    #vergleich.kontrast-hell .anpassen-filter-btn .icon-wrap .icon-sliders { color: #00528D; }
    #vergleich.kontrast-hell .anpassen-badge { background: #0070C0; color: #fff; }

    #vergleich.kontrast-hell .anpassen-panel {
        background: #F7F9FC; border-color: rgba(0,82,141,0.35);
        box-shadow: 0 0.5em 2.5em rgba(0,0,0,0.25), 0 0.125em 0.5em rgba(0,0,0,0.15);
    }
    #vergleich.kontrast-hell .filter-panel-titel { color: #00528D; border-bottom-color: rgba(0,82,141,0.18); }
    #vergleich.kontrast-hell .eingrenzungsfilter { border-top-color: rgba(0,82,141,0.12); }
    #vergleich.kontrast-hell .filter-column-separator { border-left-color: rgba(0,82,141,0.12); }
    #vergleich.kontrast-hell .filter-row-separator { border-top-color: rgba(0,82,141,0.12); }
    #vergleich.kontrast-hell .aktive-filter-hinweis { background: rgba(0,82,141,0.08); }
    #vergleich.kontrast-hell .filter-reset-btn { color: #00528D; }
    #vergleich.kontrast-hell .filter-reset-btn:hover { color: #003A66; }
    #vergleich.kontrast-hell .filter-checkbox { color: #333; }
    #vergleich.kontrast-hell .filter-checkbox:hover { color: #003A66; }
    #vergleich.kontrast-hell .vergleich-dashboard .filter-checkbox input[type="checkbox"] { accent-color: #0070C0; }
    #vergleich.kontrast-hell .panel-close-btn { background: rgba(0,82,141,0.10); color: #00528D; }
    #vergleich.kontrast-hell .panel-close-btn:hover, #vergleich.kontrast-hell .panel-close-btn:focus { background: rgba(0,82,141,0.18); color: #003A66; }

    /* Europakarte-Buehne: bewusste dunkle Marken-Ausnahme (nicht umfaerben). */
    #vergleich.kontrast-hell .ek-sektion {
        --text-primary: #fff; --text-secondary: rgba(255,255,255,0.85); --text-muted: rgba(255,255,255,0.6);
        --accent: #00d4aa; --accent-light: #00d4aa;
    }
    #vergleich.kontrast-hell .ek-sektion .filter-label,
    #vergleich.kontrast-hell .ek-sektion .filter-column-title { color: rgba(255,255,255,0.85); }

    /* Footer-Links (vergleich.min.css: hartkodiert Tuerkis) -> Blau */
    #vergleich.kontrast-hell .vergleich-dashboard .footer-line a { color: #00528D; }
    #vergleich.kontrast-hell .vergleich-dashboard .footer-line a:hover { color: #0070C0; }

    /* --- aus der Listen-CSS (Panel Mobile Full-Bleed, <=38em) --- */
    @media (max-width: 38em) {
        .anpassen-panel { width: 95vw; max-width: none; margin: -3em 0 1em calc(50% - 47.5vw); }
    }
    /* ===================== Ende Konsistenz-Abschnitt ===================== */

    /* === Icon-Zeile 2026-08-19 (DE-Rollout Phase 3) ===
       Kontrast-Toggle + "weitere Filter" in EINER Zeile, buendig unter den
       #hilfe-Glyphen (Bezug ist die Glyph-MITTE, nicht die Kante). Die
       Toggle-Basis liegt zentral in vergleich.min.css; hier steht nur der
       Override per #vergleich-Praefix - die min.css bleibt unveraendert,
       weil sie fuer alle Produkte des Markts gilt.
       ZWEI Desktop-Baender: DE hat bei 88em eine Glyphen-Stufe, die die
       Icon-MITTEN verschiebt (AT hat sie nicht). Konstanten live kalibriert
       fuer Icon-Gruppe A (vier Glyphen, drittes ist das zg-view-icon mit
       eigener 88em-Stufe); Restfehler < 0,04px ueber die Stuetzbreiten
       1200/1366/1400/1408/1420/1500/1920. Die Glyphen-CSS selbst bleibt
       unangetastet - die Kalibrierung ist auf sie ausgelegt. */
    #vergleich .kontrast-zeile {
        display: block; position: relative;
        height: 0; margin: 0; overflow: visible;
        z-index: 1;
    }
    #vergleich .kontrast-toggle {
        position: absolute; right: calc(0.403% + 1.439em); top: 0.98em;
        width: 2.51em; height: 2.09em; padding: 0;
        display: inline-flex; align-items: center; justify-content: center;
        font-size: 0.85rem; font-weight: 600; line-height: 1.2;
        letter-spacing: 0.02em; color: #e8f2fb;
        background: rgba(9,87,143,0.62); box-shadow: 0 0.125em 0.5em rgba(0,0,0,0.25);
        border: 0; border-radius: 0; cursor: pointer;
        white-space: nowrap; -webkit-tap-highlight-color: transparent;
        transition: background 150ms ease, color 150ms ease;
    }
    #vergleich .vergleich-dashboard { position: relative; }
    #vergleich .anpassen-filter-btn {
        bottom: auto; top: calc(0.98em - var(--space-md)); right: calc(7.225em - 0.612%);
        width: 2.51em; height: 2.09em; font-size: 0.85rem;
    }
    #vergleich .anpassen-filter-btn .icon-wrap .icon-sliders { font-size: 1.05em; }
    #vergleich .anpassen-filter-btn .ecke { width: 0.7em; height: 0.7em; }
    #vergleich .anpassen-filter-btn .ecke-tl { top: 0.22em; left: 0.22em; }
    #vergleich .anpassen-filter-btn .ecke-tr { top: 0.22em; right: 0.22em; }
    #vergleich .anpassen-filter-btn .ecke-bl { bottom: 0.22em; left: 0.22em; }
    #vergleich .anpassen-filter-btn .ecke-br { bottom: 0.22em; right: 0.22em; }
    @media (max-width: 88em) {
        #vergleich .kontrast-toggle { right: calc(0.403% + 1.100em); }
        #vergleich .anpassen-filter-btn { right: calc(6.035em - 0.609%); }
    }
    @media (max-width: 72em) {
        #vergleich .kontrast-toggle { top: 0.97em; right: 0.85em; }
        #vergleich .anpassen-filter-btn { top: calc(0.97em - var(--space-md)); right: 3.92em; }
    }
    @media (max-width: 38em) {
        #vergleich .kontrast-toggle { top: 0.4em; right: 0.6em; }
        #vergleich .anpassen-filter-btn { top: calc(0.4em - var(--space-sm)); right: 4.13em; }
        #vergleich .vergleich-dashboard { padding-top: calc(var(--space-sm) + 0.5rem); }
    }
    /* === Ende Icon-Zeile === */
