﻿/* ========================================
   LANDING PAGE CSS - FINAL COMPLETE
   (With Mobile List View & Fixed Header, Large Logo Initial)
   ======================================== */

/* ========================================
   1. GLOBAL & VARIABLES
   ======================================== */
:root {
    /* Farben */
    --primary-color: #00d4ff;
    --secondary-color: #7c3aed;
    --accent-color: #ff6b35;
    --tertiary-color: #10B981;
    --quaternary-color: #f59e0b;
    /* Job Mode Farben */
    --job-mode-color: #d946ef; /* Fuchsia/Pink */
    --job-mode-glow: rgba(217, 70, 239, 0.5);
    /* Hintergrund */
    --bg-color: #0a0a0a;
    --dark-surface: #1a1a1a;
    --dark-elevated: #2a2a2a;
    --dark-border: #333333;
    /* Text */
    --text-color: #ffffff;
    --text-secondary: #b0b0b0;
    --text-muted: #808080;
    /* Effekte */
    --glass-bg: rgba(255, 255, 255, 0.05); /* Hintergrund für Cards */
    --glass-border: rgba(255, 255, 255, 0.1);
    --glass-blur: blur(20px);
    /* Schatten */
    --shadow-light: 0 4px 6px rgba(0, 0, 0, 0.3);
    --shadow-medium: 0 8px 25px rgba(0, 212, 255, 0.2);
    --shadow-heavy: 0 15px 35px rgba(124, 58, 237, 0.3);
    --shadow-glow: 0 0 30px rgba(0, 212, 255, 0.4);
    /* Verläufe */
    --gradient-primary: linear-gradient(135deg, #00d4ff 0%, #7c3aed 50%, #ff6b35 100%);
    --gradient-shimmer: linear-gradient(90deg, rgba(0, 212, 255, 0.1) 0%, rgba(124, 58, 237, 0.2) 25%, rgba(255, 107, 53, 0.1) 50%, rgba(16, 185, 129, 0.2) 75%, rgba(245, 158, 11, 0.1) 100%);
    --border-radius: 16px;
    --border-radius-small: 8px;
}

/* WICHTIG: Global Reset für korrekte Padding-Berechnung */
*, *::before, *::after {
    box-sizing: border-box;
}

/* ✅ FIX: overflow-x auf html statt body — verhindert iOS-Safari-Bug,
   bei dem body overflow einen eigenen Scroll-Container erzeugt und
   position:fixed Elemente nicht bis in die Safe Area reichen */
html {
    overflow-x: hidden;
    background-color: #0a0a0a;
}

body {
    font-family: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: var(--bg-color);
    color: var(--text-color);
    line-height: 1.6;
    /* ✅ ENTFERNT: overflow-x: hidden — jetzt auf html */
    min-height: 100vh;
    position: relative;
    margin: 0;
}

    /* Background Animation */
    body::before {
        content: '';
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: var(--gradient-shimmer);
        background-size: 400% 400%;
        animation: shimmerMove 15s ease infinite;
        opacity: 0.03;
        z-index: 0;
    }

    /* Noise Texture */
    body::after {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.04'/%3E%3C/svg%3E");
        pointer-events: none;
        opacity: 0.5;
        mix-blend-mode: overlay;
        z-index: 999; /* ✅ FIX: Unter den Header (1000) statt darüber (9999) */
    }

/* ========================================
   2. LAYOUT & HEADER (FIXED & STICKY)
   ======================================== */
.container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 2rem;
    
    /* Standard-Padding (falls die unteren Regeln nicht greifen) */
    padding-top: 2rem; 
    
    position: relative;
    z-index: 10;
    min-height: calc(100vh - 4rem);
    display: flex;
    flex-direction: column;
}

/* ✅ NUR der allererste Haupt-Container bekommt den Platz für den Fixed Header */
body > .container:first-of-type,
main > .container:first-of-type,
.main-content > .container:first-of-type {
    padding-top: 250px;
}

/* ✅ FIX: Verschachtelte Container (z.B. in TrustSection oder Cards) müssen Padding 0 haben */
/* Durch !important wird sichergestellt, dass dieser Reset immer gewinnt */
.container .container {
    padding-top: 0 !important;
    min-height: auto; 
    width: 100%;
    margin-top: 0;
}

.main-content {
    flex: 1;
    width: 100%;
}

.footer {
    flex-shrink: 0;
    margin-top: auto;
}

/* Header ist jetzt IMMER fixed */
.header {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    padding: 2rem max(2rem, calc(50% - 400px));
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: transparent;
}

/* Wenn gescrollt wird (JS toggled 'scrolled' class auf Body) */
body.scrolled .header {
    padding: 0.5rem max(2rem, calc(50% - 400px));
    background: rgba(10, 10, 10, 0.9);
    backdrop-filter: blur(15px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    justify-content: space-between;
}

/* Logo Setup */
.logo {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    transition: all 0.4s ease;
    /* UPDATE: Negatives Margin zieht das Logo optisch an die Kante (gleicht Bild-Padding aus) */
    margin-left: -30px; 
    margin-right: 0;
}

/* Logo Bild */
.logo-img {
    /* ✅ Großes Logo Startgröße (4x so groß wie Sticky) */
    height: 180px;
    width: auto;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    filter: brightness(0) invert(1) drop-shadow(0 0 20px rgba(0, 212, 255, 0.3));
    transform-origin: left center; /* Damit es beim Schrumpfen links bleibt */
}

/* STICKY STATE: Logo wird kleiner, aber bleibt 50% größer als zuvor (35px -> 55px) */
body.scrolled .logo-img {
    height: 55px; 
    filter: brightness(0) invert(1) drop-shadow(0 0 5px rgba(0, 212, 255, 0.2));
}

/* Controls (Login, Sprache) */
.header-controls {
    display: flex;
    align-items: center;
    gap: 1rem;
    /* UPDATE: Position Relative statt Absolute, damit es sich im Padding-Bereich befindet */
    position: relative;
    right: auto; 
    top: auto;
    transform: none;
    z-index: 200;
}

/* Buttons Styles */
.lang-btn, .login-btn, .user-btn, .logout-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 1rem;
    border-radius: 15px;
    text-decoration: none;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: var(--shadow-light);
    white-space: nowrap;
    border: 1px solid var(--dark-border);
    color: var(--text-color);
    background: var(--dark-surface);
}

.lang-btn {
    color: var(--text-secondary);
}

    .lang-btn:hover {
        background: var(--dark-elevated);
        color: var(--text-color);
    }

.login-btn, .user-btn {
    background: rgba(124, 58, 237, 0.15);
    border-color: rgba(124, 58, 237, 0.3);
}

    .login-btn:hover, .user-btn:hover {
        transform: translateY(-2px);
        box-shadow: var(--shadow-medium);
        color: var(--text-color);
    }

/* Language Dropdown Adjustment for Fixed Header */
.dropdown-menu {
    border: 1px solid var(--dark-border);
    background: var(--dark-surface);
    margin-top: 10px !important;
}

.dropdown-item {
    color: var(--text-secondary);
}

    .dropdown-item:hover {
        background: var(--dark-elevated);
        color: white;
    }

    .dropdown-item.active {
        background: rgba(0, 212, 255, 0.1);
        color: var(--primary-color);
    }


/* ========================================
   3. HERO & SEARCH
   ======================================== */
.hero-section {
    text-align: center;
    margin-top: -2rem; 
    margin-bottom: 0; /* ✅ Komplett entfernt (war 1rem) */
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    padding: 20px 0 40px  0; /* ✅ Padding unten auf 0 (war 20px 0) */
    transition: all 0.4s ease;
}

.main-slogan {
    font-size: 3rem;
    font-weight: 600;
    margin-bottom: 30px;
    background: linear-gradient(110deg, #ececec 0%, #a5b4fc 45%, #ffffff 50%, #a5b4fc 55%, #ececec 100%);
    background-size: 250% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: textShine 6s infinite;
}

.prompt-container {
    max-width: 800px;
    margin: 0 auto; /* Margin reduziert */
    padding: 2rem;
    background: var(--glass-bg);
    border-radius: 20px;
    box-shadow: var(--shadow-medium);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--glass-border);
    position: relative;
    overflow: visible;
}

