﻿/* 20251005 =============================================================================
   THEME-BRIDGE / BASIS-TOKENS
   -----------------------------------------------------------------------------
   .new-design-theme:
   - Beschreibung: Wrapper, der alle abgeleiteten Design-Tokens setzt und so
     das Look&Feel an die globalen Variablen bindet, die dein JS-Toggler ändert.
   - Einsatz: Einmal möglichst weit außen in deinem Layout (z. B. <body> oder
     oberstes Layout-Div). Alle Kind-Elemente lesen dann die Tokens.
   - Optik: Keine sichtbare Optik. Lediglich Variablenbereitstellung.
============================================================================= */
.new-design-theme {
    /* Primäre Tokens aus Euren JS-umschaltbaren Variablen (NUR diese, keine Def-Werte) */
    --nd-fg: var(--global-WebTxtCol); /* Primäre Textfarbe (automatisch Light/Dark) */
    --nd-bg: var(--global-WebBGCol); /* Grundhintergrund (automatisch Light/Dark) */

    --nd-surface: var(--global-WebBGCol_1); /* Oberflächen-Farbe (Karten, Inputs) */
    --nd-surface2: var(--global-WebBGCol_2); /* Zweite Oberfläche / zarte Akzente */

    --nd-accent: var(--global-ZwTiBGCol); /* Akzentfarbe (Headerbänder, Primary-Buttons) */
    --nd-on-accent: var(--global-ZwTiTxtCol); /* Textfarbe auf Akzentflächen */
    /* Abgeleitete Tokens (weich gemischt, keine starren Farben) */
    --nd-muted: var(--nd-fg); /* Dezentere Textfarbe */
    --nd-border: var(--nd-surface2); /* Zarte Rahmenfarbe */

    --nd-shadow-col: rgba(0,0,0,.12); /* Grundschatten */
    --nd-shadow-col-strong: rgba(0,0,0,.22); /* Hover/Focus-Schatten */

    --nd-hover-overlay: rgba(0,0,0,.06); /* Leichter Hover-Film */
    --nd-focus: var(--nd-accent); /* Fokusring */

    --nd-radius: 12px; /* Standard-Radius für Ecken */
    --nd-pad: 10px; /* Standard-Padding */
    --nd-speed: 160ms; /* Standard-Transitiondauer */
}

/* =============================================================================
   Basis-Div
   -----------------------------------------------------------------------------
   leicht transparent mit ein bissal Box-Shadow
============================================================================= */

.new-design-base-container {
    width: 100%;
    margin: 8px auto;
    /* Kein Opacity am Container – nur ::before ist leicht transparent */
    background: transparent; /* Hintergrund kommt über ::before */
    position: relative; /* Anker für ::before */
    isolation: isolate; /* eigener Stacking-Context */
    /* subtiler Hintergrundeffekt – Browser ohne Support ignorieren es */
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    box-shadow: 0 6px 24px rgba(0,0,0,0.12);
    font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    z-index: 102;
    /* optional (empfohlen für saubere Kanten) */
    border-radius: 3px;
    overflow: hidden;
}

    /* Halbtransparenter Flächen-Hintergrund in --nd-surface (nur die Fläche, nicht der Inhalt) */
    .new-design-base-container::before {
        content: "";
        position: absolute;
        inset: 0;
        /* OPAK + minimal transparent: hell und kaum Durchschein-Effekt */
        background-color: var(--global-WebBGCol); /* nimmt deine Theme-Farbe */
        opacity: 0.82; /* ~0.8% Durchsicht: „kaum transparent“ */
        /* Mini-Aufhellung, damit der Hintergrund HELL bleibt,
       selbst wenn darunter dunkle Inhalte liegen (kein color-mix, breit unterstützt) */
        box-shadow: inset 0 0 0 9999px rgba(255, 255, 255, 0.04);
        border-radius: inherit; /* falls der Container abgerundete Ecken hat */
        pointer-events: none; /* keine Klicks blockieren */
        z-index: 0; /* hinter dem Container-Inhalt, aber innerhalb des Containers */
    }

    /* Inhalt sicher über dem ::before */
    .new-design-base-container > * {
        position: relative;
        z-index: 1;
    }



