/* 08.10.2026 Meldung #132: JetBrains Mono aus eigener Datei (SIL OFL, css/fonts/JetBrainsMono-OFL.txt) - die Google-Fassung enthaelt das Merkmal "zero" nicht.
   Steht nach dem Google-Fonts-Link und ueberschreibt ihn daher fuer diese Familie. */
@font-face{font-family:'JetBrains Mono';src:url('fonts/JetBrainsMono-wght.woff2') format('woff2');font-weight:100 800;font-style:normal;font-display:swap}
/* === Dashboard_CSS_Base === */
.tk-files-section{margin-top:0}
.tk-files-dropzone{border:2px dashed var(--border-strong);border-radius:8px;padding:18px;text-align:center;color:var(--text-muted);font-size:13px;cursor:pointer;transition:all 0.15s;background:rgba(255,255,255,0.02)}
.tk-files-dropzone:hover,.tk-files-dropzone.drag{border-color:var(--accent-blue);color:var(--text-primary);background:rgba(96,165,250,0.06)}
.tk-files-list{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.tk-file-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:background 0.1s}
.tk-file-row:hover{background:rgba(96,165,250,0.08);border-color:rgba(96,165,250,0.3)}
.tk-file-icon{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:rgba(96,165,250,0.15);border-radius:5px;color:var(--accent-blue);font-size:14px;font-weight:600}
.tk-file-info{flex:1;min-width:0}
.tk-file-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-file-meta{font-size:11px;color:var(--text-muted);margin-top:2px}
.tk-file-actions{display:flex;gap:4px;flex-shrink:0}
.tk-file-act{padding:3px 8px;font-size:11px;background:rgba(255,255,255,0.06);color:var(--text-secondary);border:1px solid var(--border);border-radius:4px;cursor:pointer}
.tk-file-act:hover{background:rgba(255,255,255,0.12)}
.tk-file-act.danger{color:#f87171}
.tk-file-uploading{display:flex;align-items:center;gap:8px;padding:8px 10px;background:rgba(96,165,250,0.08);border-radius:6px;font-size:12px;color:var(--text-secondary)}
.clock-time{font-variant-numeric:tabular-nums}
:root,:root[data-theme="dark"]{--ci-gruen:#13A983;--ci-akzent:#2FD8AE;--bg:#0a0e1a;--bg-2:#0f1420;--bg-card:#151b2b;--bg-card-hover:#1a2135;--border:rgba(255,255,255,0.08);--border-strong:rgba(255,255,255,0.15);--text:#e8ecf5;--text-secondary:#9aa4b8;--text-muted:#6b7488;--accent-blue:#60a5fa;--accent-green:#4ade80;--accent-orange:#fb923c;--accent-red:#f87171;--accent-purple:#b794f4;--accent-yellow:#fbbf24;--accent-cyan:#22d3ee;--prio-hoch:#f87171;--prio-mittel:#fbbf24;--prio-niedrig:#4ade80;--text-primary:#e8ecf5;--bg-input:#0f1420;--bg-hover:#1a2135;--accent:#60a5fa}
:root[data-theme="light"]{--ci-gruen:#0E7F63;--ci-akzent:#0FA483;--bg:#e8ecf2;--bg-2:#f1f4f8;--bg-card:#f7f9fc;--bg-card-hover:#e9edf4;--border:rgba(15,23,42,0.11);--border-strong:rgba(15,23,42,0.20);--text:#0f172a;--text-secondary:#44506a;--text-muted:#8590a5;--accent-blue:#2563eb;--accent-green:#16a34a;--accent-orange:#ea580c;--accent-red:#dc2626;--accent-purple:#7c3aed;--accent-yellow:#ca8a04;--accent-cyan:#0891b2;--prio-hoch:#dc2626;--prio-mittel:#ca8a04;--prio-niedrig:#16a34a;--text-primary:#0f172a;--bg-input:#f1f4f8;--bg-hover:#e9edf4;--accent:#2563eb}
:root[data-theme="light"] body::before{background:radial-gradient(circle at 15% 20%,rgba(37,99,235,0.04),transparent 40%),radial-gradient(circle at 85% 80%,rgba(124,58,237,0.03),transparent 40%)}
:root[data-theme="light"] .sidebar{background:rgba(243,246,250,0.92)}
:root[data-theme="light"] .topbar{background:rgba(243,246,250,0.92)}
:root[data-theme="light"] .sidebar-user{background:rgba(15,23,42,0.04)}
:root[data-theme="light"] .status-badge.offen,:root[data-theme="light"] .status-badge.neu{background:rgba(37,99,235,0.12);color:#1d4ed8}
:root[data-theme="light"] .status-badge.bearbeitung,:root[data-theme="light"] .status-badge.gesichtet{background:rgba(234,88,12,0.12);color:#c2410c}
:root[data-theme="light"] .status-badge.wartet{background:rgba(202,138,4,0.15);color:#a16207}
:root[data-theme="light"] .status-badge.geloest{background:rgba(22,163,74,0.12);color:#15803d}
:root[data-theme="light"] .status-badge.geschlossen{background:rgba(100,116,139,0.15);color:#475569}
:root[data-theme="light"] .status-badge.gesperrt{background:rgba(220,38,38,0.12);color:#b91c1c}
:root[data-theme="light"] .sla-badge.ok{background:rgba(22,163,74,0.1);color:#15803d}
:root[data-theme="light"] .sla-badge.warn{background:rgba(202,138,4,0.15);color:#a16207}
:root[data-theme="light"] .sla-badge.crit{background:rgba(220,38,38,0.12);color:#b91c1c}
:root[data-theme="light"] .kpi-card:hover{box-shadow:0 4px 12px rgba(15,23,42,0.08)}
:root[data-theme="light"] .panel-body::-webkit-scrollbar-thumb{background:rgba(15,23,42,0.15)}
:root[data-theme="light"] .nav-item.active{background:rgba(37,99,235,0.1)}
:root[data-theme="light"] .last-update{background:rgba(15,23,42,0.03)}
:root[data-theme="light"] .toggle-slider{background:rgba(15,23,42,0.1)}
.theme-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:rgba(96,165,250,0.1);border:1px solid rgba(96,165,250,0.25);color:var(--accent-blue);border-radius:6px;cursor:pointer;transition:all 0.15s;font-family:inherit}
.theme-toggle:hover{background:rgba(96,165,250,0.2)}
:root[data-theme="light"] .theme-toggle{background:rgba(37,99,235,0.08);border-color:rgba(37,99,235,0.2)}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',-apple-system,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;min-height:100vh;overflow-x:hidden}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(circle at 15% 20%,rgba(96,165,250,0.08),transparent 40%),radial-gradient(circle at 85% 80%,rgba(183,148,244,0.06),transparent 40%);pointer-events:none;z-index:0}
.app{padding-left:260px;min-height:100vh;position:relative;z-index:1}
.sidebar{background:rgba(15,20,32,0.7);backdrop-filter:blur(20px);border-right:1px solid var(--border);padding:24px 16px;position:fixed;left:0;top:0;width:260px;height:100vh;overflow-y:auto;z-index:10}
.brand{display:flex;align-items:center;gap:10px;padding:0 8px 20px;border-bottom:1px solid var(--border);margin-bottom:16px}
.brand-logo{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff}
.brand-name{font-size:15px;font-weight:600}
.brand-sub{font-size:11px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px;background:rgba(255,255,255,0.03);border-radius:10px;margin-bottom:16px}
.user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-purple),var(--accent-blue));display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;color:#fff;flex-shrink:0}
.user-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-role{font-size:11px;color:var(--text-muted)}
.nav-section{margin-bottom:8px}
.nav-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.8px;color:var(--text-muted);padding:8px 10px 4px}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;cursor:pointer;color:var(--text-secondary);font-size:13px;font-weight:500;transition:all 0.15s;user-select:none;text-decoration:none}
.nav-item:hover{background:rgba(255,255,255,0.04);color:var(--text)}
.nav-item.active{background:rgba(96,165,250,0.1);color:var(--accent-blue)}
.nav-icon{display:flex;align-items:center;justify-content:center;opacity:0.85}
.nav-badge{margin-left:auto;background:var(--accent-blue);color:#fff;font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;min-width:20px;text-align:center;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.main{position:relative}
.topbar{padding:18px 32px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:rgba(10,14,26,0.6);backdrop-filter:blur(20px);position:sticky;top:0;z-index:50}
.topbar-title{font-size:20px;font-weight:600;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-right{display:flex;align-items:center;gap:14px;flex:0 1 auto;min-width:0}
.topbar-date{font-size:13px;color:var(--text-secondary);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;white-space:nowrap;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}
.last-update{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;padding:5px 10px;background:rgba(255,255,255,0.03);border-radius:6px;border:1px solid var(--border)}
.last-update-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-green);box-shadow:0 0 6px var(--accent-green)}
.last-update.stale .last-update-dot{background:var(--accent-orange)}
.last-update.old .last-update-dot{background:var(--accent-red)}
.refresh-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:rgba(96,165,250,0.1);border:1px solid rgba(96,165,250,0.3);color:var(--accent-blue);border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit}
.refresh-btn:hover{background:rgba(96,165,250,0.18)}
.refresh-btn.loading .refresh-icon{animation:spin 0.8s linear infinite}
@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.content{padding:28px 32px}
.view{display:none}
.view.active{display:block}
.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}
.kpi-card{padding:20px;border-radius:12px;background:var(--bg-card);border:1px solid var(--border);position:relative;overflow:hidden;transition:all 0.2s}
.kpi-card:hover{transform:translateY(-2px);border-color:var(--border-strong)}
.kpi-accent{position:absolute;top:0;left:0;width:3px;height:100%}
.kpi-card.blue .kpi-accent{background:var(--accent-blue)}
.kpi-card.orange .kpi-accent{background:var(--accent-orange)}
.kpi-card.red .kpi-accent{background:var(--accent-red)}
.kpi-card.green .kpi-accent{background:var(--accent-green)}
.kpi-label{font-size:11px;text-transform:uppercase;letter-spacing:0.6px;color:var(--text-muted);margin-bottom:8px;font-weight:600}
.kpi-value{font-size:32px;font-weight:700;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.kpi-sub{font-size:12px;color:var(--text-secondary);margin-top:6px;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.panels{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}
.panels-full{margin-bottom:16px}
.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.panel-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.panel-title{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14px}
.panel-title-icon{width:8px;height:8px;border-radius:50%}
.panel-count{font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;color:var(--text-muted);font-size:12px}
/* 01.09.2026 (Matthias: "alle Fenster sollen den kompletten Bildschirm nutzen"): Listen-Panels fuellen die Fensterhoehe statt fix 620px */
.panel-body{max-height:calc(100vh - 230px);overflow-y:auto}
.panel-body::-webkit-scrollbar{width:6px}
.panel-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:3px}
.panel-body.tall{max-height:calc(100vh - 215px);min-height:420px}
.panel-tabs{display:inline-flex;gap:3px;background:var(--bg-base);border:1px solid var(--border);padding:3px;border-radius:10px}
.panel-tab{padding:5px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;color:var(--text-secondary);transition:all 0.15s;user-select:none;display:flex;align-items:center;gap:6px}
.panel-tab.active{background:var(--accent-blue);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.panel-tab:hover:not(.active){color:var(--text)}
.tab-count{background:rgba(255,255,255,0.08);padding:1px 6px;border-radius:8px;font-size:10px;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.panel-tab.active .tab-count{background:rgba(255,255,255,0.25);color:#fff}
.ticket-card{padding:14px 20px;border-bottom:1px solid var(--border);cursor:pointer;transition:background 0.15s;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start}
.ticket-card:hover{background:var(--bg-card-hover)}
.ticket-card:last-child{border-bottom:none}
.ticket-prio{width:4px;align-self:stretch;border-radius:2px}
.ticket-prio.hoch{background:var(--prio-hoch)}
.ticket-prio.mittel{background:var(--prio-mittel)}
.ticket-prio.niedrig{background:var(--prio-niedrig)}
.ticket-main{min-width:0}
.ticket-id{font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;font-size:10px;color:var(--accent-blue);font-weight:600;margin-bottom:2px}
.ticket-subject{font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}
.ticket-meta{font-size:11px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;display:flex;gap:10px;flex-wrap:wrap}
.ticket-right{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.status-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:0.4px;white-space:nowrap}
.status-badge.offen,.status-badge.neu{background:rgba(96,165,250,0.15);color:var(--accent-blue)}
.status-badge.bearbeitung,.status-badge.gesichtet{background:rgba(251,146,60,0.15);color:var(--accent-orange)}
.status-badge.wartet{background:rgba(251,191,36,0.15);color:var(--accent-yellow)}
.status-badge.geloest{background:rgba(74,222,128,0.15);color:var(--accent-green)}
.status-badge.geschlossen{background:rgba(107,116,136,0.15);color:var(--text-muted)}
.status-badge.gesperrt{background:rgba(248,113,113,0.15);color:var(--accent-red)}
.sla-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.sla-badge.ok{background:rgba(74,222,128,0.1);color:var(--accent-green)}
.sla-badge.warn{background:rgba(251,191,36,0.15);color:var(--accent-yellow)}
.sla-badge.crit{background:rgba(248,113,113,0.15);color:var(--accent-red)}
.leistung-row{padding:12px 20px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;cursor:pointer}
.leistung-row:last-child{border-bottom:none}
.leistung-row:hover{background:var(--bg-card-hover)}
.leistung-main{min-width:0}
.leistung-text{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leistung-meta{font-size:11px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;margin-top:2px}
.leistung-dauer{font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;font-size:13px;font-weight:600;color:var(--accent-blue)}
.leistung-dauer.nb{color:var(--text-muted)}
.abrech-badge{font-size:9px;font-weight:600;padding:2px 6px;border-radius:4px;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;text-transform:uppercase}
.abrech-badge.ja{background:rgba(74,222,128,0.1);color:var(--accent-green)}
.abrech-badge.nein{background:rgba(107,116,136,0.15);color:var(--text-muted)}
.empty-state{padding:40px 20px;text-align:center;color:var(--text-muted);font-size:13px}
.fade-in{animation:fadeIn 0.3s ease-out}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.detail-badges .status-badge{font-size:12px;padding:4px 12px;cursor:pointer;position:relative}
.detail-badges .status-badge:hover{opacity:0.85}
.info-card-label{font-size:10px;text-transform:uppercase;letter-spacing:0.6px;color:var(--text-muted);font-weight:600;margin-bottom:4px}
.info-card-value{font-size:14px;font-weight:500}
.loading-state{padding:60px 20px;text-align:center;color:var(--text-muted)}
.editable{cursor:pointer;position:relative;transition:all 0.15s}
.editable:hover{background:rgba(96,165,250,0.06);outline:1px solid rgba(96,165,250,0.2);border-radius:4px}
.editable:hover::after{content:'✎';position:absolute;top:50%;right:8px;transform:translateY(-50%);font-size:11px;color:var(--accent-blue);opacity:0.6}
.edit-input{width:100%;background:var(--bg);border:1px solid var(--accent-blue);border-radius:4px;padding:6px 8px;color:var(--text);font-family:inherit;font-size:14px;font-weight:500;outline:none}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;animation:fadeIn 0.15s ease-out}
/* 01.09.2026: Standard-Modal breiter (640->780px) und hoeher (90->94vh) — weniger Scrollerei in Formularen. BEWUSST unter 800px: ab da vergibt modalguard.js die Fest-Hoehe (.modal-fest), die kleine Dialoge nicht bekommen sollen. Grosse Arbeits-Modale setzen weiter eigene Breiten. */
.modal{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:14px;width:90%;max-width:780px;max-height:94vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,0.5)}
.modal-header{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.modal-title{font-size:16px;font-weight:600;display:flex;align-items:center;gap:10px}
.modal-close{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:20px;padding:4px 8px;border-radius:6px}
.modal-close:hover{background:rgba(255,255,255,0.05);color:var(--text)}
.modal-body{padding:20px 24px}
.modal-footer{padding:14px 24px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}
/* 13.08.2026 (Ansage Matthias: "Halte das Modal immer gleich gross. Das passt sich staendig an.
   Das gilt bitte generell fuer alle Modale"): Ein Modal aendert seine Groesse nicht mehr, waehrend
   es offen ist. Statt den Rahmen wachsen und schrumpfen zu lassen, scrollt der Inhalt im Rumpf;
   Kopf- und Fusszeile bleiben stehen. Greift nur bei Modals mit .modal-body — Modals ohne Rumpf
   behalten das alte overflow-y:auto, damit nichts abgeschnitten wird. :has() faellt in aelteren
   Browsern still auf das alte Verhalten zurueck. */
.modal:has(>.modal-body){display:flex;flex-direction:column;overflow:hidden}
.modal:has(>.modal-body)>*{flex:0 0 auto}
.modal:has(>.modal-body)>.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto}
/* Feste Hoehe fuer breite Arbeits-Modals (>=800px). Wird von modalguard.js vergeben, sobald
   ein Modal im Baum auftaucht — dadurch springt kein Reiterwechsel und kein Nachladen mehr.
   Schmale Bestaetigungsdialoge bleiben kompakt. */
.modal.modal-fest{height:min(880px,88vh)}
@media (max-height:820px){.modal.modal-fest{height:88vh}}
.field-group{margin-bottom:14px}
.field-label{font-size:11px;text-transform:uppercase;letter-spacing:0.6px;color:var(--text-muted);font-weight:600;margin-bottom:6px;display:block}
.field-input,.field-textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:9px 12px;color:var(--text);font-family:inherit;font-size:13px;transition:border 0.15s}
.field-input:focus,.field-textarea:focus{outline:none;border-color:var(--accent-blue)}
.field-textarea{resize:vertical;min-height:100px;line-height:1.5}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.toggle-row{display:flex;align-items:center;gap:10px}
.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;font-size:13px}
.toggle input{position:absolute;opacity:0;pointer-events:none}
.toggle-slider{width:38px;height:22px;background:rgba(255,255,255,0.08);border-radius:11px;position:relative;transition:all 0.15s}
.toggle-slider::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--text-secondary);border-radius:50%;transition:all 0.15s}
.toggle input:checked+.toggle-slider{background:rgba(74,222,128,0.3)}
.toggle input:checked+.toggle-slider::after{transform:translateX(16px);background:var(--accent-green)}
.btn{padding:8px 16px;border-radius:7px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;border:none;transition:all 0.15s}
.btn-primary{background:var(--accent-blue);color:#fff}
.btn-primary:hover{background:#4a93e8}
.btn-secondary{background:rgba(255,255,255,0.05);color:var(--text-secondary);border:1px solid var(--border)}
.btn-secondary:hover{background:rgba(255,255,255,0.1);color:var(--text)}
.panel-header.clickable{cursor:pointer;user-select:none;transition:background 0.15s}
.panel-header.clickable:hover{background:rgba(255,255,255,0.02)}
.panel-toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:4px;transition:transform 0.2s;color:var(--text-muted)}
.panel.collapsed .panel-toggle{transform:rotate(-90deg)}
.zw-badge-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.zw-badge-dot.online{background:var(--accent-green);box-shadow:0 0 4px rgba(74,222,128,0.5)}
.zw-badge-dot.offline{background:var(--text-muted)}
.zw-badge-dot.overdue{background:var(--accent-red)}
.zw-badge-typ{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:0.3px;opacity:0.6;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.info-zuw-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.info-zuw-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;background:rgba(74,222,128,0.08);border:1px solid rgba(74,222,128,0.2);border-radius:10px;font-size:11px;color:var(--text-secondary);white-space:nowrap;line-height:1.3}
.info-zuw-typ{font-size:9px;font-weight:600;opacity:0.6;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;letter-spacing:0.3px}
.info-card-value input[type="datetime-local"],.info-card-value input[type="date"]{background:transparent;border:none;color:var(--text);font-family:inherit;font-size:14px;font-weight:500;padding:0;color-scheme:dark;cursor:pointer}
.info-card-value input[type="datetime-local"]:focus,.info-card-value input[type="date"]:focus{outline:none;background:rgba(96,165,250,0.08);border-radius:4px;padding:2px 4px;margin:-2px -4px}
.search-result-name{font-size:13px;font-weight:500;color:var(--text);margin-bottom:2px}
.search-result-meta{font-size:11px;color:var(--text-muted)}
.zw-tab-count{background:rgba(255,255,255,0.1);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;padding:1px 6px;border-radius:8px;font-size:10px}
@media(max-width:1100px){.kpi-strip{grid-template-columns:repeat(2,1fr)}.panels{grid-template-columns:1fr}.detail-info{grid-template-columns:repeat(2,1fr)}}
/* ---- Mobile-Pass 06.08.: Handy-Tauglichkeit aller Vollflaechen-Ansichten ---- */
@media(max-width:760px){
.content{padding:14px 10px}
.panel-body,.panel-body.tall{max-height:none;min-height:0}
.kunden-table{font-size:12px}
.kunden-table th,.kunden-table td{padding:6px 6px;white-space:nowrap}
.gp-tabs,.panel-tabs{max-width:100%!important;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
.gp-tab,.panel-tab{white-space:nowrap;flex:none}
.detail-info{grid-template-columns:1fr}
/* ER-Modal: Belegbild oben, Formular darunter (statt nebeneinander) */
#erModalOverlay{padding:0!important}
#erModalOverlay>div{width:100vw!important;height:100vh!important;max-height:100vh!important;border-radius:0!important}
#erModalOverlay>div>div:last-child{flex-direction:column!important}
#erBelegPane{flex:0 0 30vh!important;border-right:none!important;border-bottom:1px solid var(--border)}
}
.kunden-search-wrap{flex:1;position:relative;max-width:420px}
.kunden-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}
.kunden-table-wrap{flex:1;overflow:auto}
.geraete-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap}
.geraete-picker-title{font-size:18px;font-weight:600}
.geraete-picker-search{flex:1;min-width:280px;max-width:500px;position:relative}
.geraete-picker-search input{width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:10px 14px 10px 38px;color:var(--text);font-family:inherit;font-size:13px;outline:none}
.geraete-picker-search input:focus{border-color:var(--accent-blue)}
.geraete-picker-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted)}
.geraete-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.geraete-picker-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px;cursor:pointer;transition:all 0.15s;display:flex;flex-direction:column;gap:4px}
.geraete-picker-card:hover{border-color:var(--accent-blue);background:var(--bg-card-hover);transform:translateY(-1px)}
.geraete-picker-card.recent{border-color:rgba(96,165,250,0.3)}
.geraete-picker-card-name{font-weight:600;font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.geraete-picker-card-meta{font-size:11px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;display:flex;gap:10px;flex-wrap:wrap}
.geraete-picker-card-count{margin-top:6px;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:10px;background:rgba(96,165,250,0.12);color:var(--accent-blue);width:fit-content}
.geraete-picker-card-count.empty{background:rgba(107,116,136,0.15);color:var(--text-muted)}
.geraete-picker-section{margin-bottom:24px}
.geraete-picker-section-title{font-size:11px;text-transform:uppercase;letter-spacing:0.6px;color:var(--text-muted);font-weight:600;margin-bottom:10px}
.geraete-header-back{padding:5px 10px;background:rgba(255,255,255,0.04);border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;font-size:12px;cursor:pointer;font-family:inherit}
.geraete-header-back:hover{background:rgba(255,255,255,0.08);color:var(--text)}
.geraete-header-kunde{font-size:15px;font-weight:600;color:var(--text)}
.geraete-header-meta{font-size:11px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.geraete-header-spacer{flex:1}
.geraete-header-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;border:1px solid;transition:all 0.15s}
.geraete-header-btn.sync{background:rgba(96,165,250,0.1);border-color:rgba(96,165,250,0.3);color:var(--accent-blue)}
.geraete-header-btn.sync:hover{background:rgba(96,165,250,0.2)}
.geraete-header-btn.sync.loading svg{animation:spin 0.8s linear infinite}
.geraete-header-btn.add{background:rgba(74,222,128,0.1);border-color:rgba(74,222,128,0.3);color:var(--accent-green)}
.geraete-header-btn.add:hover{background:rgba(74,222,128,0.2)}
/* Chip-Filterleiste, wiederverwendbar (14.09.2026). Erster Nutzer: Statusfilter
   in "Alle Tickets". flex-basis/order setzen die Leiste in eine eigene Zeile
   ganz oben im Kopf des Panels, ohne dass das Markup drumherum umgebaut wird. */
.vanss-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex-basis:100%;order:-1;width:100%}
.vanss-chip{padding:4px 11px;border-radius:14px;font-size:11px;font-weight:600;cursor:pointer;background:rgba(255,255,255,0.04);border:1px solid var(--border);color:var(--text-secondary);user-select:none;transition:all 0.1s;white-space:nowrap}
.vanss-chip:hover{background:rgba(255,255,255,0.08);color:var(--text)}
.vanss-chip.active{background:rgba(96,165,250,0.15);border-color:rgba(96,165,250,0.4);color:var(--accent-blue)}
/* Serverseitige Ticketsuche in der Kopfzeile (14.09.2026) */
.ts-input{width:230px;padding:6px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:inherit;font-size:12px;outline:none}
.ts-input:focus{border-color:rgba(96,165,250,0.5)}
.ts-panel{position:absolute;right:0;top:36px;width:430px;max-width:calc(100vw - 32px);max-height:460px;overflow-y:auto;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.4);z-index:2000;padding:4px}
.ts-kopf{padding:7px 10px;font-size:11px;color:var(--text-muted);border-bottom:1px solid var(--border)}
.ts-info{padding:12px;font-size:12px;color:var(--text-secondary)}
.ts-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);cursor:pointer}
.ts-row:last-child{border-bottom:none}
.ts-row:hover{background:rgba(96,165,250,0.08)}
.ts-nr{font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;font-size:11px;color:var(--accent-blue);white-space:nowrap}
.ts-mitte{min-width:0}
.ts-betreff{font-size:13px;color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ts-kunde{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}
@media (max-width:860px){.ts-input{width:150px}}
/* Massenaktionen in der Auswahl-Leiste (15.09.2026, Meldung #20) */
.tmass-felder{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tmass-sel{padding:4px 8px;font-size:12px;font-family:inherit;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;max-width:200px}
.tmass-sel:hover{border-color:rgba(96,165,250,0.5)}
.vanss-chip.leer{opacity:.45;cursor:default}
.vanss-chip.leer:hover{background:rgba(255,255,255,0.04);color:var(--text-secondary)}
.geraete-filter-chip{padding:4px 10px;border-radius:14px;font-size:11px;font-weight:600;cursor:pointer;background:rgba(255,255,255,0.04);border:1px solid var(--border);color:var(--text-secondary);user-select:none;transition:all 0.1s}
.geraete-filter-chip:hover{background:rgba(255,255,255,0.08);color:var(--text)}
.geraete-filter-chip.active{background:rgba(96,165,250,0.15);border-color:rgba(96,165,250,0.4);color:var(--accent-blue)}
.geraete-filter-search{margin-left:auto;min-width:200px;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 10px;color:var(--text);font-family:inherit;font-size:12px;outline:none}
.geraete-table-wrap{flex:1;overflow:auto}
.gp-file-list{display:flex;flex-direction:column;gap:6px}
.gp-file-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:7px;font-size:12px}
:root[data-theme="light"] .gp-file-item{background:rgba(15,23,42,0.02)}
.gp-file-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.gp-file-item-meta{font-size:10px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.gp-file-item-cat{font-size:9px;font-weight:600;padding:1px 6px;border-radius:3px;text-transform:uppercase;background:rgba(96,165,250,0.12);color:var(--accent-blue)}
.gp-file-del{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:2px 6px;font-size:14px;border-radius:4px}
.gp-file-del:hover{color:var(--accent-red);background:rgba(248,113,113,0.1)}
.gp-file-dl{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:2px 6px;font-size:14px;border-radius:4px}
.gp-file-dl:hover{color:var(--accent-blue);background:rgba(96,165,250,0.1)}
.gp-file-item-name.preview-link{cursor:pointer;transition:color 0.15s}
.gp-file-item-name.preview-link:hover{color:var(--accent-blue)}
.gp-upload-btn{width:100%;padding:10px;background:rgba(74,222,128,0.1);border:1px dashed rgba(74,222,128,0.3);color:var(--accent-green);border-radius:8px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.4px;transition:all 0.15s}
.gp-upload-btn:hover{background:rgba(74,222,128,0.2)}
.gp-notiz-area{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:10px;color:var(--text);font-family:inherit;font-size:13px;resize:vertical;min-height:100px;line-height:1.5}
.gp-notiz-area:focus{outline:none;border-color:var(--accent-blue)}
.vertrag-info-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:var(--accent-purple)}
.vertrag-info-text{color:var(--text);font-weight:500}
.context-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);background:rgba(255,255,255,0.02);flex-shrink:0}
.context-panel-body{flex:1;overflow-y:auto}
.context-panel-title{font-size:13px;font-weight:600;color:var(--text-secondary)}
.context-section-title{font-size:10px;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-muted);font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.context-info-row{display:flex;gap:6px;font-size:12px;color:var(--text);padding:2px 0}
.context-info-label{color:var(--text-muted);min-width:60px;font-size:11px}
.context-info-value{flex:1;word-break:break-word}
.context-info-value a{color:var(--accent-blue);text-decoration:none}
.context-info-value a:hover{text-decoration:underline}
.context-mini-row{padding:6px 0;border-bottom:1px solid rgba(255,255,255,0.04);cursor:pointer;font-size:12px;display:flex;flex-direction:column;gap:2px}
.context-mini-row:last-child{border-bottom:none}
.context-mini-row:hover{background:rgba(96,165,250,0.06)}
.context-mini-title{font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.context-mini-meta{font-size:10px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;display:flex;gap:8px;align-items:center}
.context-mini-status{font-size:9px;padding:1px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:0.3px}
.detail-header-compact-id{font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;font-size:13px;color:var(--accent-blue);font-weight:700;white-space:nowrap;padding-top:2px}
.detail-header-compact-mid{flex:1;min-width:0}
.detail-header-compact-subj{font-size:16px;font-weight:600;line-height:1.3;margin-bottom:4px}
.detail-header-compact-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--text-muted)}
.detail-header-compact-meta strong{color:var(--text);font-weight:500}
.detail-header-compact-badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.contact-picker-list{max-height:200px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;margin-top:6px}
.contact-picker-item{padding:6px 10px;cursor:pointer;border-bottom:1px solid var(--border);font-size:12px;display:flex;justify-content:space-between;gap:8px}
.contact-picker-item:last-child{border-bottom:none}
.contact-picker-item:hover{background:rgba(96,165,250,0.06)}
.contact-picker-name{font-weight:500;color:var(--text)}
.contact-picker-email{color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;font-size:11px}
@media(max-width:1100px){.context-panel{width:100vw}}
.brand-logo-v{background:linear-gradient(135deg,#60a5fa 0%,#a855f7 60%,#ec4899 100%);color:#fff;display:flex;align-items:center;justify-content:center;border-radius:8px;box-shadow:0 2px 8px rgba(96,165,250,0.35);position:relative;overflow:hidden}
.brand-logo-v::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.18) 0%,transparent 50%);pointer-events:none}
.brand-text{display:flex;flex-direction:column;gap:1px}
.brand-name{font-weight:800;letter-spacing:1.2px;font-size:14px;background:linear-gradient(90deg,#60a5fa 0%,#a855f7 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.brand-sub{font-size:10px;letter-spacing:0.3px;color:var(--text-muted)}
.brand-sub .brand-vision{color:var(--text-secondary);font-weight:500}
.brand-sub .brand-4{color:var(--ci-gruen,#13A983);font-weight:700;margin:0 1px}
.brand-sub .brand-it{color:var(--text-secondary);font-weight:500}

/* === Dashboard_CSS_Tickets === */
.tk-preview-modal img,.tk-preview-modal iframe{max-width:100%;max-height:75vh;border-radius:6px;background:white}
:root[data-theme="light"] .chat-msg.inbound{background:rgba(37,99,235,0.05);border-color:rgba(37,99,235,0.15)}
:root[data-theme="light"] .chat-msg.outbound{background:rgba(22,163,74,0.05);border-color:rgba(22,163,74,0.15)}
:root[data-theme="light"] .chat-msg.intern{background:rgba(234,88,12,0.05);border-color:rgba(234,88,12,0.15)}
:root[data-theme="light"] .kpi-card,:root[data-theme="light"] .panel,:root[data-theme="light"] .info-card,:root[data-theme="light"] .modal{box-shadow:0 1px 3px rgba(15,23,42,0.07),0 2px 8px rgba(15,23,42,0.05)}
:root[data-theme="light"] .comment-area{background:rgba(15,23,42,0.02)}
:root[data-theme="light"] .zw-tabs{background:rgba(15,23,42,0.02)}
:root[data-theme="light"] .zw-tab{background:rgba(15,23,42,0.04)}
.back-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:rgba(255,255,255,0.04);border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;margin-bottom:20px}
.back-btn:hover{background:rgba(255,255,255,0.08);color:var(--text)}
.detail-header{margin-bottom:24px}
.detail-ticket-id{font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;font-size:13px;color:var(--accent-blue);font-weight:600;margin-bottom:4px}
.detail-subject{font-size:22px;font-weight:700;letter-spacing:-0.3px;margin-bottom:10px}
.detail-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.prio-badge{font-size:11px;font-weight:600;padding:3px 10px;border-radius:10px;cursor:pointer}
.prio-badge:hover{opacity:0.85}
.prio-badge.hoch{background:rgba(248,113,113,0.15);color:var(--accent-red)}
.prio-badge.mittel{background:rgba(251,191,36,0.15);color:var(--accent-yellow)}
.prio-badge.niedrig{background:rgba(74,222,128,0.15);color:var(--accent-green)}
.detail-info{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
.info-card{padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}
.detail-beschreibung{padding:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;white-space:pre-wrap;word-wrap:break-word;font-size:13px;line-height:1.7;color:var(--text-secondary);max-height:250px;overflow-y:auto}
.dd-wrap{position:relative;display:inline-block}
.dd-menu{position:absolute;top:100%;left:0;margin-top:4px;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:8px;padding:4px;z-index:9999;min-width:220px;max-height:300px;overflow-y:auto;box-shadow:0 8px 24px rgba(0,0,0,0.5);display:none}
.dd-menu.open{display:block}
.dd-opt{padding:8px 12px;border-radius:5px;font-size:12px;cursor:pointer;color:var(--text-secondary);transition:all 0.1s}
.dd-opt:hover{background:rgba(96,165,250,0.1);color:var(--text)}
.dd-opt.active{background:rgba(96,165,250,0.15);color:var(--accent-blue);font-weight:600}
.chat-container{display:flex;flex-direction:column;height:680px;resize:vertical;overflow:hidden;min-height:420px;max-height:none}
.chat-feed{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:10px}
.chat-msg{max-width:72%;padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.6;animation:fadeIn 0.2s ease-out}
.msg-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:3px}
.msg-sender{font-weight:600;font-size:11px}
.msg-time{font-size:10px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;white-space:nowrap}
.msg-body{white-space:pre-wrap;word-wrap:break-word;color:var(--text-secondary);max-height:400px;overflow-y:auto;display:none}
.chat-msg.expanded .msg-body{display:block}
.msg-preview{font-size:12px;color:var(--text-muted);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.chat-msg.expanded .msg-preview{display:none}
.msg-header{cursor:pointer;user-select:none}
.msg-header:hover .msg-sender{opacity:0.8}
.msg-toggle{display:inline-block;font-size:10px;color:var(--text-muted);margin-right:4px;transition:transform 0.15s;width:10px}
.chat-msg.expanded .msg-toggle{transform:rotate(90deg)}
.msg-label{font-size:9px;text-transform:uppercase;letter-spacing:0.5px;font-weight:600;margin-bottom:2px}
.chat-msg.inbound{align-self:flex-start;background:rgba(96,165,250,0.07);border:1px solid rgba(96,165,250,0.12);border-bottom-left-radius:4px}
.chat-msg.inbound .msg-sender{color:var(--accent-blue)}
.chat-msg.inbound .msg-label{color:var(--accent-blue)}
.chat-msg.outbound{align-self:flex-end;background:rgba(74,222,128,0.07);border:1px solid rgba(74,222,128,0.12);border-bottom-right-radius:4px}
.chat-msg.outbound .msg-sender{color:var(--accent-green)}
.chat-msg.outbound .msg-label{color:var(--accent-green)}
.chat-msg.intern{align-self:stretch;max-width:100%;background:rgba(251,146,60,0.05);border:1px solid rgba(251,146,60,0.1);border-left:3px solid var(--accent-orange)}
.chat-msg.intern .msg-sender{color:var(--accent-orange)}
.chat-msg.intern .msg-label{color:var(--accent-orange)}
.comment-area{padding:12px 20px;border-top:1px solid var(--border);background:rgba(255,255,255,0.015)}
.comment-row{display:flex;gap:8px;align-items:flex-end}
.comment-ta{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-family:inherit;font-size:13px;resize:none;min-height:40px;max-height:160px;line-height:1.5;overflow-y:auto}
.comment-ta:focus{outline:none;border-color:var(--accent-blue)}
.comment-ta::placeholder{color:var(--text-muted)}
.comment-btns{display:flex;flex-direction:column;gap:4px}
.cbtn{padding:7px 14px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;border:none;white-space:nowrap;transition:all 0.15s}
.cbtn.ext{background:var(--accent-blue);color:#fff}
.cbtn.ext:hover{background:#4a93e8}
.cbtn.int{background:rgba(251,146,60,0.12);color:var(--accent-orange);border:1px solid rgba(251,146,60,0.25)}
.cbtn.int:hover{background:rgba(251,146,60,0.22)}
.historie-item{padding:10px 20px;border-bottom:1px solid var(--border);display:flex;gap:12px;align-items:baseline;font-size:12px}
.historie-item:last-child{border-bottom:none}
.historie-zeit{font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;color:var(--text-muted);white-space:nowrap;font-size:11px}
.historie-user{color:var(--accent-blue);font-weight:500;white-space:nowrap}
.historie-aktion{color:var(--text-secondary)}
.info-card .edit-input{margin:-6px -8px}
.zw-header-badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px}
.zw-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;background:rgba(74,222,128,0.08);border:1px solid rgba(74,222,128,0.2);border-radius:11px;font-size:11px;color:var(--text-secondary);white-space:nowrap}
.panel.collapsed .panel-body,.panel.collapsed .chat-container,.panel.collapsed .detail-beschreibung,.panel.collapsed .zw-tabs,.panel.collapsed .zw-section-title,.panel.collapsed .zw-list,.panel.collapsed .zw-empty{display:none}
.notif-toggle{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.4px;cursor:pointer;transition:all 0.15s}
.notif-toggle.aktiv{background:rgba(74,222,128,0.15);color:var(--accent-green);border:1px solid rgba(74,222,128,0.25)}
.notif-toggle.inaktiv{background:rgba(107,116,136,0.15);color:var(--text-muted);border:1px solid rgba(107,116,136,0.25)}
.notif-toggle:hover{opacity:0.85}
.comm-actions{display:flex;gap:6px}
.info-card.info-zuw{grid-column:span 1}
.search-wrap{position:relative}
.search-input{width:100%;background:var(--bg);border:1px solid var(--accent-blue);border-radius:6px;padding:8px 10px;color:var(--text);font-family:inherit;font-size:13px;outline:none}
.search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:8px;max-height:300px;overflow-y:auto;box-shadow:0 8px 24px rgba(0,0,0,0.4);z-index:150}
.search-result{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--border);transition:background 0.1s}
.search-result:hover,.search-result.highlighted{background:rgba(96,165,250,0.12)}
.search-result:last-child{border-bottom:none}
.search-loading,.search-empty,.search-hint{padding:12px;text-align:center;font-size:12px;color:var(--text-muted);font-style:italic}
.search-free-entry{padding:8px 12px;cursor:pointer;border-top:1px dashed var(--border);background:rgba(74,222,128,0.05);color:var(--accent-green);font-size:12px}
.search-free-entry:hover{background:rgba(74,222,128,0.12)}
.zw-tabs{display:flex;gap:6px;padding:12px 20px;border-bottom:1px solid var(--border);background:rgba(255,255,255,0.02)}
.zw-tab{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;color:var(--text-secondary);background:rgba(255,255,255,0.04);border:1px solid transparent;transition:all 0.15s;user-select:none}
.zw-tab:hover{color:var(--text);background:rgba(255,255,255,0.06)}
.zw-tab.active{background:rgba(96,165,250,0.15);color:var(--accent-blue);border-color:rgba(96,165,250,0.3)}
.zw-tab.active .zw-tab-count{background:rgba(96,165,250,0.25)}
.zw-section-title{padding:10px 20px 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.6px;color:var(--text-muted)}
.zw-section-title.assigned{color:var(--accent-green)}
.zw-list{display:flex;flex-direction:column}
.zw-item{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:10px 20px;border-bottom:1px solid var(--border);cursor:pointer;transition:background 0.12s}
.zw-item:hover{background:rgba(255,255,255,0.03)}
.zw-item:last-child{border-bottom:none}
.zw-item.assigned{background:rgba(74,222,128,0.04)}
.zw-item.assigned:hover{background:rgba(74,222,128,0.08)}
.zw-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.zw-dot.online{background:var(--accent-green);box-shadow:0 0 6px rgba(74,222,128,0.5)}
.zw-dot.offline{background:var(--text-muted)}
.zw-dot.overdue{background:var(--accent-red);box-shadow:0 0 6px rgba(248,113,113,0.4)}
.zw-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zw-meta{font-size:11px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;white-space:nowrap}
.zw-action{font-size:16px;color:var(--text-muted);width:18px;text-align:center;transition:color 0.15s}
.zw-item:hover .zw-action{color:var(--accent-blue)}
.zw-item.assigned .zw-action{color:var(--accent-green)}
.zw-item.assigned:hover .zw-action{color:var(--accent-red)}
.zw-empty{padding:24px 20px;text-align:center;color:var(--text-muted);font-size:12px;font-style:italic}
.ticket-detail-layout{display:block}
.ticket-detail-main{min-width:0}
.context-panel{position:fixed;top:0;right:0;width:380px;height:100vh;background:var(--bg-card);border-left:1px solid var(--border-strong);box-shadow:-8px 0 24px rgba(0,0,0,0.3);z-index:100;display:flex;flex-direction:column;transform:translateX(100%);transition:transform 0.25s ease-out;overflow:hidden}
.context-panel.open{transform:translateX(0)}
.context-section{padding:12px 16px;border-bottom:1px solid var(--border)}
.context-section:last-child{border-bottom:none}
.context-toggle-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:rgba(96,165,250,0.1);border:1px solid rgba(96,165,250,0.3);color:var(--accent-blue);border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit}
.context-toggle-btn:hover{background:rgba(96,165,250,0.2)}
.context-fab{position:fixed;top:80px;right:0;background:var(--accent-blue);color:#fff;border:none;border-radius:8px 0 0 8px;padding:14px 8px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:600;writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:1.5px;box-shadow:-4px 4px 12px rgba(0,0,0,0.25);z-index:99;transition:padding 0.15s}
.context-fab:hover{padding-right:14px;background:#4a93e8}
.detail-header-compact{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:14px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}
/* === Kompakte Darstellung interner Kommentare ===
   Direkt vor dem schliessenden style-Tag einfuegen. Ueberschreibt die bestehenden
   .chat-msg.intern Regeln per CSS-Reihenfolge. */
.chat-msg.intern{
  padding:5px 10px 6px;
  font-size:11.5px;
  border-radius:5px;
  line-height:1.4;
  background:rgba(251,146,60,0.04);
  border:1px solid rgba(251,146,60,0.12);
  border-left:3px solid var(--accent-orange);
  margin:1px 0;
}
.chat-msg.intern .msg-label{
  display:inline-block;
  font-size:8px;
  letter-spacing:0.4px;
  margin:0 6px 0 0;
  padding:1px 5px;
  background:rgba(251,146,60,0.18);
  color:var(--accent-orange);
  border-radius:3px;
  vertical-align:1px;
}
.chat-msg.intern .msg-header{
  display:inline-flex;
  align-items:baseline;
  gap:6px;
  margin-bottom:0;
}
.chat-msg.intern .msg-sender{
  font-size:11px;
  font-weight:600;
}
.chat-msg.intern .msg-time{
  font-size:9.5px;
  opacity:0.7;
}
.chat-msg.intern .msg-toggle{
  font-size:8px;
  width:8px;
  margin-right:1px;
}
.chat-msg.intern .msg-preview{
  font-size:11px;
  margin-top:1px;
  opacity:0.85;
}
.chat-msg.intern .msg-body{
  font-size:11.5px;
  margin-top:4px;
  padding-top:4px;
  border-top:1px dashed rgba(251,146,60,0.18);
  max-height:280px;
}

/* === Dashboard_CSS_Kunden === */
:root[data-theme="light"] .kunden-table thead{background:rgba(246,248,251,0.95)}
:root[data-theme="light"] .kunden-toolbar{background:rgba(15,23,42,0.02)}
:root[data-theme="light"] .kunden-sidepanel{background:rgba(246,248,251,0.8)}
.kunden-wrapper{display:flex;gap:0;height:calc(100vh - 80px);background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.kunden-main{flex:1;min-width:0;display:flex;flex-direction:column}
.kunden-toolbar{display:flex;align-items:center;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border);background:rgba(255,255,255,0.02)}
.kunden-search{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 12px 9px 34px;color:var(--text);font-family:inherit;font-size:13px;outline:none;transition:border-color 0.15s}
.kunden-search:focus{border-color:var(--accent-blue)}
.kunden-search::placeholder{color:var(--text-muted)}
.kunden-stats{font-size:12px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.kunden-stats span{color:var(--text);font-weight:600}
.kunden-table{width:100%;border-collapse:collapse;font-size:13px}
.kunden-table thead{position:sticky;top:0;background:rgba(15,20,32,0.95);backdrop-filter:blur(10px);z-index:1}
.kunden-table th{text-align:left;padding:11px 14px;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:0.6px;color:var(--text-muted);border-bottom:1px solid var(--border);user-select:none}
.kunden-table th.sortable{cursor:pointer}
.kunden-table th.sortable:hover{color:var(--accent-blue)}
.kunden-table th.num{text-align:right}
.kunden-table th .sort-indicator{display:inline-block;width:10px;font-size:9px;color:var(--accent-blue);margin-left:2px}
.kunden-table td{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,0.03);color:var(--text-secondary);vertical-align:middle}
.kunden-table td.num{text-align:right;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.kunden-table td strong{color:var(--text);font-weight:600}
.kunden-table tbody tr{cursor:pointer;transition:background 0.1s}
.kunden-table tbody tr:hover{background:rgba(96,165,250,0.06)}
.kunden-table tbody tr.selected{background:rgba(96,165,250,0.12)}
.kunden-table tbody tr.selected td{color:var(--text)}
.kunden-table .mail-sm{color:var(--accent-blue);text-decoration:none;font-size:12px}
.kunden-table .mail-sm:hover{text-decoration:underline}
.ticket-pill{display:inline-block;min-width:24px;padding:2px 8px;border-radius:10px;background:rgba(255,255,255,0.05);color:var(--text-muted);font-size:11px;font-weight:600;text-align:center;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.ticket-pill.has{background:rgba(251,146,60,0.15);color:var(--accent-orange)}
.ticket-pill.high{background:rgba(239,68,68,0.15);color:#f87171}
.kunden-sidepanel{width:0;overflow:hidden;border-left:0 solid var(--border);background:rgba(10,14,24,0.6);transition:width 0.2s ease-out}
.kunden-sidepanel.open{width:430px;border-left-width:1px}
/* 15.09.2026, Befund Matthias "Rechts Rand fehlerhaft": Die Reiterleiste des Firmen-
   Seitenpanels brauchte gemessene 411px, das Panel bot 340px (380px minus 2x20px
   Innenabstand von .side-content). Ueberhang 71px - "Dateien (n)" wurde von
   overflow:hidden abgeschnitten. Zwei Schrauben, beide NUR in diesem Panel:
   das Panel wird 430px breit (390px nutzbar), und die Reiter werden schmaler
   (Innenabstand 12px statt 16px, Schrift 12px statt 13px, Abstand 2px statt 3px).
   Gemessen danach: 358px normal, 380px selbst bei vierstelligen Zaehlern.
   overflow-x bleibt als Auffangnetz, falls ein Zaehler noch groesser wird. */
.kunden-sidepanel .gp-tabs{display:flex;max-width:100%;overflow-x:auto;flex-wrap:nowrap;gap:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.kunden-sidepanel .gp-tab{flex:none;padding:7px 12px;font-size:12px}
.side-content{padding:20px;height:100%;overflow-y:auto}
.side-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.side-title{font-size:18px;font-weight:700;color:var(--text);letter-spacing:-0.2px;word-break:break-word}
.side-close{background:transparent;border:none;color:var(--text-muted);font-size:22px;cursor:pointer;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all 0.15s;flex-shrink:0}
.side-close:hover{background:rgba(255,255,255,0.08);color:var(--text)}
.side-section{margin-bottom:16px}
.side-label{font-size:10px;text-transform:uppercase;letter-spacing:0.6px;color:var(--text-muted);font-weight:600;margin-bottom:4px}
.side-value{font-size:13px;color:var(--text);line-height:1.5}
.side-value a{color:var(--accent-blue);text-decoration:none}
.side-value a:hover{text-decoration:underline}
.side-value.muted{color:var(--text-muted)}
.side-footer{margin-top:20px;padding-top:14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}
.side-btn{padding:9px 14px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;border:none;transition:all 0.15s;text-align:center}
.side-btn.primary{background:var(--accent-blue);color:#fff}
.side-btn.primary:hover{background:#4a93e8}
.side-btn.ghost{background:rgba(255,255,255,0.04);color:var(--text-secondary);border:1px solid var(--border)}
.side-btn.ghost:hover{background:rgba(255,255,255,0.08);color:var(--text)}

/* === Dashboard_CSS_Geraete === */
.geraete-picker{padding:28px 0}
.geraete-wrapper{display:flex;gap:0;height:calc(100vh - 80px);background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.geraete-main{flex:1;min-width:0;display:flex;flex-direction:column}
.geraete-header{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);background:rgba(255,255,255,0.02);flex-wrap:wrap}
:root[data-theme="light"] .geraete-header{background:rgba(15,23,42,0.02)}
.geraete-filters{display:flex;gap:8px;padding:10px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center}
.geraete-table{width:100%;border-collapse:collapse;font-size:13px}
.geraete-table thead{position:sticky;top:0;background:rgba(15,20,32,0.95);backdrop-filter:blur(10px);z-index:1}
:root[data-theme="light"] .geraete-table thead{background:rgba(246,248,251,0.95)}
.geraete-table th{text-align:left;padding:11px 14px;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:0.6px;color:var(--text-muted);border-bottom:1px solid var(--border)}
.geraete-table td{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,0.03);color:var(--text-secondary);vertical-align:middle}
:root[data-theme="light"] .geraete-table td{border-bottom-color:rgba(15,23,42,0.04)}
.geraete-table tbody tr{cursor:pointer;transition:background 0.1s}
.geraete-table tbody tr:hover{background:rgba(96,165,250,0.06)}
.geraete-table tbody tr.selected{background:rgba(96,165,250,0.12)}
.geraete-table .g-hostname{font-weight:600;color:var(--text)}
.g-typ-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.3px;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.g-typ-badge.server{background:rgba(124,58,237,0.15);color:var(--accent-purple)}
.g-typ-badge.workstation{background:rgba(96,165,250,0.15);color:var(--accent-blue)}
.g-typ-badge.drucker{background:rgba(34,211,238,0.15);color:var(--accent-cyan)}
.g-typ-badge.switch,.g-typ-badge.firewall,.g-typ-badge.router,.g-typ-badge.accesspoint{background:rgba(251,146,60,0.15);color:var(--accent-orange)}
.g-typ-badge.manuell{background:rgba(74,222,128,0.12);color:var(--accent-green)}
.g-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}
.g-status-dot.online{background:var(--accent-green);box-shadow:0 0 6px rgba(74,222,128,0.5)}
.g-status-dot.offline{background:var(--text-muted)}
.g-status-dot.overdue{background:var(--accent-red);box-shadow:0 0 6px rgba(248,113,113,0.4)}
.g-notiz-icon{color:var(--accent-yellow);opacity:0.9;font-size:15px}
/* Notiz-Hinweis im Geraete-Panel (04.09.2026, Ansage Matthias: Markierung wenn Notizen
   nicht leer — der Techniker soll sehen, dass da evtl. was Wichtiges steht) */
.gp-notiz-hinweis{display:flex;gap:9px;align-items:flex-start;margin:10px 14px 2px;padding:9px 11px;cursor:pointer;
  background:rgba(245,166,35,0.10);border:1px solid rgba(245,166,35,0.38);border-left:3px solid var(--accent-yellow,#f5a623);
  border-radius:9px;font-size:12.5px;line-height:1.45;color:var(--text-secondary)}
.gp-notiz-hinweis:hover{background:rgba(245,166,35,0.16)}
.gp-nh-ico{color:var(--accent-yellow,#f5a623);flex:none;margin-top:1px}
.gp-nh-txt{min-width:0;word-break:break-word}
.gp-nh-txt b{display:block;color:var(--accent-yellow,#f5a623);font-size:11px;text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px}
.gp-notiz-punkt{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent-yellow,#f5a623);
  vertical-align:middle;margin-left:5px;box-shadow:0 0 0 3px rgba(245,166,35,0.18)}
.gp-tab.hat-notiz{color:var(--accent-yellow,#f5a623)}
.g-quelle-badge{font-size:9px;font-weight:600;padding:1px 6px;border-radius:3px;text-transform:uppercase;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1}
.g-quelle-badge.manuell{background:rgba(74,222,128,0.1);color:var(--accent-green)}
.g-quelle-badge.trmm{background:rgba(96,165,250,0.1);color:var(--accent-blue)}
.geraete-sidepanel{width:0;overflow:hidden;border-left:0 solid var(--border);background:rgba(10,14,24,0.6);transition:width 0.2s ease-out}
:root[data-theme="light"] .geraete-sidepanel{background:rgba(246,248,251,0.8)}
.geraete-sidepanel.open{width:440px;border-left-width:1px}
.gp-content{padding:20px;height:100%;overflow-y:auto}
.gp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.gp-title{font-size:18px;font-weight:700;color:var(--text);word-break:break-word}
.gp-subtitle{font-size:11px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;margin-top:2px}
.gp-tabs{display:inline-flex;gap:3px;margin-bottom:14px;background:var(--bg-base);border:1px solid var(--border);padding:3px;border-radius:10px}
:root[data-theme="light"] .gp-tabs{background:rgba(15,23,42,0.04)}
.gp-tab{flex:1;padding:7px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;color:var(--text-muted);text-align:center;user-select:none;transition:background .15s,color .15s;white-space:nowrap}
.gp-tab:hover{color:var(--text)}
.gp-tab.active{background:var(--accent-blue);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.gp-section{margin-bottom:14px}
.gp-label{font-size:10px;text-transform:uppercase;letter-spacing:0.6px;color:var(--text-muted);font-weight:600;margin-bottom:3px}
.gp-value{font-size:13px;color:var(--text);line-height:1.45;word-break:break-word}
.gp-value.muted{color:var(--text-muted)}
.gp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.vertrag-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600;font-family:'JetBrains Mono',monospace;font-feature-settings:"zero" 1;text-transform:uppercase;letter-spacing:0.3px}
.vertrag-badge.flat{background:rgba(74,222,128,0.15);color:var(--accent-green)}
.vertrag-badge.basic{background:rgba(251,146,60,0.15);color:var(--accent-orange)}
.vertrag-badge.keiner{background:rgba(107,116,136,0.15);color:var(--text-muted)}
.vertrag-badge.kunde{background:rgba(183,148,244,0.15);color:var(--accent-purple);border:1px dashed rgba(183,148,244,0.4)}
.vertrag-info{padding:10px 14px;margin:0 0 12px;border-radius:8px;background:rgba(183,148,244,0.08);border:1px solid rgba(183,148,244,0.25);display:flex;align-items:center;gap:10px;font-size:12px}
.vertrag-header-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;background:rgba(183,148,244,0.12);color:var(--accent-purple);border:1px solid rgba(183,148,244,0.3);margin-left:8px}
.trmm-btn{display:block;text-align:center;text-decoration:none;padding:9px 12px;border-radius:7px;font-size:12px;font-weight:600;font-family:inherit;border:1px solid;transition:all 0.15s}
.trmm-btn.tc{background:rgba(96,165,250,0.1);border-color:rgba(96,165,250,0.3);color:var(--accent-blue)}
.trmm-btn.tc:hover{background:rgba(96,165,250,0.2)}
.trmm-btn.rb{background:rgba(34,211,238,0.1);border-color:rgba(34,211,238,0.3);color:var(--accent-cyan)}
.trmm-btn.rb:hover{background:rgba(34,211,238,0.2)}
.trmm-btn.st{background:rgba(183,148,244,0.1);border-color:rgba(183,148,244,0.3);color:var(--accent-purple)}
.trmm-btn.st:hover{background:rgba(183,148,244,0.2)}

/* === Dashboard_CSS_Leistungen === */
.add-leistung-btn{padding:5px 12px;background:rgba(74,222,128,0.1);color:var(--accent-green);border:1px solid rgba(74,222,128,0.2);border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;text-transform:uppercase;letter-spacing:0.4px}
.add-leistung-btn:hover{background:rgba(74,222,128,0.18)}
.lei-pos-header{display:flex;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);font-size:11px;text-transform:uppercase;color:var(--text-muted);font-weight:600;letter-spacing:0.4px}
.lei-pos-row{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);gap:8px}
.lei-pos-row:last-child{border-bottom:none}
.lei-pos-name{flex:1;font-size:13px}
.auswertung-toolbar{padding:14px 20px;background:var(--surface);border-bottom:1px solid var(--border)}
.auswertung-filters{display:flex;gap:12px;align-items:flex-end}

/* === Dashboard_CSS_Mail === */
.mail-link{color:var(--accent-blue);text-decoration:none;font-size:13px;display:inline-flex;align-items:center;gap:4px}
.mail-link:hover{text-decoration:underline}
.mail-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:rgba(96,165,250,0.1);color:var(--accent-blue);border:1px solid rgba(96,165,250,0.2);border-radius:4px;font-size:10px;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:0.3px;margin-left:6px;transition:all 0.15s;font-family:inherit}
.mail-btn:hover{background:rgba(96,165,250,0.2)}
.mail-btn.disabled{opacity:0.4;cursor:not-allowed}
.mail-btn.disabled:hover{background:rgba(96,165,250,0.1)}
.modal.mail-modal{max-width:900px}
.modal.mail-modal{resize:both;overflow:hidden;width:760px;height:720px;min-width:520px;min-height:480px;max-width:95vw;max-height:95vh;display:flex;flex-direction:column}
.modal.mail-modal .modal-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}
.modal.mail-modal .mail-editor-group{flex:1;min-height:0;display:flex;flex-direction:column}
.modal.mail-modal #mail_editor{flex:1;min-height:0;display:flex;flex-direction:column}
.modal.mail-modal #mail_editor .ql-container{flex:1;min-height:0;overflow:auto}
.modal.mail-modal #mail_editor .ql-editor{min-height:0}
.mail-action-btn{padding:5px 12px;background:rgba(96,165,250,0.1);color:var(--accent-blue);border:1px solid rgba(96,165,250,0.25);border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;text-transform:uppercase;letter-spacing:0.4px;display:inline-flex;align-items:center;gap:5px}
.mail-action-btn:hover{background:rgba(96,165,250,0.2)}
.ql-toolbar.ql-snow,.ql-container.ql-snow{border-color:var(--border)!important}
.ql-toolbar.ql-snow{background:rgba(255,255,255,0.03);border-radius:7px 7px 0 0}
.ql-container.ql-snow{background:var(--bg);border-radius:0 0 7px 7px;font-family:'DM Sans',sans-serif;font-size:13px}
.ql-editor{min-height:200px;color:var(--text)}
.ql-editor.ql-blank::before{color:var(--text-muted);font-style:normal}
:root[data-theme="dark"] .ql-snow .ql-stroke{stroke:var(--text-secondary)}
:root[data-theme="dark"] .ql-snow .ql-fill{fill:var(--text-secondary)}
:root[data-theme="dark"] .ql-snow .ql-picker-label{color:var(--text-secondary)}
:root[data-theme="dark"] .ql-snow .ql-picker-options{background:var(--bg-card);border-color:var(--border)!important}
:root[data-theme="dark"] .ql-snow .ql-picker-item{color:var(--text-secondary)}
.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke{stroke:var(--accent-blue)!important}
.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill{fill:var(--accent-blue)!important}
.ql-snow.ql-toolbar button.ql-active .ql-stroke{stroke:var(--accent-blue)!important}
.ql-snow.ql-toolbar button.ql-active .ql-fill{fill:var(--accent-blue)!important}
.ql-editor img{max-width:100%;height:auto;border-radius:4px;margin:4px 0;cursor:pointer}
.ql-editor img.selected{outline:2px solid var(--accent-blue)}
/* Einblendkalender: natives Picker-Icon prominent + theme-faehig (23.07.2026).
   Dark: Chrome-Icon ist schwarz -> invertieren; Light: leicht abdunkeln. */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator,
input[type="week"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator{cursor:pointer;transform:scale(1.25);opacity:.75;filter:invert(.75) sepia(.4) saturate(2.2) hue-rotate(110deg)}
:root[data-theme="light"] input[type="date"]::-webkit-calendar-picker-indicator,
:root[data-theme="light"] input[type="month"]::-webkit-calendar-picker-indicator,
:root[data-theme="light"] input[type="week"]::-webkit-calendar-picker-indicator,
:root[data-theme="light"] input[type="datetime-local"]::-webkit-calendar-picker-indicator{filter:invert(.35) sepia(.5) saturate(2.5) hue-rotate(110deg)}
input[type="date"]:hover::-webkit-calendar-picker-indicator,
input[type="month"]:hover::-webkit-calendar-picker-indicator,
input[type="week"]:hover::-webkit-calendar-picker-indicator,
input[type="datetime-local"]:hover::-webkit-calendar-picker-indicator{opacity:1}

/* Re-Render der Ticket-Detailansicht blendet nicht neu ein (Flackern beim Nachladen) */
#ticketDetailContent.td-still .fade-in{animation:none!important}

/* 08.10.2026 Meldung #132 (Andreas Schiefer): in JetBrains Mono sind 0 und 8 bei kleiner Schrift kaum zu unterscheiden.
   Durchgestrichene Null (OpenType-Merkmal zero) fuer alle Stellen mit dieser Schrift - per Klasse (oben) und per Inline-Stil (hier). */
[style*="JetBrains"]{font-feature-settings:"zero" 1}
/* 08.10.2026 Meldung #131: Einstellungen > Benachrichtigungen - die Tabelle scrollt in ihrem eigenen Rahmen, damit die Kopfzeile (thead sticky) stehen bleibt */
#benachrMount{max-height:calc(100vh - 230px)}