/* Input Wrapper & Tags */
.prompt-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    background: var(--dark-surface);
    border-radius: 25px;
    /* STANDARD SUCHE: Blau/Cyan Glow */
    border: 2px solid rgba(0, 212, 255, 0.3);
    box-shadow: 0 0 15px rgba(0, 212, 255, 0.15);
    transition: all 0.3s ease;
    min-height: 60px;
    padding-right: 60px;
}

    /* Fokus-Effekt Standard */
    .prompt-input-wrapper:focus-within {
        border-color: var(--primary-color);
        box-shadow: 0 0 25px rgba(0, 212, 255, 0.4);
    }

/* --- JOB SEARCH MODE (PINK/LILA) --- */
/* !important sorgt dafür, dass dieser Style gewinnt */
.hero-section.job-search-mode .prompt-input-wrapper {
    border-color: var(--job-mode-color) !important;
    box-shadow: 0 0 30px var(--job-mode-glow) !important;
}

/* Tags im Job Mode */
.hero-section.job-search-mode .prompt-keyword-tag {
    background: rgba(217, 70, 239, 0.15);
    border: 1px solid rgba(217, 70, 239, 0.4);
    color: #f0abfc;
}

.prompt-input {
    width: 100%;
    padding: 1rem 1.5rem;
    background: transparent;
    border: none;
    font-size: 1rem;
    color: var(--text-color);
    outline: none;
    height: 100%;
    caret-color: var(--primary-color);  /* Cyan-Cursor bei Fokus */
}

    /* Kein Cursor wenn nicht fokussiert */
    .prompt-input:not(:focus) {
        caret-color: transparent;
    }

    /* Typewriter Cursor Effekt im Placeholder */
    .prompt-input::placeholder {
        color: var(--text-muted);
        font-style: italic;
    }

.prompt-send-btn {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: var(--gradient-primary);
    color: white;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-medium);
    z-index: 20;
    transition: all 0.2s;
}

    .prompt-send-btn:hover {
        transform: translateY(-50%) scale(1.1);
    }

/* STACKED MODE bei Jobsuche */
.hero-section.job-search-mode .prompt-input-wrapper {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    height: auto;
    min-height: 100px;
    padding: 12px 16px;
    padding-right: 60px;
    background: #1a1a1a;
}

/* ✅ NEU: Wenn Badges sichtbar sind, IMMER column-Layout erzwingen */
.prompt-input-wrapper:has(#promptKeywordTags[style*="flex"]) {
    flex-direction: column;
    align-items: stretch;
    height: auto;
    min-height: 60px;
    padding: 12px 16px;
    padding-right: 60px;
}

.prompt-keyword-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
    margin-bottom: 4px;
    max-height: 80px;
    overflow-y: auto;
    flex-shrink: 0;         /* ✅ NEU: Nicht zusammendrücken lassen */
}

.prompt-keyword-tag {
    background: rgba(0, 212, 255, 0.15);
    color: var(--primary-color);
    border: 1px solid rgba(0, 212, 255, 0.3);
    border-radius: 8px;
    padding: 4px 10px;
    font-size: 0.9rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 6px;
    animation: fadeInTag 0.3s ease-out;
}

.remove-tag {
    background: none;
    border: none;
    color: inherit;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    opacity: 0.7;
}

    .remove-tag:hover {
        opacity: 1;
    }

.hero-section.job-search-mode .prompt-input {
    padding: 0;
    margin: 0;
    height: 30px;
    font-size: 1rem;
    width: 100%;
}

.hero-section.job-search-mode .prompt-send-btn {
    top: auto;
    bottom: 12px;
    transform: none;
    /* Pinker Button im Job Mode */
    background: linear-gradient(135deg, #d946ef 0%, #7c3aed 100%);
}

.job-search-mode-label {
    position: absolute;
    top: -15px;
    left: 20px;
    background: var(--job-mode-color);
    color: #000;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 700;
    z-index: 30;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    animation: slideDown 0.3s ease;
}

@keyframes fadeInTag {
    from {
        opacity: 0;
        transform: scale(0.9);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Suggestions */
.suggestion-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 1rem;
}

.suggestion-badge {
    background: var(--dark-surface);
    border: 1px solid var(--dark-border);
    border-radius: 20px;
    padding: 0.5rem 1rem;
    font-size: 0.85rem;
    color: var(--text-secondary);
    cursor: pointer;
    transition: all 0.3s;
}

    .suggestion-badge:hover {
        color: var(--text-color);
        border-color: var(--primary-color);
        transform: translateY(-3px);
    }

/* Highlighted Suggestion Badge: Warmer Stil (Lila statt Cyan) + Pulsieren */
.suggestion-badge.highlight {
    background: rgba(124, 58, 237, 0.15); /* Warmes Violett/Lila */
    border: 1px solid var(--secondary-color);
    color: #e9d5ff; /* Sehr helles Lila für guten Kontrast */
    font-weight: 600;
    box-shadow: 0 0 5px rgba(124, 58, 237, 0.2);
    /* Dezente "Breathing" Animation */
    animation: badgePulse 3s ease-in-out infinite;
}

.suggestion-badge.highlight:hover {
    background: rgba(124, 58, 237, 0.3);
    color: white;
    box-shadow: 0 0 15px rgba(124, 58, 237, 0.5);
    transform: translateY(-2px);
    animation: none; /* Stoppt das Pulsieren beim Hover für Fokus */
    border-color: #a78bfa;
}

/* Definition der Puls-Animation */
@keyframes badgePulse {
    0% {
        box-shadow: 0 0 0 rgba(124, 58, 237, 0);
        border-color: rgba(124, 58, 237, 0.4);
    }
    50% {
        box-shadow: 0 0 12px rgba(124, 58, 237, 0.3); /* Sanftes Leuchten */
        border-color: rgba(124, 58, 237, 0.8);
    }
    100% {
        box-shadow: 0 0 0 rgba(124, 58, 237, 0);
        border-color: rgba(124, 58, 237, 0.4);
    }
}
/* ========================================
   4. CONTENT CARDS (BREITE 800px)
   ======================================== */
#contentCardContainer {
    width: 100%;
    max-width: 800px; /* Breite an Hero angepasst */
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* ✅ FIX: Offset für fixed Header bei show:#contentCardContainer:top */
    scroll-margin-top: 80px;
}

.content-card, #contentSet {
    width: 100%;
    max-width: 800px;
    margin: 10px auto 0; /* ✅ Von 1rem auf 10px reduziert */
    background: var(--glass-bg);
    border-radius: 20px;
    border: 1px solid var(--glass-border);
    backdrop-filter: var(--glass-blur);
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.3s ease;
}

    .content-card.show, #contentSet.show {
        opacity: 1;
        transform: translateY(0);
    }

/* Header */
.content-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 2rem;
    border-bottom: 1px solid var(--dark-border);
    background: var(--dark-surface);
    border-radius: 20px 20px 0 0;
}

    .content-card-header h3 {
        font-size: 1.5rem;
        font-weight: 600;
        color: var(--text-color);
        margin: 0;
    }

/* Filter Section (Jobs) */
.job-filter-section {
    padding: 1.5rem 2rem;
    background: rgba(0,0,0,0.2);
    border-bottom: 1px solid var(--dark-border);
}

/* Body Content */
.content-card-body {
    padding: 2rem;
    color: var(--text-secondary);
    line-height: 1.6;
}

    .content-card-body h1, .content-card-body h2, .content-card-body h3 {
        margin-top: 1.5rem;
        margin-bottom: 1rem;
        color: var(--text-color);
        font-weight: 600;
    }

        .content-card-body h1:first-child {
            margin-top: 0;
        }

    .content-card-body p {
        margin-bottom: 1rem;
    }

/* Actions */
.header-actions {
    display: flex;
    gap: 10px;
    align-items: center;
}

