/* ============================================================
   finanzoo – Design System
   Farbpalette: Dunkelblau #1a2744, Akzent #00c4cc, Weiß
   ============================================================ */

:root {
    --fz-bg:           #0e1a2d;
    --fz-bg-surface:   #1a2744;
    --fz-bg-card:      #1e2e50;
    --fz-border:       #253659;
    --fz-accent:       #58acec;
    --fz-accent-hover: #3d96de;
    --fz-text:         #e8edf5;
    --fz-text-muted:   #8899b8;
    --fz-text-heading: #ffffff;
    --fz-positive:     #34d399;
    --fz-negative:     #f87171;
    --fz-warning:      #fbbf24;
    --fz-radius:       8px;
    --fz-radius-lg:    14px;
    --fz-shadow:       0 2px 16px rgba(0,0,0,0.35);
    --fz-font:         'Inter', 'Segoe UI', system-ui, sans-serif;
    --fz-nav-height:   64px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 16px; scroll-behavior: smooth; }

/* ---- Globaler Seiten-Ladeindikator ---- */
.fz-page-loader {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    height: 3px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s ease;
}

.fz-page-loader--active {
    opacity: 1;
}

.fz-page-loader-bar {
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--fz-accent), #58ecf0);
    border-radius: 0 2px 2px 0;
    box-shadow: 0 0 10px var(--fz-accent);
    animation: fz-load-progress 2.5s cubic-bezier(0.1, 0.4, 0.8, 1) forwards;
}

.fz-page-loader--active .fz-page-loader-bar {
    animation: fz-load-progress 2.5s cubic-bezier(0.1, 0.4, 0.8, 1) forwards;
}

@keyframes fz-load-progress {
    0%   { width: 0%; }
    30%  { width: 50%; }
    60%  { width: 75%; }
    85%  { width: 90%; }
    100% { width: 95%; }
}

body {
    background: var(--fz-bg);
    color: var(--fz-text);
    font-family: var(--fz-font);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

a { color: var(--fz-accent); text-decoration: none; }
a:hover { color: var(--fz-accent-hover); text-decoration: underline; }

h1, h2, h3, h4 { color: var(--fz-text-heading); font-weight: 700; line-height: 1.25; }

/* ---- Layout ---- */
.fz-layout { display: flex; flex-direction: column; min-height: 100vh; }
.fz-main   { flex: 1; padding-top: var(--fz-nav-height); }

.fz-app-shell {
    flex: 1;
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 0;
}

.fz-main-app {
    padding-left: 0;
}

.fz-app-sidebar {
    position: sticky;
    top: var(--fz-nav-height);
    height: calc(100vh - var(--fz-nav-height));
    overflow-y: auto;
    border-right: 1px solid var(--fz-border);
    background: rgba(20, 33, 58, 0.92);
    padding: 1rem 0.8rem;
}

.fz-app-sidebar-head {
    padding: 0.25rem 0.5rem 0.9rem;
}

.fz-app-sidebar-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--fz-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.fz-app-sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.fz-app-sidebar-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    color: var(--fz-text);
    font-size: 0.92rem;
    border-radius: 10px;
    padding: 0.6rem 0.65rem;
    text-decoration: none;
}

.fz-app-sidebar-link-main {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.fz-app-sidebar-link .fz-icon {
    color: currentColor;
}

.fz-app-sidebar-link:hover {
    text-decoration: none;
    color: var(--fz-text-heading);
    background: rgba(88, 172, 236, 0.14);
}

.fz-app-sidebar-link-active {
    color: var(--fz-text-heading);
    background: rgba(88, 172, 236, 0.2);
    border: 1px solid rgba(88, 172, 236, 0.4);
}

.fz-app-sidebar-link small {
    color: var(--fz-text-muted);
    font-size: 0.72rem;
}

.fz-app-sidebar-link-disabled {
    opacity: 0.65;
    cursor: not-allowed;
    pointer-events: none;
}

.fz-app-sidebar-divider {
    display: block;
    height: 1px;
    margin: 0.35rem 0 0.55rem;
    background: rgba(136, 153, 184, 0.25);
}

/* ---- Navbar ---- */
.fz-navbar {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
    height: var(--fz-nav-height);
    background: var(--fz-bg-surface);
    border-bottom: 1px solid var(--fz-border);
    box-shadow: var(--fz-shadow);
}

.fz-app-search {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 320px;
}

.fz-app-search-wrap {
    position: relative;
    flex: 1;
}

.fz-app-search-input {
    width: 100%;
    height: 38px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--fz-border);
    color: var(--fz-text);
    border-radius: 8px;
    padding: 0 0.7rem;
    font-size: 0.88rem;
}

.fz-app-search-input::placeholder {
    color: var(--fz-text-muted);
}

.fz-stock-chart-canvas-wrap {
    position: relative;
}

.fz-stock-chart-watermark {
    position: absolute;
    left: 0.85rem;
    top: 0.7rem;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    pointer-events: none;
    user-select: none;
    color: rgba(232, 237, 245, 0.48);
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.45);
}

.fz-stock-chart-watermark-registered {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 0.95rem;
    height: 0.95rem;
    border-radius: 999px;
    border: 1px solid rgba(232, 237, 245, 0.48);
    font-size: 0.6rem;
    font-weight: 800;
    line-height: 1;
}

.fz-app-search-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 38px;
    border-radius: 8px;
    border: 1px solid var(--fz-border);
    background: rgba(88, 172, 236, 0.16);
    color: var(--fz-text-heading);
    padding: 0 0.7rem;
    cursor: pointer;
}

.fz-app-search-btn .fz-icon {
    color: currentColor;
}

.fz-app-search-dropdown {
    position: absolute;
    top: calc(100% + 0.3rem);
    left: 0;
    right: 0;
    border: 1px solid var(--fz-border);
    border-radius: 10px;
    background: rgba(24, 38, 66, 0.98);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.28);
    overflow: hidden;
    z-index: 1120;
}

.fz-app-search-state {
    padding: 0.65rem 0.75rem;
    font-size: 0.82rem;
    color: var(--fz-text-muted);
}

.fz-app-search-item {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    padding: 0.55rem 0.75rem;
    border: none;
    border-top: 1px solid rgba(136, 153, 184, 0.2);
    background: transparent;
    color: var(--fz-text);
    text-align: left;
    cursor: pointer;
}

.fz-app-search-item:first-child {
    border-top: none;
}

.fz-app-search-item:hover,
.fz-app-search-item-active {
    background: rgba(88, 172, 236, 0.16);
}

.fz-app-search-item-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--fz-text-heading);
}

.fz-app-search-item-meta {
    font-size: 0.76rem;
    color: var(--fz-text-muted);
}

.fz-navbar-inner {
    max-width: 1280px; margin: 0 auto;
    height: 100%; padding: 0 1.5rem;
    display: flex; align-items: center; gap: 2rem;
}

.fz-navbar-brand { display: flex; align-items: center; }

.fz-logo-img {
    height: 30px;
    width: auto;
    display: block;
}

.fz-logo-text {
    font-size: 1.5rem; font-weight: 800; letter-spacing: -0.03em;
    color: var(--fz-accent);
    text-decoration: none;
}
.fz-logo-text:hover { color: var(--fz-accent-hover); text-decoration: none; }

.fz-navbar-menu {
    display: flex; align-items: center; gap: 1.5rem; flex: 1;
}

.fz-nav-links {
    display: flex; gap: 0.25rem; list-style: none;
}

.fz-nav-links a {
    padding: 0.4rem 0.75rem;
    border-radius: var(--fz-radius);
    color: var(--fz-text); font-size: 0.9rem; font-weight: 500;
    transition: background 0.15s, color 0.15s;
}
.fz-nav-links a:hover {
    background: var(--fz-bg-card); color: var(--fz-accent);
    text-decoration: none;
}

.fz-nav-actions {
    margin-left: auto; display: flex; align-items: center; gap: 0.75rem;
}

.fz-lang-switch {
    display: flex; align-items: center; gap: 0.25rem;
    padding: 0.15rem; border-radius: 999px;
    background: var(--fz-bg-card); border: 1px solid var(--fz-border, rgba(0,0,0,0.08));
}
.fz-lang-switch-item {
    font-size: 0.75rem; font-weight: 600; letter-spacing: 0.02em;
    padding: 0.2rem 0.55rem; border-radius: 999px; color: var(--fz-text-muted, #6b7280);
    text-decoration: none; cursor: pointer; transition: background 0.15s ease, color 0.15s ease;
}
.fz-lang-switch-item:hover {
    background: var(--fz-border, rgba(0,0,0,0.08));
}
.fz-lang-switch-item-active {
    background: var(--fz-accent); color: #fff;
}
.fz-lang-switch-item-active:hover {
    background: var(--fz-accent); color: #fff;
}

.fz-user-menu-wrap {
    position: relative;
}

.fz-user-menu-backdrop {
    position: fixed;
    inset: 0;
    border: none;
    background: transparent;
    cursor: default;
    z-index: 1090;
}

.fz-user-menu-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    border: 1px solid rgba(88, 172, 236, 0.35);
    background: rgba(88, 172, 236, 0.08);
    color: var(--fz-text-heading);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
    position: relative;
    z-index: 1101;
}

.fz-user-menu-trigger:hover {
    background: rgba(88, 172, 236, 0.16);
    border-color: rgba(88, 172, 236, 0.6);
    transform: translateY(-1px);
}

.fz-user-menu-trigger:focus-visible {
    outline: 2px solid #8bc5f3;
    outline-offset: 2px;
}

.fz-user-menu-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.fz-user-menu-dropdown {
    position: absolute;
    right: 0;
    top: calc(100% + 0.6rem);
    min-width: 260px;
    padding: 0.5rem;
    border-radius: 14px;
    border: 1px solid var(--fz-border);
    background: rgba(24, 38, 66, 0.98);
    box-shadow: 0 14px 38px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(6px);
    z-index: 1100;
}

.fz-user-menu-head {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.75rem 0.85rem;
    border-bottom: 1px solid var(--fz-border);
    margin-bottom: 0.35rem;
}

.fz-user-menu-head strong {
    color: var(--fz-text-heading);
    font-size: 0.92rem;
}

.fz-user-menu-head span {
    color: var(--fz-text-muted);
    font-size: 0.8rem;
    overflow-wrap: anywhere;
}

.fz-user-menu-link {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0.7rem 0.85rem;
    border-radius: 10px;
    color: var(--fz-text);
    font-size: 0.88rem;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}

.fz-user-menu-link:hover {
    background: rgba(88, 172, 236, 0.12);
    color: var(--fz-text-heading);
    text-decoration: none;
}

.fz-user-menu-link-button {
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.fz-user-menu-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.08);
    margin: 0.35rem 0.5rem;
}

/* Abo / Upgrade CTA im Benutzermenü */
.fz-user-menu-abo {
    color: var(--fz-accent) !important;
    font-weight: 600;
    gap: 0.4rem;
}

.fz-user-menu-abo:hover {
    background: rgba(88, 172, 236, 0.15) !important;
}

.fz-user-menu-abo-urgent {
    color: #f5a623 !important;
    background: rgba(245, 166, 35, 0.08);
    border-radius: 10px;
}

.fz-user-menu-abo-urgent:hover {
    background: rgba(245, 166, 35, 0.18) !important;
}

.fz-user-menu-abo-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

.fz-user-menu-abo-icon .fz-icon {
    color: currentColor;
}

.fz-user-menu-abo-badge {
    margin-left: auto;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.1rem 0.45rem;
    border-radius: 20px;
    background: rgba(245, 166, 35, 0.2);
    color: #f5a623;
    white-space: nowrap;
}

/* Buttons */
.fz-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.45rem 1.1rem;
    border-radius: var(--fz-radius);
    font-size: 0.875rem; font-weight: 600;
    cursor: pointer; transition: all 0.15s;
    border: none; text-decoration: none;
}
.fz-btn:hover { text-decoration: none; }
.fz-btn:disabled,
.fz-btn[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.fz-btn-primary  { background: var(--fz-accent); color: #0a1628; font-weight: 700; }
.fz-btn-primary:hover { background: var(--fz-accent-hover); color: #0a1628; }

.fz-btn-outline  {
    background: transparent; color: var(--fz-accent);
    border: 1.5px solid var(--fz-accent);
}
.fz-btn-outline:hover { background: var(--fz-accent); color: #0e1a2d; }

.fz-btn-ghost    { background: transparent; color: var(--fz-text-muted); }
.fz-btn-ghost:hover { color: var(--fz-accent); }

/* Mobile toggle */
.fz-navbar-toggle {
    display: none; flex-direction: column; gap: 5px;
    background: none; border: none; cursor: pointer; padding: 0.5rem;
}
.fz-navbar-toggle span {
    display: block; width: 22px; height: 2px;
    background: var(--fz-text); border-radius: 2px;
}

.fz-app-sidebar-mobile-toggle {
    display: none;
}

/* ---- Container ---- */
.fz-container {
    max-width: 1280px; margin: 0 auto; padding: 0 1.5rem;
}

/* ---- Card ---- */
.fz-card {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-lg);
    padding: 1.5rem;
    box-shadow: var(--fz-shadow);
}

/* ---- Section ---- */
.fz-section {
    padding: 4rem 0;
}

.fz-section-title {
    font-size: 1.75rem; margin-bottom: 0.5rem;
}
.fz-section-sub {
    color: var(--fz-text-muted); margin-bottom: 2.5rem;
}

/* ---- Badge ---- */
.fz-badge {
    display: inline-block;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    font-size: 0.75rem; font-weight: 700;
    background: var(--fz-bg-surface); color: var(--fz-text-muted);
}
.fz-badge-accent { background: rgba(88,172,236,0.15); color: var(--fz-accent); }
.fz-badge-positive { background: rgba(52,211,153,0.15); color: var(--fz-positive); }
.fz-badge-negative { background: rgba(248,113,113,0.15); color: var(--fz-negative); }

/* ---- Score Ring ---- */
.fz-score-ring {
    width: 80px; height: 80px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem; font-weight: 800;
    border: 4px solid var(--fz-accent);
    color: var(--fz-text-heading);
}

/* ---- Table ---- */
.fz-table { width: 100%; border-collapse: collapse; }
.fz-table th {
    text-align: left; padding: 0.65rem 1rem;
    font-size: 0.78rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.05em; color: var(--fz-text-muted);
    background: rgba(46, 112, 165, 0.55);
    border-bottom: 1px solid var(--fz-border);
}
.fz-table td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--fz-border);
    font-size: 0.9rem;
}
.fz-table tbody tr:nth-child(odd) td { background: rgba(255, 255, 255, 0.02); }
.fz-table tbody tr:nth-child(even) td { background: rgba(88, 172, 236, 0.08); }
.fz-table tr:hover td { background: rgba(88, 172, 236, 0.16); }

/* Kennzahlen-Tabelle: nutzt das gleiche Scroll-Muster wie die Depot-Tabelle
   (fz-depot-positions-scroll). Zusaetzlich bleiben Namensspalte (horizontal)
   und Kopfzeile (vertikal) fixiert, da bis zu 22 Spalten dargestellt werden.
   Eigene Klassen, damit andere .fz-table Tabellen unveraendert bleiben. */
.fz-kennzahlen-wrap {
    width: 100%;
}

.fz-kennzahlen-scroll {
    overflow: auto;
    width: 100%;
    max-height: min(70vh, 760px);
    scrollbar-gutter: stable both-edges;
    border: 1px solid rgba(136, 153, 184, 0.2);
    border-radius: 10px;
    background: rgba(20, 32, 56, 0.35);
}
.fz-kennzahlen-scroll::-webkit-scrollbar { width: 10px; height: 10px; }
.fz-kennzahlen-scroll::-webkit-scrollbar-track { background: rgba(15, 24, 42, 0.72); border-radius: 999px; }
.fz-kennzahlen-scroll::-webkit-scrollbar-thumb { background: rgba(88, 172, 236, 0.55); border-radius: 999px; border: 2px solid rgba(15, 24, 42, 0.72); }
.fz-kennzahlen-scroll::-webkit-scrollbar-thumb:hover { background: rgba(88, 172, 236, 0.75); }
.fz-kennzahlen-scroll::-webkit-scrollbar-corner { background: rgba(15, 24, 42, 0.72); }

.fz-kennzahlen-table { min-width: max-content; }
.fz-kennzahlen-table th,
.fz-kennzahlen-table td {
    padding: 0.46rem 0.6rem;
    font-size: 0.82rem;
    white-space: nowrap;
    text-align: right;
}
.fz-kennzahlen-table .fz-kennzahlen-col-name { text-align: left; min-width: 150px; }
.fz-kennzahlen-table .fz-kennzahlen-col-current { min-width: 92px; }

/* Kopfzeile beim vertikalen Scrollen oben fixieren (deckende Farbe noetig,
   sonst scheinen die darunter scrollenden Zeilen durch). */
.fz-table.fz-kennzahlen-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #27527f;
}
/* Namensspalte beim seitlichen Scrollen links fixieren (frozen column). */
.fz-table.fz-kennzahlen-table tbody td.fz-kennzahlen-col-name {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--fz-bg-surface);
    box-shadow: 1px 0 0 var(--fz-border);
}
.fz-table.fz-kennzahlen-table tbody tr:hover td.fz-kennzahlen-col-name {
    background: #223458;
}
/* Ecke (Namens-Kopfzelle) liegt ueber beiden fixierten Achsen. */
.fz-table.fz-kennzahlen-table thead th.fz-kennzahlen-col-name {
    left: 0;
    z-index: 3;
    box-shadow: 1px 0 0 var(--fz-border);
}
/* Namensspalte als klickbarer Button (oeffnet Fundamental-Screener-Modal), optisch wie ein fz-link-dark Link. */
.fz-kennzahlen-name-btn {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    color: var(--fz-text);
    cursor: pointer;
    text-align: left;
    font: inherit;
    font-weight: 500;
    text-decoration: none;
}
.fz-kennzahlen-name-btn:hover,
.fz-kennzahlen-name-btn:hover strong {
    color: var(--fz-accent);
    cursor: pointer;
}


/* ---- Auth Pages ---- */
.fz-auth-wrap {
    max-width: 620px;
    margin: 0 auto;
}

.fz-auth-card {
    padding: 1.8rem;
}

.fz-auth-form {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.fz-auth-label {
    font-size: 0.82rem;
    color: var(--fz-text-muted);
    font-weight: 600;
    margin-top: 0.35rem;
}

.fz-auth-hint {
    margin-top: -0.2rem;
    margin-bottom: 0.2rem;
    font-size: 0.78rem;
    color: #c5d3ea;
    line-height: 1.35;
}

.fz-auth-input {
    width: 100%;
    background: #2b426f;
    border: 1px solid rgba(140, 189, 235, 0.7);
    color: #f7fbff;
    min-height: 46px;
    font-weight: 500;
}

.fz-auth-input::placeholder {
    color: #d3def0;
    opacity: 1;
}

.fz-auth-input:focus {
    border-color: #8bc5f3;
    box-shadow: 0 0 0 3px rgba(139, 197, 243, 0.28);
}

.fz-auth-input:-webkit-autofill,
.fz-auth-input:-webkit-autofill:hover,
.fz-auth-input:-webkit-autofill:focus {
    -webkit-text-fill-color: #f7fbff;
    -webkit-box-shadow: 0 0 0px 1000px #2b426f inset;
    transition: background-color 5000s ease-in-out 0s;
}

.fz-auth-password-wrap {
    position: relative;
}

.fz-auth-input-password {
    padding-right: 2.8rem;
}

.fz-auth-password-toggle {
    position: absolute;
    right: 0.55rem;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    color: #d3def0;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    padding: 0.2rem;
}

.fz-auth-password-toggle:hover {
    color: #ffffff;
}

.fz-auth-password-toggle:focus-visible {
    outline: 2px solid #8bc5f3;
    outline-offset: 2px;
    border-radius: 4px;
}

.fz-auth-submit {
    margin-top: 0.7rem;
    justify-content: center;
}

.fz-auth-divider {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 1rem 0 0.7rem;
    color: var(--fz-text-muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.fz-auth-divider::before,
.fz-auth-divider::after {
    content: "";
    flex: 1;
    border-top: 1px solid var(--fz-border);
}

.fz-auth-provider-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.fz-provider-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius);
    background: rgba(255,255,255,0.02);
}

.fz-auth-provider-btn {
    justify-content: center;
    align-items: center;
    gap: 0.8rem;
    width: 100%;
    min-height: 48px;
    text-align: center;
}

.fz-auth-provider-logo {
    width: 1.4rem;
    height: 1.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    flex-shrink: 0;
    color: var(--fz-accent);
    opacity: 0.95;
}

.fz-auth-provider-logo svg {
    width: 100%;
    height: 100%;
    display: block;
}

.fz-auth-provider-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    text-align: center;
}