/* =============================================================================
   MICRO-INTERAKTIONEN (gemeinsam)
   -----------------------------------------------------------------------------
   .new-design-hoverable:
   - Beschreibung: Einheitliche Transition + Schatten + leichte Bewegung beim Hover.
   - Einsatz: Universell als Zusatzklasse auf Card, Button, Input, Badge, usw.
   - Optik: Sanfte Schatten; beim Hover minimaler Lift (translateY -1px).
============================================================================= */
.new-design-hoverable {
    transition: background-color var(--nd-speed), box-shadow var(--nd-speed), transform var(--nd-speed), border-color var(--nd-speed), color var(--nd-speed);
    box-shadow: 0 1px 2px var(--nd-shadow-col), 0 6px 16px var(--nd-shadow-col);
}

    .new-design-hoverable:hover {
        box-shadow: 0 2px 4px var(--nd-shadow-col), 0 10px 22px var(--nd-shadow-col-strong);
        transform: translateY(-1px);
    }

/* =============================================================================
   TYPOGRAFIE
   -----------------------------------------------------------------------------
   .new-design-text:
   - Beschreibung: Standard-Textstil (Fließtext).
   - Einsatz: <p>, <div>, <span>, Container mit Textinhalten.
   - Optik: Primäre Textfarbe, line-height 1.5.

   .new-design-text--muted:
   - Beschreibung: Abgedunkelt/dezent für Meta-Infos.
   - Einsatz: <small>, Labels, Secondary-Infos.
   - Optik: Gedämpfte Farbe auf Basis von --nd-muted.

   .new-design-h1 / .new-design-h2:
   - Beschreibung: Headline-Hierarchie mit responsiven Größen.
   - Einsatz: <h1>, <h2> oder <div role="heading">.
   - Optik: Fett, leichtes Letter-Spacing, skaliert responsive.
============================================================================= */
.new-design-text {
    color: var(--nd-fg);
    line-height: 1.5;
}

.new-design-text--muted {
    color: var(--nd-muted);
    opacity: .75;
}

.new-design-h1 {
    color: var(--nd-fg);
    font-weight: 800;
    letter-spacing: .2px;
    font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem);
}

.new-design-h2 {
    color: var(--nd-fg);
    font-weight: 700;
    letter-spacing: .2px;
    font-size: clamp(1.3rem, 1.0rem + .8vw, 1.7rem);
}

.new-design-label { /* Für Feldbeschriftungen (über Inputs, in Formularzeilen etc.) */
    color: var(--nd-muted);
    opacity: .8;
    font-weight: 600;
    font-size: .95rem;
}

/* =============================================================================
   LINKS
   -----------------------------------------------------------------------------
   .new-design-link:
   - Beschreibung: Markenlink mit dezenter Unterstreichungs-Animation.
   - Einsatz: <a>, oder <button role="link">.
   - Optik: Akzentfarbe; beim Hover kräftiger + animierter underline-Streifen.
============================================================================= */
.new-design-link {
    color: var(--nd-accent);
    text-decoration: none;
    position: relative;
    transition: color var(--nd-speed);
}

    .new-design-link::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: -2px;
        width: 100%;
        height: 2px;
        background: var(--nd-accent);
        opacity: .45;
        transform: scaleX(.25);
        transform-origin: left;
        transition: transform var(--nd-speed), opacity var(--nd-speed);
    }

    .new-design-link:hover {
        color: var(--nd-accent);
    }

        .new-design-link:hover::after {
            transform: scaleX(1);
            opacity: .7;
        }