/* WICHTIG: .back-btn hier hinzufügen */
.back-btn, .maximize-btn, .close-btn {
    background: none;
    border: none;
    color: var(--text-secondary);
    cursor: pointer;
    padding: 0.5rem;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

    /* WICHTIG: .back-btn:hover hier hinzufügen */
    .back-btn:hover, .maximize-btn:hover, .close-btn:hover {
        background: var(--dark-elevated);
        color: var(--primary-color);
    }

/* ========================================
   5. JOB SEARCH ITEMS & FILTERS
   ======================================== */
.job-search-filters {
    margin: 15px 0;
    padding: 10px 0;
    border-bottom: 1px solid var(--dark-border);
}

.form-row {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: center;
}

.content-item {
    margin-bottom: 1.5rem;
}

    /* Job Item (Desktop Standard) */
    .content-item.job-item {
        padding: 20px;
        background: var(--glass-bg);
        border: 1px solid var(--glass-border);
        border-radius: 12px;
        margin-bottom: 15px;
        transition: all 0.3s ease;
    }

        .content-item.job-item:hover {
            transform: translateY(-2px);
            border-color: var(--primary-color);
            box-shadow: var(--shadow-medium);
        }

.job-item h4 {
    margin: 0 0 10px 0;
    color: var(--text-color);
    font-size: 1.2rem;
}

.job-meta {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    font-size: 0.85rem;
    color: var(--text-secondary);
    margin-bottom: 15px;
}

    .job-meta span {
        background: rgba(255,255,255,0.05);
        padding: 2px 8px;
        border-radius: 4px;
    }

.job-skills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 15px;
}

.skill-badge {
    font-size: 0.75rem;
    padding: 2px 8px;
    border-radius: 10px;
    background: rgba(124, 58, 237, 0.15);
    color: #d8b4fe;
    border: 1px solid rgba(124, 58, 237, 0.3);
}

.view-details-btn {
    background: var(--gradient-primary);
    border: 0;
    color: white;
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.2s;
}

/* ========================================
   6. TRUST SECTION (Abstand reduziert)
   ======================================== */
.trust-section {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-top: 0; /* ✅ Auf 0 gesetzt (war 10px) */
    margin-bottom: 20px;
    padding: 30px 0px;
    background: rgba(0,0,0,0.8);
    border-top: 1px solid var(--glass-border);
    border-bottom: 1px solid var(--glass-border);
    transition: all 0.5s ease;
    overflow: hidden;
    position: relative;
    z-index: 5;
    flex-shrink: 0;
}

    .trust-section.hidden {
        opacity: 0;
        height: 0;
        padding: 0;
        margin: 0;
        border: 0;
        pointer-events: none;
    }

.trust-marquee {
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
    mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}

.trust-track {
    display: flex;
    align-items: center;
    gap: 60px;
    width: max-content;
    animation: marquee 60s linear infinite;
}

.trust-marquee:hover .trust-track {
    animation-play-state: paused;
}

.trust-item {
    flex: 0 0 auto;
    width: 250px;
    min-height: 150px;
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--border-radius-small);
    backdrop-filter: var(--glass-blur);
    padding: 20px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    /* ✅ FIX: Überlaufende Inhalte abschneiden */
    overflow: hidden;
}

/* ✅ FIX: Logos/Bilder in Trust-Items global begrenzen */
.trust-content-full {
    width: 100%;
    overflow: hidden;
}

.trust-content-full img,
.trust-content-full svg {
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.trust-logo {
    max-width: 100%;
    overflow: hidden;
}

.client-logo {
    max-width: 100%;
    overflow: hidden;
    word-break: break-word;
}

@keyframes marquee {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

@keyframes textShine {
    0% {
        background-position: 100% 50%;
    }

    10% {
        background-position: 0% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

@keyframes shimmerMove {
    0%, 100% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }
}

    /* ========================================
       7. RESPONSIVE / MOBILE LIST VIEW
       ======================================== */
    .burger-menu-btn, .mobile-menu-overlay {
        display: none;
    }

    @media (min-width: 769px) {
        .header-controls {
            visibility: visible;
            opacity: 1;
        }
    }

    @media (max-width: 768px) {
        /* --- 0. CONTAINER BASIC SETUP --- */
        /* Weniger Padding auf Mobile für mehr Platz */
        .container {
            padding-left: 1rem;
            padding-right: 1rem;
        }

        /* --- 1. HEADER & LOGO --- */
        .burger-menu-btn {
            display: flex;
            position: absolute;
            top: 50%; 
            transform: translateY(-50%);
            right: 1rem; /* Bündig mit dem neuen Container Padding */
            z-index: 1002;
            background: none;
            border: none;
            cursor: pointer;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            width: 44px;
            height: 44px;
        }

        .burger-line {
            width: 24px;
            height: 2px;
            background: white;
            margin: 3px 0;
        }

        /* MENÜ OVERLAY */
        .header-controls {
            position: fixed;
            top: 0;
            right: -100%;
            width: 280px;
            height: 100vh;
            background: var(--dark-surface);
            padding: 5rem 1.5rem;
            flex-direction: column;
            transition: right 0.3s ease;
            z-index: 1000;
            border-left: 1px solid var(--dark-border);
            transform: none; 
        }

        .header-controls.mobile-open {
            right: 0;
        }

        .mobile-menu-overlay {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0,0,0,0.5);
            z-index: 999;
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s;
        }

        .mobile-menu-overlay.active {
            opacity: 1;
            visibility: visible;
        }

        /* HEADER: Padding passend zum Container */
        .header {
            justify-content: center;
            padding-left: max(1rem, env(safe-area-inset-left, 0px));
            padding-right: max(1rem, env(safe-area-inset-right, 0px));
        }

        /* STICKY HEADER MOBIL */
        body.scrolled .header {
            min-height: calc(90px + env(safe-area-inset-top, 0px));
            padding-top: calc(1rem + env(safe-area-inset-top, 0px));
            padding-bottom: 1rem;
            justify-content: center;
        }

        body.scrolled .logo {
            margin: 0 auto;
            justify-content: left;
            position: static;
            flex: 0 1 auto;
        }

        body.scrolled .logo-img {
            height: 60px;
        }

        /* --- 2. TRUST SECTION (Full Width & Flex Fix) --- */
        .trust-section {
            width: calc(100% + 2rem);
            margin-left: -1rem; 
            margin-right: -1rem;
            max-width: none;
            padding-top: 20px; 
            padding-bottom: 20px;
            height: auto;
        }
        
        /* ✅ Touch-Scroll ZUSÄTZLICH zur Animation */
        .trust-marquee {
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
            scroll-snap-type: x proximity;
        }

        .trust-marquee::-webkit-scrollbar {
            display: none;
        }

        .trust-track {
            gap: 15px; 
            padding-left: 1rem; 
            align-items: stretch; 
            display: flex; 
            /* ✅ FIX: Animation BEIBEHALTEN — Touch überschreibt sie nativ */
            animation: marquee 60s linear infinite;
        }

        .trust-item {
            width: 200px;
            flex: 0 0 auto; 
            min-height: 180px !important; 
            height: auto !important; 
            padding: 15px 15px;
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            align-items: center;
            text-align: center;
            white-space: normal;
            word-wrap: break-word;
            scroll-snap-align: start;
            /* ✅ FIX: Inhalte dürfen nicht über die Karte hinausragen */
            overflow: hidden;
        }

        /* ✅ FIX: Alle Bilder, SVGs und HTML-Content begrenzen */
        .trust-item img,
        .trust-item svg {
            max-width: 100%;
            height: auto;
            max-height: 45px; 
            width: auto;
            object-fit: contain;
            margin-bottom: 10px;
            flex-shrink: 0;
            display: block;
        }

        .trust-content-full {
            width: 100%;
            overflow: hidden;
        }

        .trust-content-full img,
        .trust-content-full svg {
            max-width: 100%;
            max-height: 60px;
            height: auto;
            width: auto;
            object-fit: contain;
        }

        .trust-item h3, .trust-item h4 {
            font-size: 0.85rem;
            margin: 0 0 6px 0;
            line-height: 1.25;
            flex-shrink: 0;
            word-break: break-word;
        }

        .trust-item p {
            display: block;
            font-size: 0.75rem; 
            line-height: 1.4;
            color: var(--text-secondary);
            margin: 0;
            white-space: normal;
            overflow: visible;
        }

        /* --- 3. MOBILE HERO & LIST VIEW --- */

        /* HERO SUCHFELD MOBIL */
        .prompt-container {
            /* ✅ FIX: Auch hier Calc-Width statt Auto für Zentrierung */
            width: calc(100% + 2rem);
            margin-left: -1rem;
            margin-right: -1rem;
            max-width: none;
            
            background: transparent !important;
            box-shadow: none !important;
            border: none !important;
            border-radius: 0;
            border-top: 0px solid rgba(0, 212, 255, 0.5);
            border-bottom: 0px solid rgba(0, 212, 255, 0.5);
            padding: 2rem 1rem 1rem 1rem; /* Padding unten reduziert */
        }

        .hero-section.job-search-mode .prompt-container {
            border-top-color: var(--job-mode-color) !important;
            border-bottom-color: var(--job-mode-color) !important;
            box-shadow: 0 0 15px rgba(217, 70, 239, 0.2);
        }

        /* CONTENT LISTE */
        #contentCardContainer {
            padding: 0;
            /* ✅ FIX: Breite exakt + symmetrische Margins */
            width: calc(100% + 2rem);
            margin-left: -1rem;
            margin-right: -1rem;
        }

        /* Content Card Rahmen entfernen */
        .content-card, #contentSet {
            background: transparent !important;
            border: none !important;
            border-radius: 0 !important;
            box-shadow: none !important;
            backdrop-filter: none !important;
            margin-top: 0 !important;
            width: 100% !important; /* Sicherstellen dass Karten füllen */
        }

        /* Header kompakt */
        .content-card-header {
            background: transparent;
            border-bottom: 1px solid var(--dark-border);
            padding: 1rem 1rem;
            border-radius: 0;
        }

        .content-card-header h3 {
            font-size: 1.2rem;
            margin-left: 0.5rem;
        }

        /* Body kompakt */
        .content-card-body, .job-filter-section {
            padding: 1rem 1rem;
        }

        /* JOB ITEMS LISTE */
        .content-item.job-item {
            background: transparent !important;
            border: none !important;
            border-radius: 0 !important;
            box-shadow: none !important;
            margin-bottom: 0 !important;
            padding: 1.5rem 1rem !important;
            border-bottom: 1px solid var(--dark-border) !important;
        }

        .content-item.job-item:last-child {
            border-bottom: none !important;
        }

        .content-item.job-item:hover {
            transform: none !important;
            box-shadow: none !important;
        }

        .job-skills {
            margin-bottom: 10px;
        }

        .skill-badge {
            font-size: 0.7rem;
            padding: 2px 6px;
        }

        .view-details-btn {
            display: block;
            width: 100%;
            text-align: center;
            margin-top: 10px;
        }
    }

    /* --- 0. CONTENT MARGIN FOR MOBILE --- */
    @media (max-width: 768px) {
        #contentCardContainer {
            scroll-margin-top: 100px; /* Kompakterer Mobile-Header */
        }
    }