.fz-auth-check {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: 0.35rem;
    font-size: 0.86rem;
    color: var(--fz-text);
}

.fz-auth-check input {
    margin-top: 0.15rem;
}

.fz-auth-alert {
    border-radius: var(--fz-radius);
    padding: 0.55rem 0.75rem;
    font-size: 0.85rem;
    margin-bottom: 0.65rem;
}

.fz-auth-alert-error {
    border: 1px solid rgba(248,113,113,0.4);
    background: rgba(248,113,113,0.12);
    color: #ffc1c1;
}

.fz-auth-alert-success {
    border: 1px solid rgba(52,211,153,0.4);
    background: rgba(52,211,153,0.12);
    color: #a6f0cf;
}

.fz-auth-inline-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: -0.1rem 0 0.65rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(88,172,236,0.18);
    border-radius: var(--fz-radius);
    background: rgba(255,255,255,0.03);
}

.fz-auth-footer {
    margin-top: 1rem;
    font-size: 0.86rem;
    color: var(--fz-text-muted);
    text-align: center;
}

.fz-dashboard-hero {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.fz-dashboard-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.9rem;
}

.fz-dashboard-meta-item {
    padding: 0.85rem 1rem;
    border: 1px solid rgba(88, 172, 236, 0.2);
    border-radius: 12px;
    background: rgba(255,255,255,0.03);
}

.fz-dashboard-meta-label {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.76rem;
    color: var(--fz-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.fz-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}

.fz-account-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 1.25rem;
}

.fz-account-side {
    align-self: start;
    position: sticky;
    top: calc(var(--fz-nav-height) + 1rem);
}

.fz-account-nav {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.fz-account-nav-link {
    display: flex;
    align-items: center;
    padding: 0.7rem 0.85rem;
    border-radius: 10px;
    color: var(--fz-text);
    transition: background 0.15s ease, color 0.15s ease;
}

.fz-account-nav-link:hover {
    background: rgba(88, 172, 236, 0.12);
    color: var(--fz-text-heading);
    text-decoration: none;
}

.fz-account-nav-link-active {
    background: rgba(88, 172, 236, 0.18);
    color: var(--fz-text-heading);
    border: 1px solid rgba(88, 172, 236, 0.22);
}

.fz-account-main {
    min-width: 0;
}

.fz-account-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
}

.fz-account-info-card {
    padding: 1.2rem;
}

.fz-account-export-box {
    margin-top: 1rem;
    padding: 0.85rem;
    border-radius: 12px;
    border: 1px solid rgba(88, 172, 236, 0.22);
    background: rgba(255,255,255,0.03);
}

.fz-account-export-actions {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.75rem;
}

.fz-account-export-pre {
    margin: 0;
    max-height: 360px;
    overflow: auto;
    padding: 0.85rem;
    border-radius: 10px;
    background: rgba(7, 14, 27, 0.55);
    color: #dce8f8;
    font-size: 0.8rem;
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
}

.fz-account-danger-card {
    border-color: rgba(248, 113, 113, 0.3);
    background: linear-gradient(135deg, rgba(248,113,113,0.08), rgba(248,113,113,0.03));
}

.fz-account-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.fz-settings-preview-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
    margin-top: 0.8rem;
}

.fz-settings-preview-card {
    border: 1px solid rgba(136, 153, 184, 0.3);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.02);
    color: var(--fz-text);
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    text-align: left;
    cursor: pointer;
}

.fz-settings-preview-card:hover {
    border-color: rgba(88, 172, 236, 0.45);
    background: rgba(88, 172, 236, 0.1);
}

.fz-settings-preview-card-active {
    border-color: rgba(88, 172, 236, 0.65);
    background: rgba(88, 172, 236, 0.16);
    box-shadow: 0 0 0 1px rgba(88, 172, 236, 0.45);
}

.fz-settings-preview-image {
    min-height: 72px;
    border: 1px solid rgba(136, 153, 184, 0.28);
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(88, 172, 236, 0.16), rgba(88, 172, 236, 0.05));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
    color: var(--fz-text-heading);
}

.fz-settings-preview-card span {
    color: var(--fz-text-muted);
    font-size: 0.82rem;
    line-height: 1.45;
}

/* ---- Footer ---- */
.fz-footer {
    background: var(--fz-bg-surface);
    border-top: 1px solid var(--fz-border);
    padding: 3.5rem 0 0;
    margin-top: 4rem;
}
.fz-footer-inner {
    max-width: 1280px; margin: 0 auto;
    padding: 0 1.5rem 3rem;
    display: grid;
    grid-template-columns: 220px 1fr 1fr 1fr 1fr;
    gap: 2.5rem;
    align-items: start;
}
.fz-footer-brand {
    display: flex; flex-direction: column; gap: 0.75rem;
}
.fz-footer-brand .fz-footer-tagline {
    color: var(--fz-text-muted); font-size: 0.8rem; line-height: 1.5;
}
.fz-footer-col-title {
    font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.07em;
    color: var(--fz-text-muted); margin-bottom: 1rem; font-weight: 700;
}
.fz-footer-col ul { list-style: none; }
.fz-footer-col li + li { margin-top: 0.45rem; }
.fz-footer-col a { color: var(--fz-text); font-size: 0.875rem; }
.fz-footer-col a:hover { color: var(--fz-accent); text-decoration: none; }

.fz-footer-bottom {
    max-width: 1280px; margin: 0 auto;
    padding: 1.25rem 1.5rem;
    border-top: 1px solid var(--fz-border);
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 0.5rem;
    color: var(--fz-text-muted); font-size: 0.78rem;
}

.fz-footer-disclaimer {
    max-width: 1280px; margin: 0 auto;
    padding: 0 1.5rem;
    color: var(--fz-text-muted);
    font-size: 0.74rem;
    text-align: center;
}
.fz-footer-disclaimer a { margin-left: 0.3rem; font-weight: 600; }

/* ---- Cookie-/Tracking-Consent-Banner ---- */
.fz-consent-banner {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 2000;
    background: var(--fz-surface, #1e2d46);
    color: var(--fz-text, #e7eefc);
    border-top: 1px solid var(--fz-border, rgba(136, 153, 184, 0.24));
    box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.35);
    padding: 1.25rem 1.5rem;
}
.fz-consent-banner-inner {
    max-width: 1280px; margin: 0 auto;
    display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem;
    justify-content: space-between;
}
.fz-consent-text { flex: 1 1 420px; }
.fz-consent-text strong { display: block; margin-bottom: 0.35rem; font-size: 1rem; }
.fz-consent-text p { margin: 0; font-size: 0.85rem; color: var(--fz-text-muted); line-height: 1.5; }
.fz-consent-text p a { font-weight: 600; margin-left: 0.3rem; }
.fz-consent-actions {
    display: flex; flex-wrap: wrap; gap: 0.6rem;
    flex: 0 0 auto;
}
.fz-consent-categories {
    flex: 1 1 100%;
    display: flex; flex-direction: column; gap: 0.75rem;
    margin: 0.5rem 0;
}
.fz-consent-category {
    display: flex; align-items: flex-start; gap: 0.6rem;
    font-size: 0.85rem;
}
.fz-consent-category input[type="checkbox"] { margin-top: 0.2rem; }
.fz-consent-category span { display: flex; flex-direction: column; gap: 0.15rem; }
.fz-consent-category small { color: var(--fz-text-muted); }

/* ---- Not Found ---- */
.fz-not-found {
    text-align: center; padding: 6rem 1.5rem;
}
.fz-not-found h1 { font-size: 2rem; margin-bottom: 1rem; }

/* ---- Hero Section (Startseite) ---- */
.fz-hero {
    padding: 5rem 0 4rem;
    background: linear-gradient(135deg, var(--fz-bg-surface) 0%, var(--fz-bg) 100%);
    border-bottom: 1px solid var(--fz-border);
}
.fz-hero-content { text-align: center; max-width: 700px; margin: 0 auto; }
.fz-hero-title {
    font-size: 3rem; font-weight: 800; line-height: 1.1;
    margin: 1rem 0;
}
.fz-accent-text { color: var(--fz-accent); }
.fz-hero-sub {
    font-size: 1.15rem; color: var(--fz-text-muted);
    margin-bottom: 2rem; line-height: 1.6;
}
.fz-hero-actions { display: flex; gap: 1rem; justify-content: center; margin-bottom: 2.5rem; flex-wrap: wrap; }
.fz-btn-lg { padding: 0.65rem 1.8rem; font-size: 1rem; }

.fz-hero-search {
    display: flex; gap: 0.5rem; max-width: 550px; margin: 0 auto;
}
.fz-search-input {
    flex: 1;
    padding: 0.75rem 1.2rem;
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius);
    color: var(--fz-text);
    font-size: 0.95rem;
    outline: none;
    transition: border 0.15s;
}
.fz-search-input:focus { border-color: var(--fz-accent); }
.fz-search-input::placeholder { color: var(--fz-text-muted); }

/* Auth-Inputs müssen die generische Search-Input-Optik überschreiben */
.fz-auth-form .fz-auth-input {
    background: #2b426f;
    border: 1px solid rgba(140, 189, 235, 0.7);
    color: #f7fbff;
    min-height: 46px;
    font-weight: 500;
}

.fz-auth-form .fz-auth-input::placeholder {
    color: #d3def0;
    opacity: 1;
}

.fz-auth-form .fz-auth-input:focus {
    border-color: #8bc5f3;
    box-shadow: 0 0 0 3px rgba(139, 197, 243, 0.28);
}

.fz-auth-form .fz-auth-input:-webkit-autofill,
.fz-auth-form .fz-auth-input:-webkit-autofill:hover,
.fz-auth-form .fz-auth-input:-webkit-autofill:focus {
    -webkit-text-fill-color: #f7fbff;
    -webkit-box-shadow: 0 0 0px 1000px #2b426f inset;
    transition: background-color 5000s ease-in-out 0s;
}

/* ---- Features Grid (Startseite) ---- */
.fz-features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.5rem;
}
.fz-feature-card {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-lg);
    padding: 2rem 1.5rem;
    text-align: center;
    transition: transform 0.15s, box-shadow 0.15s;
}
.fz-feature-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--fz-shadow);
}
.fz-feature-icon { font-size: 2.5rem; margin-bottom: 1rem; }
.fz-feature-card h3 {
    font-size: 1.2rem; margin-bottom: 0.5rem;
}
.fz-feature-card p {
    color: var(--fz-text-muted); font-size: 0.9rem;
}

/* ---- Stocks Grid (Startseite) 5×5 ---- */
.fz-stocks-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
}
@media (max-width: 1100px) {
    .fz-stocks-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 800px) {
    .fz-stocks-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 550px) {
    .fz-stocks-grid { grid-template-columns: repeat(2, 1fr); }
}
.fz-stock-tile {
    display: flex; flex-direction: column;
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius);
    padding: 1rem;
    text-decoration: none;
    transition: all 0.15s;
}
.fz-stock-tile:hover {
    border-color: var(--fz-accent);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(88,172,236,0.15);
    text-decoration: none;
}
.fz-stock-name { font-weight: 700; color: var(--fz-text-heading); }
.fz-stock-isin { font-size: 0.8rem; }

.fz-section-dark {
    background: var(--fz-bg-surface);
    border-top: 1px solid var(--fz-border);
    border-bottom: 1px solid var(--fz-border);
}
.fz-section-action {
    margin-top: 2rem; text-align: center;
}

/* ---- Stock Detail ---- */
.fz-stock-header {
    background: linear-gradient(135deg, var(--fz-bg-surface), #152847);
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--fz-border);
}
.fz-breadcrumb {
    display: flex; gap: 0.5rem; align-items: center;
    font-size: 0.85rem; color: var(--fz-text-muted);
    margin-bottom: 1rem;
}
.fz-breadcrumb a { color: var(--fz-accent); }
.fz-breadcrumb a:first-child { text-transform: capitalize; }
.fz-breadcrumb a:hover { text-decoration: underline; }

.fz-stock-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.fz-stock-name-heading {
    font-size: 1.9rem; margin-bottom: 0.75rem;
}
.fz-stock-meta-row {
    display: flex; gap: 0.5rem; flex-wrap: wrap;
}

.fz-stock-head-actions {
    margin-top: 0.7rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}
.fz-copy-badge {
    border: 1px solid rgba(88,172,236,0.2);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    background: rgba(88,172,236,0.06);
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.fz-copy-badge:hover {
    border-color: rgba(88,172,236,0.45);
    background: rgba(88,172,236,0.14);
    color: var(--fz-text-heading);
}
.fz-copy-badge:active {
    background: rgba(88,172,236,0.2);
}

.fz-stock-head-kpi {
    min-width: 180px;
    text-align: right;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(88,172,236,0.25);
    border-radius: var(--fz-radius);
    padding: 0.75rem 0.9rem;
}
.fz-stock-head-kpi-label { font-size: 0.75rem; color: var(--fz-text-muted); text-transform: uppercase; letter-spacing: 0.05em; }
.fz-stock-head-kpi-value { font-size: 1.35rem; font-weight: 700; color: var(--fz-text-heading); line-height: 1.2; }
.fz-stock-live-delta {
    margin-top: 0.35rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
    border: 1px solid transparent;
    font-variant-numeric: tabular-nums;
}
.fz-stock-live-delta-value {
    font-size: 0.75rem;
    opacity: 0.92;
}
.fz-stock-live-delta-positive {
    color: #7de4bb;
    background: rgba(52, 211, 153, 0.16);
    border-color: rgba(52, 211, 153, 0.34);
}
.fz-stock-live-delta-negative {
    color: #ff9d9d;
    background: rgba(248, 113, 113, 0.15);
    border-color: rgba(248, 113, 113, 0.34);
}
.fz-stock-live-delta-neutral {
    color: var(--fz-text-muted);
    background: rgba(136, 153, 184, 0.14);
    border-color: rgba(136, 153, 184, 0.26);
}
.fz-stock-head-kpi-date { font-size: 0.78rem; color: var(--fz-text-muted); margin-top: 0.35rem; }
.fz-stock-head-kpi-source {
    margin-top: 0.2rem;
    font-size: 0.7rem;
    color: rgba(136, 153, 184, 0.9);
    letter-spacing: 0.04em;
}

.fz-stock-delisted-banner {
    margin-top: 1rem;
    padding: 0.75rem 0.9rem;
    border-radius: var(--fz-radius);
    border: 1px solid rgba(248, 113, 113, 0.6);
    background: rgba(248, 113, 113, 0.14);
    color: #ffd2d2;
}

.fz-stock-delisted-title {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 0.35rem;
}

.fz-stock-delisted-details {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    font-size: 0.84rem;
}

.fz-stock-delisted-details strong {
    color: #ffe4e4;
}

.fz-copy-snackbar {
    position: fixed;
    right: 1rem;
    top: calc(var(--fz-nav-height) + 1rem);
    z-index: 1200;
    width: fit-content;
    max-width: min(420px, calc(100vw - 2rem));
    padding: 0.55rem 0.9rem;
    border-radius: 8px;
    background: rgba(45, 51, 56, 0.72);
    border: 1px solid rgba(77,184,168,0.45);
    color: #e0e0e0;
    font-size: 0.84rem;
    backdrop-filter: blur(4px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.22);
    animation: fz-snackbar-in 0.18s ease;
}

.fz-depot-action-toast {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    background: rgba(24, 38, 66, 0.56);
    border-color: rgba(136, 153, 184, 0.45);
    animation: fzDepotActionToastLifecycle 3.6s ease forwards;
    pointer-events: none;
}

.fz-depot-action-toast-success {
    border-color: rgba(52, 211, 153, 0.52);
}

.fz-depot-action-toast-error {
    border-color: rgba(248, 113, 113, 0.6);
}

@keyframes fzDepotActionToastLifecycle {
    0% {
        opacity: 0;
        transform: translateY(-6px);
    }
    10% {
        opacity: 1;
        transform: translateY(0);
    }
    82% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-4px);
    }
}

@keyframes fz-snackbar-in {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.fz-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.52);
    z-index: 1150;
}

.fz-modal {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(560px, 94vw);
    border: 1px solid var(--fz-border);
    border-radius: 12px;
    background: rgba(24, 38, 66, 0.98);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
    padding: 1rem;
    z-index: 1160;
}

.fz-modal h3 {
    margin-bottom: 0.65rem;
}

.fz-modal p {
    margin-bottom: 0.55rem;
}

.fz-modal-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem;
    margin-bottom: 0.75rem;
}

.fz-stock-detail-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 0.95rem;
}

.fz-stock-detail-tab {
    border: 1px solid var(--fz-border);
    background: rgba(255, 255, 255, 0.02);
    color: var(--fz-text-muted);
    border-radius: 999px;
    padding: 0.35rem 0.75rem;
    font-size: 0.84rem;
    cursor: pointer;
}

.fz-stock-detail-tab:hover {
    color: var(--fz-text-heading);
    border-color: rgba(88, 172, 236, 0.45);
}

.fz-stock-detail-tab-active {
    color: var(--fz-text-heading);
    background: rgba(88, 172, 236, 0.2);
    border-color: rgba(88, 172, 236, 0.45);
}

.fz-stock-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 1.5rem;
}
.fz-stock-main { min-width: 0; }
.fz-stock-sidebar { min-width: 0; }

.fz-card-title {
    font-size: 1.2rem; margin-bottom: 1rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid var(--fz-border);
}

.fz-stock-chart-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.9rem;
    flex-wrap: wrap;
    margin-bottom: 0.65rem;
}
.fz-stock-chart-title {
    font-size: 0.9rem;
    color: var(--fz-text-muted);
    letter-spacing: 0.02em;
}
.fz-stock-chart-controls {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.35rem;
}
.fz-stock-range-buttons {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}
.fz-stock-overlay-buttons {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}
.fz-range-btn {
    border: 1px solid #606060;
    background: transparent;
    color: #a0a0a0;
    padding: 0.25rem 0.55rem;
    border-radius: 6px;
    font-size: 0.78rem;
    cursor: pointer;
}
.fz-range-btn:hover { color: #e0e0e0; border-color: #808080; }
.fz-range-btn-active {
    background: #4a4a4a;
    color: #ffffff;
    border-color: #606060;
}
.fz-stock-slider-wrap {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    background-color: #1e2529;
    border: 1px solid #3a3f44;
    border-radius: 6px;
    padding: 0.55rem 0.75rem;
    margin-top: 0.55rem;
}
.fz-stock-slider-wrap span {
    color: #8d98a3;
    font-size: 0.72rem;
    min-width: 62px;
    letter-spacing: 0.02em;
}
.fz-stock-slider-track {
    position: relative;
    flex: 1;
    height: 14px;
    display: flex;
    align-items: center;
}
.fz-stock-slider-track::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 4px;
    transform: translateY(-50%);
    background: #3a4048;
    border-radius: 999px;
    pointer-events: none;
}
.fz-stock-slider-track::after {
    content: "";
    position: absolute;
    top: 50%;
    height: 4px;
    transform: translateY(-50%);
    background: #4db8a8;
    border-radius: 999px;
    left: var(--fz-slider-start, 0%);
    right: calc(100% - var(--fz-slider-end, 100%));
    pointer-events: none;
}
.fz-stock-slider {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    margin: 0;
    accent-color: #4db8a8;
    height: 14px;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    outline: none;
    pointer-events: none;
    z-index: 3;
}
.fz-stock-slider-active {
    z-index: 5;
}
.fz-stock-slider::-webkit-slider-runnable-track {
    background: transparent;
}
.fz-stock-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #4db8a8;
    border: 2px solid #0f1216;
    cursor: pointer;
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.25);
    pointer-events: auto;
}
.fz-stock-slider::-moz-range-thumb {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #4db8a8;
    border: 2px solid #0f1216;
    cursor: pointer;
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.25);
    pointer-events: auto;
}
.fz-stock-slider::-moz-range-track {
    height: 4px;
    background: transparent;
    border-radius: 999px;
}

.fz-stock-chart-meta {
    margin-top: 0.7rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.8rem;
    color: var(--fz-text-muted);
}

