:root{--b-blau: #004080;--b-akzent: #004af5;--b-akzent-dunkel: #0039bf;--b-navy: #112337;--b-grau-50: #f5f6f8;--b-grau-100: #eceef2;--b-grau-200: #dde1e8;--b-grau-400: #9aa3b2;--b-grau-600: #585e6a;--b-weiss: #ffffff;--ok: #2e9e5b;--warn: #e08a00;--fehler: #d23c3c;--info: #004af5;--radius: 6px;--schatten: 0 1px 2px rgba(17, 35, 55, .06), 0 4px 16px rgba(17, 35, 55, .06);--font: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);font-size:18.5px;color:var(--b-navy);background:var(--b-grau-50);-webkit-font-smoothing:antialiased}a{color:var(--b-akzent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:31.5px;font-weight:600;margin:0 0 4px;color:var(--b-navy)}h2{font-size:22.5px;font-weight:600;margin:0 0 12px}h3{font-size:18.5px;font-weight:600;margin:16px 0 8px;text-transform:uppercase;letter-spacing:.04em;color:var(--b-grau-600)}.sub{color:var(--b-grau-600);margin:0 0 20px}.muted{color:var(--b-grau-600)}.klein{font-size:15.5px}.mono{font-family:Consolas,SFMono-Regular,monospace;font-size:16.5px}.app{display:grid;grid-template-columns:232px 1fr;grid-template-rows:64px 1fr auto;height:100%}.kopf{grid-column:1 / -1;display:flex;align-items:center;gap:20px;padding:0 24px;background:var(--b-weiss);border-bottom:1px solid var(--b-grau-200)}.kopf img.logo{height:26px}.kopf .titel{font-weight:600;font-size:21.5px;padding-left:20px;border-left:1px solid var(--b-grau-200)}.kopf .titel span{display:block;font-weight:400;font-size:15.5px;color:var(--b-grau-600)}.kopf .rechts{margin-left:auto;display:flex;align-items:center;gap:16px}.countdown{background:var(--b-navy);color:#fff;border-radius:999px;padding:6px 14px;font-size:17px;white-space:nowrap}.countdown b{color:#8fb3ff}.bearbeiter{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 10px;border-radius:var(--radius)}.bearbeiter:hover{background:var(--b-grau-100)}.avatar{width:28px;height:28px;border-radius:50%;background:var(--b-akzent);color:#fff;display:grid;place-items:center;font-weight:600;font-size:15.5px}.nav{background:var(--b-navy);color:#c9d3e3;padding:16px 12px;overflow-y:auto}.nav .gruppe{font-size:14.5px;text-transform:uppercase;letter-spacing:.08em;color:#7d8ba3;margin:18px 10px 6px}.nav .gruppe:first-child{margin-top:4px}.nav a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:var(--radius);color:#dfe6f1;font-size:18.5px}.nav a:hover{background:#ffffff12;text-decoration:none}.nav a.active{background:var(--b-akzent);color:#fff}.nav .zahl{background:#ffffff24;border-radius:999px;padding:1px 8px;font-size:14.5px}.nav a.active .zahl{background:#ffffff40}.inhalt{overflow:auto;padding:24px 28px 40px;min-width:0}.fuss{grid-column:1 / -1;display:flex;align-items:center;gap:16px;padding:10px 24px;background:var(--b-weiss);border-top:1px solid var(--b-grau-200);font-size:15.5px;color:var(--b-grau-600)}.fuss img{height:22px}.fuss .rechts{margin-left:auto}.karte{background:var(--b-weiss);border:1px solid var(--b-grau-200);border-radius:8px;padding:18px 20px;box-shadow:var(--schatten)}.raster{display:grid;gap:16px}.raster.k4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.raster.k2{grid-template-columns:repeat(auto-fit,minmax(520px,1fr))}.kpi .wert{font-size:39.5px;font-weight:600;line-height:1.1}.kpi .label{color:var(--b-grau-600);font-size:17px;margin-top:4px}.kpi .detail{font-size:15.5px;color:var(--b-grau-600);margin-top:8px}.leiste{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.leiste .rechts{margin-left:auto;display:flex;gap:8px;align-items:center}button,.btn{font:inherit;border:1px solid var(--b-grau-200);background:var(--b-weiss);color:var(--b-navy);border-radius:var(--radius);padding:7px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}button:hover{border-color:var(--b-grau-400)}button.primaer{background:var(--b-akzent);border-color:var(--b-akzent);color:#fff}button.primaer:hover{background:var(--b-akzent-dunkel)}button.gefahr{color:var(--fehler)}button.link{border:0;background:none;color:var(--b-akzent);padding:2px 4px}button:disabled{opacity:.5;cursor:default}button.klein{padding:3px 8px;font-size:15.5px}input,select,textarea{font:inherit;color:var(--b-navy);border:1px solid var(--b-grau-200);border-radius:var(--radius);padding:6px 9px;background:#fff;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid rgba(0,74,245,.25);border-color:var(--b-akzent)}textarea{width:100%;min-height:64px;resize:vertical}input.suche{width:260px}label.feld{display:flex;flex-direction:column;gap:4px;font-size:15.5px;color:var(--b-grau-600)}label.feld>input,label.feld>select,label.feld>textarea{font-size:18.5px}.formular{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.formular .voll{grid-column:1 / -1}.check{display:inline-flex;align-items:center;gap:6px;font-size:17px}.tabelle-wrap{background:var(--b-weiss);border:1px solid var(--b-grau-200);border-radius:8px;overflow:auto;box-shadow:var(--schatten)}table.daten{width:100%;border-collapse:collapse;font-size:17px}table.daten th{position:sticky;top:0;background:var(--b-grau-50);text-align:left;font-weight:600;font-size:15.5px;color:var(--b-grau-600);padding:9px 10px;border-bottom:1px solid var(--b-grau-200);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1}table.daten td{padding:7px 10px;border-bottom:1px solid var(--b-grau-100);vertical-align:top}table.daten td.klammer{position:relative;padding-left:20px;padding-right:6px;min-width:22px}table.daten tbody tr:hover{background:#f3f6fe}table.daten tbody tr.klickbar{cursor:pointer}table.daten tbody tr.entfernt td{color:var(--b-grau-400);text-decoration:line-through}.seiten{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:10px;font-size:15.5px;color:var(--b-grau-600)}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:1px 9px;font-size:15.5px;font-weight:500;background:var(--b-grau-100);color:var(--b-navy);white-space:nowrap}.badge.ja,.badge.ok{background:#e3f4ea;color:#1d6b3d}.badge.nein{background:var(--b-grau-100);color:var(--b-grau-600)}.badge.vielleicht,.badge.warn{background:#fff1d9;color:#8a5300}.badge.fehler{background:#fde5e5;color:#9d2222}.badge.info{background:#e3ebff;color:#0032a8}.kat{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:5px;color:#fff;font-weight:700;font-size:15.5px}.farbpunkt{display:inline-block;width:11px;height:11px;border-radius:3px;border:1px solid rgba(0,0,0,.15);vertical-align:-1px}.drawer-hg{position:fixed;top:0;right:0;bottom:0;left:0;background:#11233773;z-index:40}.drawer{position:fixed;top:3vh;bottom:3vh;left:50%;transform:translate(-50%);width:min(1320px,96vw);background:var(--b-weiss);z-index:41;display:flex;flex-direction:column;border-radius:12px;box-shadow:0 16px 56px #11233752}@media(min-width:1100px){.drawer .formular{grid-template-columns:repeat(3,minmax(0,1fr))}}.drawer header{padding:20px 28px 14px;border-bottom:1px solid var(--b-grau-200)}.drawer header .zu{float:right}.drawer .koerper{padding:18px 28px 32px;overflow-y:auto;flex:1}.drawer footer{padding:12px 22px;border-top:1px solid var(--b-grau-200);display:flex;gap:8px;justify-content:flex-end}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--b-grau-200);margin:4px 0 16px}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:8px 12px;color:var(--b-grau-600)}.tabs button.aktiv{color:var(--b-akzent);border-bottom-color:var(--b-akzent);font-weight:600}.modal{position:fixed;left:50%;top:8vh;transform:translate(-50%);width:min(560px,94vw);max-height:84vh;overflow:auto;background:#fff;border-radius:10px;z-index:51;box-shadow:0 16px 48px #1123374d;padding:22px}.modal-hg{position:fixed;top:0;right:0;bottom:0;left:0;background:#11233759;z-index:50}.zeitachse{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--b-grau-200)}.zeitachse li{position:relative;padding:0 0 12px 12px}.zeitachse li:before{content:"";position:absolute;left:-20px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--b-weiss);border:2px solid var(--b-akzent)}.zeitachse .wann{font-size:15.5px;color:var(--b-grau-600)}.zeitachse .alt{text-decoration:line-through;color:var(--fehler)}.zeitachse .neu{color:var(--ok);font-weight:500}.hinweis{border-radius:var(--radius);padding:10px 12px;background:#e3ebff;color:#0b2c7a;font-size:17px;margin:8px 0}.hinweis.warn{background:#fff1d9;color:#6d4100}.hinweis.fehler{background:#fde5e5;color:#7c1b1b}.hinweis.ok{background:#e3f4ea;color:#175732}.toast{position:fixed;bottom:60px;right:24px;z-index:60;background:var(--b-navy);color:#fff;border-radius:8px;padding:12px 16px;box-shadow:var(--schatten);max-width:420px}.toast.fehler{background:var(--fehler)}.liste-kv{display:grid;grid-template-columns:160px 1fr;gap:6px 12px;font-size:17px;margin:0}.liste-kv dt{color:var(--b-grau-600)}.liste-kv dd{margin:0}.leer{padding:40px;text-align:center;color:var(--b-grau-600)}.gantt{background:#fff;border:1px solid var(--b-grau-200);border-radius:8px;overflow:auto;box-shadow:var(--schatten);position:relative;max-height:calc(100vh - 230px)}.gantt-grid{display:grid;position:relative}.gantt .namen{position:sticky;left:0;background:#fff;z-index:5;border-right:1px solid var(--b-grau-200)}.gantt .kopfzelle{position:sticky;top:0;z-index:4;background:var(--b-grau-50)}.gantt .zeile{height:36px;border-bottom:1px solid var(--b-grau-100);font-size:15.5px;display:flex;align-items:center;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt .gruppe-zeile{background:var(--b-grau-50);font-weight:600}.gantt .balken{position:absolute;height:24px;border-radius:4px;top:6px;color:#fff;font-size:14.5px;padding:0 5px;overflow:hidden;white-space:nowrap;cursor:pointer;min-width:4px}.fc{--fc-border-color: var(--b-grau-200);--fc-today-bg-color: #eef3ff;--fc-button-bg-color: #fff;--fc-button-text-color: var(--b-navy);--fc-button-border-color: var(--b-grau-200);--fc-button-hover-bg-color: var(--b-grau-100);--fc-button-hover-border-color: var(--b-grau-400);--fc-button-active-bg-color: var(--b-akzent);--fc-button-active-border-color: var(--b-akzent);--fc-non-business-color: rgba(154, 163, 178, .16);font-size:17px}.fc .fc-button-primary:not(:disabled).fc-button-active{color:#fff}.fc .fc-toolbar-title{font-size:23.5px;font-weight:600}.fc .fc-week-number,.fc .fc-daygrid-week-number{background:var(--b-navy);color:#fff;font-size:14.5px;padding:1px 5px;border-radius:3px}.fc .fc-event{cursor:pointer}.fc .fc-bg-event.feiertag{background:#d23c3c1f;opacity:1}.fc .fc-bg-event.absteller{background:#004af514;opacity:1}.fc .fc-bg-event .fc-event-title{font-size:13px;line-height:1.15;color:#9d2222;font-style:normal;white-space:normal}.fc .fc-daygrid-day .fc-bg-event .fc-event-title{margin-top:20px}.fc .fc-daygrid-week-number{font-size:13px;padding:0 4px}.fc .fc-multimonth-daygrid .fc-daygrid-day-number{font-size:14.5px}.gantt .balken-text{position:absolute;font-size:14.5px;color:var(--b-navy);white-space:nowrap;pointer-events:none;top:9.5px}.kalender-karte{background:#fff;border:1px solid var(--b-grau-200);border-radius:8px;padding:14px;box-shadow:var(--schatten)}@media print{.nav,.kopf .rechts,.leiste,.fuss{display:none}.app{display:block}}.modal.breit{width:min(980px,94vw)}@keyframes abweichung-blinken{0%,to{background:#ffc9c9}50%{background:#fff1f1}}table.daten tr.abweichung td{animation:abweichung-blinken 2s ease-in-out infinite}@keyframes achtung-blinken{0%,to{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.9)}}.problem-zeichen{display:inline-flex;align-items:center;flex:none;cursor:help;margin-right:4px;vertical-align:middle}.problem-fenster{position:fixed;z-index:80;max-width:360px;background:#fff;border:1px solid #d62b2b;border-left-width:4px;border-radius:6px;padding:8px 10px;font-size:15px;font-weight:400;color:var(--b-navy);box-shadow:0 6px 20px #11233738;pointer-events:none;white-space:normal}.achtung-blinkt{animation:achtung-blinken 1.2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.achtung-blinkt{animation:none}}@media(prefers-reduced-motion:reduce){table.daten tr.abweichung td{animation:none;background:#ffd6d6}}.nav .zahl.rot{background:#d23c3c;color:#fff}.tabelle-wrap{max-height:calc(100vh - 190px)}.tabelle-wrap .seiten{position:sticky;bottom:0;left:0;background:var(--b-weiss);border-top:1px solid var(--b-grau-100)}.klammer-knopf{padding:0 5px;min-width:0;line-height:1.1;font-size:14px;font-weight:700;margin-right:4px;vertical-align:top;background:var(--b-weiss)}table.daten td.klammer .klammer-knopf{position:relative}.fc .fc-daygrid-week-number{top:auto;bottom:2px;left:2px;line-height:1.3}table.daten tr.pruefen:not(.abweichung) td{background:#fffbe6}table.daten tr.sg-mitglied td{color:var(--b-grau-600)}table.daten tr.sg-mitglied td .badge,table.daten tr.sg-mitglied td .kat{opacity:.75}table.daten tr.mit-unterzeile td{border-bottom:none}table.daten tr.unterzeile td{padding-top:0;padding-left:36px;color:var(--b-grau-600);font-size:13.5px;white-space:pre-wrap}body.vollbild .app{grid-template-columns:1fr;grid-template-rows:1fr}body.vollbild .kopf,body.vollbild .nav,body.vollbild .fuss{display:none}body.vollbild .inhalt{padding:12px 16px 16px}body.vollbild .inhalt>h1,body.vollbild .inhalt>.sub{display:none}body.vollbild:not(.vollbild-leiste) .inhalt>.leiste:not(.bleibt),body.vollbild:not(.vollbild-leiste) .inhalt>.hinweis:not(.bleibt){display:none}body.vollbild .inhalt{padding-top:52px}.vollbild-steuerung{position:fixed;top:8px;right:16px;z-index:45;display:flex;gap:6px}.vollbild-steuerung button{box-shadow:0 4px 14px #1123372e}body.vollbild .tabelle-wrap{max-height:calc(100vh - 150px)}.datei-ablage{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border:2px dashed var(--b-grau-200);border-radius:10px;background:var(--b-grau-50);transition:background .15s,border-color .15s}.datei-ablage.ueber{border-color:var(--b-akzent);background:#004af512}.datei-ablage.aus{opacity:.6}@keyframes meeting-blinken{0%,to{background:#6b4fbb;box-shadow:0 0 #6b4fbb8c}50%{background:#8a6fe0;box-shadow:0 0 0 6px #6b4fbb00}}button.meeting-aktiv{color:#fff;border-color:#6b4fbb;font-weight:600;animation:meeting-blinken 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){button.meeting-aktiv{animation:none;background:#6b4fbb}}.meeting-vollbild{display:none}body.vollbild .meeting-vollbild{display:block;position:fixed;top:8px;left:16px;z-index:45}.gantt-scroll-oben{overflow-x:auto;overflow-y:hidden;height:18px;margin-bottom:2px;border-radius:6px;background:var(--b-grau-50)}.gantt-scroll-oben::-webkit-scrollbar{height:14px}.gantt-scroll-oben::-webkit-scrollbar-thumb{background:#9aa3b2;border-radius:7px;border:3px solid var(--b-grau-50)}.gantt-scroll-oben::-webkit-scrollbar-thumb:hover{background:#6b7585}.aa-ablage{border:2px dashed var(--b-grau-200);border-radius:var(--radius);padding:10px 12px;background:var(--b-grau-50)}.aa-ablage.ueber{border-color:var(--b-akzent);background:#eef3ff}.aa-baum{margin-top:8px;max-height:260px;overflow:auto;background:#fff;border:1px solid var(--b-grau-100);border-radius:6px}.aa-ordner{padding:4px 8px;cursor:pointer;border-bottom:1px solid var(--b-grau-100);font-weight:600}.aa-ordner:hover{background:var(--b-grau-50)}.aa-ordner.gewaehlt{background:#e6eeff}.aa-ordner.ueber{background:#dbe6ff;outline:2px solid var(--b-akzent);outline-offset:-2px}.aa-datei{display:flex;align-items:center;gap:8px;padding:3px 8px;border-bottom:1px solid var(--b-grau-100);font-size:15px}.aa-datei a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.aa-datei select{margin-left:auto;max-width:180px;padding:1px 4px}.aa-galerie{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin-top:4px}.aa-galerie figure{margin:0;position:relative;border:1px solid var(--b-grau-200);border-radius:6px;overflow:hidden;background:#fff}.aa-galerie img,.aa-galerie .aa-platzhalter{width:100%;height:84px;object-fit:cover;display:block;cursor:zoom-in}.aa-galerie .aa-platzhalter{display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--b-grau-400)}.aa-galerie figcaption{font-size:12px;padding:2px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aa-galerie .aa-weg{position:absolute;top:2px;right:2px;background:#ffffffe6;border-radius:4px;padding:0 4px}.aa-gross{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#0a121ee0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px}.aa-gross img{max-width:100%;max-height:calc(100vh - 110px);object-fit:contain;box-shadow:0 10px 40px #00000080;background:#fff}.aa-gross-leiste{display:flex;gap:8px;align-items:center;color:#fff;flex-wrap:wrap;justify-content:center}button.aa-knopf{padding:0 3px;min-width:0;line-height:1.2;font-size:14px;border-color:transparent;background:transparent;flex:none}button.aa-knopf:hover{border-color:var(--b-grau-400);background:var(--b-weiss)}button.aa-knopf.aa-neu{opacity:.3;filter:grayscale(1)}.zeile:hover button.aa-knopf.aa-neu{opacity:.75}button.aa-knopf.aa-neu:hover{opacity:1;filter:none}button.kalender-knopf{padding:0 4px;min-width:0;line-height:1.2;font-size:14px;border-color:transparent;background:transparent;flex:none;vertical-align:middle;margin-left:6px}button.kalender-knopf:hover{border-color:var(--b-grau-400);background:var(--b-weiss)}button.plus-knopf{padding:0 11px;font-weight:700;font-size:18px;line-height:1;align-self:stretch;color:var(--b-akzent)}.ziehgriff{cursor:grab;color:var(--b-grau-600);padding:0 4px 0 0;-webkit-user-select:none;user-select:none;font-size:15px}.ziehgriff:hover{color:var(--b-akzent)}