/* ========================================
   8. FOOTER STYLES
   ======================================== */
.footer {
    border-top: 1px solid var(--dark-border);
    background: rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(10px);
    padding: 0;
    margin-top: auto;
}

.footer-content {
    max-width: 800px;
    margin: 0 auto;
    padding: 2.5rem 2rem 1.5rem;
}

/* --- Obere Sektion: 3-Spalten Grid --- */
.footer-top {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--dark-border);
}

/* Brand / Logo */
.footer-brand {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.footer-logo-img {
    height: 40px;
    width: auto;
    filter: brightness(0) invert(1) opacity(0.7);
    align-self: flex-start;
}

.footer-tagline {
    font-size: 0.8rem;
    color: var(--text-muted);
    line-height: 1.5;
    margin: 0;
    max-width: 220px;
}

/* Navigation */
.footer-nav {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.footer-nav-title {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
    margin-bottom: 0.25rem;
}

.footer-link {
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.3s ease;
    position: relative;
    width: fit-content;
}

    .footer-link:hover {
        color: var(--primary-color);
    }

    .footer-link::after {
        content: '';
        position: absolute;
        bottom: -2px;
        left: 0;
        width: 0;
        height: 1px;
        background: var(--gradient-primary);
        transition: width 0.3s ease;
    }

    .footer-link:hover::after {
        width: 100%;
    }

/* Social Links */
.footer-social {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.footer-social-links {
    display: flex;
    gap: 0.75rem;
}

.footer-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--dark-surface);
    border: 1px solid var(--dark-border);
    color: var(--text-secondary);
    transition: all 0.3s ease;
}

    .footer-social-link:hover {
        color: var(--primary-color);
        border-color: var(--primary-color);
        transform: translateY(-2px);
        box-shadow: 0 0 12px rgba(0, 212, 255, 0.2);
    }

/* --- Untere Zeile --- */
.footer-bottom {
    padding-top: 1.25rem;
    text-align: center;
}

.footer-copyright {
    font-size: 0.75rem;
    color: var(--text-muted);
    letter-spacing: 0.3px;
}

/* --- Mobile Footer --- */
@media (max-width: 768px) {
    .footer-content {
        padding: 2rem 1rem 1rem;
    }

    .footer-top {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        text-align: center;
    }

    .footer-brand {
        align-items: center;
    }

    .footer-logo-img {
        align-self: center;
    }

    .footer-tagline {
        max-width: none;
    }

    .footer-nav {
        align-items: center;
    }

    .footer-social {
        align-items: center;
    }

    .footer-social-links {
        justify-content: center;
    }
}

@media (max-width: 576px) {
    .footer-top {
        gap: 1.25rem;
    }
}

/* ========================================
   9. JOB DETAILS VIEW
   ======================================== */

.job-details {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    animation: fadeIn 0.4s ease-out;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- META DATEN (Vertrag, Status, Daten) --- */
.job-details .job-meta {
    background: rgba(255, 255, 255, 0.03);
    border-radius: var(--border-radius);
    padding: 1.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    border: 1px solid var(--glass-border);
}

.job-details .meta-item {
    display: flex;
    flex-direction: column;
    min-width: 120px;
}

/* Reset für die Standard .job-meta span Regel aus der Liste */
.job-details .job-meta span {
    background: transparent;
    padding: 0;
    border-radius: 0;
}

.meta-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    color: var(--text-muted);
    letter-spacing: 0.05em;
    margin-bottom: 4px;
}

.meta-value {
    color: var(--text-color);
    font-weight: 600;
    font-size: 1rem;
}

/* --- SECTIONS (Beschreibung, Skills, etc.) --- */
.job-description h4, 
.job-skills-section h4, 
.job-experience-section h4, 
.job-certificates-section h4,
.job-education-section h4,
.job-locations-section h4 {
    font-size: 1.1rem;
    color: var(--primary-color);
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--dark-border);
    padding-bottom: 0.5rem;
    display: inline-block;
}

.description-text p {
    color: var(--text-secondary); /* Heller als muted */
    font-size: 1rem;
    line-height: 1.7;
}

/* --- SKILLS --- */
.skills-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.skill-item {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(124, 58, 237, 0.15); /* Secondary Color Tint */
    border: 1px solid rgba(124, 58, 237, 0.3);
    padding: 6px 14px;
    border-radius: 20px;
    transition: all 0.2s ease;
}

.skill-item:hover {
    background: rgba(124, 58, 237, 0.25);
    transform: translateY(-2px);
}

.skill-name {
    color: #e9d5ff; /* Lighter Purple */
    font-weight: 600;
}

.skill-level, .skill-priority {
    font-size: 0.75rem;
    background: rgba(0,0,0,0.3);
    padding: 2px 8px;
    border-radius: 10px;
    color: var(--text-secondary);
}