.fz-stock-chart-meta-values {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.fz-price-chart-panel .fz-stock-chart-title {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #d4dde6;
}

.fz-price-chart-overlay-head {
    position: absolute;
    left: 0.9rem;
    top: 3rem;
    z-index: 7;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    max-width: calc(100% - 9rem);
    pointer-events: none;
}

.fz-price-chart-overlay-controls {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.3rem;
    pointer-events: auto;
}

.fz-price-chart-overlay-head .fz-stock-range-buttons,
.fz-price-chart-overlay-head .fz-stock-overlay-buttons {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.fz-bar-chart-overlay-head {
    position: absolute;
    left: 0.9rem;
    top: 2.6rem;
    z-index: 7;
    display: flex;
    align-items: flex-start;
    max-width: calc(100% - 6rem);
    pointer-events: none;
}

.fz-bar-chart-overlay-head .fz-stock-range-buttons {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
    pointer-events: auto;
}

.fz-bar-chart-overlay-head .fz-range-btn {
    border-color: #545c64;
    background: #4a4f55;
    color: #d7dde3;
    padding: 0.24rem 0.62rem;
    border-radius: 4px;
    font-weight: 600;
    font-size: 0.78rem;
}

.fz-bar-chart-overlay-head .fz-range-btn:hover {
    border-color: #707983;
    color: #f3f6f8;
}

.fz-bar-chart-overlay-head .fz-range-btn-active {
    background: #0f1216;
    color: #ffffff;
    border-color: #0f1216;
}

.fz-price-chart-panel .fz-range-btn {
    border-color: #545c64;
    background: #4a4f55;
    color: #d7dde3;
    padding: 0.28rem 0.72rem;
    border-radius: 4px;
    font-weight: 600;
}

.fz-price-chart-panel .fz-range-btn:hover {
    border-color: #707983;
    color: #f3f6f8;
}

.fz-price-chart-panel .fz-range-btn-active {
    background: #0f1216;
    color: #ffffff;
    border-color: #0f1216;
}

.fz-price-overlay-legend {
    display: flex;
    justify-content: flex-end;
    gap: 0.7rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #cfd7de;
}

.fz-price-overlay-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.fz-price-overlay-dot {
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 999px;
    display: inline-block;
}

.fz-price-overlay-dot-sma {
    background: #ff3b3b;
}

.fz-price-overlay-dot-ema {
    background: #3ce86d;
}

.fz-price-chart-panel .apexcharts-gridline {
    stroke: rgba(120, 132, 145, 0.16) !important;
}

.fz-price-chart-panel .apexcharts-yaxis line,
.fz-price-chart-panel .apexcharts-xaxis line {
    stroke: rgba(120, 132, 145, 0.28) !important;
}

.fz-price-chart-panel .apexcharts-xaxis-texts-g text {
    letter-spacing: 0.02em;
}

.fz-metrics-table td:last-child,
.fz-metrics-table th:last-child {
    text-align: right;
}

.fz-table-sort-btn {
    border: none;
    background: transparent;
    color: var(--fz-text-muted);
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    cursor: pointer;
    padding: 0;
}

.fz-table-sort-btn:hover {
    color: var(--fz-text-heading);
}
.fz-metrics-table .fz-metrics-row-cashflow td { background: rgba(52, 211, 153, 0.06); }
.fz-metrics-table .fz-metrics-row-bilanz td { background: rgba(88, 172, 236, 0.07); }
.fz-metrics-table .fz-metrics-row-income td { background: rgba(251, 191, 36, 0.08); }
.fz-metrics-table tr:hover td { background: rgba(255,255,255,0.09); }

.fz-metric-group {
    color: var(--fz-text-muted);
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}
.fz-metric-group-cashflow {
    background: rgba(52, 211, 153, 0.16) !important;
    color: #9ceecf;
}
.fz-metric-group-bilanz {
    background: rgba(88, 172, 236, 0.18) !important;
    color: #b6ddff;
}
.fz-metric-group-income {
    background: rgba(251, 191, 36, 0.18) !important;
    color: #ffe39c;
}
.fz-metric-value { font-variant-numeric: tabular-nums; font-weight: 600; }

.fz-wiki-link {
    margin-left: 0.4rem;
    color: var(--fz-text-muted);
    vertical-align: middle;
    opacity: 0.6;
    transition: opacity 0.15s;
}
.fz-wiki-link:hover { opacity: 1; color: var(--fz-accent); text-decoration: none; }

.fz-ratio-accordion-item {
    border: 1px solid var(--fz-border);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.02);
    margin-top: 0.55rem;
    overflow: hidden;
}

.fz-ratio-accordion-trigger {
    width: 100%;
    border: none;
    background: transparent;
    color: var(--fz-text);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7rem 0.85rem;
    cursor: pointer;
}

.fz-ratio-accordion-title {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.12rem;
    font-weight: 600;
}

.fz-ratio-accordion-title small {
    color: var(--fz-text-muted);
    font-size: 0.74rem;
    font-weight: 500;
}

.fz-ratio-accordion-value {
    font-size: 0.82rem;
    font-weight: 700;
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
    border: 1px solid transparent;
    white-space: nowrap;
}

.fz-ratio-accordion-content {
    border-top: 1px solid rgba(136, 153, 184, 0.2);
    padding: 0.7rem 0.85rem 0.85rem;
}

.fz-ratio-scorebar {
    height: 9px;
    border-radius: 999px;
    background: rgba(88, 172, 236, 0.12);
    border: 1px solid rgba(88, 172, 236, 0.22);
    overflow: hidden;
    margin-bottom: 0.55rem;
}

.fz-ratio-scorebar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
}

.fz-ratio-score-good {
    color: #d8fff0;
    background: rgba(52, 211, 153, 0.2);
    border-color: rgba(52, 211, 153, 0.42);
}

.fz-ratio-score-mid {
    color: #fff7d6;
    background: rgba(251, 191, 36, 0.2);
    border-color: rgba(251, 191, 36, 0.42);
}

.fz-ratio-score-low {
    color: #ffe1e1;
    background: rgba(248, 113, 113, 0.2);
    border-color: rgba(248, 113, 113, 0.42);
}

.fz-ratio-explain {
    color: var(--fz-text-muted);
    font-size: 0.88rem;
    line-height: 1.6;
    margin-bottom: 0.55rem;
}

.fz-ratio-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.fz-stock-description {
    line-height: 1.8; color: var(--fz-text);
}

.fz-stock-soft-cta {
    border-color: rgba(88,172,236,0.2);
    background: linear-gradient(135deg, rgba(88,172,236,0.06), rgba(88,172,236,0.02));
}
.fz-stock-soft-cta-head {
    display: inline-block;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--fz-accent);
    margin-bottom: 0.35rem;
    font-weight: 700;
}
.fz-stock-soft-cta p {
    color: var(--fz-text-muted);
    margin-bottom: 0.75rem;
    font-size: 0.9rem;
}

.fz-dl { display: grid; grid-template-columns: minmax(120px, auto) minmax(0, 1fr); gap: 0.5rem 1rem; font-size: 0.9rem; }
.fz-dl dt { font-weight: 600; color: var(--fz-text-muted); }
.fz-dl dd {
    color: var(--fz-text);
    min-width: 0;
    padding-right: 0.35rem;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.fz-dl dd a {
    display: inline-block;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.fz-split-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.fz-split-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    border: 1px solid rgba(88,172,236,0.3);
    background: rgba(88,172,236,0.1);
    color: var(--fz-text);
    font-size: 0.78rem;
    line-height: 1.25;
}

.fz-ad-slot {
    background: var(--fz-bg-surface);
    border: 1px dashed rgba(88,172,236,0.4);
    border-radius: var(--fz-radius);
    padding: 1.5rem;
    text-align: center;
    color: var(--fz-text-muted);
    font-size: 0.82rem;
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fz-stock-disclaimer {
    margin-top: 1.2rem;
    font-size: 0.74rem;
    line-height: 1.6;
    color: var(--fz-text-muted);
    opacity: 0.9;
}

/* ---- F-Score / Risk Disclaimer Note ---- */
.fz-fscore-disclaimer-note {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin: 0.6rem 0;
    padding: 0.5rem 0.75rem;
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--fz-text-muted);
    background: var(--fz-surface-subtle, rgba(127, 127, 127, 0.08));
    border-radius: 6px;
}

.fz-fscore-disclaimer-note a {
    white-space: nowrap;
    font-weight: 600;
}

.fz-fscore-disclaimer-banner {
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    font-size: 0.85rem;
    line-height: 1.5;
    border-radius: 8px;
    background: rgba(255, 193, 7, 0.12);
    border: 1px solid rgba(255, 193, 7, 0.35);
    color: var(--fz-text, inherit);
}

.fz-fscore-disclaimer-banner a {
    font-weight: 600;
}

/* ---- Search Bar (List Pages) ---- */
.fz-search-bar {
    display: flex; gap: 0.5rem; margin-bottom: 2rem;
}

/* ---- Utility ---- */
.fz-mt { margin-top: 2rem; }
.fz-text-muted { color: var(--fz-text-muted) !important; }
.fz-loading { text-align: center; padding: 3rem 0; color: var(--fz-text-muted); }
.fz-btn-sm { padding: 0.35rem 0.8rem; font-size: 0.8rem; }

/* ---- Indices Grid ---- */
.fz-indices-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.25rem;
}
.fz-index-card {
    display: flex; flex-direction: column; gap: 0.5rem;
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-lg);
    padding: 1.5rem;
    text-decoration: none;
    transition: all 0.15s;
}
.fz-index-card:hover {
    border-color: var(--fz-accent);
    transform: translateY(-2px);
    box-shadow: var(--fz-shadow);
    text-decoration: none;
}
.fz-index-name { font-size: 1.2rem; color: var(--fz-text-heading); }
.fz-index-country { font-size: 0.85rem; }

/* ---- Responsive ---- */
@media (max-width: 900px) {
    .fz-navbar-toggle { display: flex; margin-left: auto; }

    .fz-navbar-menu {
        display: none; position: fixed;
        top: var(--fz-nav-height); left: 0; right: 0;
        background: var(--fz-bg-surface);
        flex-direction: column; align-items: flex-start;
        padding: 1.5rem; gap: 0.5rem;
        border-bottom: 1px solid var(--fz-border);
    }
    .fz-navbar-menu.open { display: flex; }

    .fz-nav-links { flex-direction: column; width: 100%; }
    .fz-nav-actions { margin-left: 0; width: 100%; flex-wrap: wrap; }

    .fz-user-menu-wrap { width: 100%; }
    .fz-user-menu-trigger { width: 100%; border-radius: 12px; justify-content: flex-start; padding: 0 1rem; }
    .fz-user-menu-avatar { width: auto; justify-content: flex-start; }
    .fz-user-menu-dropdown { position: static; width: 100%; margin-top: 0.6rem; }
    .fz-user-menu-backdrop { display: none; }

    .fz-account-layout { grid-template-columns: 1fr; }
    .fz-account-side { position: static; }

    .fz-footer-inner { grid-template-columns: 1fr 1fr; }
    .fz-footer-brand { grid-column: 1 / -1; }

    .fz-stock-layout { grid-template-columns: 1fr; }
    .fz-stock-title-row { flex-direction: column; }
    .fz-stock-head-kpi { text-align: left; min-width: 0; width: 100%; }
    .fz-stock-head-actions { width: 100%; }
    .fz-stock-head-actions .fz-btn {
        flex: 1;
        justify-content: center;
        min-width: 0;
    }
    .fz-stock-detail-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 0.2rem;
    }
    .fz-stock-detail-tab {
        white-space: nowrap;
    }
    .fz-modal-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .fz-footer-inner { grid-template-columns: 1fr 1fr; }
    .fz-footer-bottom { flex-direction: column; text-align: center; }
    .fz-footer-bottom span:last-child { display: none; }
}

@media (max-width: 600px) {
    .fz-footer-inner { grid-template-columns: 1fr 1fr; }
    .fz-footer-bottom { flex-direction: column; text-align: center; }
    .fz-footer-bottom span:last-child { display: none; }
}

/* ============================================================
   INSTANT SEARCH OVERLAY
   ============================================================ */
.fz-search-overlay-backdrop {
    position: fixed; inset: 0;
    background: rgba(0,0,0,0.55);
    z-index: 1000;
    animation: fz-fade-in 0.15s ease;
}
.fz-search-overlay {
    position: fixed;
    top: 5vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(680px, 95vw);
    max-height: 80vh;
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
    z-index: 1001;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: fz-slide-down 0.18s ease;
}
@keyframes fz-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes fz-slide-down { from { opacity: 0; transform: translateX(-50%) translateY(-10px); } to { opacity: 1; transform: translateX(-50%) translateY(0); } }

.fz-search-overlay-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--fz-border);
}
.fz-search-overlay-input-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: var(--fz-bg-surface);
    border: 1.5px solid var(--fz-border);
    border-radius: 10px;
    padding: 0.5rem 0.75rem;
    transition: border-color 0.2s;
}
.fz-search-overlay-input-wrap:focus-within {
    border-color: var(--fz-accent);
}
.fz-search-overlay-icon {
    flex-shrink: 0;
    color: var(--fz-text-muted);
}
.fz-search-overlay-input {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 1rem;
    color: var(--fz-text-body);
    outline: none;
}
.fz-search-overlay-input::placeholder { color: var(--fz-text-muted); }
.fz-search-overlay-input::-webkit-search-cancel-button { display: none; }
.fz-search-overlay-clear {
    background: none; border: none; cursor: pointer;
    color: var(--fz-text-muted); font-size: 1.2rem; line-height: 1;
    padding: 0 0.1rem;
}
.fz-search-overlay-clear:hover { color: var(--fz-text-body); }
.fz-search-overlay-close {
    background: none; border: 1px solid var(--fz-border); cursor: pointer;
    color: var(--fz-text-muted); font-size: 0.75rem; padding: 0.3rem 0.6rem;
    border-radius: 6px; white-space: nowrap;
}
.fz-search-overlay-close:hover { background: var(--fz-bg-surface); }

.fz-search-overlay-body {
    overflow-y: auto;
    flex: 1;
    padding: 0.5rem 0;
    scrollbar-width: thin;
    scrollbar-color: rgba(88, 172, 236, 0.55) rgba(15, 24, 42, 0.72);
}
.fz-search-overlay-body::-webkit-scrollbar {
    width: 10px;
}
.fz-search-overlay-body::-webkit-scrollbar-track {
    background: rgba(15, 24, 42, 0.72);
}
.fz-search-overlay-body::-webkit-scrollbar-thumb {
    background: rgba(88, 172, 236, 0.55);
    border-radius: 999px;
    border: 2px solid rgba(15, 24, 42, 0.72);
}
.fz-search-overlay-body::-webkit-scrollbar-thumb:hover {
    background: rgba(88, 172, 236, 0.75);
}
.fz-search-overlay-status,
.fz-search-overlay-empty {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--fz-text-muted);
    font-size: 0.9rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}
.fz-search-overlay-hint { font-size: 0.8rem; color: var(--fz-text-muted); }

.fz-search-group { padding: 0.5rem 0; }
.fz-search-group-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--fz-text-muted);
    padding: 0.3rem 1.25rem 0.2rem;
}
.fz-search-item {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.55rem 1.25rem;
    text-decoration: none;
    color: var(--fz-text-body);
    transition: background 0.12s;
}
.fz-search-item:hover { background: var(--fz-bg-surface); }
.fz-search-item--delisted { opacity: 0.7; }
.fz-search-badge-delisted {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: rgba(180, 60, 60, 0.15);
    color: #c0392b;
    border: 1px solid rgba(180, 60, 60, 0.3);
    border-radius: 4px;
    padding: 0.1rem 0.35rem;
    margin-left: 0.4rem;
    vertical-align: middle;
    line-height: 1.4;
}
.fz-row-delisted td { opacity: 0.7; }

/* Search page */
.fz-search-bar--page {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: var(--fz-bg-surface);
    border: 1.5px solid var(--fz-border);
    border-radius: 10px;
    padding: 0.6rem 1rem;
    max-width: 640px;
    transition: border-color 0.2s;
}
.fz-search-bar--page:focus-within { border-color: var(--fz-accent); }
.fz-search-bar-icon { flex-shrink: 0; color: var(--fz-text-muted); }
.fz-search-bar--page .fz-search-input {
    flex: 1; border: none; background: transparent;
    font-size: 1rem; color: var(--fz-text-body); outline: none;
}
.fz-search-bar--page .fz-search-input::placeholder { color: var(--fz-text-muted); }
.fz-search-bar--page .fz-search-input::-webkit-search-cancel-button { display: none; }
.fz-search-bar-clear {
    background: none; border: none; cursor: pointer;
    color: var(--fz-text-muted); font-size: 1.3rem; line-height: 1; padding: 0;
}
.fz-search-bar-clear:hover { color: var(--fz-text-body); }
.fz-search-results-heading {
    font-size: 0.8rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.08em; color: var(--fz-text-muted);
    margin: 1.75rem 0 0.5rem;
}
.fz-search-noresult { padding: 2rem 0; }
.fz-search-page-results {
    display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem;
}
.fz-search-page-card {
    display: flex; flex-direction: column; gap: 0.2rem;
    padding: 0.75rem 1rem;
    background: var(--fz-bg-surface);
    border: 1px solid var(--fz-border);
    border-radius: 8px;
    text-decoration: none; color: var(--fz-text-body);
    transition: border-color 0.15s;
}
.fz-search-page-card:hover { border-color: var(--fz-accent); }
.fz-search-page-title { font-weight: 600; font-size: 0.95rem; }
.fz-search-page-desc { font-size: 0.82rem; color: var(--fz-text-muted); }
.fz-search-item-title { font-weight: 600; font-size: 0.95rem; }
.fz-search-item-meta { font-size: 0.78rem; color: var(--fz-text-muted); }
.fz-search-item-badge {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    background: var(--fz-accent);
    color: #fff;
    border-radius: 4px;
    padding: 0.1rem 0.4rem;
    margin-bottom: 0.1rem;
    align-self: flex-start;
}
.fz-search-item-desc { font-size: 0.8rem; color: var(--fz-text-muted); }

.fz-search-overlay-footer {
    border-top: 1px solid var(--fz-border);
    padding: 0.75rem 1.25rem;
}
.fz-search-all-link {
    font-size: 0.85rem;
    color: var(--fz-accent);
    text-decoration: none;
    font-weight: 600;
}
.fz-search-all-link:hover { text-decoration: underline; }

.fz-search-overlay-hints {
    padding: 1rem 1.25rem;
}
.fz-search-overlay-hint-title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--fz-text-muted);
    margin-bottom: 0.6rem;
}
.fz-search-quick-links {
    display: flex; flex-wrap: wrap; gap: 0.5rem;
}
.fz-search-quick-links a {
    display: inline-block;
    padding: 0.3rem 0.75rem;
    background: var(--fz-bg-surface);
    border: 1px solid var(--fz-border);
    border-radius: 20px;
    font-size: 0.85rem;
    color: var(--fz-text-body);
    text-decoration: none;
    transition: border-color 0.15s;
}
.fz-search-quick-links a:hover { border-color: var(--fz-accent); color: var(--fz-accent); }

/* ============================================================
   LANDINGPAGE CONVERSION – erweiterte Sektionen
   ============================================================ */

/* ---- Trust-Bar ---- */
.fz-trust-bar {
    background: var(--fz-bg-surface);
    border-bottom: 1px solid var(--fz-border);
    padding: 0.65rem 0;
}
.fz-trust-bar-inner {
    display: flex; align-items: center; justify-content: center;
    flex-wrap: wrap; gap: 1.5rem;
}
.fz-trust-item {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.85rem; color: var(--fz-text-muted);
    white-space: nowrap;
}
.fz-trust-item strong { color: var(--fz-text-body); }
.fz-trust-icon { font-size: 1rem; }
.fz-trust-svg {
    width: 1.1rem; height: 1.1rem; flex-shrink: 0;
    color: var(--fz-accent);
}

/* ---- Hero (overrides + extensions) ---- */
.fz-hero {
    background: linear-gradient(135deg, var(--fz-bg-surface) 0%, #0d1829 100%);
    padding: 6rem 0 4rem;
    position: relative;
    overflow: hidden;
}
.fz-hero::before {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(ellipse at 70% 40%, rgba(88,172,236,0.12) 0%, transparent 65%);
    pointer-events: none;
}
.fz-hero-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}
.fz-hero-eyebrow {
    display: inline-flex; align-items: center; gap: 0.4rem;
    background: rgba(88,172,236,0.15);
    border: 1px solid rgba(88,172,236,0.4);
    border-radius: 2rem;
    padding: 0.3rem 0.9rem;
    font-size: 0.78rem; font-weight: 600; letter-spacing: 0.05em;
    color: var(--fz-accent); text-transform: uppercase;
    margin-bottom: 1.25rem;
}
.fz-hero-title {
    font-size: clamp(1.9rem, 4vw, 3.1rem);
    font-weight: 800; line-height: 1.15;
    color: var(--fz-text-heading);
    margin-bottom: 1.25rem;
}
.fz-hero-sub {
    font-size: 1.1rem; line-height: 1.7;
    color: var(--fz-text-muted);
    margin-bottom: 2rem;
}
.fz-hero-checklist {
    list-style: none; padding: 0; margin: 0 0 2rem;
    display: flex; flex-direction: column; gap: 0.55rem;
}
.fz-hero-checklist li {
    display: flex; align-items: center; gap: 0.6rem;
    font-size: 0.95rem; color: var(--fz-text-body);
}
.fz-hero-checklist li::before {
    content: '✓';
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.3rem; height: 1.3rem; flex-shrink: 0;
    background: rgba(88,172,236,0.2); border-radius: 50%;
    font-size: 0.75rem; font-weight: 700; color: var(--fz-accent);
}
.fz-hero-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.fz-hero-note {
    margin-top: 0.75rem;
    font-size: 0.78rem; color: var(--fz-text-muted);
}
.fz-hero-note span { margin-right: 0.75rem; }
.fz-hero-image img {
    width: 100%; border-radius: var(--fz-radius-lg);
    box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}

