/* 2026-10-15 (Rückmeldung 3, Farben): harte Hex-Textfarben → Ton-Variablen (4 Stellen; Kontrast in beiden Modi) */
/* 2026-10-15 (Rückmeldung 3, Farben): Textfarben theme-sicher — color:var(--primary) → var(--link) (3×) (Hellmodus: --link = --primary; Kontrast ≥ 4.5:1 in beiden Modi) */
/* Wilvista — Kopfbereich (Layout, Navigation, Unterleisten, Seitenkopf).
   ANTWORTZEITEN (2026-09-27, Paket D): aus template_header.php ausgelagert, damit der Browser die ~29 KB CSS
   einmal lädt und zwischenspeichert (Version = Änderungszeit der Datei). Inhalt unverändert. */

/* ── template_header.php, vormals Zeile 31 ── */
        .desktop-header { display: flex; justify-content: space-between; align-items: center; padding: 5px 30px; gap: 18px; }
        .desktop-controls { display:flex; flex-direction:column; align-items:flex-end; gap:5px; flex:0 0 auto; }
        .dc-row { display:flex; align-items:center; gap:8px; }
        .dc-row1 { order:1; } .dc-row2 { order:2; }
        .dc-row1 .wv-srch input { width:170px; padding:6px 34px 6px 30px; font-size:12px; } /* 2026-10-14 (Usability 2): Platz rechts für das Kürzel «/» — es überlappte den Platzhalter */
        .dc-row1 .wv-srch input:focus { width:260px; }
        .dc-row2 .wv-idcap { transform:scale(.92); transform-origin:right center; }
        @media (max-width: 900px) { .desktop-controls { align-items:stretch; } .dc-row { flex-wrap:wrap; } }
        .desktop-nav { padding: 0; margin: 0; flex: 1; display: flex; justify-content: center; gap: 1px !important; flex-wrap: wrap; }
        .desktop-controls { font-size: 13px; flex-shrink: 0; }
        
         @media (max-width: 1100px) {
            .desktop-header { flex-direction: column; align-items: stretch; gap: 15px; }
            .desktop-nav { justify-content: flex-start; padding-bottom: 5px; border-bottom: 1px solid var(--border); }
            .desktop-controls { justify-content: flex-end; }
        }
    
         /* --- Mobile: Hauptmenue einklappbar (analog zum Filter-Panel) --- */
        .mobile-nav-toggle { display: none; }
        @media (max-width: 1100px) {
            .mobile-nav-toggle {
                display: flex; align-items: center; gap: 10px; width: 100%;
                cursor: pointer; padding: 11px 14px; border-radius: 10px;
                font-weight: 700; font-size: 13px; color: #cbd5e1;
                background: rgba(255,255,255,0.06);
                border: 1px solid rgba(255,255,255,0.12);
                transition: background 0.2s; -webkit-tap-highlight-color: transparent;
            }
            .mobile-nav-toggle:hover { background: rgba(255,255,255,0.1); }
            .mobile-nav-toggle .mnt-arrow { margin-left: auto; transition: transform 0.3s; }
            .mobile-nav-toggle .mnt-current { color: #94a3b8; font-weight: 600; }
            /* eingeklappt by default — 2026-10-26: das Menü erscheint nicht mehr IM Kopf (volle Breite, schob die Seite), sondern als Schublade (unten .wv-nav-drawer) */
            .desktop-nav { display: none; flex-direction: column; gap: 4px !important; padding: 6px 0 0 0 !important; border-bottom: none !important; }
            .desktop-header.nav-open .mobile-nav-toggle .mnt-arrow { transform: rotate(180deg); }
            .desktop-nav a { width: 100%; border-radius: 10px; }
        }
        /* TOPBAR-MINI-V1 — obere Leiste als edle, einklappbare Schublade */
        .topbar-body { overflow: hidden; max-height: 2000px; opacity: 1; transition: max-height 0.5s cubic-bezier(.4,0,.2,1), opacity 0.35s ease, overflow 0s linear 0.5s; transition-behavior: allow-discrete; }
        /* 2026-11-01 (Befund «Suche findet nichts»): overflow:hidden der Schublade schnitt die Ergebnisliste der Kopfzeilen-Suche nach der ersten Zeile ab —
           ausgeklappt ist die Schublade jetzt sichtbar überlaufend (Umschalten erst nach der Einklapp-Animation, 0.5 s; eingeklappt sofort hidden). */
        .sticky-topbar:not(.bar-collapsed) .topbar-body { overflow: visible; }
        .sticky-topbar.bar-collapsed .topbar-body { max-height: 0; opacity: 0; pointer-events: none; overflow: hidden; transition: max-height 0.5s cubic-bezier(.4,0,.2,1), opacity 0.35s ease, overflow 0s linear 0s; }
        .topbar-handle { display: none !important;  align-items: center; justify-content: center; gap: 12px; height: 16px; cursor: pointer; user-select: none; transition: background 0.2s ease; }
        .topbar-handle:hover { background: rgba(255,255,255,0.05); }
        .topbar-handle .th-grip { width: 44px; height: 4px; border-radius: 4px; background: rgba(255,255,255,0.25); transition: background 0.2s ease, width 0.2s ease; }
        .topbar-handle:hover .th-grip { background: rgba(255,255,255,0.5); width: 64px; }
        .topbar-handle .th-arrow { width: 13px; height: 13px; color: rgba(255,255,255,0.5); transition: transform 0.45s cubic-bezier(.4,0,.2,1); }
        .sticky-topbar.bar-collapsed .topbar-handle .th-arrow { transform: rotate(180deg); }
        /* SLIM-V1 — kompaktere Leiste, Filterzeile & Buttons */
        #global-filter-panel .filter-btn { padding: 3px 11px; font-size: 11px; border-radius: 13px; }
        /* PRIMÄRE AKTIONEN (Create/Configure): durchgängig gold hervorgehoben */
        /* !important auf ALLEN Eigenschaften: gewinnt gegen jede speziellere
           .filter-btn-Regel und gegen beide Themes (weiss-auf-grau-Bug). */
        /* 2026-10-25 (UX I, P1-11): Konfigurations-Knöpfe (Risks/Gates/CRs «Configuration», «Configure Result Types») als Umriss statt Gold — Gold stand neben Blau als zweite «primäre» Farbe;
           .wv-primary = der eine blaue Hauptknopf einer Seite (z. B. «Create Quality Gate») */
        .filter-btn.wv-cta { background: var(--surface) !important; border-color: var(--border) !important; color: var(--dark) !important; font-weight: 700; }
        .filter-btn.wv-cta:hover { border-color: var(--primary) !important; color: var(--link) !important; background: var(--primary-soft) !important; }
        .filter-btn.wv-cta.active { background: var(--primary) !important; border-color: var(--primary) !important; color: #fff !important; }
        .filter-btn.wv-cta svg { stroke: currentColor !important; }
        .filter-btn.wv-primary { background: var(--primary) !important; border-color: var(--primary) !important; color: #fff !important; font-weight: 700; box-shadow: 0 4px 10px rgba(37,99,235,0.2); }
        .filter-btn.wv-primary:hover { background: var(--primary-hover) !important; }
        .filter-btn.wv-primary svg { stroke: #fff !important; }
        #global-filter-panel > div > span { padding-top: 4px !important; }
    

/* ── template_header.php, vormals Zeile 135 ── */
    /* ===== Verwaltungs-Unterleisten (Client Settings / System) ===== */
    .wv-subbar { background: linear-gradient(180deg, rgba(15,23,42,0.74), rgba(15,23,42,0.6)); backdrop-filter: blur(14px) saturate(130%); -webkit-backdrop-filter: blur(14px) saturate(130%); border-top: 1px solid rgba(255,255,255,0.06); border-bottom: 1px solid rgba(2,6,23,0.35); box-shadow: inset 0 1px 0 rgba(255,255,255,0.04); padding: 9px 30px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
    .wv-subbar-label { font-size: 10px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; color: #7dd3fc; padding: 5px 12px; border-radius: 999px; background: rgba(6,182,212,0.12); border: 1px solid rgba(6,182,212,0.28); white-space: nowrap; }
    .wv-subbar-label.wv-sys { color: #fcd34d; background: rgba(245,158,11,0.12); border-color: rgba(245,158,11,0.3); }
    .wv-subbar-grp { font-size: 9px; font-weight: 800; letter-spacing: 1.1px; text-transform: uppercase; color: rgba(203,213,225,0.55); padding: 0 2px 0 4px; white-space: nowrap; user-select: none; }
    .wv-subbar-sep { width: 1px; height: 20px; background: linear-gradient(180deg, transparent, rgba(255,255,255,0.18), transparent); margin: 0 4px; }
    .wv-tab { color: #cbd5e1; font-size: 12px; font-weight: 600; text-decoration: none; padding: 7px 14px; border-radius: 999px; border: 1px solid transparent; transition: all .15s ease; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
    .wv-tab:hover { color: #fff; background: rgba(255,255,255,0.07); border-color: rgba(255,255,255,0.12); }
    .wv-tab.active { color: #fff; background: linear-gradient(135deg, rgba(6,182,212,0.35), rgba(37,99,235,0.35)); border-color: rgba(6,182,212,0.5); box-shadow: 0 4px 14px -6px rgba(6,182,212,0.5), inset 0 1px 0 rgba(255,255,255,0.15); }
    .wv-tab.wv-sys:hover { border-color: rgba(245,158,11,0.35); }
    .wv-tab.wv-sys.active { background: linear-gradient(135deg, rgba(245,158,11,0.35), rgba(217,119,6,0.3)); border-color: rgba(245,158,11,0.55); box-shadow: 0 4px 14px -6px rgba(245,158,11,0.5), inset 0 1px 0 rgba(255,255,255,0.15); }
    

/* ── template_header.php, vormals Zeile 149 ── */
    /* ═══════════ WV-NAV-2026: Hauptnavigation, State of the Art ═══════════ */
    /* EINE durchgehende Kopf-Fläche: Logo/Nav + Unterleiste + Filter-Schublade + Griff
       liegen auf demselben tiefen Slate-Verlauf; Zonen trennt nur eine Haarlinie. */
    .sticky-topbar { background: linear-gradient(180deg, #0b1220 0%, #0f172a 55%, #0d1526 100%) !important; border-bottom: 1px solid rgba(148,163,184,0.16) !important; box-shadow: 0 14px 36px -22px rgba(2,6,23,0.9); }
    .sticky-topbar .desktop-header { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 9px 26px !important; gap: 20px !important; }
    .sticky-topbar .topbar-body { background: transparent !important; border-top: 1px solid rgba(148,163,184,0.08); }
    .sticky-topbar .topbar-handle { background: transparent; border-top: 1px solid rgba(148,163,184,0.06); }
    /* Unterleisten (Client Settings / System): gleiche Fläche, nur Haarlinie + Hauch Tiefe */
    .wv-subbar { background: rgba(255,255,255,0.02) !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; border-top: 1px solid rgba(148,163,184,0.10) !important; border-bottom: 1px solid rgba(2,6,23,0.55) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,0.03) !important; }
    /* Direkt an den Kopfblock andocken (kein heller Spalt dazwischen) */
    .sticky-topbar + .wv-subbar, .sticky-topbar ~ .wv-subbar { margin-top: 0 !important; background: linear-gradient(180deg, #0d1526, #0f172a) !important; }
    .desktop-nav { gap: 4px !important; }
    .desktop-nav a { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px !important; border-radius: 12px !important; font-size: 12.5px !important; font-weight: 600 !important; letter-spacing: 0.15px; color: #94a3b8 !important; border: 1px solid transparent !important; background: transparent !important; transition: color .16s ease, background .16s ease, border-color .16s ease, transform .16s ease !important; }
    .desktop-nav a .nav-icon { width: 16px !important; height: 16px !important; opacity: .75; transition: opacity .16s ease, transform .16s ease; }
    /* 2026-11-03 (UX III, 5): Filter-Hinweiszeile unter der Kopfleiste */
    .wv-fpill { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:12px clamp(18px, 2.6vw, 36px) 0; padding:7px 14px; border-radius:999px; font-size:12px; color:var(--dark); background:rgba(6,182,212,.10); border:1px solid rgba(6,182,212,.35); }
    .wv-fpill svg { color:#0891b2; flex:0 0 auto; }
    .wv-fpill-l { font-size:10px; letter-spacing:.8px; text-transform:uppercase; font-weight:800; color:#0e7490; }
    .wv-fpill-dim { color:var(--gray-text); }
    .wv-fpill-sep { color:var(--gray-text); }
    .wv-fpill-note { color:var(--gray-text); font-size:11.5px; }
    .wv-fpill-btn { margin-left:auto; font-weight:700; font-size:11.5px; color:var(--link); text-decoration:none; padding:3px 10px; border-radius:999px; border:1px solid transparent; }
    .wv-fpill-btn + .wv-fpill-btn { margin-left:0; }
    .wv-fpill-btn:hover { border-color:rgba(6,182,212,.4); background:rgba(255,255,255,.5); }
    .wv-fpill-clear { color:#b45309; }
    @media (max-width: 640px) { .wv-fpill { border-radius:14px; } .wv-fpill-note { display:none; } }
    /* 2026-11-03 (UX III, 4): «More ▾» im Berater-Menü — Knopf wie ein Menüpunkt, Liste als Popover darunter; eingeklappt (Handy/Hamburger) als Block */
    .wv-nav-more { position: relative; display: inline-flex; }
    .wv-nav-more-btn { display: inline-flex; align-items: center; gap: 6px; padding: 9px 15px; border-radius: 12px; font: inherit; font-size: 12.5px; font-weight: 600; letter-spacing: .2px; color: #cbd5e1; background: transparent; border: 1px solid transparent; cursor: pointer; }
    .wv-nav-more-btn:hover, .wv-nav-more.open .wv-nav-more-btn { color: #e2e8f0; background: rgba(148,163,184,0.08); border-color: rgba(148,163,184,0.14); }
    .wv-nav-more-btn.active { color: #fff; background: linear-gradient(180deg, rgba(6,182,212,0.16), rgba(37,99,235,0.14)); border-color: rgba(6,182,212,0.35); }
    .wv-nav-more-n { font-size: 9.5px; font-weight: 800; padding: 1px 6px; border-radius: 999px; background: rgba(148,163,184,0.18); }
    .wv-nav-more-list { display: none; position: absolute; top: calc(100% + 6px); left: 0; min-width: 220px; padding: 6px; border-radius: 14px; background: #0f172a; border: 1px solid rgba(148,163,184,0.18); box-shadow: 0 20px 50px rgba(0,0,0,.45); z-index: 5000; flex-direction: column; gap: 2px; }
    .wv-nav-more.open .wv-nav-more-list { display: flex; }
    .wv-nav-more-list a { width: 100%; justify-content: flex-start; }
    @media (max-width: 1100px) { .wv-nav-more { display: block; width: 100%; } .wv-nav-more-btn { width: 100%; justify-content: center; } .wv-nav-more-list { position: static; box-shadow: none; border: 0; padding: 0 0 0 10px; background: transparent; } }
    .desktop-nav a:hover { color: #e2e8f0 !important; background: rgba(148,163,184,0.08) !important; border-color: rgba(148,163,184,0.14) !important; transform: translateY(-1px); }
    .desktop-nav a:hover .nav-icon { opacity: 1; }
    .desktop-nav a.active { color: #fff !important; background: linear-gradient(180deg, rgba(6,182,212,0.16), rgba(37,99,235,0.14)) !important; border-color: rgba(6,182,212,0.35) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 6px 18px -10px rgba(6,182,212,0.6); }
    .desktop-nav a.active .nav-icon { opacity: 1; color: #67e8f9; }
    .desktop-nav .nav-sep { width: 1px; height: 18px; align-self: center; margin: 0 5px; background: linear-gradient(180deg, transparent, rgba(255,255,255,0.22), transparent); } /* HAUPTMENÜ (2026-09-27): Block-Trenner */
    .desktop-nav a .nav-icon-elwin .spark { opacity: .9; fill: var(--elwin-spark, #e879f9); } .desktop-nav a.active .nav-icon-elwin .spark, .desktop-nav a:hover .nav-icon-elwin .spark { opacity: 1; }
    /* ELWIN (2026-09-27): eigene Farbe im Menü — Magenta/Violett statt Cyan/Blau, steht VOR Home */
    .desktop-nav a.nav-elwin { color: #f0abfc !important; } .desktop-nav a.nav-elwin .nav-icon { color: #f0abfc; opacity: .9; }
    .desktop-nav a.nav-elwin:hover { color: #fdf4ff !important; background: rgba(217,70,239,0.10) !important; border-color: rgba(217,70,239,0.28) !important; }
    .desktop-nav a.nav-elwin.active { background: linear-gradient(180deg, rgba(217,70,239,0.20), rgba(147,51,234,0.16)) !important; border-color: rgba(232,121,249,0.45) !important; box-shadow: 0 6px 16px -8px rgba(217,70,239,0.6) !important; }
    .desktop-nav a.nav-elwin.active .nav-icon { color: #f0abfc; }
    .desktop-nav a.nav-elwin.active::after { background: linear-gradient(90deg, #e879f9, #a855f7); }
    @media (max-width: 1100px) { .desktop-nav .nav-sep { display: none; } }
    /* ELWIN II (2026-10-25): Zahl der offenen «Nächsten Schritte» am Menüpunkt Elwin */
    .desktop-nav a .nav-cnt { min-width: 17px; height: 17px; padding: 0 5px; border-radius: 999px; background: #e879f9; color: #3b0764; font-size: 10.5px; font-weight: 800; line-height: 17px; text-align: center; margin-left: 2px; }
    .desktop-nav a .nav-cnt:empty { display: none; }
    .desktop-nav a.active::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 3px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #06b6d4, #3b82f6); box-shadow: 0 0 10px rgba(6,182,212,0.7); }
        #wvBarToggle.on, #wvFilterNavBtn.panel-open { color: #fff !important; background: linear-gradient(180deg, rgba(6,182,212,0.16), rgba(37,99,235,0.14)) !important; border-color: rgba(6,182,212,0.35) !important; }
        #wvBarToggle.on .nav-icon, #wvFilterNavBtn.panel-open .nav-icon { opacity: 1; color: #67e8f9; }
        #wvBarToggle.on::after, #wvFilterNavBtn.panel-open::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 3px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #06b6d4, #3b82f6); }
        #wvBarToggle { position: relative; }
        .wv-idcap { display:flex; align-items:center; gap:8px; padding:5px 12px 5px 6px; border:1.5px solid rgba(14,80,100,.85); border-radius:999px; cursor:pointer; color:#cbd5e1; background:transparent; position:relative; }
        .wv-idcap:hover { border-color: rgba(6,182,212,.6); }
        .wv-idcap .av { width:24px; height:24px; border-radius:50%; background:linear-gradient(135deg,#0891b2,#2563eb); color:#fff; font-size:10.5px; font-weight:800; display:flex; align-items:center; justify-content:center; letter-spacing:.5px; }
        .wv-idcap .rl { font-size:10px; letter-spacing:1.6px; font-weight:700; text-transform:uppercase; }
        .wv-idcap.imp { border-color:#B23A48; color:#F3C7CD; }
        .wv-idcap.imp .av { background:linear-gradient(135deg,#B23A48,#7A1F2B); }
        .wv-idcap.imp .rl::after { content:""; display:inline-block; width:6px; height:6px; border-radius:50%; background:#F3C7CD; margin-left:7px; animation:wvPulse 1.6s ease-in-out infinite; vertical-align:middle; }
        @keyframes wvPulse { 0%,100%{opacity:.35} 50%{opacity:1} }
        .wv-idcap .xq { margin-left:4px; font-weight:800; opacity:.8; padding:0 3px; }
        .wv-idcap .xq:hover { opacity:1; color:#fff; }
        #wvIdPanel { display:none; position:absolute; top:calc(100% + 8px); right:0; width:290px; background:#0b1526; border:1px solid rgba(6,182,212,.35); border-radius:12px; box-shadow:0 14px 34px rgba(0,0,0,.5); z-index:400; overflow:hidden; }
        #wvIdPanel.open { display:block; }
        #wvIdPanel .grp { padding:7px 14px 3px; font-size:9.5px; letter-spacing:1.6px; color:var(--gray-text); text-transform:uppercase; }
        #wvIdPanel .lst { max-height:340px; overflow-y:auto; }
        #wvIdPanel .row { display:flex; align-items:center; gap:10px; padding:8px 14px; cursor:pointer; color:#cbd5e1; font-size:12.5px; }
        #wvIdPanel .row:hover { background:rgba(6,182,212,.10); color:#fff; }
        #wvIdPanel .row.cur { box-shadow: inset 3px 0 0 #06b6d4; color:#fff; }
        #wvIdPanel .row .dot { width:8px; height:8px; border-radius:50%; flex:none; }
        #wvIdPanel .row .avm { width:22px; height:22px; border-radius:50%; background:#1e293b; color:#94a3b8; font-size:9px; font-weight:800; display:flex; align-items:center; justify-content:center; flex:none; }


    /* Rechte Kopf-Controls (Mandant, Rollen-Vorschau, Logout) vereinheitlichen */
    .desktop-header select, .desktop-header .filter-btn, .desktop-header button[type="submit"] { border-radius: 11px !important; }
    /* ═══ Einklapp-Griff als "Notch": zentrierte, perforierte Lasche unter der Leiste ═══ */
    .topbar-handle { position: relative; height: 20px; background: transparent !important; border-top: none !important; gap: 9px; }
    .topbar-handle::before { content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
        width: 136px; height: 100%; background: linear-gradient(180deg, #0d1526, #0a101f);
        border: 1px solid rgba(148,163,184,0.22); border-top: none; border-radius: 0 0 16px 16px;
        box-shadow: 0 10px 22px -10px rgba(2,6,23,0.85), inset 0 -1px 0 rgba(255,255,255,0.05);
        transition: border-color .18s ease, box-shadow .18s ease; }
    .topbar-handle:hover::before { border-color: rgba(6,182,212,0.5); box-shadow: 0 12px 26px -10px rgba(6,182,212,0.4), inset 0 -1px 0 rgba(103,232,249,0.15); }
    /* Perforation: Punktreihe statt Balken */
    .topbar-handle .th-grip { position: relative; z-index: 1; width: 34px !important; height: 4px; border-radius: 0; background: none;
        background-image: radial-gradient(circle, rgba(203,213,225,0.75) 1.15px, transparent 1.35px);
        background-size: 7px 4px; background-repeat: repeat-x; background-position: left center; transition: background-image .18s ease; }
    .topbar-handle:hover .th-grip { width: 34px !important; background: none;
        background-image: radial-gradient(circle, #67e8f9 1.15px, transparent 1.35px);
        background-size: 7px 4px; background-repeat: repeat-x; background-position: left center; }
    .topbar-handle .th-arrow { position: relative; z-index: 1; width: 12px; height: 12px; color: rgba(203,213,225,0.7); }
    .topbar-handle:hover .th-arrow { color: #67e8f9; }

    /* ═══ WV-PAGE: EIN Seiten-Container — identische Ränder auf jeder Seite ═══ */
    /* RESPONSIVE (2026-09-27): main ist ein Flex-Kind (body = flex column) und hatte keine Breite — es schrumpfte auf den Inhalt
       (Dashboard 899 px, Konfigurationsseiten 1'000 px, alles andere 1'440 px) oder wuchs über den Viewport hinaus (Gantt, Tabellen),
       womit auf dem Handy die Seite breiter als das Menü wurde. Jetzt: immer volle Breite bis 1'760 px, nie breiter als der Viewport. */
    .wv-page { width: 100%; min-width: 0; max-width: 1760px; margin: 0 auto; padding: 22px clamp(18px, 2.6vw, 36px) 46px; box-sizing: border-box; }
    .wv-page > .container { padding-left: 0 !important; padding-right: 0 !important; padding-top: 0 !important; max-width: none !important; } /* doppelte Ränder bei Seiten mit eigenem .container (Forecast, Handbuch, Audit, Login-Log) */
    .wv-page .table-responsive { max-width: 100%; }
    .wv-page > .card, .wv-page > .container > .card { min-width: 0; }
    .wv-page .card { margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; }
    .wv-page > .card:first-child, .wv-page > form:first-child > .card { margin-top: 0 !important; }

    /* ═══════════ WV-TITLES-2026: Seitentitel entschlacken ═══════════ */
    .header-title-flex { margin-bottom: 12px !important; gap: 9px !important; }
    .header-title-flex .header-title-icon { width: 19px !important; height: 19px !important; }
    .header-title-flex h2 { font-size: 15px !important; letter-spacing: 0.2px; text-transform: uppercase; color: var(--gray-text) !important; font-weight: 800 !important; }
    .wv-title-dedup { display: none !important; }
    

/* ── template_header.php, vormals Zeile 257 ── */
    /* Klapp-Steuerung ohne eigene Zeile: Chevron sitzt in der Kopfzeile,
       der Notch-Griff erscheint NUR im eingeklappten Zustand als schwebende Lasche. */
    .wv-navfold { background: rgba(148,163,184,0.08); border: 1px solid rgba(148,163,184,0.18); color: #94a3b8; width: 30px; height: 30px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; margin-left: 10px; transition: all .15s ease; }
    .wv-navfold:hover { color: #67e8f9; border-color: rgba(6,182,212,0.45); background: rgba(6,182,212,0.1); }
    .sticky-topbar { position: sticky; }
    .sticky-topbar .topbar-handle { display: none !important; }
    /* 2026-10-28 (Wunsch): die Notch-Lasche («Punkte» in der Mitte, wie die iPhone-Kerbe) ist weg — eingeklappt zeigt auch der Desktop die schmale Leiste
       Logo · Seite · Menu der Handy-Ansicht (Regeln .topbar-mini unten, jetzt für alle Breiten). */
    .sticky-topbar.bar-collapsed .topbar-handle { display: none !important; }
    .sticky-topbar.bar-collapsed { min-height: 0; }

    /* ═══ KOPFLEISTE (2026-09-27): Hauptmenü in eigener Zeile + heller Modus «edler» ═══
       1) Desktop: Logo und Bedienelemente in der ersten Zeile, das Hauptmenü zentriert in einer eigenen zweiten Zeile.
          Vorher stand das Menü rechts neben dem Logo und brach bei 16 Einträgen in drei Zeilen um (Mac 1440 px).
          Bis 1'900 px werden die Symbole der Menüpunkte ausgeblendet (Elwin, Filter und Klapp-Knopf behalten ihres) —
          so passt das ganze Menü (17 Einträge inkl. Credits) ab 1'440 px in EINE Zeile; ab 1'900 px mit Symbolen.
       2) Heller Modus: statt eines flachen, fast schwarzen Blocks ein tiefes Nachtblau mit zwei sanften Lichtern
          (Cyan oben links, Violett unten rechts) und einer feinen Farblinie am unteren Rand — die Fläche wirkt
          leichter und hochwertiger; Unterleiste, Filter-Schublade, Schritt-Navigation und Notch laufen im selben Verlauf.
          Der Nachtmodus bleibt unverändert (data-theme="dark"). */
    @media (min-width: 1101px) {
        .desktop-header { flex-wrap: wrap; row-gap: 0; padding: 7px 26px 5px !important; }
        .desktop-header > a[href*="dashboard"] { order: 1; }
        .desktop-controls { order: 2; flex-direction: row; align-items: center; gap: 12px; }
        .desktop-controls .dc-row2 .wv-idcap { transform: none; }
        .desktop-nav { order: 3; flex: 1 1 100%; justify-content: center; align-items: center; margin-top: 6px; padding-top: 5px !important; border-top: 1px solid rgba(148,163,184,0.10); } /* zentriert — gleiche Achse wie der Inhalt (2026-09-27) */
        /* Filter und Klapp-Knopf ans rechte Ende der Menüzeile (Zustands-Kontrollen, keine Seiten) */
        .wv-navtools { order: 2; flex: 0 0 auto !important; margin: 0 0 0 auto !important; padding: 0 !important; border: 0 !important; justify-content: flex-end; }
        .desktop-controls { order: 3; }
        .desktop-header > nav.desktop-nav { order: 4; }
    }
    /* Filter/Collapse: am Desktop beschriftet, auf dem Handy nur Symbol (2026-09-27) */
    .wv-navtools a { text-decoration: none !important; } .wv-navtools .nt-label { font-weight: 700; }
    .wv-navtools a::after { display: none !important; } /* kein «aktive Seite»-Strich unter Zustands-Knöpfen */
    @media (max-width: 1100px) { .wv-navtools .nt-label { display: none; } }
    @media (min-width: 1101px) { .dc-row1 .wv-srch input { width: 260px; } .dc-row1 .wv-srch input:focus { width: 360px; } } /* Suchfeld grösser — die erste Zeile hat jetzt Platz (2026-09-27) */
    @media (max-width: 1100px) {
        /* Handy/Tablet: Logo und Werkzeuge in einer Zeile, darunter Menü-Knopf, Menü, Bedienelemente */
        .sticky-topbar .desktop-header { flex-direction: row !important; flex-wrap: wrap; align-items: center !important; gap: 10px 12px !important; padding: 9px 16px !important; }
        .desktop-header > a[href*="dashboard"] { order: 1; flex: 0 1 auto; margin-right: auto; min-width: 0; }
        .wv-navtools { order: 2; display: flex !important; flex-direction: row !important; flex: 0 0 auto; padding: 0 !important; gap: 6px !important; border: 0 !important; }
        .wv-navtools a { width: auto !important; }
        .mobile-nav-toggle { order: 3; flex: 1 1 100%; }
        .desktop-header > nav.desktop-nav { order: 4; flex: 1 1 100%; }
        .desktop-controls { order: 5; flex: 1 1 100%; }
    }
    @media (min-width: 1101px) and (max-width: 1899px) {
        .desktop-nav a:not(.nav-elwin):not(#wvFilterNavBtn):not(#wvBarToggle) .nav-icon { display: none; }
        .desktop-nav a { padding: 8px 8px !important; font-size: 11.5px !important; letter-spacing: 0 !important; }
        .desktop-nav { gap: 2px !important; }
        .desktop-nav .nav-sep { margin: 0 4px; }
        .wv-navtools a { padding: 8px 12px !important; font-size: 12px !important; }
    }
    @media (min-width: 1900px) { .desktop-nav a { padding: 8px 7px !important; } .desktop-nav { gap: 1px !important; } .desktop-nav .nav-sep { margin: 0 4px; } } /* 2026-10-25 (UX II, 17): 7 px statt 9 px — 18 Punkte des Super-Admins brachen bei 1920 px um */
    html:not([data-theme="dark"]) .sticky-topbar {
        background:
            radial-gradient(1100px 320px at 6% -60%, rgba(34,211,238,0.30), transparent 62%),
            radial-gradient(900px 300px at 96% 160%, rgba(168,85,247,0.26), transparent 62%),
            linear-gradient(180deg, #111e3f 0%, #172a52 58%, #132449 100%) !important;
        border-bottom: 1px solid rgba(148,163,184,0.22) !important;
        box-shadow: 0 18px 40px -26px rgba(15,23,42,0.6) !important;
    }
    html:not([data-theme="dark"]) .sticky-topbar::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: linear-gradient(90deg, #22d3ee, #3b82f6 45%, #a855f7); opacity: .85; pointer-events: none; z-index: 61; }
    html:not([data-theme="dark"]) .sticky-topbar:has(+ .wv-subbar)::after { display: none; }
    html:not([data-theme="dark"]) .sticky-topbar .desktop-nav { border-top-color: rgba(148,163,184,0.14); }
    html:not([data-theme="dark"]) .desktop-nav a { color: #a9b6cc !important; }
    html:not([data-theme="dark"]) .desktop-nav a.nav-elwin { color: #f0abfc !important; }
    html:not([data-theme="dark"]) .sticky-topbar + .wv-subbar, html:not([data-theme="dark"]) .sticky-topbar ~ .wv-subbar { background: linear-gradient(180deg, #132449, #172a52) !important; border-bottom: 1px solid rgba(148,163,184,0.22) !important; position: relative; }
    html:not([data-theme="dark"]) .wv-subbar::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: linear-gradient(90deg, #22d3ee, #3b82f6 45%, #a855f7); opacity: .85; pointer-events: none; }
    html:not([data-theme="dark"]) .topbar-handle::before { background: linear-gradient(180deg, #132449, #101c3a); }
    /* NACHTMODUS (2026-09-27): derselbe Verlauf wie im hellen Modus — die Kopfleiste hob sich vom Seitenhintergrund (#0f172a) kaum ab;
       jetzt eine Spur tiefer als die Seite, die beiden Lichter und die Farblinie in voller Kraft (auf Wunsch «kräftiger»). */
    html[data-theme="dark"] .sticky-topbar {
        background:
            radial-gradient(1100px 320px at 6% -60%, rgba(34,211,238,0.30), transparent 62%),
            radial-gradient(900px 300px at 96% 160%, rgba(168,85,247,0.28), transparent 62%),
            linear-gradient(180deg, #060b16 0%, #0b1424 58%, #091220 100%) !important;
        border-bottom: 1px solid rgba(148,163,184,0.18) !important;
        box-shadow: 0 18px 40px -26px rgba(0,0,0,0.9) !important;
    }
    html[data-theme="dark"] .sticky-topbar::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: linear-gradient(90deg, #22d3ee, #3b82f6 45%, #a855f7); opacity: .85; pointer-events: none; z-index: 61; }
    html[data-theme="dark"] .sticky-topbar:has(+ .wv-subbar)::after { display: none; }
    html[data-theme="dark"] .sticky-topbar + .wv-subbar, html[data-theme="dark"] .sticky-topbar ~ .wv-subbar { background: linear-gradient(180deg, #091220, #0b1424) !important; border-bottom: 1px solid rgba(148,163,184,0.16) !important; position: relative; }
    html[data-theme="dark"] .wv-subbar::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: linear-gradient(90deg, #22d3ee, #3b82f6 45%, #a855f7); opacity: .85; pointer-events: none; }
    html[data-theme="dark"] .topbar-handle::before { background: linear-gradient(180deg, #091220, #060b16); }
    html:not([data-theme="dark"]) .md-nav { background: rgba(10,18,40,0.38); }
    html:not([data-theme="dark"]) .mobile-nav-toggle { background: rgba(255,255,255,0.08); }
    

/* ── template_header.php, vormals Zeile 639 ── */
                .wv-srch { position:relative; }
                .wv-srch input { width:210px; padding:7px 12px 7px 32px; border-radius:999px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:#e2e8f0; font-size:12.5px; outline:none; transition:width .2s; }
                .wv-srch input:focus { width:320px; border-color:var(--primary); background:rgba(255,255,255,.1); }
                .wv-srch input::placeholder { color:rgba(203,213,225,.55); }
                .wv-srch svg { position:absolute; left:11px; top:50%; transform:translateY(-50%); }
                .wv-srch kbd { position:absolute; right:10px; top:50%; transform:translateY(-50%); font-size:10px; color:rgba(203,213,225,.55); border:1px solid rgba(255,255,255,.18); border-radius:5px; padding:1px 5px; }
                .wv-srch-res { position:absolute; top:calc(100% + 8px); left:0; width:420px; max-height:60vh; overflow:auto; background:var(--white); color:var(--dark); border:1px solid var(--border); border-radius:14px; box-shadow:0 20px 50px rgba(0,0,0,.35); display:none; z-index:5000; }
                .wv-srch-res.open { display:block; }
                .wv-srch-res .g { font-size:9.5px; letter-spacing:1px; text-transform:uppercase; color:var(--gray-text); padding:8px 14px 2px; font-weight:800; }
                .wv-srch-res a { display:flex; justify-content:space-between; gap:10px; padding:8px 14px; text-decoration:none; color:var(--dark); font-size:12.5px; border-bottom:1px solid var(--border); }
                .wv-srch-res a:hover, .wv-srch-res a.sel { background:rgba(14,165,233,.08); }
                .wv-srch-res a small { color:var(--gray-text); white-space:nowrap; }
                /* 2026-11-01 (Wunsch «Suche findet Seasons nicht»): Umfang-Chips im Ergebnis — Data (Vorgabe) · Pages & settings · Both */
                .wv-srch-scope { display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:8px 12px; border-bottom:1px solid var(--border); background:var(--bg-soft, rgba(148,163,184,.08)); position:sticky; top:0; }
                .wv-srch-scope span { font-size:10px; letter-spacing:.8px; text-transform:uppercase; color:var(--gray-text); font-weight:800; margin-right:2px; }
                .wv-srch-scope button { font:inherit; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:999px; border:1px solid var(--border); background:var(--white); color:var(--dark); cursor:pointer; }
                .wv-srch-scope button.on { background:var(--primary); border-color:var(--primary); color:#fff; }
                .wv-srch-res .wv-srch-empty { padding:12px 14px; font-size:12.5px; color:var(--gray-text); }
                .wv-srch-res .wv-srch-empty a { display:inline; padding:0; border:0; color:var(--link); font-weight:700; }
                .wv-bell { position:relative; background:none; border:none; cursor:pointer; color:#cbd5e1; display:flex; align-items:center; padding:6px; }
                .wv-bell .n { position:absolute; top:0; right:0; min-width:16px; height:16px; border-radius:8px; background:#dc2626; color:#fff; font-size:9.5px; font-weight:800; display:flex; align-items:center; justify-content:center; padding:0 4px; }
                .wv-bell-pan { position:fixed; width:380px; max-height:70vh; overflow:auto; background:var(--white); color:var(--dark); border:1px solid var(--border); border-radius:14px; box-shadow:0 20px 50px rgba(0,0,0,.35); display:none; z-index:5000; }
                .wv-bell-pan.open { display:block; }
                .wv-bell-pan .it { display:block; padding:10px 14px; border-bottom:1px solid var(--border); text-decoration:none; color:var(--dark); }
                .wv-bell-pan .it.unread { background:rgba(14,165,233,.06); }
                .wv-bell-pan .it b { font-size:12.5px; display:block; }
                .wv-bell-pan .it span { font-size:11.5px; color:var(--gray-text); display:block; margin-top:2px; }
                .wv-bell-pan .it small { font-size:10px; color:var(--gray-text); }
                /* 2026-10-15 (Usability 3, Punkt 9): Hover, blauer Punkt für ungelesen, Fusszeile «n more unread» */
                /* 2026-10-25 (UX II, 24): Gruppenzeile in der Glocke (Art der Meldung + Anzahl) */
                .wv-bell-pan .wv-bell-grp { display:flex; align-items:center; gap:6px; padding:7px 14px 4px; font-size:10px; letter-spacing:.7px; text-transform:uppercase; font-weight:700; color:var(--gray-text); background:var(--bg); border-bottom:1px solid var(--border); }
                .wv-bell-pan .wv-bell-grp em { font-style:normal; font-size:10px; font-weight:800; color:#fff; background:#0ea5e9; border-radius:999px; padding:0 6px; line-height:15px; }
                .wv-bell-pan .it { position:relative; transition:background .12s; }
                .wv-bell-pan .it:hover { background:rgba(37,99,235,.09) !important; }
                .wv-bell-pan .it.unread { padding-left:26px; }
                .wv-bell-pan .it.unread::before { content:""; position:absolute; left:12px; top:16px; width:7px; height:7px; border-radius:50%; background:#0ea5e9; box-shadow:0 0 0 3px rgba(14,165,233,.18); }
                .wv-bell-more { padding:9px 14px; font-size:11.5px; color:var(--gray-text); border-top:1px solid var(--border); background:var(--white); position:sticky; bottom:0; }
                @media (max-width:600px) { .wv-bell-pan { width:auto; left:8px !important; right:8px !important; max-height:60vh; } .wv-acct { width:auto !important; left:8px !important; right:8px !important; } } /* 2026-10-27 (Rückmeldung Handy): Konto- und Hilfe-Menü (.wv-acct) am Handy volle Breite mit Rand — vorher 340 px fest und links ausserhalb */ /* 2026-10-15 (Usability 3, Punkt 9): am Handy lag die 380-px-Liste links ausserhalb des Bildschirms */
                @media (max-width: 1100px) { .wv-srch input { width:150px; padding-right:10px; } .wv-srch kbd { display:none; } } /* 2026-10-14: ohne Kürzel kein Zusatzabstand */
            


/* ── SEITENKOPF (2026-09-27, Paket D): wv_page_head() — Untertitel und Werkzeuge rechts ── */
.wv-ph { align-items:flex-start; }
.wv-ph .header-title-icon { margin-top:2px; flex-shrink:0; }
.wv-ph .wv-ph-t { min-width:0; flex:1 1 0; }
.wv-ph .wv-ph-sub { font-size:12px; color:var(--gray-text); margin-top:2px; text-transform:none; letter-spacing:0; font-weight:500; line-height:1.45; max-width:900px; }
.wv-ph .wv-ph-x { margin-left:auto; display:flex; gap:8px; align-items:center; flex-wrap:wrap; text-transform:none; letter-spacing:0; }
@media (max-width:768px) { .wv-ph { flex-wrap:wrap; } .wv-ph .wv-ph-x { margin-left:0; width:100%; } }
.wv-ph.wv-ph-lead .header-title-icon, .wv-ph.wv-ph-lead h2 { display:none !important; }
.wv-ph.wv-ph-lead .wv-ph-sub { margin-top:0; }

/* ── EINSTELLUNGS-LAYOUT (2026-10-14, Usability 14): Client Settings und System mit linker Gruppenliste ── */
.wv-page.wv-set { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 24px; align-items: start; }
.wv-setbody { min-width: 0; }
.wv-setbody > .card:first-child, .wv-setbody > .container > .card:first-child, .wv-setbody > form:first-child > .card { margin-top: 0 !important; }
.wv-setnav { position: sticky; top: calc(var(--wv-tb, 0px) + 14px); max-height: calc(100vh - var(--wv-tb, 0px) - 28px); overflow: auto; }
/* 2026-10-15 (Usability 3, Punkt 4): Anker-Links, Fehlerfelder und scrollIntoView() landen nicht mehr unter der festen Kopfleiste */
html { scroll-padding-top: calc(var(--wv-tb, 0px) + 12px); }
.wv-setnav-in { background: var(--white); border: 1px solid var(--border); border-radius: 14px; padding: 8px; box-shadow: 0 4px 16px -12px rgba(2,6,23,.35); }
.wv-setnav-hd { display: flex; align-items: center; gap: 8px; font-size: 10.5px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; color: #0e7490; padding: 8px 10px 6px; }
.wv-setnav-hd.sys { color:var(--tone-amber); }
.wv-setnav-code { margin-left: auto; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 10.5px; font-weight: 800; letter-spacing: 1.5px; color: var(--dark); background: var(--bg); border: 1px solid var(--border); border-radius: 6px; padding: 1px 6px; text-transform: none; } /* MANDANTEN-CODE (2026-11-04): Kennung im Kopf der Client Settings */
.wv-setnav-grp { font-size: 9.5px; font-weight: 800; letter-spacing: 1.1px; text-transform: uppercase; color: var(--gray-text); padding: 12px 10px 3px; opacity: .85; }
.wv-setnav-sub { font-size: 10px; font-weight: 700; color: var(--gray-text); padding: 6px 10px 2px 14px; opacity: .8; } /* 2026-10-20: Untertitel innerhalb einer Gruppe — seit dem Go-to-market-Hauptmenü (2026-10-20) ohne Verwendung, bleibt für künftige Gruppen */
.wv-set-min .wv-setnav-sub { display: none; }
.wv-setnav-it { display: flex; align-items: center; gap: 9px; padding: 7px 10px; border-radius: 9px; color: var(--dark); text-decoration: none; font-size: 12.5px; font-weight: 600; line-height: 1.3; transition: background .14s ease, color .14s ease; }
.wv-setnav-it svg { flex: 0 0 auto; opacity: .65; }
.wv-setnav-it:hover { background: rgba(148,163,184,.14); color: var(--dark); }
.wv-setnav-it.active { background: linear-gradient(135deg, rgba(6,182,212,.16), rgba(37,99,235,.14)); color: var(--link); box-shadow: inset 3px 0 0 var(--primary); }
.wv-setnav-it.active svg { opacity: 1; }
.wv-setnav-it.sys.active { background: linear-gradient(135deg, rgba(245,158,11,.18), rgba(217,119,6,.14)); color:var(--tone-amber); box-shadow: inset 3px 0 0 #d97706; }
html[data-theme="dark"] .wv-setnav-it.sys.active { color: #fcd34d; }
html[data-theme="dark"] .wv-setnav-hd.sys { color: #fcd34d; }
html[data-theme="dark"] .wv-setnav-hd { color: #67e8f9; }
.wv-setnav-tg { display: none; }
/* ── ANALYSIS-SEITENLEISTE + EINKLAPPEN (2026-10-15, Rückmeldung 5): Kopf «Analysis» in Blau; Knopf oben rechts klappt jede Leiste auf 48 px zusammen —
   nur Symbole mit Tooltip, Gruppen als Trennlinien; Zustand je Leiste im Browser gemerkt (wv_setnav_min_<kind>). Am Handy (≤ 900 px) gibt es den Knopf nicht. ── */
.wv-setnav-hd.ana { color: var(--link); }
/* ── GO-TO-MARKET-SEITENLEISTE (2026-10-20, Wunsch): eigener Hauptmenüpunkt mit eigener Leiste (Pitch · Commercial) — Kopf und aktiver Eintrag in Smaragd, damit sich Verkauf (grün) von System (amber) und Client Settings (cyan) abhebt ── */
.wv-setnav-hd.gtm { color: #059669; }
.wv-setnav-it.gtm.active { background: linear-gradient(135deg, rgba(16,185,129,.18), rgba(5,150,105,.14)); color: #047857; box-shadow: inset 3px 0 0 #059669; }
html[data-theme="dark"] .wv-setnav-hd.gtm, html[data-theme="dark"] .wv-setnav-it.gtm.active { color: #6ee7b7; }
.wv-setnav { position: sticky; }
.wv-setnav-min { position: absolute; top: 9px; right: 8px; width: 22px; height: 22px; border-radius: 999px; border: 1px solid var(--border); background: var(--white); color: var(--gray-text); display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; opacity: .7; transition: opacity .15s, transform .25s; z-index: 2; }
.wv-setnav-min:hover { opacity: 1; color: var(--dark); }
.wv-set-min .wv-setnav-min { transform: rotate(180deg); right: 11px; top: 7px; }
.wv-page.wv-set.wv-set-min { grid-template-columns: 48px minmax(0, 1fr); gap: 18px; }
.wv-set-min .wv-setnav-in { padding: 34px 4px 6px; }
.wv-set-min .wv-setnav-hd { display: none; }
.wv-set-min .wv-setnav-grp { display: block; height: 1px; padding: 0; margin: 6px 8px; background: var(--border); font-size: 0; opacity: 1; }
.wv-set-min .wv-setnav-grp:first-of-type { display: none; }
.wv-set-min .wv-setnav-it { justify-content: center; padding: 9px 0; font-size: 0; gap: 0; border-radius: 9px; }
.wv-set-min .wv-setnav-it svg { width: 16px; height: 16px; opacity: .8; }
.wv-set-min .wv-setnav-it.active { box-shadow: inset 0 0 0 1px rgba(37,99,235,.25); }
@media (max-width: 900px) {
    .wv-setnav-min { display: none; }
    .wv-page.wv-set.wv-set-min { display: block; }
    .wv-set-min .wv-setnav-in { padding: 8px; }
    .wv-set-min .wv-setnav-hd { display: flex; }
    .wv-set-min .wv-setnav-grp { display: block; height: auto; padding: 12px 10px 3px; margin: 0; background: none; font-size: 9.5px; }
    .wv-set-min .wv-setnav-it { justify-content: flex-start; padding: 7px 10px; font-size: 12.5px; gap: 9px; }
    .wv-page.wv-set { display: block; }
    .wv-setnav { position: static; max-height: none; margin-bottom: 14px; }
    .wv-setnav-tg { display: flex; align-items: center; gap: 10px; width: 100%; padding: 11px 14px; border-radius: 12px; border: 1px solid var(--border); background: var(--white); color: var(--dark); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
    .wv-setnav-tg span { flex: 1; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .wv-setnav-tg .tg-arrow { transition: transform .25s; }
    .wv-setnav.open .wv-setnav-tg .tg-arrow { transform: rotate(180deg); }
    .wv-setnav-in { display: none; margin-top: 8px; }
    .wv-setnav.open .wv-setnav-in { display: block; }
}

/* ── SCHMALE LEISTE (2026-10-14, Usability 13 — Handy; 2026-10-28 auch Desktop, Wunsch): eingeklappte Kopfleiste = Logo · Seite · Menu statt Notch-Lasche.
      Ein Klick öffnet die volle Leiste (am Handy zusätzlich die Menü-Schublade). Am Desktop mit dem Seitenrand der Kopfleiste. ── */
.topbar-mini { display: none; }
.sticky-topbar.bar-collapsed .topbar-mini { display: flex; align-items: center; gap: 10px; padding: 7px clamp(18px, 2.6vw, 36px); cursor: pointer; color: #e2e8f0; -webkit-tap-highlight-color: transparent; }
.sticky-topbar.bar-collapsed .topbar-handle { display: none !important; }
.topbar-mini .tm-logo { display: flex; flex-shrink: 0; }
.topbar-mini .tm-cur { flex: 1; min-width: 0; font-size: 12.5px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #cbd5e1; }
.topbar-mini .tm-menu { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 700; padding: 5px 10px; border-radius: 999px; border: 1px solid rgba(203,213,225,.3); background: rgba(148,163,184,.1); transition: background .15s, border-color .15s; }
.topbar-mini:hover .tm-menu { background: rgba(6,182,212,.14); border-color: rgba(6,182,212,.5); }
@media (max-width: 1100px) { .sticky-topbar.bar-collapsed .topbar-mini { padding: 7px 14px; } }

/* ── PROJEKT-SCHRITTE (2026-10-14, Usability 4): Schritt ohne Reiter für diese Rolle — ausgegraut statt übersprungen ── */
.md-grp.off { border-style: dashed; }

/* ── EINFÜHRUNGSTEXTE (2026-10-14, Usability 10): «About this page · More» — p.analyse-desc und .wv-intro-src werden in template_footer.php eingeklappt ── */
details.wv-intro { margin: -4px 0 16px; }
details.wv-intro > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px; font-weight: 600; color: var(--gray-text); padding: 3px 11px 3px 9px; border: 1px solid var(--border); border-radius: 999px; background: var(--white); user-select: none; transition: color .14s, border-color .14s; }
details.wv-intro > summary::-webkit-details-marker { display: none; }
details.wv-intro > summary:hover { color: var(--link); border-color: var(--primary); }
details.wv-intro > summary svg { width: 13px; height: 13px; flex: 0 0 auto; }
details.wv-intro > summary .wv-intro-x::after { content: 'More'; color: var(--link); }
details.wv-intro[open] > summary .wv-intro-x::after { content: 'Less'; }
details.wv-intro > .wv-intro-b { margin-top: 10px; }
details.wv-intro > .wv-intro-b > p, details.wv-intro > .wv-intro-b > div { margin-bottom: 0 !important; }

/* ── SPEICHERLEISTE (2026-10-14, Usability 12): schwebende Leiste «n unsaved changes · Save all changes · Discard» (template_footer.php, data-wv-savebar) ── */
.wv-savebar { position: fixed; left: 50%; bottom: 18px; transform: translate(-50%, 160%); display: flex; align-items: center; gap: 12px; padding: 9px 12px 9px 18px; border-radius: 999px; background: var(--white); color: var(--dark); border: 1px solid var(--border); box-shadow: 0 18px 40px -14px rgba(2,6,23,.5); z-index: 4000; transition: transform .25s ease; max-width: calc(100vw - 32px); }
.wv-savebar.open { transform: translate(-50%, 0); }
.wv-savebar .wv-sb-n { font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.wv-savebar .wv-sb-n b { color:var(--tone-amber); }
.wv-savebar .wv-sb-save { padding: 9px 18px !important; border-radius: 999px !important; font-size: 12.5px; white-space: nowrap; }
.wv-savebar .wv-sb-discard { padding: 7px 12px; white-space: nowrap; }
.wv-savebar.busy .wv-sb-save { opacity: .6; }
.wv-sb-toast { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); background: #065f46; color: #fff; padding: 9px 16px; border-radius: 999px; font-size: 12.5px; font-weight: 600; z-index: 4001; box-shadow: 0 10px 24px -10px rgba(0,0,0,.5); }
body.wv-sb-on [data-wv-savebar] .btn-save:not(.wv-sb-keep) { display: none !important; }
body.wv-sb-on [data-wv-savebar] tr:has(.btn-save.active-btn) > td { background: rgba(245,158,11,.08); }
body.wv-sb-on [data-wv-savebar] tr:has(.btn-save.active-btn) > td:first-child { box-shadow: inset 3px 0 0 #f59e0b; }
@media (max-width: 640px) { .wv-savebar { left: 12px; right: 12px; bottom: 86px; transform: translate(0, calc(100% + 100px)); max-width: none; justify-content: space-between; padding: 8px 10px 8px 14px; } .wv-savebar.open { transform: translate(0, 0); } .wv-sb-toast { bottom: 86px; } } /* Handy: oberhalb des Elwin-Knopfs · 2026-10-28 (Invoicing I-a, Fund): geschlossen um die eigene Höhe PLUS den 86-px-Abstand nach unten — mit «200 %» (= 104 px bei 52 px Höhe) blieb die Leiste 34 px sichtbar («0 unsaved changes») */
/* Delete als Symbol mit Tooltip (statt des Textknopfs, der in schmalen Spalten «Dele te» umbrach) */
.btn-delete.wv-ico { width: 34px; height: 34px; min-width: 34px; padding: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; border-radius: 9px; }
.btn-delete.wv-ico svg { width: 15px; height: 15px; }

/* ── HAUPTMENÜ (2026-10-14, Usability 8): zwischen 1101 und 1340 px enger gesetzt, damit auch der Super-Admin (15 Einträge) in einer Zeile bleibt —
   2026-10-20 (Go-to-market-Menü): bis 1500 px, weil der Super-Admin jetzt 18 Einträge hat und «Credits» auf 1440 px sonst allein in die zweite Zeile rutschte ── */
@media (min-width: 1101px) and (max-width: 1500px) {
    .desktop-nav a { padding: 8px 4px !important; font-size: 11px !important; } /* 2026-10-25 (UX II, 17): 4 px statt 5 px — Platz für die Gruppen-Überschriften */
    .desktop-nav .nav-sep { margin: 0 2px; }
    .desktop-nav { gap: 1px !important; }
}

/* ── SCHMALE KARTE (2026-10-14, Usability 2): Formularseiten wie My Profile bleiben lesbar schmal (die Seitenregel oben hebt max-width sonst auf) ── */
.wv-page .card.wv-narrow { max-width: 640px !important; margin-left: auto !important; margin-right: auto !important; }

/* ── FILTERZEILEN KOMPAKT (2026-10-14, Usability 2, Punkt 8): Team bookings (.ts-filter) und People (.usr-tools) — Felder nebeneinander im Raster statt untereinander in voller Breite ── */
.ts-filter { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px 12px; align-items: end; background: var(--bg); border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; }
.ts-filter > div { min-width: 0; }
.ts-filter label { display: block; font-size: 10.5px; letter-spacing: .6px; text-transform: uppercase; font-weight: 700; color: var(--gray-text); margin-bottom: 4px; }
.ts-filter input, .ts-filter select { padding: 8px 10px; font-size: 12.5px; }
.ts-filter .filter-btn { width: auto; min-width: 110px; padding: 9px 16px; text-align: center; }
.usr-tools input[type=search] { width: auto; flex: 2 1 260px; }
.usr-tools select { width: auto; flex: 1 1 170px; }
@media (max-width: 640px) { .ts-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* 2026-10-25 (UX I, P1-8): Projektwähler im Seitenkopf */
.wv-psw { display:inline-flex; align-items:center; gap:8px; padding:4px 6px 4px 12px; border:1px solid var(--border); border-radius:999px; background:var(--surface); font-size:12px; color:var(--gray-text); white-space:nowrap; }
.wv-psw-l { font-weight:700; letter-spacing:.6px; text-transform:uppercase; font-size:10px; }
.wv-psw select { border:0; background:transparent; font:inherit; font-weight:700; color:var(--dark); max-width:320px; padding:4px 6px; cursor:pointer; }
.wv-ph-x { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
@media (max-width:700px) { .wv-psw select { max-width:200px; } }

/* 2026-10-25 (UX I, P1-9): aufklappbares «New …»-Formular über Listen */
details.wv-add { border:1px dashed var(--border); border-radius:12px; padding:8px 14px; margin:0 0 14px; background:var(--surface); }
details.wv-add > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:8px; font-weight:700; font-size:13px; color:var(--primary); }
details.wv-add > summary::-webkit-details-marker { display:none; }
.wv-add-plus { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:var(--primary); color:#fff; font-weight:800; }
.wv-add-sub { font-weight:500; color:var(--gray-text); font-size:12px; }
details.wv-add[open] > summary { margin-bottom:4px; }
.wv-add-off { border:1px dashed var(--border); border-radius:12px; padding:10px 14px; margin:0 0 14px; font-size:12.5px; color:var(--gray-text); }
/* 2026-10-25 (UX I, P1-13): Datumshinweis unter Datumsfeldern (nur bei nicht Tag-zuerst-Browsern) */
.wv-date-hint { display:block; font-size:11px; color:var(--gray-text); margin-top:3px; letter-spacing:.2px; }
td > .wv-date-hint, .form-row .wv-date-hint { margin-top:2px; }
/* 2026-10-25 (UX I, P1-14): Quality-Gate-Tabelle kompakter — Felder mit weniger Innenabstand, Zeilen enger */
#qgBulkTable input[type=text], #qgBulkTable select { padding:6px 9px; font-size:12.5px; }
#qgBulkTable td { padding-top:8px; padding-bottom:8px; }
/* 2026-10-25 (UX II, 16): rollengerechte Home — Wochenstreifen (Berater), Feedback-Liste (Berater), Projektkarten (PM/Admins) */
.wv-week { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:6px; }
.wv-day { display:flex; flex-direction:column; align-items:center; gap:2px; padding:8px 4px; border:1px solid var(--border); border-radius:10px; background:var(--surface); text-decoration:none; color:var(--dark); min-width:0; }
.wv-day-l { font-size:10.5px; color:var(--gray-text); font-weight:700; letter-spacing:.3px; white-space:nowrap; } .wv-day-h { font-size:15px; font-weight:800; }
.wv-day.we { opacity:.6; } .wv-day.today { border-color:var(--primary); box-shadow:inset 0 0 0 1px var(--primary); } .wv-day.gap .wv-day-h { color:var(--tone-amber); } .wv-day.off .wv-day-h { color:var(--gray-text); font-weight:600; }
.wv-day.approved .wv-day-h { color:var(--tone-green); } .wv-day.submitted .wv-day-h { color:var(--link); }
.wv-fb-list { display:flex; flex-direction:column; }
.wv-fb-row { display:flex; align-items:center; gap:10px; padding:7px 0; border-bottom:1px solid var(--border); text-decoration:none; color:var(--dark); font-size:12.5px; } .wv-fb-row:last-of-type { border-bottom:0; }
.wv-fb-dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; background:var(--tone-amber); } .wv-fb-dot.due { background:var(--danger); }
.wv-fb-n { font-weight:700; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .wv-fb-p { color:var(--gray-text); font-size:11.5px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }
.wv-fb-s { font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.4px; color:var(--gray-text); } .wv-fb-more { font-size:12px; color:var(--link); text-decoration:none; padding:6px 0; }
.wv-proj-strip { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:10px; }
.wv-proj-card { border:1px solid var(--border); border-radius:12px; background:var(--surface); padding:10px 12px; display:flex; flex-direction:column; gap:8px; min-width:0; }
.wv-proj-n { font-weight:700; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .wv-proj-s { font-size:11.5px; color:var(--gray-text); }
.wv-proj-links { display:flex; gap:10px; align-items:center; flex-wrap:wrap; font-size:11.5px; } .wv-proj-links a { color:var(--link); text-decoration:none; font-weight:600; }
@media (max-width:700px) { .wv-week { gap:4px; } .wv-day { padding:6px 2px; } .wv-day-h { font-size:13px; } }
/* 2026-10-25 (UX II, 17): Gruppen-Überschriften im Hauptmenü (PM/Admins) — als kleine Zeile ÜBER dem ersten Eintrag der Gruppe (kostet keine Breite) */
.desktop-nav a[data-grp] { position:relative; }
.desktop-nav a[data-grp]::before { content:attr(data-grp); position:absolute; top:-6px; left:8px; font-size:8px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:rgba(203,213,225,.5); white-space:nowrap; pointer-events:none; line-height:1; }
.desktop-nav a[data-grp].active::before { color:rgba(203,213,225,.7); }
@media (max-width:1100px) { .desktop-nav a[data-grp]::before { display:none; } }
/* 2026-10-25 (UX II, 21): Clients als Liste + Detail */
#wvClientList tr.wv-cl-open > td { background: rgba(37,99,235,.06); } #wvClientList tr.wv-cl-open > td:first-child { box-shadow: inset 3px 0 0 var(--primary); }

/* ═══ IDENTITY CAPSULE + SANDBOX MODAL (core_sandbox.php) — 2026-10-25 (Performance II): Stil aus dem Seitenkopf hierher (vorher ~8 KB je Seite) ═══ */
    .wv-idcap.imp.sb{border-color:#7c3aed;color:#ddd6fe;} .wv-idcap.imp.sb .av{background:linear-gradient(135deg,#7c3aed,#4c1d95);} .wv-idcap.imp.sb .rl::after{background:#ddd6fe;}
    .wv-idm{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:20px;} .wv-idm[hidden]{display:none;}
    .wv-idm-bg{position:absolute;inset:0;background:rgba(2,6,23,.55);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);}
    .wv-idm-card{position:relative;width:min(980px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;background:var(--white);color:var(--dark);border:1px solid var(--border);border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.45);overflow:hidden;animation:wvIdmIn .18s ease-out;}
    @keyframes wvIdmIn{from{transform:translateY(10px) scale(.98);opacity:0}to{transform:none;opacity:1}}
    .wv-idm-head{display:flex;align-items:flex-start;gap:14px;padding:20px 24px 12px;} .wv-idm-head h2{margin:0;font-size:19px;} .wv-idm-head p{margin:4px 0 0;font-size:12.5px;color:var(--gray-text);}
    .wv-idm-x{margin-left:auto;border:none;background:var(--bg);color:var(--gray-text);width:32px;height:32px;border-radius:50%;font-size:20px;line-height:1;cursor:pointer;flex:0 0 auto;} .wv-idm-x:hover{color:var(--dark);}
    .wv-idm-back{margin-left:auto;border:1px solid #B23A48;background:rgba(178,58,72,.1);color:#B23A48;font-weight:700;font-size:12px;padding:7px 12px;border-radius:999px;cursor:pointer;white-space:nowrap;}
    .wv-idm-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 24px 14px;}
    .wv-idm-opt{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;text-align:left;border:1.5px solid var(--border);background:var(--bg);color:var(--dark);border-radius:14px;padding:12px 14px;cursor:pointer;font:inherit;}
    .wv-idm-opt .ic{grid-row:1/3;font-size:22px;width:38px;height:38px;border-radius:12px;background:var(--white);display:flex;align-items:center;justify-content:center;border:1px solid var(--border);}
    .wv-idm-opt b{font-size:13.5px;} .wv-idm-opt small{display:block;font-size:11px;line-height:1.45;color:var(--gray-text);margin-top:2px;}
    .wv-idm-opt.on{border-color:var(--primary);background:rgba(37,99,235,.08);box-shadow:0 0 0 3px rgba(37,99,235,.12);} .wv-idm-opt[disabled]{opacity:.5;cursor:not-allowed;}
    .wv-idm-p{padding:0 24px 22px;overflow:auto;}
    .wv-idm-tools{display:flex;gap:12px;align-items:center;margin-bottom:8px;flex-wrap:wrap;} .wv-idm-tools input{flex:0 0 260px;max-width:100%;padding:7px 10px;font-size:12.5px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--dark);}
    .wv-idm-hint{font-size:11px;color:var(--gray-text);line-height:1.5;}
    .wv-idm-list{border:1px solid var(--border);border-radius:12px;max-height:46vh;overflow:auto;background:var(--white);}
    .wv-idm-list .grp{padding:8px 14px 3px;font-size:9.5px;letter-spacing:1.4px;color:var(--gray-text);text-transform:uppercase;font-weight:800;background:var(--bg);}
    .wv-idm-list .row{display:flex;align-items:center;gap:10px;padding:8px 14px;font-size:12.5px;color:var(--dark);border:none;background:none;width:100%;text-align:left;font:inherit;border-bottom:1px solid var(--border);} button.row{cursor:pointer;} .wv-idm-list .row:hover{background:rgba(37,99,235,.06);}
    .wv-idm-list .row.cur{background:rgba(201,165,76,.14);} .wv-idm-list .row .nm{font-weight:600;} .wv-idm-list .row .sub{color:var(--gray-text);font-size:11px;} .wv-idm-list .row .chips{margin-left:auto;display:flex;gap:5px;}
    .wv-idm-list .avm{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#0891b2,#2563eb);color:#fff;font-size:9.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;} .wv-idm-list .avm.sa{background:linear-gradient(135deg,#C9A54C,#8a6a25);}
    .wv-idm-list .chip{border:none;cursor:pointer;font-size:9px;font-weight:800;letter-spacing:.5px;padding:3px 8px;border-radius:999px;color:#fff;opacity:.85;} .wv-idm-list .chip:hover,.wv-idm-list .chip.cur{opacity:1;box-shadow:0 0 0 2px #fff,0 0 0 4px currentColor;}
    .wv-idm-list .empty{padding:18px;font-size:12px;color:var(--gray-text);font-style:italic;}
    .wv-sb-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,1.6fr);gap:16px;margin-bottom:12px;}
    .wv-sb-l{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-text);font-weight:800;margin:0 0 6px;}
    #wvSbClient{width:100%;padding:8px 10px;font-size:13px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--dark);}
    .wv-sb-state{margin-top:8px;font-size:11.5px;line-height:1.55;color:var(--gray-text);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:9px 11px;} .wv-sb-state b{color:var(--dark);}
    .wv-sb-roles{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
    .wv-sb-role{display:flex;align-items:center;gap:10px;border:1.5px solid var(--border);border-radius:12px;padding:8px 10px;cursor:pointer;background:var(--white);margin:0;width:auto;text-transform:none;letter-spacing:0;font-weight:500;} .wv-sb-role input{position:absolute;opacity:0;width:0;height:0;}
    .wv-sb-role .ab{flex:0 0 auto;font-size:9.5px;font-weight:800;letter-spacing:.5px;padding:4px 8px;border-radius:999px;color:#fff;} .wv-sb-role .tx b{display:block;font-size:12.5px;color:var(--dark);} .wv-sb-role .tx small{display:block;font-size:10.5px;color:var(--gray-text);line-height:1.4;}
    .wv-sb-role.on{border-color:var(--primary);background:rgba(37,99,235,.08);}
    .wv-sb-proj{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 14px;border:1px solid var(--border);border-radius:12px;padding:10px 12px;max-height:26vh;overflow:auto;background:var(--white);}
    .wv-sb-pr{display:flex;align-items:center;gap:6px;flex-wrap:wrap;} .wv-sb-pr.open{grid-column:1/-1;} .wv-sb-pr>label{flex:1 1 auto;} .wv-sb-lt{border:1px solid var(--border);background:var(--bg);color:var(--gray-text);font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;cursor:pointer;white-space:nowrap;} .wv-sb-lt:hover{color:var(--dark);}
    .wv-sb-lobs{flex:1 1 100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2px 12px;margin:2px 0 6px 22px;padding:6px 10px;border-left:2px solid rgba(37,99,235,.35);background:rgba(37,99,235,.05);border-radius:0 8px 8px 0;} .wv-sb-lobs[hidden]{display:none;} .wv-sb-lobs label{font-size:12px;}
    .wv-sb-proj label{display:flex;align-items:center;gap:8px;font-size:12.5px;margin:0;width:auto;text-transform:none;letter-spacing:0;font-weight:500;color:var(--dark);cursor:pointer;padding:3px 0;} .wv-sb-proj input{width:15px;height:15px;margin:0;flex:0 0 auto;} .wv-sb-proj .d{font-size:9.5px;color:var(--tone-amber);font-weight:800;text-transform:uppercase;}
    .wv-sb-foot{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-top:14px;flex-wrap:wrap;} .wv-sb-btns{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto;}
    .wv-idm-go{border:none;background:var(--primary);color:#fff;font-weight:800;font-size:13px;padding:10px 18px;border-radius:10px;cursor:pointer;} .wv-idm-go[disabled]{opacity:.5;cursor:not-allowed;}
    .wv-idm-sec{border:1px solid var(--border);background:var(--bg);color:var(--dark);font-weight:700;font-size:12px;padding:9px 13px;border-radius:10px;cursor:pointer;} .wv-idm-sec.danger{color:var(--tone-red);border-color:rgba(185,28,28,.35);}
    @media (max-width:760px){.wv-idm-choice,.wv-sb-grid,.wv-sb-roles{grid-template-columns:1fr;} .wv-idm-card{max-height:calc(100vh - 20px);} .wv-idm{padding:10px;}}

/* ═══ ELWIN NEXT STEPS (core_elwin_next.php, wv_en_assets) — 2026-10-25 (Performance II): Stil hierher (vorher ~4 KB je Seite) ═══ */
.en-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.en-it { display:flex; gap:10px; align-items:flex-start; padding:9px 12px; border:1px solid var(--border); border-radius:12px; background:var(--white); }
.en-it.warn { border-left:3px solid #d97706; } .en-it.bad { border-left:3px solid #dc2626; } .en-it.info { border-left:3px solid var(--elwin, #a855f7); }
.en-b { flex:1; min-width:0; } .en-t { font-size:13px; font-weight:700; color:var(--ink, var(--dark)); display:flex; flex-wrap:wrap; gap:6px 8px; align-items:center; } .en-t a { color:inherit; text-decoration:none; } .en-t a:hover { text-decoration:underline; }
.en-k { font-size:10px; font-weight:800; letter-spacing:.6px; text-transform:uppercase; color:var(--muted, var(--gray-text)); background:rgba(148,163,184,.14); padding:2px 7px; border-radius:999px; }
.en-due { font-size:10.5px; font-weight:800; color:var(--tone-amber, #b45309); background:rgba(245,158,11,.14); padding:2px 7px; border-radius:999px; } .en-due.late { color:var(--tone-red, #b91c1c); background:rgba(239,68,68,.12); }
.en-d { font-size:11.5px; color:var(--muted, var(--gray-text)); line-height:1.5; margin-top:2px; }
.en-a { display:flex; align-items:center; gap:2px; flex-shrink:0; } .en-a .elwin-go { margin-left:0; margin-right:4px; } .en-a .elwin-lnk { padding:2px 5px; font-size:11px; } @media (max-width:640px) { .en-a { flex-direction:column; align-items:flex-end; } }
#elwinPanel .en-a { flex-direction:column; align-items:flex-end; gap:0; }
.en-more { font-size:12px; margin-top:8px; } .en-more a { color:var(--elwin-text, #7e22ce); font-weight:700; text-decoration:none; }
.en-home { margin:0 0 18px; padding:14px 16px 12px; border-radius:16px; border:1px solid var(--elwin-line, rgba(168,85,247,.3)); background:linear-gradient(135deg, var(--elwin-soft, rgba(232,121,249,.08)), var(--white)); }
.en-hh { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.en-asst { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:10px; padding-top:10px; border-top:1px dashed var(--border); } .en-asst-l { font-size:10px; font-weight:800; letter-spacing:.8px; text-transform:uppercase; color:var(--muted, var(--gray-text)); margin-right:2px; }
.en-asst-c { display:inline-flex; align-items:center; gap:6px; padding:5px 10px; border-radius:999px; border:1px solid var(--border); background:var(--white); color:var(--ink, var(--dark)); text-decoration:none; font-size:12px; font-weight:600; } .en-asst-c:hover { border-color:var(--elwin-line, rgba(168,85,247,.4)); } .en-asst-c svg { color:var(--elwin-text, #7e22ce); } .en-asst-c b { color:var(--elwin-text, #7e22ce); } .en-ht { flex:1; display:flex; flex-direction:column; } .en-ht b { font-size:14px; } .en-ht span { font-size:12px; color:var(--muted, var(--gray-text)); }
.en-ask { display:flex; gap:8px; align-items:center; margin:0 0 12px; } .en-ask input { flex:1; padding:9px 12px; border-radius:10px; border:1px solid var(--border); font:inherit; font-size:13px; background:var(--white); color:var(--ink, var(--dark)); }
.en-ask button { padding:9px 14px; border-radius:10px; border:none; background:linear-gradient(135deg, var(--elwin, #a855f7), var(--elwin-2, #7e22ce)); color:#fff; font-weight:800; font-size:12.5px; cursor:pointer; }
.en-ans { display:flex; flex-direction:column; gap:8px; margin-bottom:14px; } .en-an { padding:10px 12px; border:1px solid var(--border); border-radius:12px; background:var(--white); } .en-an b { font-size:13px; } .en-an .p { font-size:11px; color:var(--muted, var(--gray-text)); margin:2px 0 4px; } .en-an .s { font-size:12px; line-height:1.5; color:var(--ink-2, var(--dark)); } .en-an a.elwin-go { margin-left:0; }
.en-src { font-size:10px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:var(--elwin-text, #7e22ce); margin-left:6px; }
#elwinPanel .en-it { padding:8px 10px; } #elwinPanel .en-d { display:none; }
/* HOME-KACHELN (2026-10-30): Elwins «needs attention» auf Home als kompakte, aufklappbare Kacheln */
.en-tiles { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:8px; }
.en-tile { min-width:0; border:1px solid var(--border); border-radius:12px; background:var(--white); }
.en-tile.warn { border-left:3px solid #d97706; } .en-tile.bad { border-left:3px solid #dc2626; } .en-tile.info { border-left:3px solid var(--elwin, #a855f7); }
.en-tile > details > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:7px; padding:8px 10px; font-size:12.5px; font-weight:700; color:var(--ink, var(--dark)); line-height:1.3; }
.en-tile > details > summary::-webkit-details-marker { display:none; } .en-tile > details > summary:hover { background:rgba(148,163,184,.08); border-radius:12px; }
.en-tile .en-tt { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .en-tile > details:not([open]) > summary .en-k { display:none; } /* zugeklappt: die Schlagzeile hat Vorrang, die Art erscheint beim Aufklappen */
.en-tile .en-chev { width:7px; height:7px; border-right:2px solid var(--muted, var(--gray-text)); border-bottom:2px solid var(--muted, var(--gray-text)); transform:rotate(45deg); transition:transform .18s; flex-shrink:0; margin:0 3px 3px 2px; }
.en-tile > details[open] > summary .en-chev { transform:rotate(-135deg); margin:4px 3px 0 2px; }
.en-tile:has(> details[open]) { grid-column:1 / -1; } .en-tile:has(> details[open]) .en-tt { white-space:normal; }
.en-tile .en-tb { display:flex; gap:10px 14px; align-items:flex-start; flex-wrap:wrap; padding:0 12px 10px 31px; } .en-tile .en-tb .en-d { flex:1; min-width:220px; margin:0; } .en-tile .en-tb .en-a { margin-left:auto; }
@media (max-width:640px) { .en-tiles { grid-template-columns:1fr; } .en-tile .en-tb { padding-left:12px; } }

/* ═══ ELWIN ASSISTANTS (core_elwin_assist.php, wv_ea_assets) — 2026-10-25 (Performance II): Stil hierher (vorher ~6 KB je Seite) ═══ */
.ea-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:12px; } .ea-grid.compact { grid-template-columns:1fr; gap:8px; }
.ea-card { display:flex; flex-direction:column; gap:8px; padding:14px 16px; border-radius:14px; border:1px solid var(--border); background:var(--white); text-decoration:none; color:var(--dark); transition:transform .14s, box-shadow .14s, border-color .14s; }
.ea-card:hover { transform:translateY(-2px); box-shadow:0 12px 24px -14px rgba(126,34,206,.45); border-color:var(--elwin-line, rgba(168,85,247,.4)); }
.ea-card.ok { border-left:3px solid #059669; } .ea-card.open { border-left:3px solid var(--elwin, #a855f7); } .ea-card.idle { border-left:3px solid var(--border); opacity:.92; }
.ea-ch { display:flex; align-items:center; gap:10px; } .ea-ct { flex:1; min-width:0; display:flex; flex-direction:column; } .ea-ct b { font-size:13.5px; } .ea-ct span { font-size:11.5px; color:var(--muted, var(--gray-text)); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ea-ic { width:34px; height:34px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; background:linear-gradient(135deg, var(--elwin-soft, rgba(232,121,249,.14)), var(--elwin-soft-2, rgba(126,34,206,.14))); color:var(--elwin-text, #7e22ce); flex-shrink:0; } .ea-ic.big { width:44px; height:44px; border-radius:12px; }
.ea-idle { width:40px; text-align:center; color:var(--muted, var(--gray-text)); font-weight:800; }
.ea-p { font-size:11.5px; color:var(--muted, var(--gray-text)); line-height:1.5; } .ea-n { display:flex; gap:8px; align-items:flex-start; font-size:12.5px; line-height:1.4; color:var(--ink, var(--dark)); } .ea-n .elwin-dot { flex:0 0 18px; margin-top:0; }
.ea-f { display:flex; justify-content:space-between; align-items:center; margin-top:auto; } .ea-go { font-size:12px; font-weight:800; color:var(--elwin-text, #7e22ce); }
.ea-detail { } .ea-dh { display:flex; flex-direction:column; gap:10px; margin-bottom:14px; } .ea-back { font-size:12px; font-weight:700; color:var(--elwin-text, #7e22ce); text-decoration:none; } .ea-back:hover { text-decoration:underline; }
.ea-dt { display:flex; align-items:center; gap:14px; } .ea-dt > div { flex:1; min-width:0; } .ea-dt h3 { margin:0; font-size:19px; letter-spacing:-.2px; } .ea-ds { font-size:12.5px; color:var(--muted, var(--gray-text)); } .ea-dp { font-size:12.5px; color:var(--ink-2, var(--dark)); margin-top:3px; line-height:1.5; }
.ea-pick { display:flex; gap:10px; align-items:center; flex-wrap:wrap; } .ea-pick label { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.6px; color:var(--muted, var(--gray-text)); } .ea-pick select { width:auto; min-width:260px; }
.ea-sum { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:10px 14px; border-radius:12px; background:var(--bg); border:1px solid var(--border); margin-bottom:12px; font-size:12.5px; font-weight:700; }
.ea-steps { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; } .ea-steps li { display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border:1px solid var(--border); border-radius:12px; background:var(--white); }
.ea-steps li.ok { opacity:.78; } .ea-steps li.todo, .ea-steps li.warn { border-left:3px solid var(--elwin, #a855f7); } .ea-steps li.warn { border-left-color:#d97706; } .ea-steps li.locked { background:var(--bg); }
.ea-no { width:22px; height:22px; border-radius:7px; background:var(--bg); border:1px solid var(--border); font-size:11px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--muted, var(--gray-text)); } .ea-steps li .elwin-dot { margin-top:2px; }
.ea-sb { flex:1; min-width:0; } .ea-st { font-size:13px; font-weight:700; } .ea-sd { font-size:11.5px; color:var(--muted, var(--gray-text)); margin-top:1px; } .ea-sh { font-size:11.5px; color:var(--ink-2, var(--dark)); margin-top:6px; padding:6px 10px; border-radius:8px; background:var(--bg); line-height:1.5; }
.ea-open { font-size:11.5px; font-weight:800; color:var(--elwin-text, #7e22ce); text-decoration:none; white-space:nowrap; align-self:center; } .ea-lock { font-size:10px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:var(--muted, var(--gray-text)); align-self:center; }
.ea-sub { font-size:10.5px; letter-spacing:1px; text-transform:uppercase; font-weight:800; color:var(--muted, var(--gray-text)); margin:16px 0 8px; }
.ea-list { display:flex; flex-direction:column; gap:4px; } .ea-row { display:flex; gap:10px; align-items:center; padding:8px 12px; border:1px solid var(--border); border-radius:10px; background:var(--white); text-decoration:none; color:var(--dark); font-size:12.5px; } .ea-row b { flex:0 0 auto; } .ea-row span { flex:1; color:var(--muted, var(--gray-text)); font-size:11.5px; min-width:0; } .ea-row .ea-open { flex:0 0 auto; }
.ea-chips { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; } .ea-chip { font-size:11px; font-weight:700; padding:3px 9px; border-radius:999px; background:rgba(245,158,11,.14); color:var(--tone-amber, #b45309); }
.ea-rules { margin:0; padding-left:18px; font-size:12.5px; line-height:1.7; color:var(--ink-2, var(--dark)); }
.ea-group { margin-bottom:14px; } .ea-gh { display:flex; align-items:center; gap:10px; padding:4px 2px 8px; } .ea-gl { font-size:11px; font-weight:800; letter-spacing:.9px; text-transform:uppercase; color:var(--ink, var(--dark)); } .ea-gc { display:flex; gap:6px; } .ea-gw, .ea-gi { font-size:10.5px; font-weight:800; padding:2px 8px; border-radius:999px; } .ea-gw { background:rgba(245,158,11,.16); color:var(--tone-amber, #b45309); } .ea-gi { background:rgba(168,85,247,.12); color:var(--elwin-text, #7e22ce); } .ea-fold { margin-left:auto; }
#elwinPanel .ea-card { padding:10px 12px; } #elwinPanel .ea-ct b { font-size:12.5px; } #elwinPanel .ea-gh { padding-bottom:6px; }

/* ═══ HELP MENU (template_header.php) — 2026-10-25 (Performance II): Stil hierher (vorher ~3 KB je Seite) ═══ */
.wv-helpbtn { width:30px; height:30px; border-radius:999px; border:1px solid rgba(203,213,225,.26); background:rgba(148,163,184,.08); color:#cbd5e1; font-size:14px; font-weight:800; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .15s, color .15s, border-color .15s; }
.wv-helpbtn:hover, .wv-helpbtn[aria-expanded="true"] { background:rgba(148,163,184,.18); color:#fff; border-color:rgba(203,213,225,.45); }
.wv-helpbtn:focus-visible { outline:2px solid #cbd5e1; outline-offset:2px; }
/* 2026-10-15 (Rückmeldung): Pillen «Idea» / «Bug» — Glas-Optik wie «?»; Käfer wackelt beim Überfahren; Beschriftung mit weich laufender Breite (S·M·R·T) */
.wv-fbpill { display:inline-flex; align-items:center; gap:7px; height:30px; padding:0 12px 0 10px; border-radius:999px; border:1px solid rgba(203,213,225,.26); background:rgba(148,163,184,.08); color:#cbd5e1; font:inherit; font-size:12.5px; font-weight:700; cursor:pointer; white-space:nowrap; transition:background .15s, color .15s, border-color .15s; }
.wv-fbpill:hover, .wv-fbpill:focus-visible { background:rgba(148,163,184,.18); color:#fff; border-color:rgba(203,213,225,.45); }
.wv-fbpill:focus-visible { outline:2px solid #cbd5e1; outline-offset:2px; }
.wv-fbpill svg { width:15px; height:15px; display:block; flex:0 0 auto; }
.wv-fbpill .lbl { display:inline-block; overflow:hidden; text-align:left; line-height:1; transition:width .18s ease, letter-spacing .18s ease; }
.wv-fbpill.smrt .lbl { letter-spacing:.6px; font-weight:800; }
.wv-bug:hover .bug, .wv-bug:focus-visible .bug { animation: wvBugWiggle .8s ease-in-out infinite; transform-origin:50% 62%; }
@keyframes wvBugWiggle { 0%{transform:rotate(0) translate(0,0)} 20%{transform:rotate(-16deg) translate(-1px,0)} 40%{transform:rotate(13deg) translate(1px,-1px)} 60%{transform:rotate(-11deg) translate(-1px,0)} 80%{transform:rotate(9deg) translate(1px,0)} 100%{transform:rotate(0) translate(0,0)} }
@media (prefers-reduced-motion: reduce) { .wv-bug:hover .bug, .wv-bug:focus-visible .bug { animation:none; } .wv-fbpill .lbl { transition:none; } }
@media (max-width:1100px) { .wv-fbpill .lbl { display:none; } .wv-fbpill { width:30px; padding:0; justify-content:center; } }
.wv-help { width:300px; }
.wv-help kbd { font-size:10px; border:1px solid var(--border); border-radius:4px; padding:0 5px; }


/* ═══ ACCOUNT MENU (template_header.php) — 2026-10-25 (Performance II): Stil hierher (vorher ~3 KB je Seite) ═══ */
/* KONTO-MENÜ (2026-10-14) — wie das Glocken-Panel: fest positioniert unter dem Bild, Light/Dark über die Theme-Variablen */
.wv-acct { position:fixed; width:340px; max-height:80vh; overflow:auto; background:rgba(255,255,255,.86); color:var(--dark); border:1px solid rgba(255,255,255,.6); border-radius:14px; box-shadow:0 20px 50px rgba(0,0,0,.35); display:none; z-index:5000; padding:6px; }
/* GLAS (2026-10-14, Rückmeldung): leicht transparent mit Weichzeichnung des Hintergrunds — wie das Fenster «Switch view»; ohne backdrop-filter (alte Browser) bleibt die Fläche deckend */
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .wv-acct { backdrop-filter: blur(16px) saturate(160%); -webkit-backdrop-filter: blur(16px) saturate(160%); } .wv-bell-pan { background:rgba(255,255,255,.86); backdrop-filter: blur(16px) saturate(160%); -webkit-backdrop-filter: blur(16px) saturate(160%); } :root[data-theme="dark"] .wv-bell-pan { background:rgba(15,23,42,.84); } }
:root[data-theme="dark"] .wv-acct { background:rgba(15,23,42,.84); border-color:rgba(148,163,184,.28); }
.wv-acct-head, .wv-acct-out { border-color:rgba(148,163,184,.25); }
.wv-acct-it:hover { background:rgba(148,163,184,.14); }
.wv-acct.open { display:block; }
.wv-acct-head { display:flex; gap:12px; align-items:center; padding:12px 12px 12px; border-bottom:1px solid var(--border); margin-bottom:4px; }
.wv-acct-head .wv-av { flex:0 0 auto; }
.wv-acct-sec { font-size:10px; letter-spacing:.8px; text-transform:uppercase; font-weight:700; color:var(--gray-text); padding:10px 12px 4px; }
.wv-acct-it { display:flex; align-items:center; gap:10px; width:100%; padding:8px 12px; border:none; background:transparent; color:var(--dark); text-decoration:none; border-radius:9px; cursor:pointer; text-align:left; font:inherit; }
.wv-acct-it:hover { background:rgba(148,163,184,.14); color:var(--dark); }
.wv-acct-it svg { width:18px; height:18px; flex:0 0 auto; fill:none; stroke:var(--primary); stroke-width:1.9; }
.wv-acct-it span { display:flex; flex-direction:column; min-width:0; } .wv-acct-it b { font-size:13px; font-weight:600; } .wv-acct-it small { font-size:11px; color:var(--gray-text); line-height:1.3; }
.wv-acct-exp { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:4px 12px 8px 40px; font-size:11.5px; color:var(--gray-text); } .wv-acct-exp a { padding:4px 10px; border-radius:999px; border:1px solid var(--border); background:var(--bg); color:var(--dark); font-size:11.5px; font-weight:600; text-decoration:none; } .wv-acct-exp a:hover { border-color:var(--primary); color:var(--link); }
.wv-acct-note { padding:6px 12px 10px; font-size:11.5px; color:var(--gray-text); }
.wv-acct-theme { display:flex; align-items:center; gap:6px; padding:4px 12px 8px; font-size:11.5px; color:var(--gray-text); } .wv-acct-theme span { margin-right:4px; } .wv-acct-theme button { padding:4px 10px; border-radius:999px; border:1px solid var(--border); background:var(--bg); color:var(--dark); font-size:11.5px; font-weight:600; cursor:pointer; } .wv-acct-theme button.on { border-color:var(--primary); color:var(--link); background:var(--primary-soft, rgba(37,99,235,.08)); }
.wv-acct-out { margin-top:4px; border-top:1px solid var(--border); border-radius:0 0 9px 9px; } .wv-acct-out svg { stroke:var(--danger, #ef4444); }

/* ═══ HANDY-MENÜ ALS SCHUBLADE (2026-10-26, Wunsch) — toggleMainMenu() in template_header.php verschiebt das <nav> in #wvNavDrawer am Dokumentende;
   Hintergrund #wvNavBd abgedunkelt + weichgezeichnet (ohne backdrop-filter nur abgedunkelt). Breite: die Einträge, höchstens 82 % der Seite. ═══ */
.wv-nav-bd { position:fixed; inset:0; z-index:8500; touch-action:none; overscroll-behavior:contain; /* über dem Elwin-Knopf (8000), unter Elwin-Panel (8998) und Pop-ups */ background:rgba(2,6,23,.55); opacity:0; pointer-events:none; transition:opacity .25s ease; }
.wv-nav-bd.open { opacity:1; pointer-events:auto; }
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .wv-nav-bd { backdrop-filter: blur(6px) saturate(120%); -webkit-backdrop-filter: blur(6px) saturate(120%); } }
.wv-nav-drawer { position:fixed; top:0; left:0; height:100vh; height:100dvh; /* 2026-10-26: sichtbare Höhe auch mit eingeblendeter Browserleiste (iOS) */ width:min(280px, 82vw); z-index:8501; display:flex; flex-direction:column; overflow:hidden; background:linear-gradient(180deg, #0b1220 0%, #0f172a 55%, #0d1526 100%); border-right:1px solid rgba(148,163,184,.16); box-shadow:14px 0 44px rgba(0,0,0,.45); transform:translateX(-105%); transition:transform .28s cubic-bezier(.2,.9,.3,1); padding-top:env(safe-area-inset-top, 0); padding-bottom:env(safe-area-inset-bottom, 0); }
.wv-nav-drawer.open { transform:translateX(0); }
.wv-nav-dh { display:flex; align-items:center; justify-content:space-between; padding:14px 14px 8px 18px; color:#94a3b8; font-size:11px; letter-spacing:1px; text-transform:uppercase; font-weight:800; flex:0 0 auto; }
.wv-nav-x { border:0; background:rgba(255,255,255,.08); color:#e2e8f0; width:32px; height:32px; border-radius:999px; font-size:22px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.wv-nav-x:hover { background:rgba(255,255,255,.16); }
.wv-nav-drawer nav.desktop-nav { display:flex !important; flex-direction:column; flex-wrap:nowrap !important; /* 2026-10-26: die Kopfzeilen-Regel flex-wrap:wrap legte bei niedrigen Fenstern eine zweite, unsichtbare Spalte an */ gap:3px !important; padding:4px 10px 28px !important; margin:0; border:0 !important; overflow-y:auto; overflow-x:hidden; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; touch-action:pan-y; flex:1 1 auto; min-height:0; } /* 2026-10-26 (Rückmeldung): nie waagrecht scrollen — sonst konnten Einträge links abgeschnitten erscheinen */ /* 2026-10-26: Liste scrollt in der Schublade, kein Weiterreichen ans Dokument */
.wv-nav-drawer nav.desktop-nav a { display:flex; flex:0 0 auto; /* 2026-10-26: nicht zusammendrücken, wenn die Liste höher ist als das Fenster — sie scrollt */ align-items:center; gap:11px; width:100%; box-sizing:border-box; padding:11px 12px !important; border-radius:10px; color:#cbd5e1; text-decoration:none; font-weight:600; font-size:14px !important; letter-spacing:0 !important; white-space:nowrap; transition:background .15s, color .15s; }
.wv-nav-drawer nav.desktop-nav a .nav-icon { display:inline-block !important; width:18px; height:18px; flex:0 0 auto; opacity:.85; }
.wv-nav-drawer nav.desktop-nav a.active { background:var(--primary); color:#fff; box-shadow:0 4px 10px rgba(37,99,235,.3); }
.wv-nav-drawer nav.desktop-nav a:hover:not(.active) { background:rgba(255,255,255,.08); color:#fff; }
.wv-nav-drawer nav.desktop-nav a[data-grp]::before { display:none; }
/* 2026-11-04 (Wunsch): Gruppen-Überschriften in der Handy-Schublade — Work · Steering · Admin · System als Zeilenköpfe (template_header.php setzt sie beim Öffnen aus data-grp); in der Kopfleiste unsichtbar */
.desktop-nav .nav-grp-label { display:none; }
.wv-nav-drawer nav.desktop-nav .nav-grp-label { display:block; flex:0 0 auto; margin:10px 2px 2px; padding:8px 10px 0; border-top:1px solid rgba(148,163,184,.14); font-size:9.5px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; color:rgba(148,163,184,.85); white-space:nowrap; }
.wv-nav-drawer nav.desktop-nav .nav-grp-label:first-child { margin-top:2px; border-top:0; }
.wv-nav-drawer nav.desktop-nav .nav-sep { display:none; }
body.wv-nav-lock { overflow:hidden; position:fixed; left:0; right:0; width:100%; } /* 2026-10-26: top setzt toggleMainMenu() auf -scrollY — die Seite bleibt optisch, wo sie war, und kann dahinter nicht scrollen */
