:root{--farbe-primaer: #1d3557;--farbe-primaer-hell: #457b9d;--farbe-hintergrund: #f1f4f8;--farbe-flaeche: #ffffff;--farbe-text: #1c1f26;--farbe-text-schwach: #5b6472;--farbe-rand: #d8dee6;--gruen: #2a9d54;--gelb: #e9a020;--rot: #d64545;--grau: #9aa3b0;--lila: #7d5ba6;font-family:-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--farbe-hintergrund);color:var(--farbe-text)}#root{min-height:100vh;display:flex;flex-direction:column}button{font:inherit;cursor:pointer}input{font:inherit}.seite{max-width:480px;width:100%;margin:0 auto;padding:16px 16px 96px;flex:1}.seite-breit{max-width:none;padding-inline:clamp(16px,2vw,40px);padding-bottom:32px}.seite-breit .karte:not(:has(.uebersicht-tabelle,.stunden-chart)){max-width:1100px}.seite-breit .tabs{max-width:1100px}.karte{background:var(--farbe-flaeche);border:1px solid var(--farbe-rand);border-radius:12px;padding:16px;margin-bottom:16px}.titel{font-size:1.3rem;font-weight:700;margin:0 0 4px}.untertitel{color:var(--farbe-text-schwach);margin:0 0 16px;font-size:.95rem}.entwurf-hinweis{background:#fff8e1;border:1px solid #f0c36d;color:#6b4e00;border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:.95rem}.soll-hinweis{background:var(--farbe-hintergrund);border:1px solid var(--farbe-rand);border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:.95rem}.soll-hinweis{display:flex;flex-direction:column;gap:4px}.soll-hinweis .soll-nebenwert{color:var(--farbe-text-schwach)}.feld{margin-bottom:14px}.feld label{display:block;font-size:.85rem;color:var(--farbe-text-schwach);margin-bottom:4px}.feld input,.feld select,.feld textarea{width:100%;padding:10px 12px;border:1px solid var(--farbe-rand);border-radius:8px;font-size:1rem}.feld textarea{font-family:inherit;resize:vertical}.block-zeile{display:grid;grid-template-columns:1fr 1fr;gap:12px}.filter-zeile{display:flex;flex-wrap:wrap;gap:12px 16px;margin-bottom:4px}.filter-zeile .feld{flex:0 1 260px;min-width:180px}.button{display:block;width:100%;padding:14px;border:none;border-radius:10px;background:var(--farbe-primaer);color:#fff;font-weight:600;font-size:1rem;margin-top:8px}.button.sekundaer{background:var(--farbe-flaeche);color:var(--farbe-primaer);border:1px solid var(--farbe-primaer-hell)}.button:disabled{opacity:.6;cursor:not-allowed}.fehler{background:#fdeaea;color:var(--rot);border:1px solid #f3c6c6;border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:.9rem}.erfolg{background:#e9f7ee;color:var(--gruen);border:1px solid #c3e9d1;border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:.9rem}.kopf{background:var(--farbe-primaer);color:#fff;padding:14px 16px;display:flex;align-items:center;justify-content:space-between}.kopf-logo{height:32px;width:auto;max-width:140px;object-fit:contain;background:#fff;border-radius:6px;padding:3px 6px}.kopf .name{font-weight:600}.kopf .rolle{font-size:.8rem;opacity:.85}.kopf button{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:8px;padding:6px 10px;font-size:.85rem}.rollen-umschalter{display:flex;gap:4px;background:#0000002e;border-radius:8px;padding:3px}.kopf .rollen-umschalter button{border:none;background:transparent;color:#ffffffd9;padding:5px 10px;border-radius:6px;font-size:.82rem;cursor:pointer}.kopf .rollen-umschalter button.aktiv{background:#fff;color:var(--farbe-primaer);font-weight:600}.kopf .rollen-umschalter button:disabled{opacity:.6;cursor:default}.tabs{display:flex;gap:8px;margin-bottom:16px}.tabs a,.tabs button{flex:1;padding:10px;border-radius:8px;border:1px solid var(--farbe-rand);background:var(--farbe-flaeche);color:var(--farbe-text-schwach);font-weight:600;text-align:center;text-decoration:none}.tabs a.aktiv,.tabs button.aktiv{background:var(--farbe-primaer);border-color:var(--farbe-primaer);color:#fff}.tag-zeile{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--farbe-rand)}.tag-zeile:last-child{border-bottom:none}.tag-datum{font-weight:600}.tag-info{font-size:.8rem;color:var(--farbe-text-schwach)}.ampel{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600}.ampel .punkt{width:12px;height:12px;border-radius:50%;display:inline-block}.split-zeile{display:flex;align-items:center;gap:10px;margin-bottom:10px}.split-zeile .name{flex:1;font-size:.9rem}.split-zeile input{width:80px;padding:8px;border:1px solid var(--farbe-rand);border-radius:8px;text-align:right}.split-summe{font-size:.85rem;color:var(--farbe-text-schwach);margin-top:-4px;margin-bottom:14px}.hinweis{text-align:center;padding:40px 16px;color:var(--farbe-text-schwach)}.chip-liste{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--farbe-hintergrund);border:1px solid var(--farbe-rand);border-radius:20px;padding:6px 10px;font-size:.85rem}.chip button{border:none;background:transparent;color:var(--rot);font-weight:700;padding:0 2px;line-height:1}.chip.zieh{cursor:grab;background:var(--farbe-flaeche)}.drop-zone{border-style:dashed}.zuweisen-zeile{display:flex;gap:8px}.zuweisen-zeile select{flex:1;padding:8px;border:1px solid var(--farbe-rand);border-radius:8px}.zuweisen-zeile .button{width:auto;margin-top:0;padding:8px 14px}.uebersicht-tabelle{width:100%;overflow-x:auto}.uebersicht-tabelle table{width:100%;border-collapse:collapse;font-size:.9rem}.uebersicht-tabelle th,.uebersicht-tabelle td{padding:10px 8px;text-align:center;border-bottom:1px solid var(--farbe-rand);white-space:nowrap}.uebersicht-tabelle tbody tr:hover{background:var(--farbe-hintergrund)}.uebersicht-tabelle th:first-child,.uebersicht-tabelle td:first-child{text-align:left}.uebersicht-tabelle th:first-child,.uebersicht-tabelle td:first-child{position:sticky;left:0;z-index:1;background:var(--farbe-flaeche)}.uebersicht-tabelle tbody tr:hover td:first-child{background:var(--farbe-hintergrund)}.uebersicht-tabelle td select{font-size:.85rem;max-width:170px}.summenzeile td{font-weight:600;border-top:2px solid var(--farbe-primaer-hell);background:var(--farbe-hintergrund)}.mitarbeiter-link{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;font-weight:600;padding:0;text-align:left;color:var(--farbe-primaer);text-decoration:underline}.punkt-klein{display:inline-block;width:14px;height:14px;border-radius:50%}.tag-detail{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--farbe-rand)}.tag-detail.warnung-hervorgehoben{background:#fff6e0;border:1px solid #f0d78c;border-radius:8px;padding:10px 12px;margin-bottom:8px}tr.warnung-hervorgehoben td{background:#fff6e0}.kennzahl-zeile{display:flex;gap:24px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--farbe-rand)}.kennzahl-label{font-size:.8rem;color:var(--farbe-text-schwach)}.kennzahl-wert{font-size:1.4rem;font-weight:700}.kennzahl-wert.kennzahl-rot{color:var(--rot)}.saldo-rot{color:var(--rot);font-weight:700}.zeitraum-auswahl{font-weight:400;font-size:.85rem;padding:4px;border:1px solid var(--farbe-rand);border-radius:6px}.zurueck-link{display:inline-block;margin-bottom:12px;color:var(--farbe-primaer);text-decoration:none;font-weight:600}.sortierbar{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.stunden-chart{width:100%;overflow-x:auto;margin-bottom:16px}.chart-gitter{stroke:var(--farbe-rand);stroke-width:1}.chart-achse-text{font-size:9px;fill:var(--farbe-text-schwach)}.chart-wochenende{fill:var(--farbe-hintergrund)}.chart-balken{fill:var(--farbe-primaer-hell)}.chart-balken-unter{fill:var(--rot)}.chart-balken-ueber{fill:#8a5cd6}.chart-balken-wochenende-arbeit{fill:var(--gelb)}.chart-balken-fehlend{fill:var(--rot)}.chart-soll-linie{fill:none;stroke:var(--farbe-text);stroke-width:1.5;stroke-dasharray:4 3}.chart-achsenbruch line{stroke:var(--farbe-text-schwach);stroke-width:1.5}.brotkrumen{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px;font-size:.9rem}.brotkrumen button{border:none;background:transparent;color:var(--farbe-primaer);font-weight:600;padding:0;text-decoration:underline}.brotkrumen button:disabled{color:var(--farbe-text);text-decoration:none;cursor:default;font-weight:700}.brotkrumen .trenner{color:var(--farbe-text-schwach)}.kinder-liste{display:flex;flex-direction:column}.kind-zeile{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 4px;border:none;border-bottom:1px solid var(--farbe-rand);background:transparent;text-align:left;font:inherit;color:var(--farbe-text)}.kind-zeile:hover{background:var(--farbe-hintergrund)}.kind-zeile .name{display:flex;align-items:center;gap:8px;font-weight:600}.absenz-knoepfe{display:flex;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--farbe-rand)}.absenz-knoepfe .button{margin-top:0}.drop-zone-datei{border:2px dashed var(--farbe-rand);border-radius:10px;padding:20px;text-align:center;margin-bottom:14px;color:var(--farbe-text-schwach)}.drop-zone-datei.aktiv{border-color:var(--farbe-primaer-hell);background:var(--farbe-hintergrund)}.drop-zone-datei p{margin:0 0 10px}.datei-liste{display:flex;flex-direction:column}.chart-abweichungen{display:flex;flex-direction:column;margin-bottom:16px;font-size:.85rem}.chart-abweichungen .zeile{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--farbe-rand)}.login-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-karte{width:100%;max-width:380px;background:var(--farbe-flaeche);border-radius:16px;padding:28px 24px;box-shadow:0 10px 30px #1d35571f}.projekt-treffer{position:absolute;left:0;right:0;top:100%;z-index:5;background:var(--farbe-karte, #fff);border:1px solid var(--farbe-rand);border-radius:8px;box-shadow:0 4px 12px #0000001f;max-height:min(60vh,320px);overflow-y:auto}.projekt-treffer button{display:block;width:100%;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid var(--farbe-rand);background:transparent;font:inherit;cursor:pointer}.projekt-treffer button:hover{background:var(--farbe-hintergrund)}.abschluss-unternehmen{margin-bottom:20px}.abschluss-unternehmen-titel{font-size:1rem;font-weight:700;margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid var(--farbe-rand)}.abschluss-zeile{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--farbe-rand)}.abschluss-zeile:last-child{border-bottom:none}.abschluss-checkbox-label{display:flex;align-items:center;gap:10px;flex:1;cursor:default}.abschluss-checkbox{width:20px;height:20px;accent-color:var(--grau);cursor:pointer}.abschluss-checkbox:disabled{cursor:default}.abschluss-checkbox.gruen{accent-color:var(--gruen)}.abschluss-checkbox.rot{accent-color:var(--rot)}.abschluss-details-link{border:none;background:transparent;color:var(--farbe-primaer);font-size:.85rem;font-weight:600;text-decoration:underline;padding:0;white-space:nowrap}.modal-hintergrund{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c1f2680;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10}.eskalation-zeile{padding:10px 0;border-bottom:1px solid var(--farbe-rand);text-align:left}.eskalation-zeile:last-child{border-bottom:none}.eskalation-frage{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:6px;padding:8px 10px;background:#fff6e0;border:1px solid #f0d78c;border-radius:8px;font-size:.9rem}.modal-karte{background:var(--farbe-flaeche);border-radius:12px;padding:20px;max-width:480px;width:100%;max-height:80vh;overflow-y:auto;text-align:left}.hinweis-erledigt{background:#eaf7ee;border:2px solid var(--gruen);border-radius:12px;padding:14px 16px;margin-bottom:16px;font-size:.95rem}.hinweis-erledigt strong{color:var(--gruen)}.warnhinweis-gross{background:#fdeaea;border:2px solid var(--rot);border-radius:12px;padding:16px;margin-bottom:16px}.warnhinweis-gross .titel{color:var(--rot);margin-bottom:6px}.warnhinweis-gross ul{margin:8px 0 0;padding-left:20px}.vertretung-banner{background:#fff6e0;border-bottom:1px solid #f0d78c;color:#6b5205;text-align:center;padding:8px 16px;font-size:.9rem}.gantt-wrapper{position:relative;overflow-x:auto;padding:10px 12px 4px}.gantt-achse{position:relative;height:30px;margin-left:170px;border-bottom:2px solid var(--farbe-rand);min-width:400px}.gantt-monatszelle{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:600;color:var(--farbe-text-schwach);border-left:1px solid var(--farbe-rand);white-space:nowrap;overflow:hidden}.gantt-zeile{display:flex;align-items:center;min-height:40px;border-bottom:1px solid var(--farbe-rand)}.gantt-zeile:last-child{border-bottom:none}.gantt-zeile-alt{background:var(--farbe-hintergrund)}.gantt-name{width:170px;flex-shrink:0;font-size:.88rem;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-spur{position:relative;flex:1;height:24px;min-width:400px}.gantt-balken{position:absolute;top:1px;height:22px;border-radius:6px;min-width:6px;border:1px solid rgba(0,0,0,.18);box-shadow:0 1px 3px #00000026}.gantt-heute-linie{position:absolute;top:0;bottom:0;width:2px;background:var(--rot);z-index:2;pointer-events:none}.gantt-tagesmarke{position:absolute;top:0;bottom:0;width:1px;background:var(--farbe-rand);opacity:.7}.gantt-legende{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;font-size:.85rem}.gantt-legende-eintrag{display:flex;align-items:center;gap:6px}.gantt-legende-farbe{width:12px;height:12px;border-radius:3px;display:inline-block;flex-shrink:0}