/* ---- Social-Proof Stripe ---- */
.fz-social-stripe {
    background: rgba(88,172,236,0.06);
    border-top: 1px solid var(--fz-border);
    border-bottom: 1px solid var(--fz-border);
    padding: 1.5rem 0;
}
.fz-social-stripe-inner {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    text-align: center;
}
.fz-stat-number {
    font-size: 2rem; font-weight: 800;
    color: var(--fz-accent); line-height: 1;
}
.fz-stat-label { font-size: 0.82rem; color: var(--fz-text-muted); margin-top: 0.25rem; }

/* ---- How it works ---- */
.fz-steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    position: relative;
}
.fz-step-card {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-lg);
    padding: 2rem 1.5rem;
    text-align: center;
    position: relative;
}
.fz-step-number {
    display: inline-flex; align-items: center; justify-content: center;
    width: 2.5rem; height: 2.5rem;
    background: var(--fz-accent); color: #fff;
    border-radius: 50%; font-weight: 800; font-size: 1.1rem;
    margin-bottom: 1rem;
}
.fz-step-card h3 { font-size: 1.05rem; margin-bottom: 0.5rem; }
.fz-step-card p { font-size: 0.9rem; color: var(--fz-text-muted); margin: 0; }

/* ---- Feature Showcase (Bild + Text) ---- */
.fz-showcase {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}
.fz-showcase.fz-showcase-reverse { direction: rtl; }
.fz-showcase.fz-showcase-reverse > * { direction: ltr; }
.fz-showcase-text h2 { font-size: 1.7rem; font-weight: 700; margin-bottom: 1rem; }
.fz-showcase-text p { color: var(--fz-text-muted); line-height: 1.75; margin-bottom: 1rem; }
.fz-showcase-text ul {
    list-style: none; padding: 0; margin: 0 0 1.5rem;
    display: flex; flex-direction: column; gap: 0.5rem;
}
.fz-showcase-text ul li {
    display: flex; gap: 0.5rem; align-items: flex-start;
    font-size: 0.95rem; color: var(--fz-text-body);
}
.fz-showcase-text ul li::before { content: '→'; color: var(--fz-accent); font-weight: 700; }
.fz-showcase-img img {
    width: 100%; border-radius: var(--fz-radius-lg);
    box-shadow: 0 12px 40px rgba(0,0,0,0.4);
}

/* ---- Musterdepot Tabellenlayout ---- */
.fz-container.fz-container-wide {
    max-width: min(1680px, calc(100vw - 2rem));
}

.fz-table-scroll {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    border: 1px solid rgba(136, 153, 184, 0.28);
    border-radius: 10px;
    scrollbar-gutter: stable both-edges;
}

/* Stacked cards with gap */
.fz-card-col {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.fz-table-scroll .fz-depot-table {
    min-width: 1240px;
    width: 100%;
}

.fz-table-scroll::-webkit-scrollbar {
    height: 10px;
}

.fz-table-scroll::-webkit-scrollbar-track {
    background: rgba(15, 24, 42, 0.72);
}

.fz-table-scroll::-webkit-scrollbar-thumb {
    background: rgba(88, 172, 236, 0.55);
    border-radius: 999px;
    border: 2px solid rgba(15, 24, 42, 0.72);
}

.fz-table-scroll::-webkit-scrollbar-thumb:hover {
    background: rgba(88, 172, 236, 0.75);
}

@media (max-width: 1100px) {
    .fz-container.fz-container-wide {
        max-width: 100%;
        padding: 0 0.9rem;
    }

    .fz-table-scroll .fz-depot-table {
        min-width: 1080px;
    }
}

.fz-tabs {
    display: flex;
    gap: 0.55rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.fz-tab {
    border: 1px solid rgba(136, 153, 184, 0.45);
    background: rgba(25, 40, 67, 0.78);
    color: #d2def3;
    border-radius: 8px;
    padding: 0.44rem 0.72rem;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.fz-tab:hover {
    border-color: rgba(139, 197, 243, 0.72);
    color: #f5f9ff;
    background: rgba(39, 73, 118, 0.88);
}

.fz-tab:focus-visible {
    outline: 2px solid rgba(88, 172, 236, 0.8);
    outline-offset: 1px;
}

.fz-tab.fz-tab-active {
    border-color: rgba(88, 172, 236, 0.95);
    background: linear-gradient(180deg, rgba(62, 121, 191, 0.95), rgba(41, 94, 161, 0.96));
    color: #ffffff;
}

.fz-lock-row td {
    background: rgba(21, 33, 57, 0.88) !important;
    color: #c9d4ec;
}

.fz-lock-icon {
    display: inline-flex;
    align-items: center;
    margin-right: 0.35rem;
}

.fz-lock-icon .fz-icon,
.fz-lock-row .fz-icon {
    color: currentColor;
}

.fz-musterdepot-intro p {
    margin-bottom: 0.75rem;
    line-height: 1.65;
}

/* Abstand zwischen Intro/Switch-Row und dem Chart+Panel-Block */
.fz-depot-switch-row + .fz-card-col,
.fz-musterdepot-intro + .fz-card-col {
    margin-top: 1.5rem;
}

.fz-musterdepot-rules-title {
    margin-top: 1.1rem;
    margin-bottom: 0.65rem;
    font-size: 1.05rem;
}

.fz-musterdepot-rules-grid {
    display: grid;
    grid-template-columns: minmax(220px, 300px) 1fr;
    gap: 0.38rem 1rem;
}

.fz-musterdepot-rule-label {
    color: var(--fz-text-muted);
    font-weight: 600;
}

.fz-musterdepot-overview {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid rgba(136, 153, 184, 0.28);
    border-radius: 10px;
    overflow: hidden;
}

.fz-musterdepot-overview-head {
    background: rgba(74, 165, 223, 0.95);
    color: #fff;
    font-weight: 700;
    padding: 0.58rem 0.75rem;
}

.fz-musterdepot-overview-cell {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: center;
    padding: 0.62rem 0.75rem;
    border-top: 1px solid rgba(136, 153, 184, 0.2);
}

.fz-musterdepot-overview-cell:nth-child(4n + 1),
.fz-musterdepot-overview-cell:nth-child(4n + 2) {
    background: rgba(255, 255, 255, 0.03);
}

.fz-musterdepot-overview-label {
    color: var(--fz-text-muted);
}

@media (max-width: 760px) {
    .fz-musterdepot-rules-grid {
        grid-template-columns: 1fr;
    }
}

.fz-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
}

.fz-chip-toggle {
    border: 1px solid rgba(136, 153, 184, 0.5);
    border-radius: 999px;
    background: rgba(20, 35, 60, 0.86);
    color: #d0ddf6;
    padding: 0.28rem 0.72rem;
    font-size: 0.8rem;
    cursor: pointer;
}

.fz-chip-toggle:hover {
    border-color: rgba(88, 172, 236, 0.85);
}

.fz-chip-toggle-active {
    background: rgba(47, 140, 219, 0.92);
    border-color: rgba(88, 172, 236, 1);
    color: #ffffff;
}

.fz-depot-switch-row {
    display: flex;
    gap: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.fz-depot-switch-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    padding: 0.72rem 1rem;
    border-radius: 10px;
    border: 1px solid rgba(136, 153, 184, 0.52);
    background: rgba(23, 40, 67, 0.88);
    color: #d8e2f7;
    font-weight: 700;
    text-decoration: none;
}

.fz-depot-switch-btn:hover {
    color: #ffffff;
    border-color: rgba(88, 172, 236, 0.85);
    background: rgba(41, 77, 124, 0.92);
}

.fz-depot-switch-btn-active {
    color: #ffffff;
    border-color: rgba(88, 172, 236, 1);
    background: linear-gradient(180deg, rgba(62, 121, 191, 0.95), rgba(41, 94, 161, 0.96));
}

/* ---- Musterdepot Performance Banner ---- */
.fz-perf-banner {
    background: linear-gradient(135deg, #0d1829 0%, #0a2040 100%);
    border: 1px solid rgba(88,172,236,0.3);
    border-radius: var(--fz-radius-lg);
    padding: 3rem 2.5rem;
    position: relative; overflow: hidden;
}
.fz-perf-banner::after {
    content: '';
    position: absolute; top: -60px; right: -60px;
    width: 250px; height: 250px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(88,172,236,0.15) 0%, transparent 70%);
    pointer-events: none;
}
.fz-perf-header { margin-bottom: 2rem; }
.fz-perf-header h2 { font-size: 1.6rem; font-weight: 700; margin-bottom: 0.5rem; }
.fz-perf-header p { color: var(--fz-text-muted); font-size: 0.95rem; }
.fz-perf-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem; margin-bottom: 1.5rem;
}
.fz-perf-stat {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(88,172,236,0.2);
    border-radius: var(--fz-radius);
    padding: 1.25rem;
    text-align: center;
}
.fz-perf-value {
    font-size: 2rem; font-weight: 800;
    color: #4ade80; /* grün – positiv */
    line-height: 1;
}
.fz-perf-value.neg { color: #f87171; }
.fz-perf-caption { font-size: 0.8rem; color: var(--fz-text-muted); margin-top: 0.3rem; }
.fz-perf-footnote {
    font-size: 0.72rem;
    color: var(--fz-text-muted);
    border-top: 1px solid rgba(255,255,255,0.08);
    padding-top: 0.75rem;
    line-height: 1.6;
    margin-top: 0.5rem;
}
.fz-perf-footnote-link {
    color: var(--fz-accent); text-decoration: underline; opacity: 0.7;
}
.fz-perf-footnote-link:hover { opacity: 1; }

/* ---- Pricing Table ---- */
.fz-pricing-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1.5rem;
    max-width: 1100px;
    margin: 0 auto;
}
.fz-pricing-card {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-lg);
    padding: 2rem 1.75rem;
    position: relative;
}
.fz-pricing-card.fz-pricing-featured {
    border-color: var(--fz-accent);
    box-shadow: 0 0 0 1px var(--fz-accent), 0 8px 30px rgba(88,172,236,0.2);
}
.fz-pricing-badge {
    position: absolute; top: -0.7rem; left: 50%; transform: translateX(-50%);
    background: var(--fz-accent); color: #fff;
    border-radius: 2rem; padding: 0.2rem 1rem;
    font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em;
    white-space: nowrap;
}
.fz-pricing-name { font-size: 1rem; font-weight: 600; color: var(--fz-text-muted); margin-bottom: 0.5rem; }
.fz-pricing-price { font-size: 2.2rem; font-weight: 800; color: var(--fz-text-heading); line-height: 1; }
.fz-pricing-price sup { font-size: 1rem; vertical-align: super; }
.fz-pricing-price span { font-size: 0.85rem; font-weight: 400; color: var(--fz-text-muted); }
.fz-pricing-trial { font-size: 0.82rem; color: var(--fz-accent); margin: 0.5rem 0 1.5rem; }
.fz-pricing-features {
    list-style: none; padding: 0; margin: 0 0 1.75rem;
    display: flex; flex-direction: column; gap: 0.65rem;
}
.fz-pricing-features li {
    display: flex; gap: 0.5rem; align-items: flex-start;
    font-size: 0.9rem; color: var(--fz-text-body);
}
.fz-pricing-features li.fz-locked { color: var(--fz-text-muted); }
.fz-pricing-features li::before { content: '✓'; color: var(--fz-accent); font-weight: 700; }
.fz-pricing-features li.fz-locked::before { content: '–'; color: var(--fz-text-muted); }

/* Pricing Teaser (Lock-Hinweis im Free-Plan) */
.fz-pricing-teaser {
    display: flex; align-items: flex-start; gap: 0.5rem;
    background: rgba(88,172,236,0.08);
    border: 1px solid rgba(88,172,236,0.25);
    border-radius: var(--fz-radius);
    padding: 0.75rem 1rem;
    margin-top: 1rem;
    font-size: 0.82rem; color: var(--fz-text-muted); line-height: 1.5;
}
.fz-pricing-teaser svg { flex-shrink: 0; margin-top: 0.1rem; color: var(--fz-accent); }

/* ---- Testimonials ---- */
.fz-testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}
.fz-testimonial-card {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-lg);
    padding: 1.75rem;
}
.fz-testimonial-stars { color: #f59e0b; font-size: 1rem; margin-bottom: 0.75rem; }
.fz-target-icon {
    display: flex; align-items: center; justify-content: center;
    width: 2.75rem; height: 2.75rem;
    background: rgba(88,172,236,0.12);
    border: 1px solid rgba(88,172,236,0.3);
    border-radius: 0.6rem;
    margin-bottom: 1rem;
    color: var(--fz-accent);
}
.fz-target-icon svg { width: 1.35rem; height: 1.35rem; }
.fz-testimonial-text {
    font-size: 0.92rem; line-height: 1.7;
    color: var(--fz-text-body); margin-bottom: 1rem;
    font-style: italic;
}
.fz-testimonial-author { font-size: 0.82rem; color: var(--fz-text-muted); }

/* ---- FAQ ---- */
.fz-faq-list {
    max-width: 720px; margin: 0 auto;
    display: flex; flex-direction: column; gap: 1rem;
}
.fz-faq-item {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius);
    overflow: hidden;
}
.fz-faq-question {
    width: 100%; text-align: left;
    background: none; border: none; cursor: pointer;
    display: flex; justify-content: space-between; align-items: center;
    padding: 1.1rem 1.25rem;
    font-size: 0.95rem; font-weight: 600; color: var(--fz-text-heading);
}
.fz-faq-question:hover { background: rgba(255,255,255,0.03); }
.fz-faq-chevron { transition: transform 0.2s; flex-shrink: 0; color: var(--fz-accent); }
.fz-faq-item.open .fz-faq-chevron,
.fz-faq-item[open] .fz-faq-chevron { transform: rotate(180deg); }
.fz-faq-answer {
    display: none; padding: 0 1.25rem 1.1rem;
    font-size: 0.9rem; color: var(--fz-text-muted); line-height: 1.75;
}
.fz-faq-item.open .fz-faq-answer,
.fz-faq-item[open] .fz-faq-answer { display: block; }
.fz-faq-item summary::-webkit-details-marker { display: none; }
.fz-faq-item summary { list-style: none; }

/* ---- Final CTA ---- */
.fz-final-cta {
    background: linear-gradient(135deg, rgba(88,172,236,0.15) 0%, rgba(88,172,236,0.05) 100%);
    border: 1px solid rgba(88,172,236,0.25);
    border-radius: var(--fz-radius-lg);
    padding: 4rem 2rem;
    text-align: center;
}
.fz-final-cta h2 { font-size: 2rem; font-weight: 800; margin-bottom: 1rem; }
.fz-final-cta p { color: var(--fz-text-muted); max-width: 520px; margin: 0 auto 2rem; line-height: 1.7; }
.fz-final-guarantee {
    margin-top: 1.25rem; font-size: 0.8rem; color: var(--fz-text-muted);
}
.fz-final-guarantee span { margin: 0 0.5rem; }

/* ---- Sticky CTA Bar ---- */
.fz-sticky-cta {
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000;
    background: var(--fz-bg-surface);
    border-top: 1px solid rgba(88,172,236,0.3);
    padding: 0.75rem 1rem;
    display: flex; align-items: center; justify-content: center; gap: 1rem;
    flex-wrap: wrap;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.4);
    transform: translateY(100%);
    transition: transform 0.3s ease;
}
.fz-sticky-cta.visible { transform: translateY(0); }
.fz-sticky-cta-text { font-size: 0.9rem; color: var(--fz-text-body); }
.fz-sticky-cta-close {
    position: absolute; right: 1rem;
    background: none; border: none; cursor: pointer;
    color: var(--fz-text-muted); font-size: 1.2rem;
}

/* ---- To-Top Button ---- */
.fz-to-top {
    position: fixed;
    bottom: 5.5rem;
    right: 2rem;
    width: 44px;
    height: 44px;
    background: var(--fz-accent);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(0,0,0,0.25);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s, visibility 0.25s, background 0.2s;
    z-index: 900;
    text-decoration: none;
}
.fz-to-top--visible {
    opacity: 1;
    visibility: visible;
}
.fz-to-top:hover {
    background: var(--fz-accent-dark, #3a8fd4);
    color: #fff;
}
@media (max-width: 600px) {
    .fz-to-top { bottom: 5rem; right: 1.25rem; width: 38px; height: 38px; }
}

/* ---- Legal Banner ---- */
.fz-legal-banner {
    background: rgba(0,0,0,0.3);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: var(--fz-radius);
    padding: 1rem 1.25rem;
    font-size: 0.75rem;
    color: var(--fz-text-muted);
    line-height: 1.6;
    margin-top: 1.5rem;
}
.fz-legal-banner strong { color: var(--fz-text-body); }

/* ---- Responsive LP ---- */
@media (max-width: 900px) {
    .fz-hero-layout { grid-template-columns: 1fr; }
    .fz-hero-image { display: none; }
    .fz-social-stripe-inner { grid-template-columns: repeat(2, 1fr); }
    .fz-steps-grid { grid-template-columns: 1fr; }
    .fz-showcase { grid-template-columns: 1fr; }
    .fz-showcase.fz-showcase-reverse { direction: ltr; }
    .fz-perf-stats { grid-template-columns: 1fr; }
    .fz-pricing-grid { grid-template-columns: 1fr; }
    .fz-testimonials-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .fz-trust-bar-inner { gap: 0.75rem; }
    .fz-social-stripe-inner { grid-template-columns: repeat(2, 1fr); }
}

/* Index Detail Seite - Flag Icons */
.fz-flag-icon {
    display: inline-block;
    margin-left: 1rem;
    width: 3em;
    height: 3em;
    border-radius: 4px;
    vertical-align: middle;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.fz-description-block {
    line-height: 1.6;
    color: var(--fz-text);
}
.fz-description-block p {
    margin-bottom: 1rem;
    color: var(--fz-text);
}
.fz-description-block p:last-child {
    margin-bottom: 0;
}
.fz-table-wrap {
    overflow-x: auto;
    border-radius: var(--fz-radius);
    border: 1px solid var(--fz-border);
    margin-top: 1.5rem;
}
.fz-stock-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}
.fz-stock-table thead {
    background: var(--fz-bg-surface);
    position: sticky;
    top: 0;
    z-index: 1;
}
.fz-stock-table th,
.fz-stock-table td {
    padding: 0.6rem 0.85rem;
    border-bottom: 1px solid var(--fz-border);
    white-space: nowrap;
    color: var(--fz-text);
}
.fz-stock-table tbody tr:hover {
    background: var(--fz-bg-surface);
}
.fz-stock-table tbody tr:last-child td {
    border-bottom: none;
}
.fz-th-sort {
    cursor: pointer;
    user-select: none;
    font-weight: 600;
    color: var(--fz-text-muted);
}
.fz-th-sort:hover { color: var(--fz-accent); }
.fz-sort-asc::after  { content: " ▲"; color: var(--fz-accent); font-size: 0.7em; }
.fz-sort-desc::after { content: " ▼"; color: var(--fz-accent); font-size: 0.7em; }
.fz-text-right { text-align: right; }
.fz-text-center { text-align: center; }
.fz-nowrap { white-space: nowrap; }
.fz-link-dark {
    color: var(--fz-text);
    text-decoration: none;
    font-weight: 500;
}
.fz-link-dark:hover { color: var(--fz-accent); }
.fz-link-bold {
    font-weight: 600;
}
.fz-tag {
    display: inline-block;
    background: rgba(88,172,236,.12);
    color: var(--fz-accent);
    border-radius: 4px;
    padding: 0.15rem 0.5rem;
    font-size: 0.78rem;
    text-decoration: none;
    white-space: nowrap;
}
.fz-tag:hover { background: rgba(88,172,236,.22); }

/* Paginierung */
.fz-pagination {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-top: 1.25rem;
}
.fz-pagination-info {
    margin-left: auto;
    color: var(--fz-text-muted);
    font-size: 0.85rem;
}
.fz-mb { margin-bottom: 0.5rem; }

/* ============================================================
   Content Pages (Dividendenrendite, Wiki, etc.)
   ============================================================ */
.fz-content-page {
    background: var(--fz-bg);
    min-height: 100vh;
}

.fz-hero-section {
    background: linear-gradient(135deg, var(--fz-bg-surface) 0%, var(--fz-bg-card) 100%);
    padding: 2rem 0 2.5rem;
    border-bottom: 1px solid var(--fz-border);
}

.fz-hero-title {
    font-size: 2.5rem;
    margin-top: 0.5rem;
    color: var(--fz-text-heading);
}

.fz-content-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 2rem;
    margin-top: 2rem;
}