/* --- EXPERIENCE & OTHERS --- */
.experience-container {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.experience-item {
    background: var(--dark-surface);
    border-left: 3px solid var(--tertiary-color); /* Grün akzentuiert */
    padding: 1rem;
    border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
}

.experience-position {
    display: block;
    font-weight: 600;
    color: var(--text-color);
    margin-bottom: 4px;
}

.experience-years {
    font-size: 0.85rem;
    color: var(--text-secondary);
    background: rgba(16, 185, 129, 0.1);
    padding: 2px 6px;
    border-radius: 4px;
}

.experience-description {
    margin-top: 8px;
    font-size: 0.9rem;
    color: var(--text-muted);
}

/* Listen Styles für Zertifikate/Bildung */
.certificates-list, .education-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.certificates-list li, .education-list li {
    padding: 8px 0;
    border-bottom: 1px solid var(--dark-border);
    color: var(--text-secondary);
}

.certificates-list li:last-child, .education-list li:last-child {
    border-bottom: none;
}

/* --- LOCATIONS --- */
.locations-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
}

.location-item {
    background: var(--dark-surface);
    border: 1px solid var(--dark-border);
    padding: 1rem;
    border-radius: var(--border-radius-small);
    transition: border-color 0.3s;
}

.location-item:hover {
    border-color: var(--primary-color);
}

.location-type {
    font-size: 0.7rem;
    text-transform: uppercase;
    color: var(--accent-color);
    font-weight: 700;
    margin-bottom: 0.5rem;
    letter-spacing: 1px;
}

.location-city {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-color);
}

.location-country {
    color: var(--text-muted);
    font-size: 0.9rem;
}

/* --- BUTTONS (Globalisiert für Details) --- */
.job-actions {
    margin-top: 2rem;
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-family: inherit;
    font-weight: 600;
    font-size: 1rem;
    padding: 0.8rem 1.8rem;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    border: none;
}

.btn-primary {
    background: var(--gradient-primary);
    color: white;
    box-shadow: var(--shadow-medium);
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-heavy);
}

.btn-outline {
    background: transparent;
    border: 1px solid var(--glass-border);
    color: var(--text-color);
}

.btn-outline:hover {
    border-color: var(--text-color);
    background: rgba(255, 255, 255, 0.05);
}

/* ========================================
   PAGINATION STYLING
   ======================================== */

.pagination-container {
    display: flex;
    justify-content: center;
    margin-top: 2rem;
    margin-bottom: 2rem;
    width: 100%;
}

.pagination {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}

.page-item {
    display: inline-block;
}

.page-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 0.5rem;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-secondary);
    background: rgba(255, 255, 255, 0.05); /* Leichter Glass-Effekt */
    border: 1px solid var(--glass-border);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    cursor: pointer;
}

    .page-link:hover {
        background: rgba(255, 255, 255, 0.1);
        color: var(--text-color);
        border-color: rgba(255, 255, 255, 0.2);
        transform: translateY(-2px);
    }

/* Aktive Seite */
.page-item.active .page-link {
    background: var(--gradient-primary); /* Primary Gradient */
    color: white; /* Text weiß */
    border-color: transparent;
    box-shadow: var(--shadow-medium);
}

    .page-item.active .page-link:hover {
        box-shadow: var(--shadow-heavy);
    }

/* Disabled State (falls vorhanden) */
.page-item.disabled .page-link {
    opacity: 0.5;
    pointer-events: none;
    background: transparent;
    border-color: transparent;
}

/* ========================================
   FILTER SECTION STYLING (GLASS/DARK)
   ======================================== */

/* Filter Row Layout */
.filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.filter-group {
    flex: 1 1 200px;
}

.filter-group--contracts {
    flex: 2 1 280px;
}

.filter-group--location {
    flex: 2 1 260px;
}

.filter-group label {
    display: block;
    font-size: 0.8rem;
    color: var(--text-muted);
    margin-bottom: 8px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Location Input Abstand zum Slider */
.filter-group--location > .form-control {
    margin-bottom: 10px;
}

/* Radius Slider Label: Theme-Farben statt #555 */
.radius-slider-container label {
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--text-secondary);
    text-transform: none;
    letter-spacing: 0;
    margin-bottom: 4px;
}

.radius-slider-container label span {
    color: var(--primary-color);
    font-weight: 600;
}

/* 1. BADGES (Contract Types) */
.contract-type-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.filter-badge {
    background: var(--dark-surface);
    border: 1px solid var(--dark-border);
    color: var(--text-secondary);
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.85rem;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    white-space: nowrap;
}

    .filter-badge:hover {
        border-color: var(--text-secondary);
        color: var(--text-color);
        background: rgba(255, 255, 255, 0.05);
    }

    .filter-badge.active,
    .filter-badge[aria-pressed="true"] {
        background: rgba(0, 212, 255, 0.15);
        border-color: var(--primary-color);
        color: var(--primary-color);
        font-weight: 500;
        box-shadow: 0 0 10px rgba(0, 212, 255, 0.2);
    }

/* 2. INPUT FIELDS (Location) */
.job-filter-section .form-control {
    width: 100%;
    background: var(--dark-surface);
    border: 1px solid var(--dark-border);
    color: var(--text-color);
    padding: 8px 12px;
    border-radius: 10px;
    font-size: 0.95rem;
    transition: border-color 0.3s;
}

    .job-filter-section .form-control:focus {
        border-color: var(--primary-color);
        outline: none;
        box-shadow: 0 0 0 3px rgba(0, 212, 255, 0.2);
    }

    .job-filter-section .form-control::placeholder {
        color: var(--text-muted);
    }

/* 3. SLIDER (Radius) */
.radius-slider-container {
    margin-top: 5px;
}

.radius-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    border-radius: 3px;
    background: var(--dark-border);
    outline: none;
    transition: background 0.3s;
    cursor: pointer;
}

    .radius-slider::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: var(--primary-color);
        cursor: pointer;
        box-shadow: 0 0 10px rgba(0, 212, 255, 0.5);
        transition: transform 0.2s;
    }

    .radius-slider::-webkit-slider-thumb:hover {
        transform: scale(1.2);
    }

    .radius-slider::-moz-range-thumb {
        width: 18px;
        height: 18px;
        border: none;
        border-radius: 50%;
        background: var(--primary-color);
        cursor: pointer;
        box-shadow: 0 0 10px rgba(0, 212, 255, 0.5);
        transition: transform 0.2s;
    }

/* 4. ACTION BUTTONS (Apply / Reset) */
.filter-actions {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 10px;
    flex: 1 1 160px;
}

.filter-actions .btn {
    width: 100%;
    padding: 8px 16px;
    font-size: 0.9rem;
    justify-content: center;
}

/* 5. ACTIVE FILTERS (Untere Leiste) */
.active-filters {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    font-size: 0.9rem;
    color: var(--text-secondary);
    margin-bottom: 15px;
}

.active-filters .filter-badge {
    /* Spezifischer Style für "gewählte Filter" zum Entfernen */
    padding: 4px 10px;
    font-size: 0.8rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: default;
    background: rgba(124, 58, 237, 0.15); /* Secondary Color */
    border-color: rgba(124, 58, 237, 0.4);
    color: #e9d5ff;
}

.remove-filter {
    background: none;
    border: none;
    color: inherit;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    opacity: 0.7;
    display: flex;
    align-items: center;
}

    .remove-filter:hover {
        opacity: 1;
        transform: scale(1.2);
    }

/* Wenn Checkbox checked ist, style das Label dahinter */
.badge-checkbox:checked + .filter-badge {
    background-color: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}

/* ========================================
   10. COOKIE CONSENT & SETTINGS (DSGVO)
   ======================================== */

/* --- Banner (unten fixiert) --- */
.cookie-consent-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 999999;
    background: rgba(10, 10, 10, 0.95);
    color: var(--text-color);
    backdrop-filter: blur(20px);
    border-top: 1px solid var(--glass-border);
    box-shadow: 0 -4px 30px rgba(0, 0, 0, 0.5);
}