/* =============================================================================
   CARD / PANEL / ANZEIGE
   -----------------------------------------------------------------------------
   .new-design-card:
   - Beschreibung: Universal-Karte/Panel für Inhalte, Boxen, Container.
   - Einsatz: <section>, <article>, <div>, Formularboxen, Listencontainer.
   - Optik: Zarte Oberflächenmischung, sanfter Rahmen, weiche Schatten.
   - Interaktion: Mit .new-design-hoverable -> leichter Lift beim Hover.
============================================================================= */
.new-design-card {
    background: var(--nd-surface);
    color: var(--nd-fg);
    border: 1px solid var(--nd-border);
    border-radius: var(--nd-radius);
    padding: calc(var(--nd-pad) + 2px) calc(var(--nd-pad) + 4px);
}

    .new-design-card:hover {
        /* leichte Betonung über Schatten via .new-design-hoverable */
    }
/* Tipp: <div class="new-design-card new-design-hoverable">…</div> */

/* =============================================================================
   KEY/VALUE-GITTER (Daten-Anzeigen)
   -----------------------------------------------------------------------------
   .new-design-kv:
   - Beschreibung: Zweispaltiges Layout für „Bezeichnung : Wert“.
   - Einsatz: IBAN/BIC-Zeilen, Metadaten, technische Attribute.
   - Optik: Linke Spalte beschriftet (muted), rechte Spalte der Wert (fg).
============================================================================= */
.new-design-kv {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 8px 14px;
    align-items: start;
}

.new-design-kv__key {
    color: var(--nd-muted);
    font-weight: 600;
}

.new-design-kv__value {
    color: var(--nd-fg);
}

/* =============================================================================
   READONLY-DISPLAY-FELD
   -----------------------------------------------------------------------------
   .new-design-display:
   - Beschreibung: Kompakte, nur-lese Anzeige-Zelle für Werte.
   - Einsatz: Readonly-Felder in Formularen, Zusammenfassungen.
   - Optik: Leichte Oberfläche, zarter Rahmen, minimaler Hover-Aufheller.
============================================================================= */
.new-design-display {
    background: var(--nd-surface2);
    color: var(--nd-fg);
    border: 1px solid var(--nd-border);
    border-radius: 10px;
    padding: 8px 10px;
}

    .new-design-display:hover {
        /* dezente Betonung über Schatten/Opacity möglich */
        opacity: .98;
    }

/* =============================================================================
   BADGE / PILL
   -----------------------------------------------------------------------------
   .new-design-badge:
   - Beschreibung: Kompakte Pille, ideal für Status/Labels/Zähler.
   - Einsatz: <span>, <div> inline-block; innerhalb von Listen/Headers.
   - Optik: Akzent-Hintergrund, heller Text, leichte Schatten; Lift beim Hover.
============================================================================= */
.new-design-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    font-weight: 700;
    font-size: .85rem;
    color: var(--nd-on-accent);
    background: var(--nd-accent);
    border: 1px solid var(--nd-accent);
    transition: transform var(--nd-speed), box-shadow var(--nd-speed), background-color var(--nd-speed);
    box-shadow: 0 1px 2px var(--nd-shadow-col);
}

    .new-design-badge:hover {
        box-shadow: 0 2px 6px var(--nd-shadow-col);
        transform: translateY(-1px);
        filter: brightness(1.05);
    }