.fz-content-main {
    min-width: 0;
}

.fz-content-sidebar {
    position: sticky;
    top: calc(var(--fz-nav-height) + 1rem);
    height: fit-content;
}

.fz-content-image {
    margin-bottom: 2rem;
    border-radius: var(--fz-radius);
    overflow: hidden;
    box-shadow: var(--fz-shadow);
}

.fz-img-responsive {
    width: 100%;
    height: auto;
    display: block;
}

.fz-content-block p {
    margin-bottom: 1rem;
    line-height: 1.7;
}

.fz-content-block p:last-child {
    margin-bottom: 0;
}

.fz-section-title {
    font-size: 1.75rem;
    margin-bottom: 1rem;
    color: var(--fz-text-heading);
}

.fz-list {
    list-style: disc;
    padding-left: 1.5rem;
    margin: 1rem 0;
    line-height: 1.7;
}

.fz-list li {
    margin-bottom: 0.5rem;
}

.fz-sidebar-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.fz-sidebar-links li {
    border-bottom: 1px solid var(--fz-border);
}

.fz-sidebar-links li:last-child {
    border-bottom: none;
}

.fz-sidebar-links a {
    display: block;
    padding: 0.75rem 0;
    color: var(--fz-text);
    transition: color 0.2s;
}

.fz-sidebar-links a:hover {
    color: var(--fz-accent);
    text-decoration: none;
}

.fz-badge-positive {
    background: rgba(52, 211, 153, 0.15);
    color: var(--fz-positive);
    padding: 0.25rem 0.6rem;
    border-radius: 4px;
    font-weight: 600;
    font-size: 0.9rem;
}

.fz-mt-sm {
    margin-top: 0.75rem;
}

.fz-table-responsive {
    overflow-x: auto;
}

@media (max-width: 1024px) {
    .fz-content-grid {
        grid-template-columns: 1fr;
    }

    .fz-content-sidebar {
        position: static;
        margin-top: 2rem;
    }
}

@media (max-width: 600px) {
    .fz-hero-title {
        font-size: 1.75rem;
    }
}

/* ============================================================
   Loading Spinner
   ============================================================ */
.fz-loading-spinner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    gap: 1rem;
}

.fz-spinner {
    width: 48px;
    height: 48px;
    border: 4px solid var(--fz-border);
    border-top-color: var(--fz-accent);
    border-radius: 50%;
    animation: fz-spin 0.8s linear infinite;
}

/* Kompakte Inline-Variante, z. B. neben dem Treffer-Zaehler waehrend des Filterns. */
.fz-spinner-sm {
    width: 16px;
    height: 16px;
    border-width: 2px;
    display: inline-block;
    vertical-align: middle;
}

.fz-screener-count {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

@keyframes fz-spin {
    to { transform: rotate(360deg); }
}

.fz-loading-spinner p {
    color: var(--fz-text-muted);
    font-size: 0.95rem;
    margin: 0;
}

/* ============================================================
   Wiki-Artikel Layout
   ============================================================ */

.fz-wiki-layout {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 2.5rem;
    align-items: start;
}

@media (max-width: 900px) {
    .fz-wiki-layout { grid-template-columns: 1fr; }
    .fz-wiki-sidebar { order: -1; }
}

.fz-wiki-article h1 { font-size: 2.1rem; margin-bottom: 1.5rem; color: var(--fz-text-heading); }
.fz-wiki-article h2 { font-size: 1.5rem; margin-top: 2.2rem; margin-bottom: 0.9rem; color: var(--fz-text-heading); border-bottom: 1px solid var(--fz-border); padding-bottom: 0.4rem; }
.fz-wiki-article h3 { font-size: 1.2rem; margin-top: 1.6rem; margin-bottom: 0.6rem; color: var(--fz-accent); }
.fz-wiki-article p { line-height: 1.8; margin-bottom: 1rem; color: var(--fz-text); }
.fz-wiki-article ul, .fz-wiki-article ol { margin-left: 1.5rem; line-height: 1.8; margin-bottom: 1rem; }
.fz-wiki-article ul li, .fz-wiki-article ol li { margin-bottom: 0.4rem; }
.fz-wiki-article strong { color: var(--fz-text-heading); }
.fz-wiki-article a { color: var(--fz-accent); }
.fz-wiki-article a:hover { text-decoration: underline; }
.fz-wiki-article a.fz-btn,
.fz-wiki-article a.fz-btn:hover { color: inherit; text-decoration: none; }
.fz-wiki-article a.fz-btn-primary,
.fz-wiki-article a.fz-btn-primary:hover { color: #0a1628; }

.fz-wiki-formula {
    background: var(--fz-bg-surface);
    border-left: 4px solid var(--fz-accent);
    padding: 1rem 1.5rem;
    margin: 1.5rem 0;
    border-radius: var(--fz-radius);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--fz-text-heading);
    letter-spacing: 0.01em;
}

.fz-wiki-infobox {
    background: var(--fz-bg-surface);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius);
    padding: 1.2rem 1.5rem;
    margin: 1.5rem 0;
}

.fz-wiki-infobox .fz-wiki-infobox-title {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--fz-accent);
    margin-bottom: 0.7rem;
    font-weight: 700;
}

.fz-wiki-infobox table { width: 100%; border-collapse: collapse; }
.fz-wiki-infobox td { padding: 0.45rem 0.5rem; font-size: 0.92rem; border-bottom: 1px solid var(--fz-border); }
.fz-wiki-infobox tr:last-child td { border-bottom: none; }
.fz-wiki-infobox td:first-child { color: var(--fz-text-muted); width: 50%; }
.fz-wiki-infobox td:last-child { color: var(--fz-text-heading); font-weight: 600; }

.fz-wiki-hero-img {
    width: 100%;
    border-radius: var(--fz-radius-lg);
    margin-bottom: 2rem;
    max-height: 280px;
    object-fit: cover;
}

.fz-wiki-sidebar {
    position: sticky;
    top: calc(var(--fz-nav-height) + 1.5rem);
}

.fz-wiki-sidebar-box {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-lg);
    padding: 1.4rem;
    margin-bottom: 1.5rem;
}

.fz-wiki-sidebar-box h4 {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--fz-accent);
    margin-bottom: 1rem;
    font-weight: 700;
}

.fz-wiki-sidebar-links { list-style: none; padding: 0; margin: 0; }
.fz-wiki-sidebar-links li { margin-bottom: 0.4rem; }
.fz-wiki-sidebar-links a {
    color: var(--fz-text);
    font-size: 0.92rem;
    text-decoration: none;
    padding: 0.3rem 0.5rem;
    border-radius: 6px;
    display: block;
    transition: background 0.15s;
}
.fz-wiki-sidebar-links a:hover { background: var(--fz-bg-surface); color: var(--fz-accent); }
.fz-wiki-sidebar-links a.active { color: var(--fz-accent); font-weight: 600; }

.fz-wiki-tag {
    display: inline-block;
    background: var(--fz-bg-surface);
    color: var(--fz-accent);
    border: 1px solid var(--fz-accent);
    border-radius: 20px;
    padding: 0.2rem 0.7rem;
    font-size: 0.8rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

.fz-wiki-score-table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: 0.93rem; }
.fz-wiki-score-table th { background: var(--fz-bg-surface); color: var(--fz-text-muted); font-weight: 600; padding: 0.6rem 0.8rem; text-align: left; }
.fz-wiki-score-table td { padding: 0.5rem 0.8rem; border-bottom: 1px solid var(--fz-border); }
.fz-wiki-score-table tr:last-child td { border-bottom: none; }

/* GICS Nested Table */
.fz-wiki-gics-wrap { overflow-x: auto; margin: 1rem 0; }
.fz-wiki-gics-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.fz-wiki-gics-table thead th { background: var(--fz-bg-surface); color: var(--fz-accent); font-weight: 700; padding: 0.55rem 0.7rem; text-align: left; border-bottom: 2px solid var(--fz-border); white-space: nowrap; }
.fz-wiki-gics-table td { padding: 0.35rem 0.7rem; border: 1px solid var(--fz-border); vertical-align: top; }
.fz-wiki-gics-table td.gics-sector { background: rgba(88,172,236,0.08); font-weight: 700; color: var(--fz-text-heading); }
.fz-wiki-gics-table td.gics-group { background: rgba(88,172,236,0.04); font-weight: 600; color: var(--fz-text); }
.fz-wiki-gics-table td.gics-industry { color: var(--fz-text-muted); font-size: 0.8rem; }
.fz-wiki-gics-table tr:hover td { background: rgba(255,255,255,0.03); }

/* Wiki Quote */
.fz-wiki-quote { border-left: 3px solid var(--fz-accent); padding: 0.7rem 1rem; margin: 1.2rem 0; color: var(--fz-text-muted); font-style: italic; }
.fz-wiki-quote cite { display: block; margin-top: 0.4rem; font-size: 0.82rem; font-style: normal; color: var(--fz-text-muted); }

/* Live-Example Widget (KGV Wiki) */
.fz-wiki-live-example { border-left: 3px solid var(--fz-accent); position: relative; }
.fz-wiki-live-badge { display: inline-block; background: var(--fz-accent); color: #0e1a2d; font-size: 0.65rem; font-weight: 700; letter-spacing: 0.05em; padding: 1px 6px; border-radius: 4px; vertical-align: middle; margin-left: 6px; text-transform: uppercase; }
.fz-wiki-live-sentence { font-style: italic; color: var(--fz-text-muted); padding-top: 0.5rem; }
.fz-wiki-live-date { font-size: 0.78rem; color: var(--fz-text-muted); margin-top: 0.6rem; }

/* ============================================================
   Legal Pages
   ============================================================ */
.fz-legal-page {
    max-width: 980px;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.fz-legal-breadcrumb {
    font-size: 0.85rem;
    color: var(--fz-text-muted);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.fz-legal-hero {
    border-color: rgba(88, 172, 236, 0.35);
    background: linear-gradient(135deg, rgba(88, 172, 236, 0.16), rgba(88, 172, 236, 0.05));
}

.fz-legal-hero h1 {
    font-size: 1.9rem;
    margin-bottom: 0.4rem;
}

.fz-legal-hero p {
    margin: 0;
    color: var(--fz-text-muted);
}

.fz-legal-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.fz-legal-section {
    line-height: 1.75;
}

.fz-legal-section h2 {
    margin-bottom: 0.6rem;
    font-size: 1.2rem;
}

.fz-legal-section h3 {
    margin-top: 1rem;
    margin-bottom: 0.4rem;
    font-size: 1.03rem;
    color: var(--fz-accent);
}

.fz-legal-section p,
.fz-legal-section li {
    color: var(--fz-text);
}

.fz-legal-section p + p {
    margin-top: 0.55rem;
}

.fz-legal-section ul {
    margin: 0.5rem 0 0;
    padding-left: 1.25rem;
}

.fz-legal-section li + li {
    margin-top: 0.45rem;
}

.fz-legal-stand {
    margin-top: 0.8rem;
    color: var(--fz-text-muted);
    font-size: 0.88rem;
}

@media (max-width: 900px) {
    .fz-legal-grid {
        grid-template-columns: 1fr;
    }

    .fz-legal-hero h1 {
        font-size: 1.55rem;
    }
}

/* ============================================================
   Aktienbewertung
   ============================================================ */
.fz-howto-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.fz-howto-item {
    background: var(--fz-bg-surface);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius);
    padding: 0.9rem;
}

.fz-howto-img {
    width: 100%;
    height: 170px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid var(--fz-border);
    margin-bottom: 0.7rem;
    background: #13213b;
}

.fz-howto-item h3 {
    font-size: 1rem;
    margin-bottom: 0.35rem;
    color: var(--fz-text-heading);
}

.fz-howto-item p {
    margin: 0;
    color: var(--fz-text-muted);
    line-height: 1.6;
    font-size: 0.92rem;
}

@media (max-width: 900px) {
    .fz-howto-grid {
        grid-template-columns: 1fr;
    }

    .fz-howto-img {
        height: 190px;
    }
}

@media (max-width: 1080px) {
    .fz-app-shell {
        grid-template-columns: 1fr;
        position: relative;
    }

    .fz-app-sidebar-mobile-toggle {
        position: sticky;
        top: calc(var(--fz-nav-height) + 0.55rem);
        z-index: 1110;
        margin: 0.65rem 0.9rem 0;
        justify-self: start;
        border: 1px solid rgba(88, 172, 236, 0.45);
        background: rgba(24, 38, 66, 0.95);
        color: var(--fz-text-heading);
        border-radius: 999px;
        padding: 0.38rem 0.8rem;
        font-size: 0.84rem;
        font-weight: 700;
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
    }

    .fz-app-sidebar {
        position: fixed;
        top: var(--fz-nav-height);
        left: -292px;
        width: 280px;
        height: calc(100vh - var(--fz-nav-height));
        border-right: 1px solid var(--fz-border);
        border-bottom: none;
        padding: 0.85rem;
        z-index: 1130;
        transition: left 0.22s ease;
        box-shadow: 0 14px 34px rgba(0, 0, 0, 0.33);
    }

    .fz-app-sidebar-open {
        left: 0;
    }

    .fz-app-sidebar-backdrop {
        position: fixed;
        inset: var(--fz-nav-height) 0 0 0;
        border: none;
        background: rgba(3, 9, 20, 0.62);
        z-index: 1120;
    }

    .fz-app-sidebar-nav {
        display: flex;
        flex-direction: column;
        gap: 0.35rem;
    }

    .fz-app-sidebar-divider {
        grid-column: auto;
    }
}

@media (max-width: 680px) {
    .fz-app-search {
        min-width: 0;
        width: 100%;
    }

    .fz-app-sidebar {
        width: min(86vw, 300px);
        left: -90vw;
    }
}

.fz-screener-page {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.fz-screener-container {
    width: min(100%, 1760px);
    max-width: none;
}

.fz-screener-shell {
    display: grid;
    grid-template-columns: clamp(260px, 20vw, 340px) minmax(0, 1fr);
    gap: 0.9rem;
    align-items: start;
}

.fz-screener-sidebar {
    position: sticky;
    top: calc(var(--fz-nav-height) + 0.8rem);
    max-height: calc(100vh - var(--fz-nav-height) - 1rem);
    overflow-y: auto;
    overflow-x: hidden;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    padding-right: 0.2rem;
}

.fz-screener-sidebar-collapsed {
    max-height: none;
    overflow: visible;
}

.fz-screener-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.fz-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(5, 10, 20, 0.62);
    z-index: 1200;
}

.fz-modal {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(620px, 92vw);
    z-index: 1210;
}

.fz-modal-lg {
    width: min(1680px, 98vw);
    max-height: 96vh;
    overflow: hidden;
}

.fz-watchlist-detail-modal {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-lg);
    padding: 0.95rem;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.45);
}

.fz-watchlist-detail-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
    margin-bottom: 0.65rem;
}

.fz-watchlist-detail-modal-head h3 {
    margin: 0;
}

.fz-watchlist-detail-modal-body {
    max-height: calc(96vh - 5.5rem);
    overflow: auto;
    padding-right: 0.25rem;
}

.fz-watchlist-detail-modal .fz-screener-detail-panel {
    padding-right: 0.15rem;
}

.fz-welcome-modal {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-lg);
    padding: 1.15rem;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.45);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.fz-welcome-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}

.fz-screener-intro-card {
    border-color: rgba(88, 172, 236, 0.34);
}

.fz-screener-asset-switch {
    margin-top: 0.75rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.fz-screener-asset-switch .fz-btn small {
    font-size: 0.68rem;
    opacity: 0.92;
}

.fz-screener-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    background: rgba(88, 172, 236, 0.08);
}

.fz-screener-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.fz-screener-filter-groups {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.55rem;
}

.fz-filter-group {
    border: 1px solid rgba(136, 153, 184, 0.25);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.02);
}

.fz-filter-group-expert {
    grid-column: 1 / -1;
}

.fz-filter-group-head {
    width: 100%;
    border: none;
    background: transparent;
    color: var(--fz-text-heading);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.55rem 0.65rem;
    font-size: 0.84rem;
    font-weight: 700;
    cursor: pointer;
}