.cookie-container {
    max-width: 1200px;
    margin: 0 auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

/* --- Buttons: ALLE gleichwertig (DSGVO) --- */
.cookie-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-width: 160px;
    padding: 8px 16px;
    font-size: 0.85rem;
    font-weight: 500;
    border-radius: var(--border-radius-small);
    border: 1px solid var(--glass-border);
    background: var(--dark-elevated);
    color: var(--text-color);
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
    text-decoration: none;
}

.cookie-btn:hover {
    background: var(--dark-border);
    border-color: var(--text-secondary);
    color: var(--text-color);
}

.cookie-btn i { font-size: 0.9rem; }

/* --- Modal --- */
.cookie-modal-content {
    background: var(--dark-surface);
    border: 1px solid var(--glass-border);
    border-radius: 12px;
    overflow: hidden;
}

.cookie-modal-header {
    background: var(--dark-elevated);
    border-bottom: 1px solid var(--dark-border);
    padding: 0.75rem 1rem;
    border-radius: 12px 12px 0 0;
}

.cookie-modal-header .modal-title {
    font-size: 0.95rem;
    color: var(--text-color);
}

.cookie-modal-header .modal-title i {
    color: var(--text-secondary);
    margin-right: 0.4rem;
}

.cookie-modal-header .btn-close-white {
    filter: invert(1) grayscale(100%) brightness(200%);
    opacity: 0.6;
}

.cookie-modal-header .btn-close-white:hover { opacity: 1; }

.cookie-modal-body {
    color: var(--text-color);
    background: var(--dark-surface);
    padding: 1rem;
}

/* --- Kategorie-Zeilen --- */
.cookie-category {
    display: flex;
    flex-direction: column; /* ✅ Vertikal: Header → Desc → Details */
    padding: 0.75rem 0;
}

    .cookie-category + .cookie-category {
        border-top: 1px solid var(--dark-border); /* ✅ Nur EINE Linie zwischen Kategorien */
    }

/* Header-Zeile: Name links, Badge/Toggle rechts */
.cookie-category-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cookie-category-name {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-color);
    margin-bottom: 0;
}

.cookie-category-desc {
    font-size: 0.78rem;
    color: var(--text-secondary);
    line-height: 1.4;
    margin: 4px 0 0 0;
}

/* Toggle */
.cookie-category .form-switch {
    flex-shrink: 0;
    margin-left: 1rem;
}

.cookie-category .form-check-input {
    width: 2.5em;
    height: 1.25em;
}

    .cookie-category .form-check-input:checked {
        background-color: var(--primary-color);
        border-color: var(--primary-color);
    }

/* "Immer aktiv" Badge */
.cookie-badge-active {
    font-size: 0.7rem;
    padding: 2px 8px;
    border-radius: 4px;
    background: rgba(16, 185, 129, 0.15);
    color: var(--tertiary-color);
    border: 1px solid rgba(16, 185, 129, 0.3);
    white-space: nowrap;
    flex-shrink: 0;
    margin-left: 1rem;
}

/* --- Button-Leiste (alle gleich breit) --- */
.cookie-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding-top: 0.75rem;
    border-top: 1px solid var(--dark-border);
    margin-top: 0.5rem;
}

    .cookie-actions .cookie-btn {
        flex: 1 1 0;
        min-width: 120px;
    }
/* --- Info-Link --- */
.cookie-info-link {
    font-size: 0.75rem;
    color: var(--text-muted);
    text-align: center;
    padding-top: 0.5rem;
}

.cookie-info-link a {
    color: var(--primary-color);
    text-decoration: none;
}

/* --- Notification Toast --- */
.cookie-notification {
    position: fixed;
    top: 20px;
    right: 20px;
    background: var(--dark-surface);
    color: var(--text-color);
    padding: 0.75rem 1.25rem;
    border-radius: var(--border-radius-small);
    border: 1px solid var(--glass-border);
    z-index: 9999999;
    backdrop-filter: blur(10px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
    transform: translateX(100px);
    opacity: 0;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .cookie-consent-banner .d-flex.gap-2 {
        flex-direction: column;
    }

    .cookie-btn {
        width: 100%;
        min-width: auto;
    }

    .cookie-actions .cookie-btn {
        flex: 1 1 100%;
    }
}

/* Reset-Link (dezent unter den Filtern) */
.filter-reset-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    padding: 0;
    background: none;
    border: none;
    color: var(--text-muted);
    font-size: 0.8rem;
    cursor: pointer;
    transition: color 0.2s ease;
}

    .filter-reset-link:hover {
        color: var(--primary-color);
    }

    .filter-reset-link svg {
        opacity: 0.7;
        transition: opacity 0.2s;
    }

    .filter-reset-link:hover svg {
        opacity: 1;
    }
/* ═══ Cookie-Details (aufklappbar) ═══ */
.cookie-details {
    margin-top: 0.4rem;
}

    .cookie-details summary {
        font-size: 0.75rem;
        color: var(--primary-color);
        cursor: pointer;
        user-select: none;
    }

        .cookie-details summary:hover {
            text-decoration: underline;
        }

.cookie-table {
    width: 100%;
    font-size: 0.72rem;
    margin-top: 0.4rem;
    border-collapse: collapse;
}

    .cookie-table th {
        color: var(--text-secondary);
        font-weight: 600;
        text-align: left;
        padding: 4px 6px;
        border-bottom: 1px solid var(--dark-border);
        white-space: nowrap;
    }

    .cookie-table td {
        color: var(--text-color);
        padding: 4px 6px;
        vertical-align: top;
        border: none; /* ✅ Keine Zeilenborders */
    }

    .cookie-table tbody tr:not(:last-child) td {
        padding-bottom: 6px; /* ✅ Abstand statt Linie */
    }

    .cookie-table code {
        font-size: 0.7rem;
        color: var(--primary-color);
        background: rgba(255, 255, 255, 0.05);
        padding: 1px 4px;
        border-radius: 3px;
        white-space: nowrap;
    }

.cookie-type-badge {
    font-size: 0.65rem;
    padding: 1px 5px;
    border-radius: 3px;
    white-space: nowrap;
}

    .cookie-type-badge.first-party {
        background: rgba(16, 185, 129, 0.15);
        color: var(--tertiary-color);
        border: 1px solid rgba(16, 185, 129, 0.3);
    }

    .cookie-type-badge.third-party {
        background: rgba(251, 191, 36, 0.15);
        color: #fbbf24;
        border: 1px solid rgba(251, 191, 36, 0.3);
    }

/* ========================================
   SLOT-MACHINE PLACEHOLDER
   ======================================== */

.slot-placeholder {
    position: absolute;
    left: 1.5rem;
    top: 0;
    bottom: 0;
    right: 60px;
    display: flex;
    align-items: flex-start;    /* ✅ FIX: war 'center' → Track startet oben */
    overflow: hidden;
    pointer-events: none;
    z-index: 1;
}

/* Verstecken wenn Input Fokus hat oder Text enthält */
.prompt-input:focus ~ .slot-placeholder,
.slot-placeholder.hidden {
    opacity: 0;
    transition: opacity 0.2s ease;
}

.slot-placeholder:not(.hidden) {
    opacity: 1;
    transition: opacity 0.3s ease 0.3s;
}



/* Einzelne Zeile — Höhe MUSS zum Input passen */
.slot-item {
    height: 60px;
    display: flex;
    align-items: center;
    color: var(--text-muted);
    font-size: 1rem;
    font-style: italic;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex-shrink: 0;
}