/* =============================================================================
   BUTTONS (Basis + Varianten)
   -----------------------------------------------------------------------------
   .new-design-btn:
   - Beschreibung: Grund-Buttonstil für alle Buttons/Links mit Button-Rolle.
   - Einsatz: <button>, <a role="button">, <input type="button|submit">.
   - Optik: Neutraler Surface-Hintergrund, dezenter Rahmen, kräftige Schrift.
   - Interaktion: Hover -> Aufhellung; Focus -> sichtbarer Fokusring; Active -> flacher.

   Varianten:
   - .new-design-btn--primary:
     * Akzent-Hintergrund + on-accent Text; ideal für Primäraktionen.
   - .new-design-btn--secondary:
     * Zarte Surface2-Mischung; gut für Sekundäraktionen.
   - .new-design-btn--ghost:
     * Transparenter Hintergrund, nur Text – für „leise“ Aktionen/Toolbars.
============================================================================= */
.new-design-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 10px;
    font-weight: 700;
    cursor: pointer;
    border: 1px solid var(--nd-border);
    background: var(--nd-surface);
    color: var(--nd-fg);
    text-decoration: none;
}

    .new-design-btn:hover {
        /* feiner Hover ausschließlich über Schatten/Bewegung */
    }

    .new-design-btn:active {
        transform: translateY(0);
        box-shadow: 0 1px 2px var(--nd-shadow-col);
    }

    .new-design-btn:disabled {
        opacity: .48;
        cursor: not-allowed;
    }

/* PRIMARY-Variante (Hauptaktion) */
.new-design-btn--primary {
    background: var(--nd-accent);
    color: var(--nd-on-accent);
    border-color: var(--nd-accent);
}

    .new-design-btn--primary:hover {
        filter: brightness(1.06);
    }

/* SECONDARY-Variante (Nebenaktion) */
.new-design-btn--secondary {
    background: var(--nd-surface2);
    border-color: var(--nd-border);
    color: var(--nd-fg);
}

    .new-design-btn--secondary:hover {
        filter: brightness(1.04);
    }

/* GHOST-Variante (dezente Aktion, Toolbar, Link-Button) */
.new-design-btn--ghost {
    background: transparent;
    color: var(--nd-fg);
    border-color: transparent;
}

    .new-design-btn--ghost:hover {
        background: var(--nd-hover-overlay);
        /* dezente Kante optional ohne Farbmix: */
        /* border-color: var(--nd-accent); */
    }

/* Einheitlicher Fokusring für alle Buttons (Tastatur-Nutzerfreundlich) */
.new-design-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--nd-focus), 0 2px 8px var(--nd-shadow-col);
}

/* =============================================================================
   FORM-ELEMENTE / EINGABEN
   -----------------------------------------------------------------------------
   .new-design-input:
   - Beschreibung: Einzeilige Texteingabe, passender Rahmen, weiche Oberfläche.
   - Einsatz: <input type="text|email|password|search|number|...">.
   - Optik: Oberflächenmischung (bg+surface), zarte Inset-Schatten, Hover-/Focus-Feedback.

   .new-design-textarea:
   - Beschreibung: Mehrzeilige Eingabe; identische Optik/Interaktionen wie Input.
   - Einsatz: <textarea>.

   .new-design-select:
   - Beschreibung: Auswahlfeld mit gleichem visuellen Stil.
   - Einsatz: <select>.

   Größen:
   - --sm / --lg: kompakter oder großzügiger, ohne das Design zu brechen.
============================================================================= */
.new-design-input,
.new-design-textarea,
.new-design-select {
    width: 100%;
    border-radius: 10px;
    border: 1px solid var(--nd-border);
    background: var(--nd-surface);
    color: var(--nd-fg);
    padding: 8px 10px;
    transition: background-color var(--nd-speed), border-color var(--nd-speed), box-shadow var(--nd-speed), transform var(--nd-speed);
    box-shadow: 0 1px 2px var(--nd-shadow-col) inset;
    font: inherit;
}

    .new-design-input::placeholder,
    .new-design-textarea::placeholder {
        color: var(--nd-fg);
        opacity: .6;
    }

    /* Hover-Feedback: leicht mehr Oberfläche + Außen-Schattierung */
    .new-design-input:hover,
    .new-design-textarea:hover,
    .new-design-select:hover {
        border-color: var(--nd-accent);
        box-shadow: 0 1px 2px var(--nd-shadow-col) inset, 0 2px 8px var(--nd-shadow-col);
    }

    /* Fokus-Feedback: Fokusring, intensiverer Rand, etwas mehr Surface */
    .new-design-input:focus-visible,
    .new-design-textarea:focus-visible,
    .new-design-select:focus-visible {
        outline: none;
        border-color: var(--nd-accent);
        box-shadow: 0 0 0 3px var(--nd-focus), 0 2px 10px var(--nd-shadow-col);
        background: var(--nd-surface);
    }