.fz-filter-group-body {
    border-top: 1px solid rgba(136, 153, 184, 0.2);
    padding: 0.55rem 0.65rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.fz-filter-field {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.78rem;
    color: var(--fz-text-muted);
    align-items: stretch;
    min-width: 0;
}

.fz-filter-field > span {
    display: block;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.fz-filter-group-head > span:first-child {
    min-width: 0;
    overflow-wrap: anywhere;
}

.fz-multi-select {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 118px;
    padding: 0.35rem 0.45rem;
    background: rgba(17, 27, 48, 0.95);
    border: 1px solid rgba(88, 172, 236, 0.25);
    color: var(--fz-text);
    box-sizing: border-box;
}

.fz-multi-select option {
    background: #182642;
    color: var(--fz-text);
    padding: 0.25rem 0.35rem;
    white-space: normal;
    overflow-wrap: anywhere;
}

.fz-multi-select:focus {
    outline: none;
    border-color: rgba(88, 172, 236, 0.65);
    box-shadow: 0 0 0 2px rgba(88, 172, 236, 0.2);
}

.fz-multi-select::-webkit-scrollbar,
.fz-screener-sidebar::-webkit-scrollbar {
    width: 10px;
}

.fz-multi-select::-webkit-scrollbar-track,
.fz-screener-sidebar::-webkit-scrollbar-track {
    background: rgba(15, 24, 42, 0.72);
    border-radius: 999px;
}

.fz-multi-select::-webkit-scrollbar-thumb,
.fz-screener-sidebar::-webkit-scrollbar-thumb {
    background: rgba(88, 172, 236, 0.55);
    border-radius: 999px;
    border: 2px solid rgba(15, 24, 42, 0.72);
}

.fz-multi-select::-webkit-scrollbar-thumb:hover,
.fz-screener-sidebar::-webkit-scrollbar-thumb:hover {
    background: rgba(88, 172, 236, 0.75);
}

.fz-filter-field .fz-btn {
    align-self: flex-start;
}

.fz-facet-dropdown {
    position: relative;
    width: 100%;
}

.fz-facet-trigger {
    width: 100%;
    min-height: 34px;
    border: 1px solid var(--fz-border);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.05);
    color: var(--fz-text);
    padding: 0.45rem 0.55rem;
    font-size: 0.84rem;
    text-align: left;
    cursor: pointer;
}

.fz-facet-trigger:hover {
    border-color: rgba(88, 172, 236, 0.5);
}

.fz-facet-menu {
    margin-top: 0.35rem;
    border: 1px solid var(--fz-border);
    border-radius: 10px;
    background: rgba(17, 27, 48, 0.98);
    padding: 0.4rem;
    max-height: 260px;
    overflow-y: auto;
}

.fz-facet-search {
    margin-bottom: 0.4rem;
}

.fz-facet-option {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    padding: 0.28rem 0.2rem;
    color: var(--fz-text);
    font-size: 0.82rem;
}

.fz-facet-option-all {
    border-bottom: 1px solid rgba(136, 153, 184, 0.25);
    margin-bottom: 0.25rem;
    padding-bottom: 0.4rem;
}

.fz-facet-option input {
    margin-top: 0.15rem;
}

.fz-facet-option span {
        overflow-wrap: anywhere;
    }

    .fz-filter-slider {
        margin-top: 0.15rem;
    }

    .fz-filter-expert-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.5rem 0.75rem;
    }

    .fz-input {
        height: 34px;
        border: 1px solid var(--fz-border);
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.05);
        color: var(--fz-text);
        padding: 0 0.55rem;
        font-size: 0.84rem;
    }

    select.fz-input {
        color-scheme: dark;
        background-color: rgba(26, 39, 68, 0.98);
        border-color: rgba(88, 172, 236, 0.22);
    }

    select.fz-input:focus {
        outline: none;
        border-color: rgba(88, 172, 236, 0.65);
        box-shadow: 0 0 0 2px rgba(88, 172, 236, 0.2);
    }

    select.fz-input option,
    select.fz-input optgroup {
        background: #1a2744;
        color: var(--fz-text);
    }

    select.fz-input option:checked {
        background: linear-gradient(rgba(88, 172, 236, 0.35), rgba(88, 172, 236, 0.35));
        color: var(--fz-text-heading);
    }

    .fz-filter-field {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
    }

    .fz-filter-field > span {
        display: block;
        font-size: 0.88rem;
        font-weight: 500;
        color: var(--fz-text);
    }

    /* ============================================================
       FzRangeSlider - negativ-sicherer Dual-Range-Slider (finanzoo dark)
       ============================================================ */
    .fz-range-slider {
        display: flex;
        flex-direction: column;
        gap: 0.45rem;
        width: 100%;
    }

    .fz-range-slider-head {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 0.5rem;
    }

    .fz-range-slider-label {
        font-size: 0.88rem;
        font-weight: 500;
        color: var(--fz-text);
    }

    .fz-range-slider-value {
        font-size: 0.82rem;
        font-weight: 600;
        color: var(--fz-accent);
        white-space: nowrap;
    }

    .fz-range-slider-track {
        position: relative;
        height: 22px;
        display: flex;
        align-items: center;
    }

    .fz-range-slider-track::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        height: 6px;
        border-radius: 4px;
        background: var(--fz-border);
    }

    .fz-range-slider-fill {
        position: absolute;
        height: 6px;
        border-radius: 4px;
        background: var(--fz-accent);
        pointer-events: none;
    }

    .fz-range-slider-input {
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 100%;
        margin: 0;
        height: 18px;
        background: transparent;
        -webkit-appearance: none;
        appearance: none;
        pointer-events: none;
    }

    .fz-range-slider-input::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        pointer-events: auto;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: var(--fz-accent);
        border: 2px solid var(--fz-bg);
        box-shadow: 0 2px 6px rgba(88, 172, 236, 0.5);
        cursor: grab;
        transition: background 0.15s ease, box-shadow 0.15s ease;
        /* Thumb relativ zur 6px-Runnable-Track vertikal zentrieren: (6 - 18) / 2 = -6px */
        margin-top: -6px;
    }

    .fz-range-slider-input::-moz-range-thumb {
        pointer-events: auto;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: var(--fz-accent);
        border: 2px solid var(--fz-bg);
        box-shadow: 0 2px 6px rgba(88, 172, 236, 0.5);
        cursor: grab;
        transition: background 0.15s ease, box-shadow 0.15s ease;
    }

    .fz-range-slider-input::-webkit-slider-thumb:hover {
        background: var(--fz-accent-hover);
        box-shadow: 0 0 10px rgba(88, 172, 236, 0.9);
    }

    .fz-range-slider-input::-moz-range-thumb:hover {
        background: var(--fz-accent-hover);
        box-shadow: 0 0 10px rgba(88, 172, 236, 0.9);
    }

    .fz-range-slider-input:active::-webkit-slider-thumb {
        cursor: grabbing;
    }

    .fz-range-slider-input:active::-moz-range-thumb {
        cursor: grabbing;
    }

    .fz-range-slider-input:focus-visible::-webkit-slider-thumb {
        outline: 2px solid var(--fz-accent);
        outline-offset: 2px;
    }

    .fz-range-slider-input::-webkit-slider-runnable-track {
        background: transparent;
        height: 6px;
    }

    .fz-range-slider-input::-moz-range-track {
        background: transparent;
        height: 6px;
    }

    /* Numerische Feinjustage-Eingabefelder (nur Ratios/Renditen) */
    .fz-range-slider-inputs {
        display: flex;
        align-items: center;
        gap: 0.4rem;
    }

    .fz-range-slider-number {
        width: 100%;
        min-width: 0;
        padding: 0.25rem 0.45rem;
        font-size: 0.8rem;
        color: var(--fz-text);
        background: var(--fz-bg, rgba(0, 0, 0, 0.2));
        border: 1px solid var(--fz-border);
        border-radius: 6px;
        text-align: center;
        -moz-appearance: textfield;
    }

    .fz-range-slider-number::-webkit-outer-spin-button,
    .fz-range-slider-number::-webkit-inner-spin-button {
        -webkit-appearance: none;
        margin: 0;
    }

    .fz-range-slider-number:focus-visible {
        outline: none;
        border-color: var(--fz-accent);
        box-shadow: 0 0 0 2px rgba(56, 139, 253, 0.35);
    }

    .fz-range-slider-inputs-sep {
        flex: 0 0 auto;
        font-size: 0.78rem;
        color: var(--fz-text-muted, var(--fz-text));
        opacity: 0.7;
        white-space: nowrap;
    }

    /* ============================================================
       FzMultiSelectDropdown - Checkbox-Multiselect (finanzoo dark)
       ============================================================ */
    .fz-multiselect {
        position: relative;
        width: 100%;
    }

    .fz-multiselect-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
        width: 100%;
        padding: 0.5rem 0.7rem;
        border: 1px solid var(--fz-border);
        border-radius: 6px;
        background: var(--fz-bg-surface);
        color: var(--fz-text);
        font-size: 0.88rem;
        cursor: pointer;
        transition: border-color 0.15s ease, box-shadow 0.15s ease;
    }

    .fz-multiselect-toggle:hover {
        border-color: rgba(88, 172, 236, 0.65);
    }

    .fz-multiselect--open .fz-multiselect-toggle {
        border-color: rgba(88, 172, 236, 0.65);
        box-shadow: 0 0 0 2px rgba(88, 172, 236, 0.2);
    }

    .fz-multiselect-summary {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .fz-multiselect-caret {
        flex-shrink: 0;
        font-size: 0.7rem;
        color: var(--fz-text-muted);
    }

    .fz-multiselect-panel {
        position: absolute;
        z-index: 30;
        top: calc(100% + 4px);
        left: 0;
        right: 0;
        max-height: 260px;
        overflow-y: auto;
        padding: 0.35rem;
        border: 1px solid var(--fz-border);
        border-radius: 6px;
        background: var(--fz-bg-card);
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
    }

    .fz-multiselect-list {
        display: flex;
        flex-direction: column;
    }

    .fz-multiselect-option {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        padding: 0.4rem 0.5rem;
        border-radius: 4px;
        font-size: 0.86rem;
        color: var(--fz-text);
        cursor: pointer;
    }

    .fz-multiselect-option:hover {
        background: rgba(88, 172, 236, 0.12);
    }

    .fz-multiselect-option input[type="checkbox"] {
        width: 15px;
        height: 15px;
        accent-color: var(--fz-accent);
        cursor: pointer;
    }

    .fz-multiselect-option--all {
        border-bottom: 1px solid var(--fz-border);
        margin-bottom: 0.25rem;
        font-weight: 600;
    }

    /* obsolete slider markup hidden (legacy cleanup) */
    .fz-screener-obsolete-slider-cleanup {
        display: none;
    }

    /* noUiSlider Custom Theme für Finanzoo */
    .fz-screener-legacy-tooltip-hidden {
        display: none;
    }

    /* Fallback für alte .fz-range-slider-container (nicht mehr verwendet) */
    .fz-screener-saved-filters {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
    }

    .fz-saved-filter-create {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .fz-saved-filter-list {
        display: flex;
        flex-direction: column;
        gap: 0.45rem;
    }

    .fz-saved-filter-item {
    border: 1px solid rgba(136, 153, 184, 0.25);
    border-radius: 8px;
    padding: 0.45rem 0.55rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.fz-saved-filter-default {
    margin-left: 0.45rem;
    font-size: 0.72rem;
    color: var(--fz-accent);
    font-weight: 600;
}

.fz-saved-filter-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.fz-depot-page {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    position: relative;
}

/* Waehrend einer laufenden Speicher-/Neuberechnungs-Operation wird der
   gesamte Depot-Bereich fuer Eingaben gesperrt. Das Overlay faengt Klicks ab. */
.fz-depot-page--busy {
    cursor: progress;
}

.fz-depot-page--busy .fz-card {
    user-select: none;
}

.fz-busy-overlay {
    position: absolute;
    inset: 0;
    z-index: 50;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(1px);
    border-radius: var(--fz-radius);
    animation: fz-fade-in 120ms ease-out;
}

.fz-busy-overlay-content {
    position: sticky;
    top: 40vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.9rem;
    padding: 1.5rem 1rem;
}

.fz-busy-overlay-content p {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--fz-text);
    text-align: center;
}

.fz-quick-entry-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
}

.fz-quick-entry-panel-body {
    animation: fzQuickEntryReveal 180ms ease-out;
}

.fz-quick-entry-type-grid {
    grid-template-columns: minmax(240px, 380px);
}

.fz-quick-entry-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.8rem;
    align-items: end;
}

.fz-quick-entry-watchlist-form {
    width: min(980px, 100%);
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.fz-quick-entry-search-field {
    grid-column: 1 / span 2;
}

.fz-quick-entry-search-field .fz-input {
    width: 100%;
}

.fz-quick-entry-watchlist-actions {
    display: flex;
    justify-content: flex-end;
}

.fz-quick-entry-action-field {
    min-width: 12.5rem;
    grid-column: 6;
}

.fz-quick-entry-toast {
    margin-top: 0.7rem;
    margin-bottom: 0.2rem;
    border-radius: var(--fz-radius);
    padding: 0.5rem 0.7rem;
    font-size: 0.84rem;
}

.fz-quick-entry-toast-success {
    border: 1px solid rgba(52,211,153,0.4);
    background: rgba(52,211,153,0.12);
    color: #a6f0cf;
}

.fz-quick-entry-toast-error {
    border: 1px solid rgba(248,113,113,0.4);
    background: rgba(248,113,113,0.12);
    color: #ffc1c1;
}

@keyframes fzQuickEntryReveal {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .fz-quick-entry-panel-body {
        animation: none;
    }
}

.fz-depot-wizard-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.6rem;
}

.fz-depot-step,
.fz-depot-step-active {
    border-radius: 999px;
    padding: 0.2rem 0.65rem;
    font-size: 0.78rem;
    border: 1px solid var(--fz-border);
    color: var(--fz-text-muted);
}

.fz-depot-step-active {
    color: var(--fz-text-heading);
    border-color: rgba(88, 172, 236, 0.55);
    background: rgba(88, 172, 236, 0.2);
}

.fz-depot-wizard-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
}

.fz-quick-stock-search-wrap {
    position: relative;
}

.fz-field-label {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    color: var(--fz-text-muted);
    font-size: 0.82rem;
}

.fz-depot-currency-badge {
    min-height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.45rem 0.9rem;
    border-radius: 10px;
    border: 1px solid rgba(88, 172, 236, 0.7);
    background: linear-gradient(135deg, rgba(20, 33, 60, 0.95), rgba(25, 44, 78, 0.95));
    color: #d8ebff;
    font-weight: 700;
    letter-spacing: 0.02em;
    box-shadow: inset 0 0 0 1px rgba(130, 194, 255, 0.2), 0 0 0 1px rgba(24, 66, 122, 0.35);
}

.fz-depot-currency-badge-compact {
    min-height: 2rem;
    padding: 0.3rem 0.7rem;
    font-size: 0.82rem;
    border-radius: 8px;
}

.fz-depot-danger-actions {
    border: 1px solid rgba(248, 113, 113, 0.45);
    background: rgba(248, 113, 113, 0.08);
    border-radius: 10px;
    padding: 0.55rem;
}

.fz-depot-delete-summary {
    margin: 0.5rem 0 0.75rem;
    padding-left: 1.1rem;
    color: var(--fz-text-muted);
    font-size: 0.9rem;
}

.fz-depot-delete-summary li + li {
    margin-top: 0.2rem;
}

.fz-depot-strategy-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
}

.fz-depot-strategy {
    border: 1px solid var(--fz-border);
    background: rgba(255, 255, 255, 0.03);
    color: var(--fz-text);
    border-radius: 10px;
    padding: 0.65rem;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    cursor: pointer;
}

.fz-depot-strategy-active {
    border-color: rgba(88, 172, 236, 0.55);
    background: rgba(88, 172, 236, 0.18);
}

.fz-depot-suggestion-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0.6rem 0;
}

.fz-depot-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

.fz-depot-kpi-label {
    font-size: 0.78rem;
    color: var(--fz-text-muted);
    margin-bottom: 0.3rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fz-depot-kpi-value {
    font-size: 1.28rem;
    font-weight: 700;
    color: var(--fz-text-heading);
}

.fz-depot-positive {
    color: #7de4bb;
}

.fz-depot-negative {
    color: #ff9d9d;
}

.fz-depot-zero {
    color: #facc15;
}

.fz-depot-input-negative {
    border-color: rgba(248, 113, 113, 0.75) !important;
    background: rgba(248, 113, 113, 0.2) !important;
    color: #ffd4d4 !important;
}

.fz-depot-input-negative:focus {
    box-shadow: 0 0 0 2px rgba(248, 113, 113, 0.28);
}

.fz-depot-input-zero {
    border-color: rgba(250, 204, 21, 0.75) !important;
    background: rgba(250, 204, 21, 0.14) !important;
    color: #fff1b8 !important;
}

.fz-depot-input-zero:focus {
    box-shadow: 0 0 0 2px rgba(250, 204, 21, 0.24);
}

.fz-depot-quantity-warning-wrap {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.fz-depot-quantity-warning-icon {
    color: #fca5a5;
    font-size: 0.78rem;
    line-height: 1;
    cursor: help;
}

.fz-depot-quantity-warning-icon .fz-icon {
    color: currentColor;
}

.fz-depot-distribution-list,
.fz-depot-benchmark-list {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.fz-depot-distribution-item,
.fz-depot-benchmark-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid rgba(136, 153, 184, 0.22);
    border-radius: 8px;
    padding: 0.45rem 0.55rem;
}

.fz-depot-warning-card {
    border-color: rgba(248, 113, 113, 0.45);
    background: rgba(248, 113, 113, 0.08);
}

.fz-depot-row-warning td {
    background: rgba(248, 113, 113, 0.08);
}

.fz-depot-row-new td {
    animation: fz-depot-row-new-highlight 2.4s ease;
}

@keyframes fz-depot-row-new-highlight {
    0% {
        background: rgba(125, 228, 187, 0.42);
    }
    100% {
        background: inherit;
    }
}

.fz-depot-eval-grid {
    margin-top: 0.75rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}

.fz-depot-eval-item {
    border: 1px solid rgba(136, 153, 184, 0.22);
    border-radius: 8px;
    padding: 0.45rem 0.55rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.84rem;
    color: var(--fz-text-muted);
}

.fz-depot-eval-item strong {
    color: var(--fz-text-heading);
    font-size: 1rem;
}

.fz-watchlist-page {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.fz-watchlist-delta-positive {
    color: #7de4bb;
    font-weight: 700;
}

.fz-watchlist-delta-negative {
    color: #ff9d9d;
    font-weight: 700;
}

.fz-watchlist-alarm-inline {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.fz-watchlist-alarm-inline .fz-input {
    width: 80px;
}

.fz-depot-positions-wrap {
    width: 100%;
    margin-top: 0.7rem;
}

.fz-depot-positions-scroll {
    overflow: auto;
    width: 100%;
    max-height: min(68vh, 740px);
    scrollbar-gutter: stable;
    border: 1px solid rgba(136, 153, 184, 0.2);
    border-radius: 10px;
    background: rgba(20, 32, 56, 0.35);
}

.fz-depot-positions-scroll::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.fz-depot-positions-scroll::-webkit-scrollbar-track {
    background: rgba(15, 24, 42, 0.72);
    border-radius: 999px;
}

.fz-depot-positions-scroll::-webkit-scrollbar-thumb {
    background: rgba(88, 172, 236, 0.55);
    border-radius: 999px;
    border: 2px solid rgba(15, 24, 42, 0.72);
}

.fz-depot-positions-scroll::-webkit-scrollbar-thumb:hover {
    background: rgba(88, 172, 236, 0.75);
}

.fz-depot-positions-table {
    width: 100%;
    min-width: 100%;
    table-layout: auto;
}

.fz-depot-positions-table th,
.fz-depot-positions-table td {
    padding: 0.46rem 0.38rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fz-depot-positions-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: rgba(46, 112, 165, 0.78);
    color: #ffffff;
    border-bottom-color: rgba(255, 255, 255, 0.18);
    text-transform: none;
    letter-spacing: 0.01em;
    font-size: 0.78rem;
    white-space: nowrap;
    line-height: 1.1;
}

.fz-depot-name-cell {
    min-width: 220px;
    max-width: 260px;
    overflow: visible !important;
    text-overflow: clip !important;
}

.fz-depot-name-main {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
}

.fz-depot-inline-action {
    padding: 0;
    font-size: 0.72rem;
    line-height: 1.05;
}

.fz-depot-positions-table thead .fz-btn.fz-btn-ghost.fz-btn-sm {
    padding: 0.12rem 0.2rem;
    font-size: 0.78rem;
    line-height: 1.1;
    white-space: nowrap;
    justify-content: flex-start;
}

.fz-depot-positions-table tbody td {
    white-space: nowrap;
    vertical-align: top;
}

.fz-depot-positions-table th:first-child,
.fz-depot-positions-table td:first-child {
    min-width: 220px;
}

.fz-depot-positions-table td:first-child {
    white-space: normal;
    overflow-wrap: anywhere;
}

.fz-depot-positions-table td:first-child strong {
    display: block;
    margin-bottom: 0.1rem;
}

.fz-depot-positions-table td:not(:first-child) {
    min-width: 88px;
}

.fz-depot-positions-table .fz-input.fz-transactions-input {
    min-height: 24px;
    height: 24px;
    width: clamp(68px, 6vw, 90px);
    min-width: 68px;
    padding: 0.05rem 0.28rem;
    font-size: 0.74rem;
    line-height: 1.05;
    border-radius: 6px;
}

.fz-depot-positions-table input[type="number"].fz-input.fz-transactions-input {
    appearance: textfield;
    -moz-appearance: textfield;
}

.fz-depot-positions-table input[type="number"].fz-input.fz-transactions-input::-webkit-outer-spin-button,
.fz-depot-positions-table input[type="number"].fz-input.fz-transactions-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.fz-depot-lots-table {
    margin: 0;
}

.fz-transactions-table-wrap {
    overflow-y: auto;
    overflow-x: auto;
    width: 100%;
    max-height: min(68vh, 720px);
    scrollbar-gutter: stable;
    border: 1px solid rgba(136, 153, 184, 0.2);
    border-radius: 10px;
}

.fz-transactions-table-wrap::-webkit-scrollbar {
    height: 10px;
    width: 10px;
}

.fz-transactions-table-wrap::-webkit-scrollbar-thumb {
    background: rgba(88, 172, 236, 0.55);
    border-radius: 999px;
}

.fz-transactions-table-wrap::-webkit-scrollbar-track {
    background: rgba(136, 153, 184, 0.18);
}

.fz-transactions-table {
    width: 100%;
    min-width: max-content;
    table-layout: auto;
}

.fz-transactions-table th,
.fz-transactions-table td {
    white-space: nowrap;
    padding: 0.42rem 0.36rem;
    vertical-align: middle;
}

/* Spaltenspezifische Breiten/Ausrichtung. Klassenbasiert statt nth-child, damit
   das Ein-/Ausblenden einzelner Spalten die Ausrichtung nicht verschiebt. */
.fz-transactions-table .fz-tx-col-num {
    width: 96px;
    text-align: right;
}

.fz-transactions-table .fz-tx-col-date {
    width: 108px;
}

.fz-transactions-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: rgba(46, 112, 165, 0.78);
    color: #ffffff;
    border-bottom-color: rgba(255, 255, 255, 0.18);
    text-transform: none;
    letter-spacing: 0.01em;
    font-size: 0.76rem;
}

.fz-transactions-table .fz-input.fz-transactions-input {
    width: 100%;
    min-width: 0;
    min-height: 30px;
    height: 30px;
    padding: 0.12rem 0.32rem;
    font-size: 0.82rem;
    border-radius: 6px;
}

/* Zahleneingaben rechtsbuendig, passend zur rechtsbuendigen Spaltenausrichtung. */
.fz-transactions-table .fz-tx-col-num .fz-input.fz-transactions-input {
    text-align: right;
}

.fz-transactions-table input[type="number"].fz-input.fz-transactions-input {
    appearance: textfield;
    -moz-appearance: textfield;
}

.fz-transactions-table input[type="number"].fz-input.fz-transactions-input::-webkit-outer-spin-button,
.fz-transactions-table input[type="number"].fz-input.fz-transactions-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.fz-transactions-table .fz-watchlist-alarm-inline .fz-input.fz-transactions-input {
    width: 100%;
    min-width: 0;
}

.fz-transactions-col-name {
    width: 210px;
    max-width: 210px;
}

/* Lange Wertpapier-/Cashflow-Namen sauber abschneiden; der vollstaendige Name
   bleibt ueber das title-Attribut als Tooltip erreichbar. */
.fz-transactions-name-text {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fz-transactions-name-text a {
    display: inline;
}

.fz-transactions-col-actions {
    width: 70px;
    text-align: center;
}

.fz-transactions-table thead .fz-transactions-col-actions {
    z-index: 3;
}

.fz-transactions-table tbody tr.fz-transactions-group-odd {
    background: rgba(255, 255, 255, 0.02);
}

.fz-transactions-table tbody tr.fz-transactions-group-odd .fz-transactions-col-name,
.fz-transactions-table tbody tr.fz-transactions-group-odd .fz-transactions-col-actions {
    background: rgba(255, 255, 255, 0.02);
}

.fz-transactions-table tbody tr.fz-transactions-group-even {
    background: rgba(88, 172, 236, 0.08);
}

.fz-transactions-table tbody tr.fz-transactions-group-even .fz-transactions-col-name,
.fz-transactions-table tbody tr.fz-transactions-group-even .fz-transactions-col-actions {
    background: rgba(88, 172, 236, 0.08);
}

.fz-transactions-table tbody tr:hover .fz-transactions-col-name,
.fz-transactions-table tbody tr:hover .fz-transactions-col-actions {
    background: rgba(88, 172, 236, 0.16);
}

.fz-transactions-col-gain {
    width: 150px;
}

.fz-transactions-col-fscore {
    width: 112px;
}

.fz-transactions-fscore-readonly {
    min-height: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    padding: 0.12rem 0.32rem;
    border: 1px solid var(--fz-border);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.05);
    color: var(--fz-text);
    font-size: 0.82rem;
}

.fz-transactions-col-euro {
    width: 30px;
    text-align: center;
}

.fz-transactions-table thead .fz-transactions-col-gain {
    z-index: 3;
}

.fz-transactions-table thead .fz-transactions-col-gain .fz-table-sort-btn {
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fz-transactions-table thead .fz-transactions-col-euro {
    z-index: 3;
}

@media (max-width: 1280px) {
    .fz-transactions-table-wrap {
        overflow-x: auto;
    }
}

.fz-screener-active-filter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.88rem;
    color: var(--fz-text-muted);
}

.fz-screener-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: 0.9rem;
    color: var(--fz-text-muted);
}

.fz-screener-list-card {
    padding: 0.65rem;
}

.fz-screener-list-head,
.fz-screener-row {
    display: grid;
    grid-template-columns: 55px 1.2fr 72px 1.1fr 130px 90px 90px 88px 44px;
    align-items: center;
    gap: 0.55rem;
}

.fz-screener-list-head {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fz-text-muted);
    padding: 0.35rem 0.55rem 0.55rem;
}

.fz-screener-row-wrap {
    border-top: 1px solid rgba(136, 153, 184, 0.18);
    min-width: 0;
}

.fz-screener-row {
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
    color: var(--fz-text);
    padding: 0.58rem 0.55rem;
    cursor: pointer;
}

.fz-screener-row-wrap:nth-child(odd) .fz-screener-row:not(.fz-screener-row-warning) {
    background: rgba(255, 255, 255, 0.015);
}

.fz-screener-row-wrap:nth-child(even) .fz-screener-row:not(.fz-screener-row-warning) {
    background: rgba(88, 172, 236, 0.095);
}

.fz-screener-row:hover {
    background: rgba(88, 172, 236, 0.08);
}

.fz-screener-row-warning {
    background: rgba(255, 153, 69, 0.08);
}

.fz-screener-row-warning:hover {
    background: rgba(255, 153, 69, 0.14);
}

.fz-screener-name {
    font-weight: 600;
    color: var(--fz-text-heading);
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    min-width: 0;
}

.fz-screener-alerts {
    display: inline-flex;
    align-items: center;
    gap: 0.24rem;
    flex-shrink: 0;
}

.fz-screener-name-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fz-screener-alert {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.28rem;
    height: 1.28rem;
    border-radius: 4px;
    font-size: 1rem;
    line-height: 1;
}

.fz-screener-alert .fz-icon {
    color: currentColor;
}

.fz-screener-alert-balance {
    color: #ffbe2f;
    background: rgba(255, 190, 47, 0.2);
    border: 1px solid rgba(255, 190, 47, 0.46);
}

.fz-screener-alert-price {
    color: #ff9945;
    background: rgba(255, 153, 69, 0.2);
    border: 1px solid rgba(255, 153, 69, 0.46);
}

.fz-screener-alert-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    width: auto;
    height: auto;
    padding: 0.28rem 0.6rem;
    border-radius: 6px;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
}