/* Track: Scrollt vertikal durch */
.slot-track {
    display: flex;
    flex-direction: column;
    animation: slotScroll 15s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

/*
   Animation: 5 Items (4 echte + 1 Klon), jedes = 20% der Track-Höhe
   
   Timing pro Item (3s bei 15s gesamt):
   ─── HALT 2.4s (16%) ───|── SCROLL 0.6s (4%) ──|
   
   Am Ende: Scroll zum Klon (= optisch Item 1),
   dann springt die Animation auf 0% zurück → identische Position → nahtlos!
*/
@keyframes slotScroll {
    0%, 16% {
        transform: translateY(0);
    }
    /* ■ Item 1 steht */
    20%, 36% {
        transform: translateY(-20%);
    }
    /* ■ Item 2 steht */
    40%, 56% {
        transform: translateY(-40%);
    }
    /* ■ Item 3 steht */
    60%, 76% {
        transform: translateY(-60%);
    }
    /* ■ Item 4 steht */
    80%, 96% {
        transform: translateY(-80%);
    }
    /* ■ Klon (= Item 1) steht */
    100% {
        transform: translateY(-80%);
    }
    /* Hält Klon → Loop springt zu 0% */
}

/* ✅ Im Job-Search-Mode: verstecken */
.hero-section.job-search-mode .slot-placeholder {
    display: none;
}

/* ✅ Mobile: Kleinere Schrift */
@media (max-width: 768px) {
    .slot-item {
        font-size: 0.85rem;
    }

    .slot-placeholder {
        left: 1rem;
    }
}

/* ========================================
   JOB ACTION BUTTONS (Apply & Contact)
   ======================================== */

.job-actions {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid var(--dark-border);
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

    .job-actions .btn-apply {
        flex: 1 1 200px;
    }

    .job-actions .btn-contact {
        flex: 1 1 160px;
    }

/* Dezentes Pulsieren */
@keyframes applyPulse {
    0%, 100% {
        box-shadow:
            0 4px 15px rgba(0, 212, 255, 0.3),
            0 0 0 0 rgba(0, 212, 255, 0);
    }
    50% {
        box-shadow:
            0 4px 15px rgba(0, 212, 255, 0.3),
            0 0 0 6px rgba(0, 212, 255, 0.08);
    }
}

/* Mobile: Buttons untereinander */
@media (max-width: 768px) {
    .job-actions {
        flex-direction: column;
    }

    .job-actions .btn-apply,
    .job-actions .btn-contact {
        flex: 1 1 auto;
        width: 100%;
        justify-content: center;
    }
}

/* ========================================
   SHARED ACTION BUTTON (Apply/Submit/Send)
   ======================================== */

/* Globaler Apply-Button-Style (wiederverwendbar in allen Cards) */
.btn.btn-apply {
    padding: 1rem 1.5rem;
    font-size: 1.05rem;
    font-weight: 600;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    color: white;
    border: none;
    box-shadow: 0 4px 15px rgba(0, 212, 255, 0.3), 0 0 0 0 rgba(0, 212, 255, 0);
    animation: applyPulse 3s ease-in-out infinite;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

    .btn.btn-apply:hover {
        transform: translateY(-3px);
        box-shadow: 0 8px 25px rgba(0, 212, 255, 0.4), 0 0 20px rgba(124, 58, 237, 0.3);
        animation: none;
    }

    .btn.btn-apply:active {
        transform: translateY(-1px);
    }

    .btn.btn-apply svg {
        flex-shrink: 0;
    }

    /* Puls-Animation stoppen wenn HTMX lädt */
    .btn.btn-apply.htmx-request {
        animation: none;
        opacity: 0.8;
        pointer-events: none;
    }

/* Globaler Outline-Button-Style */
.btn.btn-contact {
    padding: 1rem 1.5rem;
    font-size: 1.05rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--dark-border);
    color: var(--text-secondary);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

    .btn.btn-contact:hover {
        border-color: var(--secondary-color);
        color: var(--text-color);
        background: rgba(124, 58, 237, 0.08);
        transform: translateY(-2px);
        box-shadow: 0 4px 15px rgba(124, 58, 237, 0.15);
    }

    .btn.btn-contact svg {
        flex-shrink: 0;
        opacity: 0.7;
        transition: opacity 0.2s;
    }

    .btn.btn-contact:hover svg {
        opacity: 1;
    }

/* AI Response: Job-Teaser Cards */
.ai-job-teaser-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--dark-border);
    border-radius: 12px;
    padding: 12px 16px;
    transition: all 0.3s ease;
    cursor: pointer;
}
.ai-job-teaser-card:hover {
    background: rgba(0, 212, 255, 0.05);
    border-color: var(--primary-color);
    transform: translateX(4px);
}

/* ========================================
   AI RESPONSE MARKDOWN STYLES
   ======================================== */
.ai-response-text {
    color: var(--text-color);
    line-height: 1.7;
    font-size: 0.95rem;
}

.ai-response-text strong {
    color: var(--text-color);
    font-weight: 600;
}

.ai-response-text em {
    color: var(--text-secondary);
    font-style: italic;
}

.ai-response-text .ai-code {
    background: rgba(124, 58, 237, 0.15);
    color: #d8b4fe;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: 'Fira Code', 'Cascadia Code', monospace;
    font-size: 0.85em;
}

.ai-response-text .ai-heading {
    color: var(--text-color);
    margin: 1rem 0 0.5rem;
    font-weight: 600;
}

.ai-response-text .ai-list {
    margin: 0.5rem 0;
    padding-left: 1.5rem;
    color: var(--text-secondary);
}

.ai-response-text .ai-list li {
    margin-bottom: 0.3rem;
    line-height: 1.6;
}

.ai-response-text .ai-list li::marker {
    color: var(--primary-color);
}

.ai-response-text a {
    color: var(--primary-color);
    text-decoration: underline;
    text-decoration-color: rgba(0, 212, 255, 0.3);
    transition: text-decoration-color 0.2s;
}

.ai-response-text a:hover {
    text-decoration-color: var(--primary-color);
}

/* ========================================
   AI ACTION BUTTONS
   ======================================== */

/* Layout Container */
.ai-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

/* Primäre CTAs (job-search, cv-upload) erben btn-apply:
   Gradient, Pulse, Hover-Lift – bereits global definiert.
   Nur Größe für den AI-Kontext anpassen: */
.ai-actions .btn.btn-apply {
    flex: 1 1 200px;
    padding: 0.8rem 1.2rem;
    font-size: 0.95rem;
}

/* Kontakt-Button erbt btn-contact:
   Outline mit Lila-Hover – bereits global definiert. */
.ai-actions .btn.btn-contact {
    flex: 1 1 160px;
    padding: 0.8rem 1.2rem;
    font-size: 0.95rem;
}

/* Dezenter Link-Stil für Legal-Seiten (Impressum, Datenschutz) */
.btn.btn-ai-subtle {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1rem;
    font-size: 0.85rem;
    font-weight: 500;
    border-radius: 10px;
    background: transparent;
    border: 1px solid var(--dark-border);
    color: var(--text-secondary);
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn.btn-ai-subtle:hover {
    color: var(--text-color);
    border-color: var(--text-secondary);
    background: rgba(255, 255, 255, 0.05);
    transform: translateY(-1px);
}

/* Mobile: Buttons bleiben flach und horizontal */
@media (max-width: 768px) {
    .ai-actions {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .ai-actions .btn {
        flex: 0 1 auto;
        width: auto;
        justify-content: center;
        padding: 0.6rem 1rem;
        font-size: 0.85rem;
    }
}

/* ========================================
   AI QUICK REPLIES & FOLLOW-UP
   ======================================== */

/* Quick Reply Badges */
.ai-quick-replies {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* Follow-Up Input */
.ai-followup-input {
    position: relative;
}

.ai-followup-input .prompt-input-wrapper {
    border-color: rgba(124, 58, 237, 0.3);
    box-shadow: none;
    padding-right: 40px;
}

.ai-followup-input .prompt-input-wrapper:focus-within {
    border-color: var(--secondary-color);
    box-shadow: 0 0 15px rgba(124, 58, 237, 0.2);
}

.ai-followup-input .prompt-input::placeholder {
    font-size: 0.85rem;
}

/* HTMX Loading Indicator */
.htmx-indicator {
    display: none;
}

.htmx-request .htmx-indicator,
.htmx-request.htmx-indicator {
    display: inline-flex;
}

/* Mobile */
@media (max-width: 768px) {
    .ai-quick-replies {
        flex-direction: column;
    }

    .ai-quick-replies .suggestion-badge {
        text-align: center;
        justify-content: center;
    }
}

/* ========================================
   AI LOADING INDICATOR
   ======================================== */

.ai-loading-indicator {
    position: absolute;
    right: 60px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 25;
}

.ai-loader {
    position: relative;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Rotierender Orbit-Ring mit Gradient */
.ai-loader-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: var(--primary-color);
    border-right-color: var(--secondary-color);
    animation: aiRingSpin 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
    filter: drop-shadow(0 0 4px rgba(0, 212, 255, 0.4));
}

    .ai-loader-ring::after {
        content: '';
        position: absolute;
        inset: 3px;
        border-radius: 50%;
        border: 1.5px solid transparent;
        border-bottom-color: var(--accent-color);
        border-left-color: var(--primary-color);
        animation: aiRingSpin 0.8s cubic-bezier(0.5, 0, 0.5, 1) infinite reverse;
        opacity: 0.6;
    }

/* Pulsierende Dots in der Mitte */
.ai-loader-dots {
    display: flex;
    align-items: center;
    gap: 3px;
    z-index: 1;
}

.ai-dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--primary-color);
    animation: aiDotPulse 1.4s ease-in-out infinite;
    box-shadow: 0 0 6px rgba(0, 212, 255, 0.6);
}

    .ai-dot:nth-child(1) {
        animation-delay: 0s;
    }

    .ai-dot:nth-child(2) {
        animation-delay: 0.2s;
        background: var(--secondary-color);
        box-shadow: 0 0 6px rgba(124, 58, 237, 0.6);
    }

    .ai-dot:nth-child(3) {
        animation-delay: 0.4s;
        background: var(--accent-color);
        box-shadow: 0 0 6px rgba(255, 107, 53, 0.6);
    }

/* --- Animationen --- */
@keyframes aiRingSpin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes aiDotPulse {
    0%, 80%, 100% {
        transform: scale(0.6);
        opacity: 0.4;
    }

    40% {
        transform: scale(1.3);
        opacity: 1;
    }
}

/* --- Job Search Mode: Pink/Lila Variante --- */
.hero-section.job-search-mode .ai-loader-ring {
    border-top-color: var(--job-mode-color);
    border-right-color: var(--secondary-color);
    filter: drop-shadow(0 0 4px var(--job-mode-glow));
}

    .hero-section.job-search-mode .ai-loader-ring::after {
        border-bottom-color: var(--job-mode-color);
        border-left-color: #f0abfc;
    }

.hero-section.job-search-mode .ai-dot {
    background: var(--job-mode-color);
    box-shadow: 0 0 6px var(--job-mode-glow);
}

    .hero-section.job-search-mode .ai-dot:nth-child(2) {
        background: #f0abfc;
        box-shadow: 0 0 6px rgba(240, 171, 252, 0.6);
    }

    .hero-section.job-search-mode .ai-dot:nth-child(3) {
        background: var(--secondary-color);
        box-shadow: 0 0 6px rgba(124, 58, 237, 0.6);
    }

/* Mobile: etwas kompakter */
@media (max-width: 768px) {
    .ai-loading-indicator {
        right: 50px;
    }

    .ai-loader {
        width: 30px;
        height: 30px;
    }

    .ai-dot {
        width: 3px;
        height: 3px;
    }
}

/* ========================================
   AI INTERACTION ZONE (Swap Buttons ↔ Spinner)
   ======================================== */
/* Wenn ein HTMX-Request läuft: ALLE Kinder verstecken … */
#ai-interaction-zone.htmx-request > *:not(.htmx-indicator) {
    display: none !important;
}

/* … und den Spinner als flex (statt htmx-default inline-flex) einblenden */
#ai-interaction-zone.htmx-request > .htmx-indicator {
    display: flex !important;
}