/* Größenvarianten */
.new-design-input--sm,
.new-design-select--sm {
    padding: 6px 8px;
    border-radius: 8px;
    font-size: .92rem;
}

.new-design-input--lg,
.new-design-select--lg {
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 1.05rem;
}

/* =============================================================================
   SEKTIONEN / HEADERBAND (Akzentierte Titelbereiche)
   -----------------------------------------------------------------------------
   .new-design-section:
   - Beschreibung: Block mit leicht akzentuiertem Hintergrund; ideal für Abschnitts-
     header, Panel-Titelbereiche oder zur optischen Gruppierung.
   - Einsatz: <section>, <header>, <div> über Inhaltsblöcken.
   - Optik: Mischung aus Akzent + BG; zarter Rahmen und runde Ecken.

   .new-design-section__title:
   - Beschreibung: Titeltext innerhalb der Sektion; kontrastreich auf Akzent.
   - Einsatz: <h2>, <h3>, <div role="heading"> im Inneren der Sektion.
============================================================================= */
.new-design-section {
    background: var(--nd-bg);
    color: var(--nd-fg);
    border: 1px solid var(--nd-accent);
    border-radius: var(--nd-radius);
    padding: 10px 12px;
}

.new-design-section__title {
    color: var(--nd-on-accent);
    font-weight: 800;
    letter-spacing: .3px;
    background: var(--nd-accent);
    display: inline-block;
    padding: 4px 8px;
    border-radius: 8px;
}

/* =============================================================================
   DIVIDER / TRENNLINIE
   -----------------------------------------------------------------------------
   .new-design-divider:
   - Beschreibung: Zarte, einzeilige Trennung zwischen Content-Blöcken.
   - Einsatz: <hr class="new-design-divider"> oder <div> als Linie.
   - Optik: Sehr dezente Linie auf Basis der Borderfarbe.
============================================================================= */
.new-design-divider {
    height: 1px;
    border: none;
    background: rgba(0,0,0,.12);
    margin: 10px 0;
}

/* =============================================================================
   SCROLLBEREICHE / SCROLLBAR-STYLING
   -----------------------------------------------------------------------------
   .new-design-scroll:
   - Beschreibung: Schlanke Scrollbar, die vorhandene globalen Scrollbar-Variablen
     nutzt (thumb/track). Keine starre Farbe.
   - Einsatz: Auf scrollbaren Containern (<div>, <section> mit overflow).
   - Optik: Dünner Thumb, abgerundet, mit Abstand zum Track (Border).
============================================================================= */
.new-design-scroll {
    scrollbar-width: thin; /* Firefox */
    scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-track-color);
}

    .new-design-scroll::-webkit-scrollbar {
        width: 10px;
        height: 10px;
    }

    .new-design-scroll::-webkit-scrollbar-thumb {
        background: var(--scrollbar-thumb-color);
        border-radius: 8px;
        border: 2px solid var(--scrollbar-track-color);
    }

    .new-design-scroll::-webkit-scrollbar-track {
        background: var(--scrollbar-track-color);
    }

/* =============================================================================
   BARrierefreiheit: reduzierte BEWEGUNG
   -----------------------------------------------------------------------------
   - Beschreibung: Wenn Nutzer „Bewegung reduzieren“ aktiviert haben, werden
     Transition und Translate-Effekte abgeschaltet.
   - Einsatz: Automatisch per Media Query.
============================================================================= */
@media (prefers-reduced-motion: reduce) {
    .new-design-hoverable {
        transition: none;
        transform: none !important;
    }

    .new-design-link::after {
        transition: none;
    }

    .new-design-btn, .new-design-input, .new-design-textarea, .new-design-select {
        transition: none;
    }
}