.fz-screener-meta {
    color: var(--fz-text-muted);
    font-size: 0.86rem;
}

.fz-sma200-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.7rem;
    border-radius: 999px;
    padding: 0.12rem 0.42rem;
    font-size: 0.75rem;
    font-weight: 700;
    border: 1px solid transparent;
}

.fz-sma200-badge-up {
    color: #d8fff0;
    background: rgba(52, 211, 153, 0.2);
    border-color: rgba(52, 211, 153, 0.45);
}

.fz-sma200-badge-down {
    color: #ffe1e1;
    background: rgba(248, 113, 113, 0.2);
    border-color: rgba(248, 113, 113, 0.45);
}

.fz-sma200-badge-neutral {
    color: var(--fz-text-muted);
    background: rgba(136, 153, 184, 0.14);
    border-color: rgba(136, 153, 184, 0.35);
}

.fz-fscore-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 0.18rem 0.5rem;
    font-size: 0.76rem;
    font-weight: 700;
    border: 1px solid transparent;
    white-space: nowrap;
}

.fz-fscore-badge-good {
    color: #d8fff0;
    background: rgba(52, 211, 153, 0.2);
    border-color: rgba(52, 211, 153, 0.45);
}

.fz-fscore-badge-mid {
    color: #fff7d6;
    background: rgba(251, 191, 36, 0.2);
    border-color: rgba(251, 191, 36, 0.45);
}

.fz-fscore-badge-orange {
    color: #ffe6cc;
    background: rgba(249, 115, 22, 0.2);
    border-color: rgba(249, 115, 22, 0.45);
}

.fz-fscore-badge-low {
    color: #ffe1e1;
    background: rgba(248, 113, 113, 0.2);
    border-color: rgba(248, 113, 113, 0.45);
}

.fz-fscore-badge-neutral {
    color: var(--fz-text-muted);
    background: rgba(136, 153, 184, 0.14);
    border-color: rgba(136, 153, 184, 0.35);
}

.fz-screener-chevron {
    text-align: right;
    color: var(--fz-text-muted);
    font-size: 1rem;
}

.fz-screener-watchlist-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 1.8rem;
    border-radius: 999px;
    border: 1px solid rgba(136, 153, 184, 0.45);
    color: var(--fz-text);
    background: rgba(136, 153, 184, 0.12);
    cursor: pointer;
    user-select: none;
}

.fz-screener-watchlist-action:hover {
    background: rgba(88, 172, 236, 0.18);
    border-color: rgba(88, 172, 236, 0.45);
}

.fz-screener-watchlist-depot-list {
    display: grid;
    gap: 0.45rem;
    margin: 0.4rem 0 0.8rem;
}

.fz-screener-watchlist-depot-item {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}

.fz-screener-detail-panel {
    margin-top: 0.75rem;
    display: grid;
    gap: 0;
    min-width: 0;
}

.fz-screener-detail-summary {
    display: grid;
    gap: 0.6rem;
    min-width: 0;
}

.fz-screener-score-badge-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.fz-screener-scorebar {
    display: flex;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    min-height: 14px;
    border-radius: 999px;
    background: rgba(136, 153, 184, 0.14);
    border: 1px solid rgba(136, 153, 184, 0.28);
}

.fz-screener-score-segment-positive {
    display: block;
    background: linear-gradient(90deg, rgba(52, 211, 153, 0.95), rgba(34, 197, 94, 0.9));
}

.fz-screener-score-segment-negative {
    display: block;
    background: linear-gradient(90deg, rgba(248, 113, 113, 0.95), rgba(239, 68, 68, 0.9));
}

.fz-screener-score-legend {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.35rem 0.75rem;
}

.fz-screener-score-legend-item {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.82rem;
}

.fz-screener-detail-section {
    margin-top: 0;
    min-width: 0;
    border: 1px solid rgba(136, 153, 184, 0.18);
    border-top: 0;
    border-radius: 0;
    background: rgba(12, 22, 40, 0.52);
}

.fz-screener-detail-panel > .fz-screener-detail-section:first-of-type {
    border-top: 1px solid rgba(136, 153, 184, 0.18);
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
}

.fz-screener-detail-panel > .fz-screener-detail-section:last-child {
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}

.fz-screener-detail-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
    padding: 0.62rem 0.2rem 0.85rem;
    line-height: 1.55;
}

.fz-screener-detail-header-meta p,
.fz-screener-detail-header-quote p {
    margin: 2px 0;
    font-size: 0.95rem;
}

.fz-screener-detail-header-meta p:first-child {
    color: var(--fz-text-muted);
}

.fz-screener-detail-header-quote {
    text-align: right;
    margin-left: auto;
    color: var(--fz-text-muted);
}

.fz-screener-detail-section > summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--fz-text-heading);
    list-style: none;
    padding: 0.62rem 0.72rem;
    user-select: none;
}

.fz-screener-detail-section > summary::-webkit-details-marker {
    display: none;
}

.fz-screener-accordion-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    min-width: 0;
}

.fz-screener-accordion-title {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.fz-screener-accordion-title::before {
    content: "+";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 4px;
    border: 1px solid rgba(136, 153, 184, 0.36);
    color: var(--fz-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
    flex-shrink: 0;
}

.fz-screener-detail-section[open] .fz-screener-accordion-title::before {
    content: "−";
}

.fz-screener-accordion-meta {
    margin-left: auto;
    font-size: 0.82rem;
    color: var(--fz-text-muted);
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.42rem;
}

.fz-screener-detail-section > .fz-card {
    margin: 0 !important;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-top: 1px solid rgba(136, 153, 184, 0.14);
}

.fz-screener-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.55rem 1rem;
}

.fz-screener-info-table td:first-child {
    width: 42%;
    color: var(--fz-text-muted);
    white-space: nowrap;
}

.fz-screener-info-table td:last-child {
    color: var(--fz-text-heading);
    font-weight: 600;
}

.fz-screener-info-description {
    white-space: normal;
    line-height: 1.5;
}

.fz-screener-table-wrap {
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(88, 172, 236, 0.72) rgba(20, 32, 57, 0.9);
}

.fz-screener-table-wrap::-webkit-scrollbar {
    height: 10px;
}

.fz-screener-table-wrap::-webkit-scrollbar-track {
    background: rgba(20, 32, 57, 0.9);
    border-radius: 999px;
    border: 1px solid rgba(136, 153, 184, 0.22);
}

.fz-screener-table-wrap::-webkit-scrollbar-thumb {
    background: linear-gradient(90deg, rgba(88, 172, 236, 0.95), rgba(44, 146, 214, 0.95));
    border-radius: 999px;
    border: 1px solid rgba(14, 26, 45, 0.85);
}

.fz-screener-table-wrap::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(90deg, rgba(104, 186, 247, 0.98), rgba(63, 162, 228, 0.98));
}

.fz-history-group-start > td {
    border-top: 2px solid rgba(88, 172, 236, 0.55);
}

.fz-history-group-label {
    vertical-align: top;
    white-space: nowrap;
    font-weight: 700;
    color: var(--fz-accent);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.82rem;
    border-right: 2px solid rgba(88, 172, 236, 0.35);
}

/* ---- History table: sticky first two columns (Bereich + Kennzahl) ---- */
.fz-history-table {
    width: auto;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.fz-history-table th,
.fz-history-table td {
    white-space: nowrap;
}

.fz-history-col-area,
.fz-history-col-metric,
.fz-history-metric,
.fz-history-group-label {
    position: sticky;
    z-index: 2;
}

/* Column 1: Bereich */
.fz-history-col-area,
.fz-history-group-label {
    left: 0;
    width: 140px;
    min-width: 140px;
    max-width: 140px;
}

/* Column 2: Kennzahl */
.fz-history-col-metric,
.fz-history-metric {
    left: 140px;
    width: 260px;
    min-width: 260px;
    max-width: 260px;
    white-space: normal;
    border-right: 1px solid var(--fz-border);
}

/* Year columns need a sensible minimum width so the table overflows and scrolls */
.fz-history-table th:not(.fz-history-col-area):not(.fz-history-col-metric),
.fz-history-table td:not(.fz-history-metric):not(.fz-history-group-label) {
    min-width: 90px;
}

/* Opaque backgrounds so scrolled year values do not show through the sticky cells */
.fz-history-table tbody td.fz-history-metric {
    background: var(--fz-bg-card);
}

.fz-history-table tbody tr:nth-child(odd) td.fz-history-metric {
    background: #1f2f51;
}

.fz-history-table tbody tr:nth-child(even) td.fz-history-metric {
    background: #233962;
}

.fz-history-table tbody tr:hover td.fz-history-metric,
.fz-history-table tbody tr:hover td.fz-history-group-label {
    background: #2a4471;
}

/* Bereich label opaque accent tint over surface (block look across the group) */
.fz-history-table tbody td.fz-history-group-label,
.fz-history-table tbody tr:nth-child(odd) td.fz-history-group-label,
.fz-history-table tbody tr:nth-child(even) td.fz-history-group-label {
    background: #233a5e;
    border-right: 2px solid rgba(88, 172, 236, 0.35);
    border-bottom: none;
}

.fz-history-table tbody tr:hover td.fz-history-group-label {
    background: #2a4471;
}

/* Sticky header cells stay above sticky body cells */
.fz-history-table thead th.fz-history-col-area {
    z-index: 3;
    background: #2a557e;
    border-right: 2px solid rgba(88, 172, 236, 0.35);
}

.fz-history-table thead th.fz-history-col-metric {
    z-index: 3;
    background: #2a557e;
    border-right: 1px solid var(--fz-border);
}

.fz-screener-detail-columns {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1rem;
}

.fz-screener-detail-panel .fz-card,
.fz-screener-detail-panel .apexcharts-canvas,
.fz-screener-detail-panel .apexcharts-svg,
.fz-screener-detail-panel .apexcharts-inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
}

.fz-screener-detail-warning {
    color: #fbbf24;
    margin-top: 0.25rem;
}

.fz-screener-expand {
    padding: 0 0.55rem 0.7rem;
}

.fz-screener-progress-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem 0.9rem;
    margin-bottom: 0.7rem;
}

.fz-screener-progress-item {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(136, 153, 184, 0.25);
    border-radius: 10px;
    padding: 0.45rem 0.55rem;
}

.fz-screener-progress-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: var(--fz-text-muted);
    margin-bottom: 0.3rem;
}

.fz-screener-progress-head > span {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.fz-screener-progress-head strong {
    color: var(--fz-text-heading);
    font-size: 0.84rem;
}

.fz-metric-tooltip {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin-left: 0.1rem;
}

.fz-metric-tooltip-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    border: 1px solid rgba(136, 153, 184, 0.45);
    color: var(--fz-text-muted);
    font-size: 0.68rem;
    line-height: 1;
    cursor: help;
}

.fz-metric-tooltip-panel {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.45rem);
    transform: translateX(-50%);
    width: min(280px, 78vw);
    display: none;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    border: 1px solid var(--fz-border);
    background: rgba(24, 38, 66, 0.98);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
    z-index: 20;
    color: var(--fz-text);
    font-size: 0.77rem;
    text-transform: none;
    letter-spacing: normal;
}

.fz-metric-tooltip-panel strong {
    color: var(--fz-text-heading);
    font-size: 0.8rem;
}

.fz-metric-tooltip-ref {
    color: var(--fz-text-muted);
}

.fz-metric-tooltip-panel a {
    color: var(--fz-accent);
    font-weight: 600;
}

.fz-metric-tooltip:hover .fz-metric-tooltip-panel,
.fz-metric-tooltip:focus-within .fz-metric-tooltip-panel {
    display: flex;
}

.fz-screener-progress-bar {
    height: 8px;
    border-radius: 999px;
    background: rgba(88, 172, 236, 0.12);
    border: 1px solid rgba(88, 172, 236, 0.22);
    overflow: hidden;
}

.fz-screener-progress-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #34d399 0%, #58acec 100%);
}

.fz-screener-expand-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem 0.9rem;
    font-size: 0.88rem;
    margin-bottom: 0.55rem;
}

.fz-screener-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.fz-depot-top-nav {
    justify-content: space-between;
    align-items: center;
}

.fz-depot-top-nav-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.fz-depot-create-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.95rem;
    font-weight: 700;
}

.fz-depot-create-toggle .fz-icon {
    color: currentColor;
}

.fz-depot-create-panel {
    margin-top: 0.75rem;
}

.fz-watchlist-card {
    padding-left: 0;
    padding-right: 0;
    overflow: hidden;
}

.fz-watchlist-card > .fz-watchlist-head,
.fz-watchlist-card > .fz-watchlist-filter-grid,
.fz-watchlist-card > .fz-text-muted,
.fz-watchlist-card > .fz-depot-negative,
.fz-watchlist-card > .fz-screener-actions,
.fz-watchlist-card > .fz-spinner-wrap {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.fz-watchlist-filter-grid {
    margin-bottom: 1rem;
}

.fz-watchlist-table-scroll {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    margin-top: 0.7rem;
    border-radius: 12px;
    scrollbar-gutter: stable;
}

.fz-watchlist-table {
    width: 100%;
    min-width: 1420px;
    table-layout: auto;
}

.fz-watchlist-action-col {
    width: 28.5rem;
    min-width: 28.5rem;
}

.fz-watchlist-action-cell {
    vertical-align: middle;
}

.fz-watchlist-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
    gap: 0.55rem;
    width: 100%;
}

.fz-watchlist-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.55rem;
}

.fz-watchlist-head .fz-card-title {
    margin-bottom: 0;
}

.fz-watchlist-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.52rem;
    width: 100%;
    min-width: 0;
    height: 2.55rem;
    white-space: nowrap;
    box-sizing: border-box;
    border-radius: 0.75rem;
    border: 1px solid transparent;
    font-weight: 700;
    letter-spacing: 0.01em;
    box-shadow: 0 8px 20px rgba(6, 15, 33, 0.35);
    transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease, color 120ms ease, border-color 120ms ease;
}

.fz-watchlist-action-btn .fz-icon {
    color: currentColor;
    opacity: 1;
}

.fz-watchlist-action-btn .fz-icon.fz-icon-lg {
    width: 1.55rem;
    height: 1.55rem;
}

.fz-watchlist-action-text {
    font-size: 0.84rem;
    line-height: 1;
}

.fz-watchlist-action-buy {
    background: rgba(25, 44, 77, 0.95);
    border-color: rgba(123, 198, 255, 0.85);
    color: #d6eeff;
}

.fz-watchlist-action-buy:hover:not(:disabled),
.fz-watchlist-action-sell:hover:not(:disabled),
.fz-watchlist-action-delete:hover:not(:disabled),
.fz-watchlist-action-detail:hover:not(:disabled) {
    transform: translateY(-1px);
    background: rgba(38, 61, 97, 0.98);
    border-color: #9ed7ff;
    color: #d6eeff;
    box-shadow: 0 10px 24px rgba(30, 83, 133, 0.35);
}

.fz-watchlist-action-sell,
.fz-watchlist-action-delete,
.fz-watchlist-action-detail {
    background: rgba(25, 44, 77, 0.95);
    border-color: rgba(123, 198, 255, 0.85);
    color: #9ed7ff;
}

.fz-watchlist-action-btn:focus-visible {
    outline: 2px solid #9ed7ff;
    outline-offset: 2px;
}