/* Spinner: Kein eigener Raum — passt sich exakt in den Button-Bereich ein */
.ai-thinking-overlay {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    /* ✅ Gleiche Höhe wie die Buttons — kein extra Platz */
    padding: 0.8rem 0;
    margin: 0;
    border: none;
}

.ai-thinking-label {
    font-size: 0.85rem;
    color: var(--text-muted);
    font-style: italic;
    animation: aiThinkingFade 2s ease-in-out infinite;
}

@keyframes aiThinkingFade {
    0%, 100% {
        opacity: 0.5;
    }

    50% {
        opacity: 1;
    }
}

/* ========================================
   AI TITLE LOADING (Inline Spinner + Text)
   ======================================== */

.ai-title-loading {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
}

/* Kleinere Inline-Variante des Spinners */
.ai-loader.ai-loader--inline {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.ai-loader--inline .ai-dot {
    width: 3px;
    height: 3px;
}

.ai-thinking-label {
    animation: thinkingPulse 2s ease-in-out infinite;
}

@keyframes thinkingPulse {
    0%, 100% { opacity: 0.6; }
    50%      { opacity: 1; }
}

/* ========================================
   11. ERROR PAGE
   ======================================== */

.error-hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 60vh;
    max-width: 600px;
    margin: 0 auto;
    padding: 2rem;
    position: relative;
    overflow: visible;
}

/* Pulsierender Glow-Kreis hinter dem Status-Code */
.error-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -60%);
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(124, 58, 237, 0.15) 0%, rgba(0, 212, 255, 0.08) 50%, transparent 70%);
    filter: blur(40px);
    animation: errorGlow 4s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
}

@keyframes errorGlow {
    0%, 100% {
        opacity: 0.6;
        transform: translate(-50%, -60%) scale(1);
    }
    50% {
        opacity: 1;
        transform: translate(-50%, -60%) scale(1.15);
    }
}

/* Großer Status-Code mit Gradient */
.error-code {
    position: relative;
    z-index: 1;
    margin-bottom: 1.5rem;
}

.error-code-text {
    font-size: 8rem;
    font-weight: 800;
    line-height: 1;
    background: linear-gradient(135deg, rgba(0, 212, 255, 0.3) 0%, rgba(124, 58, 237, 0.4) 50%, rgba(255, 107, 53, 0.3) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    filter: drop-shadow(0 0 30px rgba(124, 58, 237, 0.2));
    user-select: none;
}

/* Titel */
.error-title {
    position: relative;
    z-index: 1;
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--text-color);
    margin: 0 0 1rem 0;
}

/* Beschreibungstext */
.error-description {
    position: relative;
    z-index: 1;
    font-size: 1.05rem;
    color: var(--text-secondary);
    line-height: 1.7;
    margin: 0 0 2.5rem 0;
    max-width: 450px;
}

/* Button-Zeile */
.error-actions {
    position: relative;
    z-index: 1;
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
}

.error-actions .btn {
    min-width: 180px;
}

/* Request-ID */
.error-request-id {
    position: relative;
    z-index: 1;
    margin-top: 3rem;
    font-size: 0.75rem;
    color: var(--text-muted);
}

.error-request-id code {
    background: rgba(255, 255, 255, 0.05);
    padding: 2px 8px;
    border-radius: 4px;
    font-family: 'Fira Code', 'Cascadia Code', monospace;
    font-size: 0.7rem;
    color: var(--text-secondary);
}

/* Mobile */
@media (max-width: 768px) {
    .error-code-text {
        font-size: 5rem;
    }

    .error-title {
        font-size: 1.4rem;
    }

    .error-description {
        font-size: 0.95rem;
    }

    .error-actions {
        flex-direction: column;
        width: 100%;
    }

    .error-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .error-glow {
        width: 200px;
        height: 200px;
    }
}

/* ========================================
   AI DISCLAIMER HINWEIS
   ======================================== */
.ai-disclaimer {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 1rem;
    padding: 8px 12px;
    font-size: 0.75rem;
    color: var(--text-secondary);
    opacity: 0.6;
    border-top: 1px solid var(--dark-border);
    transition: opacity 0.3s ease;
}

.ai-disclaimer:hover {
    opacity: 0.9;
}

.ai-disclaimer svg {
    flex-shrink: 0;
    opacity: 0.5;
}