:root{--drawerW:380px}
body.dark{--bg:#10151b;--panel:#18212b;--line:#303a45;--text:#edf2f7;--muted:#9aa8b6;--sidebar:#0b1015;--sidebarText:#dce4ec;--accent:#4d8df7;--accent2:#3976da}body.dark .btn,body.dark input,body.dark select,body.dark textarea,body.dark .ganttLeft,body.dark .ganttHeader,body.dark .ganttRow,body.dark .chainNode,body.dark .miniCard{background:#18212b;color:var(--text);border-color:var(--line)}body.dark .ganttRow{background-image:linear-gradient(to right,transparent calc(var(--dayW) - 1px),#2a3540 calc(var(--dayW) - 1px))}body.dark .dayHead strong{color:#e9eef4}body.dark .weekendBand{background:rgba(255,255,255,.035)}body.dark .modal{background:#18212b;color:var(--text)}body.dark .loginLayer{background:#10151b}body.dark .loginCard{background:#18212b}body.dark .infoBox,body.dark .serverNote{background:#16263a;border-color:#294665;color:#c9d9eb}body.dark .alertBox{background:#302718}body.dark .alertBox.high{background:#321d1b}
.globalSearch{min-width:230px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--panel);color:var(--text)}
.drawer{position:fixed;top:0;right:0;width:min(var(--drawerW),92vw);height:100vh;background:var(--panel);border-left:1px solid var(--line);box-shadow:-12px 0 35px rgba(0,0,0,.16);z-index:40;transform:translateX(105%);transition:transform .2s ease;overflow:auto}.drawer.open{transform:translateX(0)}.drawerHead{position:sticky;top:0;background:var(--panel);z-index:2;display:flex;justify-content:space-between;align-items:flex-start;padding:18px;border-bottom:1px solid var(--line)}.drawerBody{padding:18px}.drawer h2{margin:0 0 4px}.drawerActions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.kv{display:grid;grid-template-columns:125px 1fr;gap:8px 12px;font-size:13px}.kv div:nth-child(odd){color:var(--muted)}.divider{height:1px;background:var(--line);margin:16px 0}.commentItem{padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.attachmentItem{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.utilCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:12px 0}.utilCard{padding:12px}.utilCardTop{display:flex;justify-content:space-between;gap:8px}.utilPct{font-weight:800}.utilFill.high{background:#d88700}.utilFill.critical{background:#c9362b}
.profileLegend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.profileChip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:4px 8px;font-size:11px}.profileSwatch{width:10px;height:10px;border-radius:3px}
.dropTarget{outline:2px dashed #4d8df7;outline-offset:-3px;background-color:rgba(77,141,247,.08)!important}.bar.v8bar{border-left:5px solid rgba(255,255,255,.65)}
.groupView{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.groupViewCard{padding:15px}.groupViewCard h3{margin:0 0 10px}.groupTest{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}.groupTest:hover{background:rgba(77,141,247,.05)}
.calendarTop{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.monthGrid{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line)}.monthCell{min-height:115px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;background:var(--panel)}.monthCell.other{opacity:.45}.monthDay{font-weight:700;font-size:12px;margin-bottom:5px}.calEvent{padding:3px 5px;margin:3px 0;border-radius:5px;color:#fff;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.dashboardHero{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}.heroMain{padding:20px;background:linear-gradient(135deg,var(--panel),rgba(31,111,235,.08))}.heroMain h2{font-size:24px;margin:0 0 8px}.heroAside{padding:18px}.statusLine{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}
.optimizeNote{border-left:4px solid var(--accent);background:rgba(31,111,235,.06);padding:9px 12px;border-radius:6px;font-size:12px}
@media(max-width:1100px){.dashboardHero{grid-template-columns:1fr}.globalSearch{min-width:160px}.monthCell{min-height:90px}}

/* V8.1 Gantt navigation / overall duration */
.planSpan{position:absolute;top:15px;height:26px;border-radius:8px;background:rgba(120,135,150,.16);border:1px dashed rgba(100,115,130,.28);z-index:1;pointer-events:none}.timelineControls{position:sticky;left:0;z-index:7;background:var(--bg);padding:4px 0}.ganttRow .bar{z-index:3}
.ganttZoomControl{display:inline-flex;align-items:center;gap:6px;padding:4px 7px;border:1px solid var(--line);border-radius:9px;background:var(--panel);white-space:nowrap}.ganttZoomControl>span{font-size:12px;color:var(--muted);font-weight:700}.ganttZoomControl input[type=range]{width:130px;padding:0;accent-color:var(--accent);cursor:ew-resize}.ganttZoomControl .btn{min-width:30px;padding:4px 8px}.ganttZoomValue{min-width:52px;padding:4px 6px;border:0;border-radius:6px;background:transparent;color:var(--text);font-size:12px;font-weight:700;cursor:pointer}.ganttZoomValue:hover{background:rgba(31,111,235,.09)}


/* V9 – Planungsassistent */
.assistantGrid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:16px}.assistantAsk textarea{width:100%;min-height:110px;border:1px solid var(--line);border-radius:10px;padding:12px;resize:vertical;margin:10px 0;background:var(--panel);color:var(--text)}.assistantExamples{display:flex;gap:7px;flex-wrap:wrap}.assistantResult{margin-top:14px;border:1px solid var(--line);border-radius:11px;background:rgba(31,111,235,.035);padding:16px;min-height:120px}.assistantResult h3{margin:0 0 8px}.assistantResult p{line-height:1.6;margin:0}.assistantList{margin:8px 0 0;padding-left:22px}.assistantList li{padding:7px 0;border-bottom:1px solid var(--line)}.assistantAlert{padding:11px 12px;border-radius:9px;background:#fff7e7;border-left:4px solid #d88700;margin:8px 0}.assistantAlert.high{background:#fff2f1;border-left-color:#c9362b}.assistantOk{padding:10px 12px;border-radius:9px;background:#eef8ef;color:#2e6933;margin:8px 0}.assistantRank{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.assistantRank>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e9f1ff;color:#2056a8;font-weight:800}.dark .assistantResult{background:rgba(77,147,255,.08)}.dark .assistantOk{background:#193320;color:#9ad6a0}.dark .assistantAlert{background:#3c3020}.dark .assistantAlert.high{background:#402321}@media(max-width:1000px){.assistantGrid{grid-template-columns:1fr}}

/* V9.7: Profilfarbe = Füllung, Status = Rand */
.bar.testbar{border:2px solid #8a949e;padding:6px 8px;display:flex;align-items:center;gap:5px;background-clip:padding-box}
.bar.testbar.status-planned{border-color:#8a949e}
.bar.testbar.status-running{border-color:#2f9e44;border-width:3px;padding:5px 7px}
.bar.testbar.status-paused{border-color:#d8860b;border-width:3px;border-style:dashed;padding:5px 7px}
.bar.testbar.status-waiting{border-color:#d6a514;border-width:3px;padding:5px 7px}
.bar.testbar.status-critical{border-color:#c43d36!important;border-width:3px;padding:5px 7px}
.bar.testbar.status-completed{border-color:#6f7882;opacity:.48}
.bar.testbar.fixed{box-shadow:inset 0 0 0 2px rgba(255,255,255,.95),0 1px 3px rgba(0,0,0,.16)}
.barStatusDot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 8px;box-shadow:0 0 0 1px rgba(255,255,255,.8)}
.drawerStatusDot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:1px}
.legendStatus{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}
.statusLineSample{width:25px;height:11px;display:inline-block;margin-right:5px;vertical-align:-2px;border:2px solid #8a949e;border-radius:4px;background:transparent}
.statusLineSample.running{border-color:#2f9e44;border-width:3px}.statusLineSample.paused{border-color:#d8860b;border-style:dashed;border-width:3px}.statusLineSample.waiting{border-color:#d6a514;border-width:3px}.statusLineSample.critical{border-color:#c43d36;border-width:3px}.statusLineSample.downtime{border:0;background:repeating-linear-gradient(135deg,#b5483f 0 5px,#ce6258 5px 10px)}
.fixedSample{width:25px;height:11px;display:inline-block;margin-right:5px;vertical-align:-2px;border:1px solid #7f8a95;border-radius:4px;box-shadow:inset 0 0 0 2px white;background:#687480}
.checkLabel{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--text)}
/* Farbblind-Modus: Farbe bleibt, Status wird zusätzlich über Muster unterscheidbar */
body.colorblindMode .bar.testbar.status-planned{border-style:solid}
body.colorblindMode .bar.testbar.status-running{border-style:double;border-width:4px;padding:4px 6px}
body.colorblindMode .bar.testbar.status-paused{border-style:dashed}
body.colorblindMode .bar.testbar.status-waiting{border-style:dotted}
body.colorblindMode .bar.testbar.status-critical{border-style:double;border-width:4px;padding:4px 6px}
body.colorblindMode .statusLineSample.running{border-style:double;border-width:4px}
body.colorblindMode .statusLineSample.paused{border-style:dashed}
body.colorblindMode .statusLineSample.waiting{border-style:dotted}
body.colorblindMode .statusLineSample.critical{border-style:double;border-width:4px}
/* Kalender verwendet dasselbe Statussystem */
.calEvent.testbar{border:2px solid #8a949e;padding:2px 4px}
.calEvent.status-running{border-color:#2f9e44;border-width:3px}.calEvent.status-paused{border-color:#d8860b;border-style:dashed}.calEvent.status-waiting{border-color:#d6a514}.calEvent.status-critical{border-color:#c43d36!important;border-width:3px}.calEvent.status-completed{opacity:.48}.calEvent.fixed{box-shadow:inset 0 0 0 2px rgba(255,255,255,.95)}

/* V10 */
.calendarStand{padding:12px 0;border-bottom:1px solid var(--line)}.shiftGrid{display:grid;grid-template-columns:repeat(7,minmax(115px,1fr));gap:6px;margin-top:8px}.shiftDay{display:grid;grid-template-columns:auto 24px;gap:5px;padding:7px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.shiftDay span{font-weight:700}.shiftDay input[type=time],.shiftDay input[type=text]{grid-column:1/-1;width:100%;font-size:12px}.tabletGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}.tabletCard{background:var(--panel);border:1px solid var(--line);border-top:7px solid;padding:18px;border-radius:14px}.tabletTitle{font-size:22px;font-weight:800}.tabletProgress{font-size:18px;font-weight:700;margin:18px 0}.tabletActions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.integrationStatus{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);font-weight:700}.integrationStatus span{font-weight:400;color:var(--muted)}code{display:inline-block;background:#eef2f6;padding:5px 8px;border-radius:6px;margin:3px 0}@media(max-width:900px){.shiftGrid{grid-template-columns:1fr 1fr}.tabletGrid{grid-template-columns:1fr}.sidebar{width:190px}}

.holidayBand{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,rgba(196,61,54,.08),rgba(196,61,54,.08) 6px,rgba(196,61,54,.02) 6px,rgba(196,61,54,.02) 12px);pointer-events:none}
/* V10.8 Kommentare & Anhänge */
.drawerSectionTitle{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.commentComposer{padding:12px;border:1px solid var(--line,#d9dee7);border-radius:10px;background:rgba(127,127,127,.05);margin-bottom:12px}
.commentTimeline{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow:auto}
.commentMeta{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:.9em}
.commentMeta span{opacity:.7;text-align:right}
.attachmentDrop{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;min-height:105px;padding:15px;border:2px dashed var(--line,#bac2cf);border-radius:12px;cursor:pointer;margin:10px 0;background:rgba(127,127,127,.035)}
.attachmentDrop:hover,.attachmentDrop.dragover{border-color:#4f79c7;background:rgba(79,121,199,.08)}
.attachmentDrop span,.attachmentDrop small{opacity:.72}
.attachmentItem{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 4px;border-bottom:1px solid var(--line,#e4e7ec)}