.fz-watchlist-action-btn:disabled {
    opacity: 0.62;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

@media (max-width: 1200px) {
    .fz-quick-entry-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fz-quick-entry-search-field,
    .fz-quick-entry-action-field {
        grid-column: auto;
    }

    .fz-quick-entry-action-field .fz-screener-actions,
    .fz-quick-entry-watchlist-actions {
        justify-content: flex-start !important;
    }

    .fz-quick-entry-watchlist-form {
        width: 100%;
    }
}

@media (max-width: 980px) {
    .fz-screener-container {
        width: 100%;
    }

    .fz-screener-shell {
        grid-template-columns: minmax(0, 1fr);
    }

    .fz-screener-sidebar {
        position: static;
        max-height: none;
        overflow: visible;
        overflow-x: hidden;
        padding-right: 0;
        min-width: 0;
    }

@media (min-width: 1400px) {
    .fz-screener-container {
        padding-left: 0.85rem;
        padding-right: 0.85rem;
    }

    .fz-screener-shell {
        gap: 1rem;
    }
}

    .fz-screener-list-head,
    .fz-screener-row {
        grid-template-columns: 42px 1fr 58px 1fr 110px 75px 75px 64px 30px;
        font-size: 0.86rem;
    }

    .fz-depot-eval-grid,
    .fz-depot-dashboard-grid,
    .fz-depot-wizard-grid,
    .fz-depot-strategy-grid,
    .fz-filter-expert-grid,
    .fz-screener-filter-groups,
    .fz-screener-progress-list,
    .fz-screener-expand-grid,
    .fz-welcome-actions,
    .fz-account-settings-grid,
    .fz-settings-preview-grid {
        grid-template-columns: 1fr;
    }

    .fz-watchlist-table {
        min-width: 100%;
    }

    .fz-watchlist-action-col {
        width: auto;
        min-width: 0;
    }

    .fz-watchlist-actions {
        grid-template-columns: repeat(3, minmax(7rem, 1fr));
        gap: 0.45rem;
    }

    .fz-watchlist-action-btn {
        min-width: 0;
        height: 2.4rem;
    }

    .fz-watchlist-action-btn .fz-icon.fz-icon-lg {
        width: 1.35rem;
        height: 1.35rem;
    }

    .fz-watchlist-action-text {
        font-size: 0.78rem;
    }

    .fz-watchlist-head {
        flex-wrap: wrap;
        align-items: flex-start;
    }

    .fz-watchlist-card > .fz-watchlist-head,
    .fz-watchlist-card > .fz-watchlist-filter-grid,
    .fz-watchlist-card > .fz-text-muted,
    .fz-watchlist-card > .fz-depot-negative,
    .fz-watchlist-card > .fz-screener-actions,
    .fz-watchlist-card > .fz-spinner-wrap {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .fz-watchlist-filter-grid {
        margin-bottom: 0.75rem;
    }

    .fz-quick-entry-type-grid,
    .fz-quick-entry-grid {
        grid-template-columns: 1fr;
    }

    .fz-quick-entry-watchlist-form {
        width: 100%;
    }
}

/* ============================================================
   Expand Panel – Alternierend Hintergrundfarben
   ============================================================ */

.fz-expand-panel {
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius);
    padding: 20px;
    margin-top: 8px;
    margin-bottom: 12px;
    transition: background-color 0.2s ease;
}

.fz-expand-panel-even {
    background-color: rgba(30, 46, 80, 0.5);
}

.fz-expand-panel-odd {
    background-color: rgba(37, 54, 89, 0.5);
}

.fz-expand-panel-header {
    margin-bottom: 20px;
    border-bottom: 1px solid var(--fz-border);
    padding-bottom: 15px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
}

.fz-expand-panel-meta {
    line-height: 1.6;
}

.fz-expand-panel-meta p {
    margin: 4px 0;
    font-size: 0.95rem;
}

.fz-expand-panel-quote {
    line-height: 1.6;
    text-align: right;
    margin-left: auto;
}

.fz-expand-panel-quote p {
    margin: 4px 0;
    font-size: 0.95rem;
    color: var(--fz-text-muted);
}

.fz-expand-panel-charts {
    margin-bottom: 20px;
}

.fz-expand-metrics {
    margin-bottom: 20px;
}

.fz-expand-section {
    margin-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

.fz-expand-section:last-child {
    border-bottom: none;
}

.fz-expand-trigger {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 12px 0;
    background: none;
    border: none;
    color: var(--fz-text);
    font-size: 0.95rem;
    cursor: pointer;
    text-align: left;
    transition: color 0.2s ease;
}

.fz-expand-trigger:hover {
    color: var(--fz-accent);
}

.fz-expand-icon {
    display: inline-block;
    min-width: 20px;
    margin-right: 12px;
    font-weight: bold;
    color: var(--fz-accent);
}

/* Bereichs-Score-Badge im Expand-Trigger rechtsbündig (wie zuvor fz-metric-score) */
.fz-expand-trigger .fz-fscore-badge {
    margin-left: auto;
}

.fz-metric-score {
    margin-left: auto;
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 600;
}

.fz-score-green {
    background-color: rgba(52, 211, 153, 0.15);
    color: #34d399;
}

.fz-score-orange {
    background-color: rgba(251, 191, 36, 0.15);
    color: #fbbf24;
}

.fz-score-red {
    background-color: rgba(248, 113, 113, 0.15);
    color: #f87171;
}

.fz-expand-content {
    padding: 12px 0 12px 32px;
    animation: slideDown 0.2s ease;
}

.fz-volatility-warning-box {
    border: 1px solid rgba(136, 153, 184, 0.24);
    background: rgba(255, 255, 255, 0.06);
}

.fz-volatility-warning-head {
    background: #3fa0d8;
    color: #ffffff;
    font-weight: 700;
    padding: 0.15rem 0.5rem;
    margin-bottom: 0.45rem;
}

.fz-volatility-warning-box p {
    margin: 0;
    padding: 0.35rem 0.5rem 0.55rem;
}

.fz-details-table-wrap {
    overflow-x: auto;
}

.fz-details-table th {
    background: rgba(88, 172, 236, 0.25);
    color: #ffffff;
    font-weight: 700;
}

.fz-details-table td {
    vertical-align: top;
}

.fz-details-table tbody tr:nth-child(odd) td {
    background: rgba(255, 255, 255, 0.04);
}

.fz-details-table tbody tr:nth-child(even) td {
    background: rgba(255, 255, 255, 0.08);
}

.fz-details-table tbody tr:hover td {
    background: rgba(88, 172, 236, 0.12);
}

.fz-basics-table-wrap {
    overflow-x: auto;
}

.fz-basics-table {
    min-width: 980px;
}

.fz-basics-table thead th {
    background: rgba(88, 172, 236, 0.18);
    color: #ffffff;
    text-transform: none;
    letter-spacing: 0;
    font-size: 0.9rem;
}

.fz-basics-table thead tr:last-child th {
    background: rgba(255, 255, 255, 0.06);
    color: var(--fz-text-heading);
    font-size: 0.82rem;
}

.fz-basics-table td,
.fz-basics-table th {
    white-space: nowrap;
}

.fz-basics-group-row td {
    background: rgba(88, 172, 236, 0.22) !important;
    color: #ffffff;
    font-weight: 700;
}

.fz-basics-years-row td {
    background: rgba(255, 255, 255, 0.06);
    color: var(--fz-text-heading);
    font-weight: 700;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fz-chart-placeholder {
    padding: 40px 20px;
    background-color: rgba(255,255,255,0.03);
    border: 1px dashed var(--fz-border);
    border-radius: var(--fz-radius);
    text-align: center;
    color: var(--fz-text-muted);
    font-size: 0.9rem;
}

.fz-expand-fscore-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 20px;
    padding: 16px 0;
    border-top: 2px solid var(--fz-border);
    font-weight: 600;
    font-size: 1.05rem;
}

.fz-expand-fscore-label {
    color: var(--fz-text);
}

.fz-expand-fscore-value {
    color: var(--fz-accent);
    font-size: 1.3rem;
}

.fz-expand-panel-actions {
    display: flex;
    gap: 12px;
    margin-top: 20px;
    padding-top: 15px;
    border-top: 1px solid var(--fz-border);
}

.fz-expand-panel-actions .fz-btn {
    flex: 1;
}

.fz-kfcv-eval-box {
    margin-top: 1rem;
    border-top: 1px solid var(--fz-border);
    padding-top: 0.85rem;
}

.fz-kfcv-eval-head {
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.fz-kfcv-eval-dots {
    color: var(--fz-accent);
    letter-spacing: 0.18rem;
    margin-bottom: 0.5rem;
}

.fz-kfcv-dot {
    opacity: 0.35;
}

.fz-kfcv-dot-active {
    opacity: 1;
}

.fz-kfcv-dot-active-low {
    color: var(--fz-negative);
}

.fz-kfcv-dot-active-mid {
    color: var(--fz-warning);
}

.fz-kfcv-dot-active-good {
    color: var(--fz-positive);
}

.fz-kfcv-eval-row {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-bottom: 0.4rem;
    font-size: 0.9rem;
}

.fz-kfcv-eval-text {
    font-size: 0.88rem;
    color: var(--fz-text-muted);
    line-height: 1.45;
}

.fz-kfcv-eval-text p {
    margin: 0 0 0.6rem 0;
}

.fz-kfcv-eval-text p:last-child {
    margin-bottom: 0;
}

/* ============================================================
   Price Chart – Dark Theme
   ============================================================ */

.fz-price-chart-container {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 20px 0;
    background: var(--fz-bg-card);
    border-radius: var(--fz-radius);
    padding: 20px;
}

.fz-price-chart-controls {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.fz-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
    font-size: 0.9rem;
    color: var(--fz-text);
}

.fz-checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: var(--fz-accent);
}

.fz-price-chart-main {
    position: relative;
    width: 100%;
    height: 400px;
    background: var(--fz-bg);
    border-radius: var(--fz-radius);
    padding: 15px;
}

.fz-price-chart-main canvas {
    width: 100% !important;
    height: 100% !important;
}

.fz-price-chart-navigator {
    position: relative;
    width: 100%;
    height: 100px;
    background: var(--fz-bg);
    border-radius: var(--fz-radius);
    border: 1px solid var(--fz-border);
    overflow: hidden;
}

.fz-price-chart-navigator canvas {
    width: 100% !important;
    height: 100% !important;
}

.fz-navigator-selection {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: rgba(88, 172, 236, 0.2);
    border: 2px solid var(--fz-accent);
    border-radius: 4px;
    cursor: move;
    min-width: 20px;
}

/* ============================================================
   Dashboard – Hub-Seite
   ============================================================ */

.fz-dashboard-page {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
    padding-bottom: 40px;
}

/* Begrüßungszeile */
.fz-dashboard-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    padding: 20px 24px 4px;
}

.fz-dashboard-greeting {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--fz-text-heading);
}

.fz-dashboard-date {
    font-size: 0.95rem;
    color: var(--fz-text-muted);
    text-align: right;
}

/* Dashboard-Karte (Basis) */
.fz-dashboard-card {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-lg);
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.fz-dashboard-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.fz-dashboard-card-label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--fz-text-muted);
}

.fz-dashboard-card-link {
    font-size: 0.85rem;
    color: var(--fz-accent);
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.15s;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font-family: inherit;
}

.fz-dashboard-card-link:hover {
    color: var(--fz-accent-hover);
    text-decoration: underline;
}

/* Depot-Tabelle: Aktionen, Ergebnis-Prozent, Zeitraum-Hinweis */
.fz-dashboard-period-hint {
    font-size: 0.78rem;
    font-style: italic;
}

.fz-dashboard-result-percent {
    display: block;
    font-size: 0.78rem;
    opacity: 0.85;
}

/* Numerische Spalten rechtsbuendig mit gleichmaessigen Ziffernbreiten */
.fz-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.fz-dashboard-row-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
}

.fz-dashboard-row-actions .fz-btn {
    width: 100%;
    text-align: center;
    justify-content: center;
    white-space: nowrap;
}

.fz-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    font-size: 0.95rem;
    line-height: 1;
    border-radius: var(--fz-radius);
    background: var(--fz-accent);
    border: 1.5px solid var(--fz-accent);
    color: #ffffff;
    cursor: pointer;
    transition: all 0.15s;
}

.fz-btn-icon:hover {
    background: var(--fz-accent-hover, var(--fz-accent));
    filter: brightness(1.15);
    color: #ffffff;
    cursor: pointer;
}

.fz-btn-icon .fz-icon {
    color: currentColor;
}

.fz-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    color: var(--fz-accent);
    flex-shrink: 0;
}

.fz-icon svg {
    width: 100%;
    height: 100%;
}

.fz-icon-sm {
    width: 0.95rem;
    height: 0.95rem;
}

.fz-icon-md {
    width: 1.1rem;
    height: 1.1rem;
}

.fz-icon-lg {
    width: 1.35rem;
    height: 1.35rem;
}

/* Ladezustand der Depot-Liste */
.fz-dashboard-loading {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 24px 4px;
}

/* Gesamt-Spalte (Kontostand + Depotwert) hervorheben */
.fz-dashboard-total-cell {
    font-weight: 600;
    color: var(--fz-text-heading);
}

.fz-dashboard-total-cell .fz-dashboard-result-percent {
    font-weight: 400;
}

.fz-dashboard-positive {
    color: var(--fz-positive) !important;
}

.fz-dashboard-negative {
    color: var(--fz-negative) !important;
}

.fz-dashboard-depot-empty {
    font-style: italic;
}

/* Dashboard-Grids */
.fz-dashboard-screener-grid,
.fz-dashboard-grid-3col {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.fz-dashboard-grid-2col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.fz-dashboard-screener-card {
    min-height: 168px;
}

.fz-dashboard-screener-card-active {
    border-color: rgba(88, 172, 236, 0.42);
    box-shadow: 0 0 0 1px rgba(88, 172, 236, 0.22) inset;
}

.fz-dashboard-screener-card-disabled {
    opacity: 0.72;
}

.fz-dashboard-screener-headline {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 1rem;
    color: var(--fz-text-heading);
}

.fz-dashboard-screener-icon {
    color: var(--fz-accent);
}

.fz-dashboard-inline-icon {
    margin-right: 0.3rem;
    vertical-align: text-bottom;
}

.fz-dashboard-coming-soon {
    font-size: 0.82rem;
    font-style: italic;
}

@media (max-width: 1024px) {
    .fz-dashboard-screener-grid,
    .fz-dashboard-grid-3col {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .fz-dashboard-screener-grid,
    .fz-dashboard-grid-3col,
    .fz-dashboard-grid-2col {
        grid-template-columns: 1fr;
    }

    .fz-dashboard-depot-kpis {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Kennzahl-Buttons */
.fz-dashboard-metric-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* Einstellungen – Radio-Gruppe */
.fz-dashboard-settings-level {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.fz-dashboard-radio-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fz-dashboard-radio-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
    color: var(--fz-text);
    cursor: pointer;
}

.fz-dashboard-radio-label input[type="radio"] {
    accent-color: var(--fz-accent);
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.fz-dashboard-radio-label input[type="checkbox"] {
    accent-color: var(--fz-accent);
    width: 16px;
    height: 16px;
    cursor: pointer;
    flex: 0 0 auto;
}

.fz-depot-column-picker {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem 0.8rem;
    margin-top: 0.45rem;
}

/* Wiki-Links */
.fz-dashboard-wiki-links {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.fz-dashboard-wiki-links a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--fz-text-muted);
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.15s;
}

.fz-dashboard-wiki-links a:hover {
    color: var(--fz-accent);
}

/* Onboarding-Banner */
.fz-dashboard-onboarding {
    background: linear-gradient(135deg, rgba(0, 196, 204, 0.1), rgba(88, 172, 236, 0.08));
    border: 1px solid rgba(88, 172, 236, 0.3);
    border-radius: var(--fz-radius-lg);
    padding: 20px 24px;
}

.fz-dashboard-onboarding-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
}

.fz-dashboard-onboarding-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--fz-text-heading);
}

.fz-dashboard-onboarding-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: auto;
}

@media (max-width: 768px) {
    .fz-dashboard-onboarding-actions {
        margin-left: 0;
    }

    .fz-dashboard-header {
        flex-direction: column;
    }

    .fz-dashboard-date {
        text-align: left;
    }
}

/* ============================================================
   Paywall / SubscriptionGuard
   ============================================================ */
.fz-paywall-overlay {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: 3rem 1rem;
    min-height: 60vh;
}

.fz-paywall-card {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: 1rem;
    padding: 2.5rem 2rem;
    max-width: 860px;
    width: 100%;
    text-align: center;
}

.fz-paywall-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
}

.fz-paywall-icon .fz-icon {
    width: 2.2rem;
    height: 2.2rem;
}

.fz-paywall-title {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--fz-text);
    margin-bottom: 0.75rem;
}

.fz-paywall-sub {
    color: var(--fz-text-muted);
    line-height: 1.6;
    margin-bottom: 2rem;
}

.fz-paywall-plans {
    display: flex;
    gap: 1.25rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.fz-paywall-plan {
    background: var(--fz-bg-surface);
    border: 1px solid var(--fz-border);
    border-radius: .75rem;
    padding: 1.5rem 1.25rem;
    flex: 1 1 280px;
    max-width: 320px;
    text-align: left;
    position: relative;
}

.fz-paywall-plan-featured {
    border-color: var(--fz-accent);
    box-shadow: 0 0 0 1px var(--fz-accent);
}

.fz-paywall-plan-badge {
    position: absolute;
    top: -0.75rem;
    left: 50%;
    transform: translateX(-50%);
    background: var(--fz-accent);
    color: #000;
    font-size: .7rem;
    font-weight: 700;
    padding: .25rem .75rem;
    border-radius: 99px;
    white-space: nowrap;
}

.fz-paywall-plan-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--fz-text);
    margin-bottom: .25rem;
}

.fz-paywall-plan-price {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--fz-accent);
    margin-bottom: 1rem;
}

.fz-paywall-plan-price sup {
    font-size: 1rem;
    vertical-align: super;
}

.fz-paywall-plan-price span {
    font-size: .85rem;
    color: var(--fz-text-muted);
    font-weight: 400;
}

.fz-paywall-features {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem 0;
    color: var(--fz-text-muted);
    font-size: .9rem;
}

.fz-paywall-features li {
    padding: .3rem 0;
}

.fz-paywall-features li::before {
    content: "✓ ";
    color: var(--fz-accent);
    font-weight: 700;
}

.fz-paywall-cta {
    width: 100%;
    justify-content: center;
}

.fz-paywall-error {
    color: #f87171;
    margin-top: .75rem;
    font-size: .9rem;
}

.fz-paywall-hint {
    color: var(--fz-text-muted);
    font-size: .8rem;
    margin-top: 1rem;
}

.fz-paywall-hint a {
    color: var(--fz-accent);
    text-decoration: none;
}

.fz-loading-wrap {
    display: flex;
    justify-content: center;
    padding: 4rem 0;
}

.fz-btn-spinner {
    display: inline-block;
    width: .9rem;
    height: .9rem;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: fz-spin .6s linear infinite;
    margin-right: .4rem;
    vertical-align: middle;
}

/* ── Trial-abgelaufen-Banner (Dashboard) ───────────────────────────────── */
.fz-trial-expired-banner {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    background: linear-gradient(135deg, rgba(239,68,68,.12), rgba(239,68,68,.06));
    border: 1px solid rgba(239,68,68,.4);
    border-radius: .75rem;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    color: var(--fz-text);
}

.fz-trial-expired-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 1;
}

.fz-trial-expired-icon .fz-icon {
    width: 1.7rem;
    height: 1.7rem;
}

.fz-trial-expired-content {
    line-height: 1.6;
    font-size: .95rem;
    color: var(--fz-text-muted);
}

.fz-trial-expired-content strong {
    color: var(--fz-text);
    font-weight: 700;
}

/* ── Abo-Karten im Dashboard ───────────────────────────────────────────── */
.fz-dashboard-abo-cards {
    display: flex;
    gap: 1.25rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
}

.fz-dashboard-abo-card {
    background: var(--fz-bg-card);
    border: 1px solid var(--fz-border);
    border-radius: .75rem;
    padding: 1.5rem 1.25rem;
    flex: 1 1 260px;
    max-width: 360px;
    position: relative;
}

.fz-dashboard-abo-card-featured {
    border-color: var(--fz-accent);
    box-shadow: 0 0 0 1px var(--fz-accent);
}

.fz-dashboard-abo-badge {
    position: absolute;
    top: -.75rem;
    left: 50%;
    transform: translateX(-50%);
    background: var(--fz-accent);
    color: #000;
    font-size: .7rem;
    font-weight: 700;
    padding: .25rem .75rem;
    border-radius: 99px;
    white-space: nowrap;
}

.fz-dashboard-abo-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--fz-text);
    margin-bottom: .25rem;
}

.fz-dashboard-abo-price {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--fz-accent);
    margin-bottom: 1rem;
}

.fz-dashboard-abo-price sup {
    font-size: 1rem;
    vertical-align: super;
}

.fz-dashboard-abo-price span {
    font-size: .85rem;
    color: var(--fz-text-muted);
    font-weight: 400;
}

.fz-dashboard-abo-features {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem 0;
    color: var(--fz-text-muted);
    font-size: .9rem;
}

.fz-dashboard-abo-features li {
    padding: .3rem 0;
}

.fz-dashboard-abo-features li::before {
    content: "\2713 ";
    color: var(--fz-accent);
    font-weight: 700;
}

.fz-dashboard-abo-cta {
    width: 100%;
    justify-content: center;
}

.fz-trial-checkout-error {
    color: #f87171;
    font-size: .9rem;
    margin-bottom: 1rem;
}


