:root{
  --bg:#f6f7fb;--text:#172033;--muted:#667085;--line:#d9dee8;
  --header:#111827;--header-text:#fff;--header-subtext:#cbd5e1;--context-bg:#fff;--context-text:#111827;
  --nav-bg:#e5e7eb;--nav-text:#111827;--nav-active-bg:#2563eb;--nav-active-text:#fff;
  --button-bg:#2563eb;--button-text:#fff;--button-secondary-bg:#374151;--button-secondary-text:#fff;--button-danger-bg:#b91c1c;--button-danger-text:#fff;
  --card:#fff;--card-text:#172033;--card-muted:#667085;--panel-bg:#fff;--panel-text:#172033;
  --table-bg:#fff;--table-text:#172033;--table-head:#eef2ff;--table-head-text:#334155;--table-first-col-bg:#fff;
  --input-bg:#f0fdf4;--input-text:#172033;--input-focus-bg:#eff6ff;--input-focus-border:#2563eb;
  --danger:#dc2626;--warn:#d97706;--ok:#15803d;--tag-bg:#eef2ff;--tag-text:#1e3a8a;--accent:var(--button-bg)
}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
header{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px 28px;background:var(--header);color:var(--header-text)}h1{margin:0;font-size:28px}header p{margin:6px 0 0;color:var(--header-subtext)}
.actions{display:flex;gap:10px;flex-wrap:wrap}button{border:0;border-radius:10px;background:var(--button-bg);color:var(--button-text);padding:10px 14px;font-weight:700;cursor:pointer}button.secondary,.secondary{background:var(--button-secondary-bg)!important;color:var(--button-secondary-text)!important}button.danger,.danger{background:var(--button-danger-bg)!important;color:var(--button-danger-text)!important}.smallbtn{display:inline-block;padding:.35rem .55rem;border:0;border-radius:8px;background:var(--button-bg);color:var(--button-text);font-size:.8rem;font-weight:700;text-decoration:none;cursor:pointer}
.tabs{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;margin:22px 0}.nav-group{display:grid;gap:5px;padding:7px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--panel-bg) 72%,transparent)}.nav-group>span{padding:0 5px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.nav-group>div{display:flex;gap:5px;flex-wrap:wrap}.tabs button{min-height:36px;padding:8px 11px;background:var(--nav-bg);color:var(--nav-text)}.tabs button.active{background:var(--nav-active-bg);color:var(--nav-active-text)}main{padding:24px 28px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.card{background:var(--card);color:var(--card-text);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 8px 20px rgba(15,23,42,.05)}.card span{display:block;color:var(--card-muted);font-size:13px}.card strong{font-size:26px}
.tab{display:none}.tab.active{display:block}.panel{background:var(--panel-bg);color:var(--panel-text);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:18px;box-shadow:0 8px 20px rgba(15,23,42,.04)}.panel h2{margin:0 0 12px}.small{font-size:12px;color:var(--muted)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{border-collapse:collapse;width:100%;min-width:980px;background:var(--table-bg);color:var(--table-text)}th,td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:8px 10px;text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left;position:sticky;left:0;background:var(--table-first-col-bg);z-index:1}thead th{background:var(--table-head);font-size:13px;color:var(--table-head-text)}thead th:first-child{background:var(--table-head);color:var(--table-head-text)}
td[contenteditable="true"],input,select{background:var(--input-bg);color:var(--input-text);outline:2px solid transparent;border-radius:6px}td[contenteditable="true"]:focus{outline-color:var(--input-focus-border);background:var(--input-focus-bg)}.negative{color:var(--danger);font-weight:700}.warning{color:var(--warn);font-weight:700}.ok{color:var(--ok);font-weight:700}.toolbar{display:flex;gap:10px;align-items:center;margin:10px 0 14px;flex-wrap:wrap}.toolbar input,.toolbar select{border:1px solid var(--line);padding:9px 10px;border-radius:10px}.barcell{min-width:120px}.bar{height:14px;border-radius:999px;background:#e5e7eb;overflow:hidden}.bar>span{display:block;height:100%;background:var(--nav-active-bg)}.bar.negative>span{background:var(--danger)}#toast{position:fixed;right:20px;bottom:20px;background:var(--header);color:var(--header-text);border-radius:12px;padding:12px 16px;display:none}
.project-card{border:1px solid var(--line);border-radius:14px;padding:16px;margin:18px 0;background:var(--panel-bg);color:var(--panel-text)}.project-head{display:flex;gap:16px;justify-content:space-between;align-items:flex-start}.project-head h3{margin:0 0 6px 0}.project-head p{margin:0;color:var(--muted);min-width:240px}.project-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.project-controls label{font-size:.85rem;color:var(--text);display:flex;gap:6px;align-items:center}.project-controls select,select{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--input-bg);color:var(--input-text)}@media (max-width:900px){.project-head{display:block}.project-controls{justify-content:flex-start;margin-top:12px}}
.notice{background:var(--table-head);border:1px solid var(--line);color:var(--table-head-text);border-radius:12px;padding:10px 12px;margin:10px 0 14px;font-size:.92rem}.employee-table-wrap{scroll-behavior:auto}.employee-master-table th,.employee-master-table td{vertical-align:middle}.employee-master-table input[type="number"].pensum-input{width:78px;text-align:right;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--input-bg);color:var(--input-text)}.employee-master-table input[type="number"].pensum-input:focus{outline:2px solid var(--input-focus-border);background:var(--input-focus-bg)}.year-pensum-cell{display:flex;gap:6px;align-items:center;justify-content:flex-end}.year-pensum-input{width:82px;text-align:right;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--input-bg);color:var(--input-text)}
.context-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:10px}.context-bar label,.context-pill{background:var(--context-bg);color:var(--context-text);padding:6px 10px;border-radius:999px;font-size:13px}.context-bar select,.context-bar input{margin-left:6px;border-radius:8px;border:1px solid var(--line);padding:4px 8px;background:var(--input-bg);color:var(--input-text)}.cell-input{width:72px;border:1px solid var(--line);border-radius:8px;padding:6px;background:var(--input-bg);color:var(--input-text);text-align:right}td input,td select,h3 input,p input{border:1px solid var(--line);border-radius:8px;padding:6px;max-width:180px;background:var(--input-bg);color:var(--input-text)}.pensum-line{display:flex;gap:8px;align-items:center;flex-wrap:nowrap;overflow-x:auto;padding:8px 0}.pensum-line label{white-space:nowrap}.year-pensum{width:80px!important}.tag{display:inline-flex;align-items:center;gap:4px;background:var(--tag-bg);color:var(--tag-text);border-radius:999px;padding:4px 8px;margin:2px}.tag .x{border:0;background:transparent;color:var(--danger);padding:0 3px;cursor:pointer}.filebtn{display:inline-flex;align-items:center;border:0;border-radius:10px;background:var(--button-bg);color:var(--button-text);padding:10px 14px;font-weight:700;cursor:pointer}code{background:var(--table-head);border:1px solid var(--line);border-radius:6px;padding:2px 5px;color:var(--table-head-text)}
.theme-table{max-width:900px;min-width:640px}.theme-table td:first-child{font-weight:700}.theme-table input[type="color"]{width:64px;height:38px;padding:2px;border:1px solid var(--line);background:var(--input-bg)}.theme-group td{background:var(--table-head)!important;color:var(--table-head-text)!important;font-size:14px;text-align:left!important}.theme-preview{margin-top:16px}.theme-preview table{min-width:420px}

.settings-grid{display:grid;gap:18px}.settings-grid>.panel{box-shadow:none;border:1px solid var(--line);margin:0}.settings-grid h2{margin-top:0}

/* Mitarbeiterseite: übersichtliche Kartenansicht */
.employee-card-list{display:grid;gap:18px}
.employee-fte-summary{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;margin:0 0 14px}.employee-fte-summary label,.employee-fte-summary>div{display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:62px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--context-bg);color:var(--muted);font-size:11px;font-weight:700}.employee-fte-summary label{min-width:180px}.employee-fte-summary input{width:100%;max-width:none;height:34px;margin-top:2px;border:1px solid var(--line);padding:5px 8px}.employee-fte-summary>div{min-width:135px}.employee-fte-summary strong{color:var(--card-text);font-size:22px}.employee-fte-summary p{display:flex;align-items:center;flex:1;min-width:260px;margin:0;padding:9px 12px;color:var(--muted);font-size:12px}
.project-priority-input{width:100%;max-width:none!important;text-align:right;font-variant-numeric:tabular-nums}
.employee-card{background:var(--card);color:var(--card-text);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 22px rgba(15,23,42,.06);overflow:hidden}
.employee-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px 18px;background:linear-gradient(90deg,var(--table-head),var(--card));border-bottom:1px solid var(--line)}
.employee-identity{display:flex;gap:12px;align-items:center;min-width:260px}
.employee-avatar{min-width:46px;width:auto;height:46px;padding:0 12px;border-radius:14px;background:var(--nav-active-bg);color:var(--nav-active-text);display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.04em;flex:0 0 auto;max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.employee-identity h3{margin:0}.employee-identity h3 input{font-size:18px;font-weight:800;max-width:280px;background:var(--input-bg);color:var(--input-text)}
.employee-identity p{margin:4px 0 0;color:var(--muted);font-size:13px}
.employee-metrics{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.employee-metrics span{display:flex;flex-direction:column;gap:2px;background:var(--context-bg);color:var(--context-text);border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-size:12px;min-width:94px;text-align:right}
.employee-metrics strong{font-size:18px;color:var(--card-text)}
.employee-sections{display:grid;grid-template-columns:minmax(280px,0.9fr) minmax(520px,1.4fr);gap:16px;padding:16px 18px}
.employee-section{border:1px solid var(--line);border-radius:14px;background:var(--panel-bg);padding:14px}
.employee-section h4{margin:0 0 12px;color:var(--panel-text)}
.employee-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.employee-section-title h4{margin:0}
.employee-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.employee-fields label,.pensum-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);font-weight:700}
.employee-fields input{width:100%;max-width:none;border:1px solid var(--line);border-radius:9px;padding:8px;background:var(--input-bg);color:var(--input-text)}
.pensum-grid{display:grid;grid-template-columns:repeat(6,96px);gap:10px 12px;justify-content:start}.pensum-grid label{min-width:0}.pensum-grid label span{color:var(--muted)}
.pensum-grid input{width:96px;max-width:96px;box-sizing:border-box;border:1px solid var(--line);border-radius:9px;padding:8px;background:var(--input-bg);color:var(--input-text);text-align:right;font-variant-numeric:tabular-nums}
.pensum-grid input:focus,.employee-fields input:focus,.employee-identity input:focus{outline:2px solid var(--input-focus-border);background:var(--input-focus-bg)}
.readonly-pensum{align-self:start}.readonly-pensum-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.readonly-pensum-head h4{margin:0}.pensum-average{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;background:var(--nav-active-bg);color:var(--nav-active-text);font-size:12px;font-weight:800;white-space:nowrap}.readonly-pensum-grid{display:grid;grid-template-columns:repeat(12,minmax(44px,1fr));gap:7px}.pensum-month{min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 4px;text-align:center;background:var(--input-bg)}.pensum-month span{display:block;color:var(--muted);font-size:11px;font-weight:700;margin-bottom:3px}.pensum-month strong{display:block;color:var(--card-text);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.employment-period-list{display:grid;gap:9px}.employment-period-row{display:grid;grid-template-columns:minmax(135px,1fr) minmax(135px,1fr) 88px 34px;gap:9px;align-items:end;border:1px solid var(--line);border-radius:11px;padding:10px;background:var(--panel-bg)}.employment-period-row label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.employment-period-row input{box-sizing:border-box;width:100%;border:1px solid var(--line);border-radius:8px;padding:7px;background:var(--input-bg);color:var(--input-text)}.employment-period-row .employment-percent-input{text-align:right;font-variant-numeric:tabular-nums}.employment-period-row .icon-button{margin-bottom:1px}
@media (max-width:1100px){.employee-sections{grid-template-columns:1fr}.pensum-grid{grid-template-columns:repeat(4,96px)}}
@media (max-width:1100px){.readonly-pensum-grid{grid-template-columns:repeat(6,minmax(52px,1fr))}}
@media (max-width:720px){.employee-card-head{display:block}.employee-metrics{justify-content:flex-start;margin-top:12px}.employee-fields{grid-template-columns:1fr}.pensum-grid{grid-template-columns:repeat(2,96px)}.readonly-pensum-grid{grid-template-columns:repeat(3,minmax(58px,1fr))}.employment-period-row{grid-template-columns:1fr 1fr}.employment-period-row .icon-button{justify-self:end}}

/* Roadmap / Gantt */
.holiday-add-box{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:12px 14px;margin:12px 0}.holiday-add-box h3{margin:0 0 8px}
.roadmap{position:relative;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel-bg)}
.roadmap-months{display:grid;grid-template-columns:300px 1fr;border-bottom:1px solid var(--line);background:var(--table-head);color:var(--table-head-text);font-weight:700}
.roadmap-scale{position:relative;display:grid;grid-template-columns:repeat(12,1fr);min-height:42px;align-items:center}.roadmap-scale span{border-left:1px solid var(--line);text-align:center;font-size:12px}
.roadmap-body{position:relative}.roadmap-row{display:grid;grid-template-columns:300px 1fr;min-height:50px;border-bottom:1px solid var(--line)}.roadmap-row:last-child{border-bottom:0}
.roadmap-label{box-sizing:border-box;min-width:0;overflow:hidden;padding:10px 16px 10px 12px;background:var(--table-first-col-bg);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.roadmap-label strong,.roadmap-label span,.roadmap-label small{display:block;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roadmap-label strong{font-size:14px}.roadmap-label span,.roadmap-label small{color:var(--muted);font-size:12px}
.roadmap-track{position:relative;background:linear-gradient(to right, transparent calc(8.333% - .5px), var(--line) calc(8.333% - .5px), var(--line) calc(8.333% + .5px), transparent calc(8.333% + .5px));background-size:8.333% 100%;min-height:50px}
.roadmap-bar{position:absolute;top:11px;height:28px;border-radius:8px;background:var(--roadmap-project);color:var(--roadmap-bar-text);box-shadow:0 3px 8px rgba(15,23,42,.16);display:flex;align-items:center;overflow:hidden;min-width:22px}.roadmap-bar span{padding:0 9px;font-size:11px;font-weight:800;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.roadmap-empty{padding:28px;text-align:center;color:var(--muted)}
.roadmap-bar.status-abgeschlossen{background:var(--roadmap-completed)}.roadmap-bar.status-pausiert{background:var(--roadmap-paused)}.roadmap-bar.status-in-arbeit{background:var(--roadmap-in-progress)}
.roadmap-label strong{display:flex;align-items:center;gap:5px}.roadmap-label strong b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dependency-badge,.priority-badge{display:inline-block;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 6px;border-radius:999px;font-size:10px;font-style:normal;font-weight:800;vertical-align:middle}.dependency-badge{max-width:42%;background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn)}.priority-badge{flex:0 0 auto;background:var(--tag-bg);color:var(--tag-text)}.priority-hoch{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.priority-tief{background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--ok)}.roadmap-dependencies{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:visible}.roadmap-dependencies .dependency-line{fill:none;stroke:var(--warn);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 1px 1px color-mix(in srgb,var(--panel-bg) 75%,transparent))}.roadmap-dependencies marker path{fill:var(--warn)}.roadmap-track .roadmap-bar{z-index:4}
.roadmap-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--context-bg)}.roadmap-filters label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.roadmap-filters .roadmap-check{flex-direction:row;align-items:center;min-height:42px;color:var(--text)}.roadmap-filters .roadmap-check input{width:auto}.roadmap-group-title{display:grid;grid-template-columns:300px 1fr;min-height:50px;background:color-mix(in srgb,var(--table-head) 75%,var(--nav-active-bg) 25%);color:var(--table-head-text);border-bottom:1px solid var(--line)}.roadmap-group-label{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-width:0;padding:7px 12px;border-right:1px solid var(--line);overflow:hidden}.roadmap-group-label strong,.roadmap-group-label span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roadmap-group-label span{font-size:11px;color:var(--muted)}.roadmap-group-track{position:relative;min-height:50px;background-image:linear-gradient(to right,var(--line) 1px,transparent 1px);background-size:8.3333% 100%;overflow:hidden}.roadmap-program-bar{position:absolute;top:11px;height:28px;box-sizing:border-box;border:2px solid var(--roadmap-in-progress);border-radius:7px;background-color:color-mix(in srgb,var(--roadmap-in-progress) 18%,var(--panel-bg));background-image:repeating-linear-gradient(135deg,transparent 0,transparent 8px,color-mix(in srgb,var(--roadmap-in-progress) 12%,transparent) 8px,color-mix(in srgb,var(--roadmap-in-progress) 12%,transparent) 13px);color:var(--table-text);display:flex;align-items:center;overflow:hidden;min-width:22px}.roadmap-program-bar span{padding:0 9px;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-line{position:absolute;top:0;bottom:0;width:1px;background:var(--danger);z-index:5;box-shadow:0 0 0 1px rgba(220,38,38,.15)}.today-line:after{content:'Heute';position:absolute;top:2px;left:4px;background:var(--danger);color:#fff;border-radius:6px;padding:2px 5px;font-size:10px;font-weight:700}.today-line.body:after{display:none}
@media (max-width:900px){.roadmap-months,.roadmap-row,.roadmap-group-title{grid-template-columns:190px 900px}.roadmap{overflow:auto}.roadmap-label,.roadmap-group-label{position:sticky;left:0;z-index:4;background:color-mix(in srgb,var(--table-head) 75%,var(--nav-active-bg) 25%)}.roadmap-months>div:first-child{position:sticky;left:0;z-index:6;background:var(--table-head)}}
.protected-row td{background:rgba(37,99,235,.06);font-weight:600}
.readonly-cell{background:rgba(148,163,184,.12);font-weight:600}
.variance-cell{font-weight:700}
.variance-cell.negative{color:var(--danger)}

/* Betriebsaufwand auf Desktop ohne horizontales Scrollen */
.run1-table{min-width:0;table-layout:fixed;font-size:.88rem}
.run1-table th,.run1-table td{padding:6px 4px}
.run1-table th:first-child,.run1-table td:first-child{width:250px;max-width:250px;padding-left:10px;overflow:hidden;text-overflow:ellipsis}
.run1-table th:nth-child(n+2):nth-child(-n+13),.run1-table td:nth-child(n+2):nth-child(-n+13){width:calc((100% - 455px)/12)}
.run1-table th:nth-child(14),.run1-table td:nth-child(14){width:78px}
.run1-table th:nth-child(15),.run1-table td:nth-child(15){width:127px}
.run1-table .cell-input{display:block;width:100%;min-width:0;max-width:none;padding:6px 3px;font-size:.82rem}
.run1-table .year-copy-input{width:62px!important;max-width:62px!important;padding:6px 3px}
.run1-table td:last-child .smallbtn{min-width:45px;padding:6px 5px;margin-left:3px}
@media (max-width:1250px){.run1-table{min-width:1220px}}
.management-table{min-width:0;table-layout:fixed;font-size:.88rem}.management-table th,.management-table td{padding:6px 4px}.management-table th:first-child,.management-table td:first-child{width:220px;max-width:220px;padding-left:10px}.management-table th:nth-child(n+2):nth-child(-n+13),.management-table td:nth-child(n+2):nth-child(-n+13){width:calc((100% - 425px)/12)}.management-table th:nth-child(14),.management-table td:nth-child(14){width:72px}.management-table th:nth-child(15),.management-table td:nth-child(15){width:133px}.management-table .cell-input{display:block;width:100%;min-width:0;max-width:none;padding:6px 3px;font-size:.82rem}.management-table td:first-child select{width:100%;min-width:0;max-width:none}.management-actions{display:grid;grid-template-columns:55px 40px 28px;gap:4px;align-items:center}.management-actions .year-copy-input{width:55px!important;max-width:55px!important}.management-actions button{min-width:0;margin:0;padding:6px 4px}.management-actions .icon-button{display:flex;align-items:center;justify-content:center}@media (max-width:1200px){.management-table{min-width:1170px}}
.fte-calculator{width:min(940px,100%);margin:12px 0 14px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--table-head) 35%,var(--panel-bg));overflow:hidden}
.fte-calculator summary{display:flex;align-items:center;gap:9px;padding:8px 11px;cursor:pointer;list-style:none;user-select:none}.fte-calculator summary::-webkit-details-marker{display:none}.fte-calculator summary::before{content:'›';font-size:1.15rem;font-weight:800;color:var(--nav-active-bg);transition:transform .15s}.fte-calculator[open] summary::before{transform:rotate(90deg)}.fte-calculator summary strong{font-size:.84rem}.fte-calculator summary span{color:var(--muted);font-size:.72rem}.fte-calculator[open] summary{border-bottom:1px solid var(--line)}
.fte-calculator-fields{display:grid;grid-template-columns:115px 120px 140px minmax(230px,1fr) auto;gap:8px;align-items:end;padding:10px}.fte-calculator label{display:grid;gap:3px;color:var(--muted);font-size:.68rem;font-weight:700}.fte-calculator input,.fte-calculator select{width:100%;max-width:none;height:46px;min-height:46px;border:1px solid var(--line);padding:6px 8px;background:var(--input-bg);color:var(--input-text);font-size:.8rem}.fte-calculator select{padding-right:25px}.fte-calculator-result{display:grid;grid-template-columns:auto auto;justify-content:start;column-gap:8px;align-items:baseline;height:46px;min-height:46px;padding:5px 8px;border-radius:8px;background:var(--panel-bg);border:1px solid var(--line)}.fte-calculator-result>span{color:var(--muted);font-size:.65rem;font-weight:700}.fte-calculator-result strong{font-size:.95rem;color:var(--nav-active-bg)}.fte-calculator-result small{grid-column:1/-1;color:var(--muted);font-size:.63rem;line-height:1.2;white-space:normal}.fte-apply-button{height:46px;min-height:46px;white-space:nowrap;margin-bottom:0;padding:6px 9px;font-size:.72rem}
@media (max-width:950px){.fte-calculator{width:100%}.fte-calculator-fields{grid-template-columns:repeat(3,minmax(110px,1fr))}.fte-calculator-result{grid-column:span 2}.fte-apply-button{align-self:stretch}}

/* V35 Abwesenheitsmatrix */
.absence-matrix-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--table-bg);max-height:72vh;margin-top:12px}
.absence-matrix{border-collapse:separate;border-spacing:0;min-width:1180px;width:max-content}
.absence-matrix th,.absence-matrix td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;vertical-align:middle;padding:5px 6px}
.absence-matrix thead th{position:sticky;top:0;z-index:4;background:var(--table-head);color:var(--table-head-text)}
.absence-matrix .employee-sticky{position:sticky;left:0;z-index:5;background:var(--table-first-col-bg)!important;text-align:left!important;min-width:220px;max-width:260px;box-shadow:2px 0 0 var(--line)}
.absence-matrix thead .employee-sticky{z-index:6;background:var(--table-head)!important}
.employee-sticky div{display:flex;flex-direction:column;gap:2px}.employee-sticky small{color:var(--muted);font-weight:500}
.day-head{min-width:42px}.day-head span{display:block;font-weight:800}.day-head small{display:block;font-size:11px;opacity:.8}
.absence-cell{height:42px;min-width:42px;cursor:pointer;user-select:none;background:var(--table-bg);transition:transform .08s ease, box-shadow .08s ease, filter .08s ease}
.absence-cell:hover{transform:scale(1.04);box-shadow:0 0 0 2px var(--input-focus-border) inset;filter:brightness(0.98)}
.absence-cell span{display:block;font-size:17px;line-height:18px}.absence-cell small{display:block;font-size:10px;font-weight:800;margin-top:2px}
.absence-cell.weekend,.weekend-sample{background:rgba(148,163,184,.18)}
.absence-cell.holiday,.holiday-sample{background:rgba(251,191,36,.22)}
.absence-vacation{background:rgba(59,130,246,.18)!important;color:var(--table-text)}
.absence-sick{background:rgba(239,68,68,.18)!important;color:var(--table-text)}
.absence-training{background:rgba(16,185,129,.18)!important;color:var(--table-text)}
.absence-unpaid{background:rgba(107,114,128,.18)!important;color:var(--table-text)}
.absence-other{background:rgba(168,85,247,.15)!important;color:var(--table-text)}
.absence-total{font-weight:800;background:var(--table-first-col-bg)}
.absence-legend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.absence-legend span{padding:6px 10px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:700}
.legacy-absence{margin-top:18px;border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--card-bg);color:var(--card-text)}
.legacy-absence summary{cursor:pointer;font-weight:800}
.absence-accident{background:rgba(245,158,11,.22)!important;color:var(--table-text)}
.absence-type-settings{margin:10px 0 12px;border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--card-bg);color:var(--card-text)}
.absence-type-settings summary{cursor:pointer;font-weight:800}
.absence-type-settings table input,.absence-type-settings table select{min-width:120px}
.absence-cell.multi-absence{box-shadow:inset 0 0 0 2px rgba(15,23,42,.18)}
.absence-chip{display:flex!important;align-items:center;justify-content:center;gap:1px;margin:1px auto;padding:1px 2px;border-radius:6px;line-height:1;max-width:42px;overflow:hidden}
.absence-chip b{font-size:12px;line-height:12px}.absence-chip small{font-size:8px!important;margin:0!important;white-space:nowrap}
.user-info{align-self:center;font-size:.9rem;color:var(--header-subtext);padding:.35rem .6rem;border-radius:999px;background:rgba(255,255,255,.12)}
.login-page{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem;background:var(--bg,#f6f7fb);color:var(--text,#172033)}
.login-box{width:min(480px,calc(100vw - 2rem));background:var(--panel-bg,#fff);border:1px solid var(--line,#d9dee8);border-radius:22px;padding:2.25rem;box-shadow:0 24px 70px rgba(15,23,42,.12)}
.login-box h1{margin:0;font-size:1.9rem;line-height:1.15}.login-box>p{color:var(--muted,#667085)}
.login-section-heading{margin:1.8rem 0 1.25rem;padding-top:1.25rem;border-top:1px solid var(--line)}.login-section-heading h2{margin:0 0 .4rem;font-size:1.3rem}.login-section-heading p{margin:0;color:var(--muted);line-height:1.5}
.login-box form{display:grid;gap:1rem}.login-box form[hidden],[hidden]{display:none!important}.login-box label{display:grid;gap:.45rem;font-size:.9rem;font-weight:700}.login-box input{width:100%;min-height:46px;box-sizing:border-box;border:1px solid var(--line);border-radius:11px;padding:.75rem .85rem;font-size:1rem;background:var(--input-bg);color:var(--input-text)}.login-box input:focus{outline:3px solid color-mix(in srgb,var(--input-focus-border) 24%,transparent);border-color:var(--input-focus-border)}
.login-box form>button{min-height:46px;font-size:1rem}.login-step{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-radius:12px;background:var(--table-head);color:var(--table-head-text)}.login-step span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:800;flex:0 0 auto}.login-step p{margin:0;line-height:1.4}.password-hint{margin:-.35rem 0 0!important;font-size:.8rem;line-height:1.4;color:var(--muted)}
.login-error{color:var(--danger-text,#dc2626);font-weight:700;min-height:1.2rem}
.login-message{color:var(--muted,#667085);font-weight:600;min-height:1.2rem}
.login-message.success{padding:.75rem;border-radius:10px;background:rgba(21,128,61,.1);color:var(--ok,#15803d)}
.login-link{display:block;margin:.75rem auto 0;border:0;background:transparent!important;color:var(--accent,#2563eb)!important;text-decoration:underline;box-shadow:none;padding:.4rem;cursor:pointer}
.login-version{margin:1.25rem 0 0;text-align:center;font-size:.78rem;color:var(--muted,#667085)}
.app-footer{padding:1.25rem 1.5rem 2rem;text-align:center;font-size:.8rem;color:var(--muted,#667085)}
.user-create-box{margin:1rem 0 1.25rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--card)}.user-create-box h3{margin:0 0 1rem}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;max-width:1200px}.admin-form-grid label,.smtp-actions label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:.82rem;font-weight:700}.admin-form-grid input,.admin-form-grid select,.smtp-actions input{width:100%;max-width:none;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--input-bg);color:var(--input-text)}.admin-form-grid .wide-field{grid-column:1/-1}.field-note{font-weight:500;color:var(--muted)}.form-actions{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:14px}.check-label{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;color:var(--text)!important}.check-label input{width:auto;min-height:auto}.smtp-actions label{min-width:260px}.smtp-form-grid{grid-template-columns:repeat(3,minmax(200px,1fr))}.table-wrap td input[type="email"],.table-wrap td input[type="password"]{min-width:190px}.table-wrap td select{min-width:130px}button:disabled{opacity:.45;cursor:not-allowed}
@media (max-width:900px){.smtp-form-grid,.admin-form-grid{grid-template-columns:1fr}.admin-form-grid .wide-field{grid-column:auto}}
@media (max-width:520px){.login-page{padding:0}.login-box{width:100%;min-height:100vh;border-radius:0;border:0;padding:1.5rem}.login-box h1{font-size:1.65rem}}

/* V77: einheitliche, kompakte Formulare in den Einstellungen */
select{
  -webkit-appearance:none;
  appearance:none;
  min-height:42px;
  height:42px;
  padding:9px 38px 9px 11px!important;
  border:1px solid var(--line);
  border-radius:9px;
  font:inherit;
  line-height:1.2;
  background-color:var(--input-bg);
  color:var(--input-text);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 11px center;
  background-size:16px;
}
select:focus,input:focus{outline:3px solid color-mix(in srgb,var(--input-focus-border) 22%,transparent);border-color:var(--input-focus-border)}
.context-bar label{display:inline-flex;align-items:center;min-height:44px}.context-bar select,.context-bar input{box-sizing:border-box;min-height:32px;height:32px}.context-bar select{padding:4px 32px 4px 8px!important;background-position:right 8px center}.context-bar input{padding:4px 8px!important}
td select{min-height:36px;height:36px;padding:6px 34px 6px 9px!important;background-position:right 8px center}
.settings-grid{gap:14px}.settings-grid>.panel{padding:16px}.settings-grid .panel{margin-bottom:0}.settings-grid .toolbar{gap:8px;margin:8px 0 12px}.settings-grid .toolbar>label{display:flex;align-items:center;gap:8px;margin:0}.settings-grid .toolbar button,.settings-grid .filebtn{min-height:42px;padding:9px 13px}
.admin-form-grid{width:100%;max-width:none;gap:12px}.user-create-box{padding:14px;margin:12px 0 16px}.user-create-box h3{margin-bottom:12px}.user-create-grid{grid-template-columns:minmax(150px,.8fr) minmax(220px,1.15fr) minmax(190px,1fr) minmax(150px,.7fr) minmax(260px,1.35fr);align-items:end}.admin-form-grid label{justify-content:flex-end}.admin-form-grid input,.admin-form-grid select,.smtp-actions input{height:42px;min-height:42px}.form-actions{margin-top:12px}
.smtp-form-grid{grid-template-columns:repeat(3,minmax(240px,1fr));max-width:none}.smtp-actions{padding-top:2px}.smtp-actions label{min-width:280px}
#userSettings .table-wrap{margin-top:0}#userSettings table{min-width:1260px}#userSettings th,#userSettings td{vertical-align:middle;padding:8px}#userSettings td input,#userSettings td select{height:36px;min-height:36px}#userSettings td button{min-height:36px}
.theme-preview,.holiday-add-box{margin-top:10px}.holiday-add-box{padding:14px}.holiday-add-box h3{margin-bottom:10px}.logo-cell{margin-top:8px}.settings-grid h3{margin-top:14px;margin-bottom:8px}
@media (max-width:1250px){.user-create-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.smtp-form-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}
@media (max-width:700px){.user-create-grid,.smtp-form-grid{grid-template-columns:1fr}.form-actions{align-items:stretch;flex-direction:column}.form-actions button,.smtp-actions label{width:100%;min-width:0}}
/* V41 Mitarbeiter-Bewirtschaftung */
.page-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.employee-master-table tbody tr{cursor:pointer;transition:background .12s ease, box-shadow .12s ease}
.employee-master-table tbody tr:hover{background:var(--table-head)}
.employee-master-table tbody tr.selected-row{background:var(--context-bg);box-shadow:inset 4px 0 0 var(--nav-active-bg)}
.employee-master-table td strong{display:block;color:var(--table-text)}
.employee-master-table td small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.employee-badge-inline{display:inline-flex;align-items:center;justify-content:center;min-width:38px;max-width:130px;width:auto;padding:6px 10px;border-radius:10px;background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:800;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.employee-detail-panel{margin-top:18px;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 8px 22px rgba(15,23,42,.06)}
.employee-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px 18px;background:linear-gradient(90deg,var(--table-head),var(--card));border-bottom:1px solid var(--line)}
.employee-empty-detail{margin-top:18px;border:1px dashed var(--line);border-radius:16px;background:var(--context-bg);color:var(--context-text);padding:18px}
.employee-fields select{width:100%;max-width:none;border:1px solid var(--line);border-radius:9px;padding:8px;background:var(--input-bg);color:var(--input-text)}
@media (max-width:820px){.page-title-row,.employee-detail-head{display:block}.page-title-row button{margin-top:10px}}


/* V42 Projekt-Bewirtschaftung */
.project-master-table tbody tr{cursor:pointer;transition:background .12s ease, box-shadow .12s ease}
.project-master-table tbody tr:hover{background:var(--table-head)}
.project-master-table tbody tr.selected-row{background:var(--context-bg);box-shadow:inset 4px 0 0 var(--nav-active-bg)}
.project-master-table tbody tr[draggable="true"]{cursor:grab}.project-master-table tbody tr[draggable="true"]:active{cursor:grabbing}.project-master-table tbody tr.dragging{opacity:.42}.project-master-table tbody tr.drop-before td{box-shadow:inset 0 3px 0 var(--nav-active-bg)}.project-master-table tbody tr.drop-after td{box-shadow:inset 0 -3px 0 var(--nav-active-bg)}.project-order-head{width:96px}.project-order-cell{display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.drag-handle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:32px;border-radius:7px;background:var(--table-head);color:var(--muted);font-size:18px;cursor:grab;user-select:none}.order-buttons{display:inline-flex;gap:2px}.order-buttons button{min-width:26px;min-height:28px;padding:3px 6px;border-radius:6px;background:var(--nav-bg);color:var(--nav-text)}
.project-master-table td strong{display:block;color:var(--table-text)}
.project-master-table td small{display:block;color:var(--muted);font-size:12px;margin-top:2px;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status-pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:var(--tag-bg);color:var(--tag-text);font-weight:800;font-size:12px;white-space:nowrap}
.status-pill.status-abgeschlossen{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.status-pill.status-in-arbeit{background:color-mix(in srgb,var(--nav-active-bg) 16%,transparent);color:var(--nav-active-bg)}.status-pill.status-pausiert{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.status-pill.type-reserved,.status-pill.status-reserviert{background:color-mix(in srgb,var(--roadmap-reserved) 15%,transparent);color:var(--roadmap-reserved)}.project-list-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 2px 9px;color:var(--muted);font-size:12px}.project-master-table .date-cell,.project-master-table .number-cell{font-variant-numeric:tabular-nums;white-space:nowrap}.project-master-table .number-cell{text-align:right}.empty-table-cell{text-align:center!important;padding:28px!important;color:var(--muted)}
.project-detail-panel{margin-top:18px;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 8px 22px rgba(15,23,42,.06)}
.project-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px 18px;background:linear-gradient(90deg,var(--table-head),var(--card));border-bottom:1px solid var(--line)}
.project-detail-head h3{margin:0 0 4px}.project-empty-detail{margin-top:18px;border:1px dashed var(--line);border-radius:16px;background:var(--context-bg);color:var(--context-text);padding:18px}
.project-sections{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(520px,1.6fr);gap:16px;padding:16px 18px}.project-section{border:1px solid var(--line);border-radius:14px;background:var(--panel-bg);padding:14px}.project-section h4{margin:0 0 12px;color:var(--panel-text)}.project-section.wide{min-width:0}
.project-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-fields label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);font-weight:700}.project-fields input,.project-fields select{width:100%;max-width:none;border:1px solid var(--line);border-radius:9px;padding:8px;background:var(--input-bg);color:var(--input-text)}
.project-fields input:focus,.project-fields select:focus{outline:2px solid var(--input-focus-border);background:var(--input-focus-bg)}
.project-fields .wide-field{grid-column:1/-1}.project-fields textarea{width:100%;min-height:84px;resize:vertical;border:1px solid var(--line);border-radius:9px;padding:8px;background:var(--input-bg);color:var(--input-text);font:inherit}
.program-detail-body{display:grid;grid-template-columns:minmax(420px,1.2fr) minmax(280px,.8fr);gap:18px;padding:18px}.program-projects{border-left:1px solid var(--line);padding-left:18px}.program-projects h4{margin-top:0}.program-project-link{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;margin:7px 0;padding:10px 12px;text-align:left;background:var(--table-head);color:var(--table-head-text);border:1px solid var(--line)}.program-project-link small{color:var(--muted)}
.traffic-light{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:72px;padding:4px 9px;border-radius:999px;background:color-mix(in srgb,var(--ok) 10%,transparent);color:var(--ok);font-size:12px;font-weight:800;white-space:nowrap}.traffic-light::before{content:'';display:block;flex:0 0 9px;width:9px;height:9px;border-radius:50%;background:var(--ok)}.traffic-gelb{background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--warn)}.traffic-gelb::before{background:var(--warn)}.traffic-rot{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}.traffic-rot::before{background:var(--danger)}
@media (max-width:1150px){.project-sections{grid-template-columns:1fr}.project-master-table{min-width:900px}}
@media (max-width:900px){.program-detail-body{grid-template-columns:1fr}.program-projects{border-left:0;border-top:1px solid var(--line);padding:14px 0 0}}
@media (max-width:720px){.project-detail-head{display:block}.project-fields{grid-template-columns:1fr}.project-fields .wide-field{grid-column:auto}}
.project-metadata{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.82rem}.year-copy-input{width:110px!important}.project-card+.project-card{margin-top:16px}
.reserved-card-title{display:flex;align-items:center;gap:9px}.reserved-card-title input{font-size:16px;font-weight:800}.planning-year-pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:var(--nav-active-bg);color:var(--nav-active-text);font-size:12px;font-weight:800}.reserved-table{min-width:1320px}.reserved-table th,.reserved-table td{padding:7px 6px}.reserved-table th:first-child,.reserved-table td:first-child{position:sticky;left:0;z-index:3;background:var(--table-first-col-bg);min-width:190px}.reserved-table .cell-input{width:58px}.reserved-action-head,.reserved-actions{position:sticky;right:0;z-index:4;background:var(--table-head)!important;min-width:178px}.reserved-actions{display:grid;grid-template-columns:72px 52px 34px;gap:6px;align-items:center;background:var(--table-bg)!important}.reserved-actions .year-copy-input{width:72px!important;max-width:72px!important}.reserved-actions button{margin:0;min-width:0;padding:7px}.reserved-actions .icon-button{display:inline-flex;align-items:center;justify-content:center}

.segmented{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.segmented button{background:var(--nav-bg);color:var(--nav-text);border:1px solid var(--line);padding:8px 12px;border-radius:10px;cursor:pointer}
.segmented button.active{background:var(--nav-active-bg);color:var(--nav-active-text)}
.click-row{cursor:pointer}
.click-row:hover td{filter:brightness(0.98)}
.selected-row td{background:var(--input-focus-bg)}.selected-row td:first-child{box-shadow:inset 4px 0 0 var(--input-focus-border)}

/* V45: grafische Kapazitätsübersicht MA Auslastung */
.capacity-chart{border:1px solid var(--table-border,#d8dee8);border-radius:16px;padding:14px;background:var(--card-bg,#fff);margin:10px 0 18px 0;}
.capacity-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:12px;font-size:.86rem;color:var(--muted,#667085);}
.capacity-legend span{display:inline-flex;align-items:center;gap:6px;}
.capacity-legend i{width:18px;height:8px;border-radius:99px;display:inline-block;}
.legend-gross{background:#aeb8c8}.legend-net{background:#2f80ed}.legend-load{background:#303846}.legend-overload{background:#d92d20}.capacity-legend i.legend-capacity-limit{width:2px;height:14px;border-radius:2px;background:var(--text,#1f2937)}
.capacity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px;}
.capacity-month{border:1px solid var(--table-border,#d8dee8);border-radius:14px;padding:10px;background:rgba(255,255,255,.55);}
.capacity-month.is-overloaded{box-shadow:inset 4px 0 0 #d92d20;}
.capacity-month-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px;}
.capacity-bars{display:flex;flex-direction:column;gap:5px;}
.cap-row{display:grid;grid-template-columns:68px 1fr 46px;align-items:center;gap:7px;font-size:.78rem;}
.cap-row span{color:var(--muted,#667085);}
.cap-row em{text-align:right;font-style:normal;font-variant-numeric:tabular-nums;color:var(--text,#1f2937);}
.cap-track{position:relative;height:8px;background:rgba(120,130,150,.18);border-radius:99px;overflow:visible;}.cap-track::after{content:"";position:absolute;z-index:3;left:var(--capacity-end);top:-3px;width:2px;height:14px;background:var(--text,#1f2937);border-radius:2px;transform:translateX(-1px)}
.cap-bar{position:absolute;left:0;top:0;height:100%;border-radius:99px;min-width:2px;}
.cap-gross{background:#aeb8c8}.cap-net{background:#2f80ed}.cap-load{background:#303846}.cap-overload{background:#d92d20;border-radius:0 99px 99px 0}
.positive{color:inherit;}

/* v46 compact year-copy inputs */
.year-copy-input{width:82px!important;max-width:82px!important;min-width:0;box-sizing:border-box;text-align:right;}
.year-copy-input.percent{width:78px!important;max-width:78px!important;}
td .year-copy-input{padding:6px 7px;}
.roadmap-bar.status-reserviert{background:var(--roadmap-reserved);}
.absence-chip.manual-override{outline:2px solid rgba(0,0,0,.28); font-weight:700;}
.absence-chip.manual-override small{font-weight:800;}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.35);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}
.modal-card{background:var(--card-bg,#fff);color:var(--card-text,#111827);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.25);padding:22px;max-width:420px;width:100%;display:grid;gap:12px}
.modal-card label{display:grid;gap:6px;font-weight:600}
.modal-card input,.modal-card select{width:100%;box-sizing:border-box}
.toolbar.right{justify-content:flex-end}

.absence-custom-icon{width:1.25em;height:1.25em;object-fit:contain;vertical-align:-0.25em;margin-right:.15rem}

/* V53 Branding, Logo und Exporte */
.brand-logo-wrap{float:left;margin-right:14px;min-width:0}
.brand-logo{max-height:54px;max-width:180px;object-fit:contain;display:block;background:rgba(255,255,255,.08);border-radius:10px;padding:4px}
header.has-logo h1, header.has-logo p, header.has-logo .context-bar{margin-left:0}
.logo-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-start}
.tenant-logo-preview{max-height:42px;max-width:120px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:#fff;padding:3px}
.login-brand-logo img{max-height:74px;max-width:220px;object-fit:contain;margin-bottom:1rem}
.export-brand{display:none;align-items:center;gap:12px;margin-bottom:12px;color:var(--panel-text)}
.export-brand img{max-height:56px;max-width:180px;object-fit:contain}
.export-brand strong{display:block;font-size:18px}.export-brand span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.roadmap-bar.status-reserviert{background:var(--roadmap-reserved)!important}

/* Demand-Management */
.demand-stakeholder{margin:4px 0 18px;padding:16px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,color-mix(in srgb,var(--table-head) 52%,var(--panel-bg)),var(--panel-bg));overflow:hidden}.stakeholder-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:13px}.stakeholder-title span{color:var(--nav-active-bg);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.stakeholder-title h3{margin:3px 0 0;font-size:1.15rem}.stakeholder-title>small{color:var(--muted)}.demand-kpis{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:9px;margin-bottom:13px}.demand-kpis>div{padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel-bg)}.demand-kpis span{display:block;color:var(--muted);font-size:.68rem;font-weight:700}.demand-kpis strong{display:block;margin-top:2px;font-size:1.45rem}.demand-flow{display:flex;align-items:stretch;gap:5px;overflow-x:auto;margin-bottom:14px;padding:2px 0 7px}.demand-flow-step{position:relative;display:grid;grid-template-columns:28px minmax(86px,1fr);align-items:center;gap:7px;flex:1 0 125px;min-height:44px;padding:7px 20px 7px 8px;border:1px solid var(--line);border-radius:10px;background:var(--panel-bg)}.demand-flow-step>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:800}.demand-flow-step>strong{overflow:hidden;text-overflow:ellipsis;font-size:.72rem}.demand-flow-step>i{position:absolute;right:5px;color:var(--muted);font-size:1.15rem;font-style:normal}.stakeholder-grid{display:grid;grid-template-columns:minmax(420px,1.35fr) minmax(300px,.65fr);gap:12px}.demand-matrix-panel,.demand-ranking{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-bg)}.demand-matrix-panel h4,.demand-ranking h4{margin:0 0 2px}.demand-matrix-panel>div>small,.demand-ranking>div>small{color:var(--muted);font-size:.68rem}.demand-matrix{position:relative;height:250px;margin:12px 6px 18px 24px;border-left:2px solid var(--muted);border-bottom:2px solid var(--muted);border-radius:4px;background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to top,var(--line) 1px,transparent 1px);background-size:25% 25%}.demand-matrix:before{content:'';position:absolute;inset:0 50% 50% 0;background:color-mix(in srgb,var(--ok) 9%,transparent)}.demand-matrix .axis-y{position:absolute;left:-32px;top:45%;transform:rotate(-90deg);color:var(--muted);font-size:.65rem;font-weight:800}.demand-matrix .axis-x{position:absolute;bottom:-19px;left:47%;color:var(--muted);font-size:.65rem;font-weight:800}.matrix-sweetspot{position:absolute;left:8px;top:7px;color:var(--ok);font-size:.62rem;font-style:normal;font-weight:800}.demand-matrix-dot{position:absolute;z-index:2;display:grid;place-items:center;width:31px;height:31px;min-width:31px;padding:0;transform:translate(-50%,50%);border:2px solid var(--panel-bg);border-radius:50%;box-shadow:0 3px 9px rgba(15,23,42,.2);font-size:.62rem}.demand-matrix-dot.priority-hoch{background:var(--danger);color:#fff}.demand-matrix-dot.priority-mittel{background:var(--warn);color:#fff}.demand-matrix-dot.priority-tief{background:var(--ok);color:#fff}.demand-matrix>p{position:absolute;inset:45% 0 auto;text-align:center;color:var(--muted)}.demand-ranking ol{display:grid;gap:7px;margin:12px 0 0;padding:0;list-style:none}.demand-ranking li{display:grid;grid-template-columns:25px 1fr auto;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:9px}.demand-ranking li>b{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:var(--table-head);color:var(--table-head-text)}.demand-ranking li>span{min-width:0}.demand-ranking li strong,.demand-ranking li small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demand-ranking li strong{font-size:.75rem}.demand-ranking li small{color:var(--muted);font-size:.65rem}.demand-ranking li>em{color:var(--nav-active-bg);font-size:1rem;font-style:normal;font-weight:800}.demand-ranking .empty-ranking{display:block;color:var(--muted)}
.demand-filter-bar{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin:0 0 13px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--context-bg)}.demand-filter-bar label{display:grid;gap:4px;color:var(--muted);font-size:.65rem;font-weight:800}.demand-filter-bar input,.demand-filter-bar select{height:38px;min-height:38px;border:1px solid var(--line)}.demand-filter-bar .demand-search{flex:1;min-width:240px}.demand-filter-bar .demand-search input{width:100%;max-width:none;padding:7px 9px}.demand-filter-check{display:flex!important;grid-template-columns:auto auto;align-items:center;gap:6px!important;min-height:38px;padding:0 7px;color:var(--text)!important}.demand-filter-check input{width:16px;height:16px;min-height:16px}.demand-filter-bar button{min-height:38px;padding:7px 10px}.demand-filter-bar>strong{margin-left:auto;align-self:center;white-space:nowrap;color:var(--nav-active-bg);font-size:.75rem}.filtered-out{display:none!important}
.demand-board{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 14px}.demand-lane{flex:0 0 245px;min-height:210px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--table-head) 42%,var(--panel-bg));overflow:hidden}.demand-lane>header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--table-head);color:var(--table-head-text)}.demand-lane>header span{display:grid;place-items:center;min-width:24px;height:24px;border-radius:99px;background:var(--panel-bg);font-size:.72rem}.demand-lane>div{display:grid;gap:8px;padding:9px}.demand-lane>div>p{margin:14px 4px;color:var(--muted);font-size:.75rem;text-align:center}.demand-card{display:grid;gap:5px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel-bg);box-shadow:0 3px 8px rgba(15,23,42,.05);cursor:grab}.demand-card:hover{border-color:var(--input-focus-border)}.demand-card>div{display:flex;justify-content:space-between;align-items:center}.demand-card>div>b{font-size:.75rem;color:var(--muted)}.demand-card>strong{white-space:normal}.demand-card>small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.demand-empty{display:flex;gap:8px;flex-direction:column;margin-top:14px;padding:18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.demand-detail{margin-top:16px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel-bg)}.demand-detail .project-detail-head{padding:14px}.demand-fields{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:11px;padding:14px;border-top:1px solid var(--line)}.demand-fields label{display:grid;gap:5px;color:var(--muted);font-size:.72rem;font-weight:700}.demand-fields input,.demand-fields select,.demand-fields textarea{width:100%;max-width:none;min-height:38px;border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--input-bg);color:var(--input-text)}.demand-fields textarea{min-height:70px;resize:vertical}.demand-fields .wide-field{grid-column:span 2}.demand-decision{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 14px;border-top:1px solid var(--line);background:var(--table-head)}.demand-decision>div{display:grid;gap:3px}.demand-decision span,.demand-decision small{color:var(--muted);font-size:.72rem}.demand-decision strong{font-size:1.15rem;color:var(--nav-active-bg)}
.demand-card.is-dragging{opacity:.28}.demand-drag-blank{position:fixed;left:0;top:0;width:2px;height:2px;opacity:.01;pointer-events:none}.demand-drag-ghost{position:fixed;z-index:10000;pointer-events:none;margin:0;cursor:grabbing;box-shadow:0 14px 28px rgba(15,23,42,.22);transition:opacity 140ms ease-out;will-change:left,top,transform}
.demand-card-meta{display:flex!important;align-items:center;justify-content:space-between;gap:6px;margin-top:2px}.demand-card-meta span{font-size:.62rem;font-weight:700;color:var(--muted)}.demand-card-meta .demand-due-badge{display:inline-flex;padding:3px 6px;border-radius:99px;background:var(--table-head);color:var(--table-head-text)}.demand-timing-overdue{border-left:4px solid var(--danger)}.demand-timing-overdue .demand-due-badge{background:color-mix(in srgb,var(--danger) 16%,var(--panel-bg));color:var(--danger)}.demand-timing-due-today{border-left:4px solid var(--danger)}.demand-timing-due-today .demand-due-badge,.demand-timing-due-soon .demand-due-badge{background:color-mix(in srgb,var(--warn) 18%,var(--panel-bg));color:color-mix(in srgb,var(--warn) 78%,var(--text))}.demand-timing-due-soon{border-left:4px solid var(--warn)}.demand-timing-closed .demand-due-badge{background:color-mix(in srgb,var(--ok) 15%,var(--panel-bg));color:var(--ok)}
.demand-history{padding:11px 14px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--table-head) 38%,var(--panel-bg))}.demand-history h4{margin:0 0 8px;font-size:.78rem}.demand-history>div{display:flex;gap:7px;overflow-x:auto;padding-bottom:3px}.demand-history span{position:relative;display:grid;gap:2px;flex:0 0 auto;min-width:112px;padding:7px 10px 7px 16px;border:1px solid var(--line);border-radius:9px;background:var(--panel-bg)}.demand-history span:before{content:'';position:absolute;left:6px;top:11px;width:5px;height:5px;border-radius:50%;background:var(--muted)}.demand-history span.current{border-color:var(--input-focus-border)}.demand-history span.current:before{background:var(--nav-active-bg)}.demand-history b{font-size:.68rem}.demand-history small{color:var(--muted);font-size:.6rem}
.demand-readiness{display:grid;grid-template-columns:minmax(150px,210px) minmax(120px,1fr);gap:9px 16px;padding:11px 14px;border-top:1px solid var(--line);background:var(--panel-bg)}.demand-readiness>div:first-child{grid-row:span 2}.demand-readiness span,.demand-readiness small{display:block;color:var(--muted);font-size:.65rem}.demand-readiness strong{display:block;color:var(--warn);font-size:1.45rem}.demand-readiness.is-ready strong{color:var(--ok)}.readiness-progress{align-self:end;height:8px;overflow:hidden;border-radius:99px;background:var(--table-head)}.readiness-progress i{display:block;height:100%;border-radius:inherit;background:var(--warn);transition:width .2s ease}.demand-readiness.is-ready .readiness-progress i{background:var(--ok)}.demand-readiness ul{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap;margin:0;padding:0;list-style:none}.demand-readiness li{display:flex;align-items:center;gap:4px;padding:3px 7px;border:1px solid var(--line);border-radius:99px;color:var(--muted);font-size:.62rem}.demand-readiness li.complete{border-color:color-mix(in srgb,var(--ok) 45%,var(--line));color:var(--ok)}.demand-readiness li b{font-size:.68rem}
.demand-approval{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--nav-active-bg) 5%,var(--panel-bg))}.demand-approval>div:first-child{display:grid;gap:3px}.demand-approval span,.demand-approval small{color:var(--muted);font-size:.68rem}.demand-approval strong{font-size:.78rem}.demand-approval>div:last-child{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.demand-approval button{min-height:36px;padding:7px 10px}
.demand-kpis{grid-template-columns:repeat(6,minmax(110px,1fr))}.demand-kpis small{display:block;color:var(--muted);font-size:.62rem}.demand-kpis .bottleneck-kpi{border-color:color-mix(in srgb,var(--warn) 55%,var(--line))}.demand-flow-step{flex-basis:140px;min-height:52px}.demand-flow-step>div{min-width:0}.demand-flow-step strong,.demand-flow-step small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demand-flow-step strong{font-size:.72rem}.demand-flow-step small{margin-top:2px;color:var(--muted);font-size:.58rem}.demand-flow-step.is-bottleneck{border-color:var(--warn);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warn) 35%,transparent)}.demand-flow-step.is-bottleneck>span{background:var(--warn);color:#fff}
.stakeholder-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.stakeholder-actions small{color:var(--muted);white-space:nowrap}.stakeholder-actions button{min-height:34px;padding:6px 10px}
.demand-permission-controls{display:grid;gap:3px;min-width:150px}.demand-permission-controls label{display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:.68rem}.demand-permission-controls input{width:15px;height:15px}
.board-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.board-selector{min-width:190px;max-width:300px}.lane-actions{display:flex;gap:3px;margin-left:auto}.demand-lane>header .lane-actions button,.demand-lane>header .lane-drag-handle{display:grid;place-items:center;width:24px;height:24px;min-width:24px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--table-head-text);box-shadow:none}.demand-lane>header .lane-actions button:hover,.demand-lane>header .lane-drag-handle:hover{background:color-mix(in srgb,var(--panel-bg) 65%,transparent)}.demand-lane>header .lane-drag-handle{cursor:grab;font-size:1rem}.demand-lane>header .lane-drag-handle:active{cursor:grabbing}.demand-lane.is-column-dragging{opacity:.42}.column-drag-ghost{position:fixed;z-index:10001;display:flex;align-items:center;gap:7px;min-height:46px;padding:10px 12px;border:1px solid var(--input-focus-border);border-radius:12px;background:var(--table-head);color:var(--table-head-text);box-shadow:0 16px 32px rgba(15,23,42,.24);pointer-events:none;transition:opacity 140ms ease-out;will-change:left,top,transform}.column-drag-ghost .lane-actions{display:none}.column-drag-ghost>span{display:grid;place-items:center;min-width:24px;height:24px;border-radius:99px;background:var(--panel-bg);font-size:.72rem}.column-drag-ghost .lane-drag-handle{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;background:transparent;color:var(--table-head-text)}.manual-board-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:10px 0}.manual-board-heading label{display:grid;gap:5px;min-width:min(360px,70%);color:var(--muted);font-size:.72rem;font-weight:700}.manual-board-heading input{width:100%;max-width:none;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--input-bg);color:var(--input-text);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.2}.manual-board-heading input:focus{outline:2px solid var(--input-focus-border);background:var(--input-focus-bg)}.manual-card-fields{display:grid;grid-template-columns:minmax(220px,1fr) minmax(320px,2fr);gap:12px;padding:14px;border-top:1px solid var(--line)}.manual-card-fields label{display:grid;gap:5px;color:var(--muted);font-size:.72rem;font-weight:700}.manual-card-fields input,.manual-card-fields textarea{width:100%;max-width:none;min-height:42px}.manual-card-fields textarea{min-height:80px;resize:vertical}.manual-board-card{min-height:74px}@media(max-width:700px){.board-toolbar{justify-content:flex-start}.board-selector{width:100%;max-width:none}.manual-card-fields{grid-template-columns:1fr}.manual-board-heading{align-items:stretch;flex-direction:column}.manual-board-heading label{min-width:100%}}
.demand-lane>header{display:grid;grid-template-columns:24px minmax(0,1fr) 24px 78px;gap:5px;justify-content:stretch}
.demand-lane>header>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demand-lane>header .lane-actions{width:78px;min-width:78px;margin-left:0;justify-content:flex-end}
@media(max-width:1050px){.demand-fields{grid-template-columns:repeat(2,minmax(150px,1fr))}.stakeholder-grid{grid-template-columns:1fr}.demand-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:650px){.demand-fields{grid-template-columns:1fr}.demand-fields .wide-field{grid-column:auto}.demand-decision{align-items:stretch;flex-direction:column}.demand-decision button{width:100%}.demand-kpis{grid-template-columns:repeat(2,1fr)}.stakeholder-grid{display:block}.demand-ranking{margin-top:10px}}
body.demand-presentation{background:var(--panel-bg)}body.demand-presentation>header,body.demand-presentation main>.cards,body.demand-presentation .tabs,body.demand-presentation .board-edit-area,body.demand-presentation .board-edit-action,body.demand-presentation>.app-footer{display:none!important}body.demand-presentation main{padding:18px}body.demand-presentation #demands{display:block!important}body.demand-presentation #demands>.panel{max-width:1500px;margin:0 auto;padding:18px;border:0;box-shadow:none}body.demand-presentation .demand-stakeholder{min-height:calc(100vh - 105px);margin-bottom:0}

@page demand-report{size:A4 landscape;margin:10mm}
@media print{
  body.print-demand-stakeholder{page:demand-report;background:#fff;color:#111}
  body.print-demand-stakeholder>header,body.print-demand-stakeholder main>.cards,body.print-demand-stakeholder .tabs,body.print-demand-stakeholder .tab:not(#demands),body.print-demand-stakeholder #demands .page-title-row,body.print-demand-stakeholder #demands .board-edit-area,body.print-demand-stakeholder>.app-footer,body.print-demand-stakeholder #toast{display:none!important}
  body.print-demand-stakeholder main{padding:0}
  body.print-demand-stakeholder #demands{display:block!important}
  body.print-demand-stakeholder #demands>.panel{margin:0;padding:0;border:0;box-shadow:none;background:#fff;color:#111}
  body.print-demand-stakeholder .demand-stakeholder{margin:0;padding:8mm;border:0;background:#fff;color:#111;break-inside:avoid}
  body.print-demand-stakeholder .export-brand{display:flex!important}
  body.print-demand-stakeholder .stakeholder-actions button{display:none!important}
  body.print-demand-stakeholder .demand-kpis{grid-template-columns:repeat(6,1fr)}
  body.print-demand-stakeholder .demand-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;overflow:visible}
  body.print-demand-stakeholder .demand-flow-step{min-width:0;min-height:46px;padding:6px 8px;grid-template-columns:26px minmax(0,1fr)}
  body.print-demand-stakeholder .demand-flow-step>i{display:none}
  body.print-demand-stakeholder .demand-flow-step strong,body.print-demand-stakeholder .demand-flow-step small{white-space:normal;line-height:1.15}
  body.print-demand-stakeholder .stakeholder-grid{grid-template-columns:1.35fr .65fr}
  body.print-demand-stakeholder .demand-matrix{height:190px}
}

@media print{
  body.print-roadmap-only header, body.print-roadmap-only main>.cards, body.print-roadmap-only nav, body.print-roadmap-only .tab:not(#roadmap), body.print-roadmap-only .actions, body.print-roadmap-only #toast{display:none!important}
  body.print-roadmap-only{background:#fff;color:#111}
  body.print-roadmap-only main{padding:0}
  body.print-roadmap-only #roadmap{display:block!important}
  body.print-roadmap-only #roadmap .panel{box-shadow:none;border:0;margin:0;padding:12mm;background:#fff;color:#111}
  body.print-roadmap-only #roadmap .toolbar{display:none!important}
  body.print-roadmap-only .export-brand{display:flex!important}
  body.print-roadmap-only .roadmap{break-inside:avoid;border-color:#ccc}
  body.print-roadmap-only .roadmap-row{break-inside:avoid}
}

/* V54: druckfeste Roadmap-Farben */
@media print{
  *{
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }
  body.print-roadmap-only .roadmap,
  body.print-roadmap-only .roadmap-months,
  body.print-roadmap-only .roadmap-label,
  body.print-roadmap-only .roadmap-track,
  body.print-roadmap-only .roadmap-bar,
  body.print-roadmap-only .roadmap-bar span{
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }
  body.print-roadmap-only .roadmap-bar{
    background-color: var(--roadmap-project) !important;
    border: 1px solid rgba(0,0,0,.18) !important;
  }
  body.print-roadmap-only .roadmap-bar.status-abgeschlossen{background-color:var(--roadmap-completed)!important}
  body.print-roadmap-only .roadmap-bar.status-pausiert{background-color:var(--roadmap-paused)!important}
  body.print-roadmap-only .roadmap-bar.status-in-arbeit{background-color:var(--roadmap-in-progress)!important}
  body.print-roadmap-only .roadmap-bar.status-reserviert{background-color:var(--roadmap-reserved)!important}
}
.file-button{display:inline-flex;align-items:center;gap:6px;background:var(--button-secondary-bg);color:var(--button-secondary-text);border-radius:10px;padding:8px 12px;font-weight:600;cursor:pointer;}
.file-button input{display:none;}
.absence-import-toolbar{border-top:1px solid var(--line);padding-top:10px;margin-top:8px;}
.timetool-import-modal{max-width:920px;max-height:90vh;overflow:auto}.import-summary{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px}.import-summary>div{border:1px solid var(--line);border-radius:11px;padding:10px;background:var(--context-bg)}.import-summary span{display:block;color:var(--muted);font-size:11px;font-weight:700}.import-summary strong{display:block;margin-top:3px;font-size:19px}.timetool-mapping-table table{min-width:700px}.timetool-mapping-table td:first-child{position:static}.timetool-mapping-table select{width:100%;max-width:240px}button:disabled{cursor:not-allowed;opacity:.5}@media(max-width:700px){.import-summary{grid-template-columns:repeat(2,1fr)}}


/* Abwesenheiten Drag & Drop */
.absence-matrix{
  user-select:none;
}
.absence-cell{
  cursor:pointer;
}
.absence-cell.absence-drag-preview{
  outline:2px solid var(--nav-active-bg);
  outline-offset:-2px;
  background:color-mix(in srgb, var(--nav-active-bg) 18%, var(--table-bg));
}
.absence-cell.absence-drag-start{
  outline-width:3px;
}
.absence-cell.absence-drag-invalid{
  outline:2px dashed var(--danger);
  outline-offset:-2px;
}


/* Absenzarten als Drag-Werkzeuge */
.absence-tool{
  cursor:grab;
}
.absence-tool:active{
  cursor:grabbing;
}
body.absence-tool-dragging .absence-cell{
  outline:1px dashed var(--nav-active-bg);
  outline-offset:-2px;
}


/* Aktives Absenz-Werkzeug */
.absence-tool.selected{
  outline:3px solid var(--nav-active-bg);
  outline-offset:2px;
  box-shadow:0 0 0 4px color-mix(in srgb, var(--nav-active-bg) 18%, transparent);
  transform:translateY(-1px);
}
.absence-tool{
  transition:transform .08s ease, box-shadow .08s ease, outline-color .08s ease;
}


/* Abwesenheiten Seite: kompakter Import und Löschen-Werkzeug */
.absence-delete-tool{
  background:#fee2e2!important;
  color:#991b1b!important;
  border-color:#fecaca!important;
}
.subtle-import{
  opacity:.72;
  font-size:.9rem;
  margin-top:-2px;
}
.subtle-import:hover{
  opacity:1;
}
.small-file-button{
  padding:.35rem .55rem!important;
  font-size:.8rem!important;
  border-radius:8px!important;
}


/* Feiertag/Wochenende in der Abwesenheitslegende sind reine Hinweise, keine Werkzeuge */
.absence-legend-separator{
  width:1px;
  height:22px;
  background:var(--line);
  margin:0 4px;
  display:inline-block;
  vertical-align:middle;
}
.absence-info-label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 6px;
  font-size:.82rem;
  color:var(--muted);
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  cursor:default!important;
  user-select:none;
}
.holiday-dot,
.weekend-dot{
  width:12px;
  height:12px;
  border-radius:3px;
  display:inline-block;
  border:1px solid var(--line);
}
.holiday-dot{
  background:#fef3c7;
}
.weekend-dot{
  background:#f3f4f6;
}
.absence-info-label:hover{
  transform:none!important;
  box-shadow:none!important;
}


/* Neue saubere Toolbar für Abwesenheiten */
.absence-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
  margin:.4rem 0 .2rem 0;
}
.absence-toolbar .absence-tool{
  width:40px;
  height:40px;
  min-width:40px;
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid color-mix(in srgb,var(--line) 72%,transparent);
  border-radius:10px;
  font-size:20px;
  line-height:1;
  overflow:hidden;
}
.absence-toolbar .absence-tool:hover,.absence-icon-designer:hover{
  filter:brightness(.96);
  transform:translateY(-1px);
}
.absence-toolbar .absence-tool:focus-visible,.absence-icon-designer:focus-visible{
  outline:3px solid color-mix(in srgb,var(--nav-active-bg) 45%,transparent);
  outline-offset:2px;
}
.absence-toolbar .absence-custom-icon{
  width:22px;
  height:22px;
  margin:0;
}
.absence-toolbar-divider{
  width:1px;
  height:26px;
  margin:0 3px;
  background:var(--line);
}
.absence-icon-designer{
  width:40px;
  height:40px;
  min-width:40px;
  padding:0;
  display:inline-grid;
  place-items:center;
  border:1px dashed var(--line);
  border-radius:10px;
  background:var(--panel-bg);
  color:var(--panel-text);
  font-size:19px;
  line-height:1;
  transition:transform .08s ease,filter .08s ease;
}
.absence-icon-designer-modal{max-width:560px}
.icon-designer-head{display:flex;align-items:center;justify-content:space-between;gap:20px}
.icon-designer-head h3{margin:0 0 4px}.icon-designer-head p{margin:0;color:var(--muted);font-weight:700}
.icon-designer-preview{width:88px;height:88px;object-fit:contain;border:1px solid var(--line);border-radius:18px;background:repeating-conic-gradient(#eef2f7 0 25%,#fff 0 50%) 0 0/18px 18px;padding:8px}
.icon-designer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.icon-designer-grid label{display:grid;gap:6px;color:var(--muted);font-size:.8rem;font-weight:700}
.icon-designer-grid select,.icon-designer-grid input[type="color"]{width:100%;max-width:none;min-height:42px;border:1px solid var(--line);border-radius:9px;background:var(--input-bg);color:var(--input-text)}
.icon-designer-grid input[type="color"]{padding:4px}
.icon-designer-range{grid-column:1/-1}.icon-designer-range input{width:100%}
@media(max-width:580px){.icon-designer-grid{grid-template-columns:1fr}.icon-designer-range{grid-column:auto}.icon-designer-preview{width:72px;height:72px}}

.absence-info-strip{
  display:flex;
  gap:18px;
  align-items:center;
  margin:.15rem 0 .8rem 0;
  padding-left:2px;
  font-size:.82rem;
  color:var(--muted);
}

.absence-info-item{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.holiday-dot,
.weekend-dot{
  width:14px;
  height:14px;
  border-radius:4px;
  border:1px solid var(--line);
  display:inline-block;
}

.holiday-dot{
  background:#fef3c7;
}

.weekend-dot{
  background:#eceff3;
}

/* alte Darstellungen neutralisieren */
.absence-legend,
.absence-legend-separator,
.absence-info-label{
  all:unset;
}

/* V82 Managementberichte */
.management-report-title{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.management-report-title h2{margin:3px 0 5px}.management-report-title p{margin:0;color:var(--muted)}.report-eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:800;color:var(--nav-active-bg)}
.management-kpis{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin-bottom:24px}.management-kpis>div,.management-mix>div{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--card)}.management-kpis span,.management-mix span{display:block;color:var(--muted);font-size:.78rem;margin-bottom:6px}.management-kpis strong{font-size:1.25rem;font-variant-numeric:tabular-nums}
.management-month-grid{display:grid;grid-template-columns:repeat(3,minmax(230px,1fr));gap:10px;margin-bottom:24px}.management-month{border:1px solid var(--line);border-radius:12px;padding:11px;background:var(--card)}.management-month.is-critical{box-shadow:inset 4px 0 0 var(--danger)}.management-month-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:9px}.management-month-head span{font-size:.75rem;font-weight:700}.management-bar-row{display:grid;grid-template-columns:68px 1fr 48px;gap:7px;align-items:center;font-size:.72rem;margin:5px 0}.management-bar-track{position:relative;height:8px;border-radius:99px;background:var(--nav-bg);overflow:visible}.management-bar-track::after{content:"";position:absolute;z-index:3;left:var(--capacity-end);top:-3px;width:2px;height:14px;background:var(--text);border-radius:2px;transform:translateX(-1px)}.management-bar{position:absolute;left:0;top:0;display:block;height:100%;border-radius:99px}.management-bar.capacity{background:#94a3b8}.management-bar.workload{background:var(--nav-active-bg)}.management-bar.overload{background:var(--danger);border-radius:0 99px 99px 0}.management-bar-row b{text-align:right;font-variant-numeric:tabular-nums}
.management-month-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:10px}.management-month-title h3{margin-bottom:0}.management-month-legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:.75rem}.management-month-legend span{display:inline-flex;align-items:center;gap:6px}.management-month-legend i{width:24px;height:8px;border-radius:99px;background:#94a3b8}.management-month-legend i.workload{background:var(--nav-active-bg)}.management-month-legend i.overload{background:var(--danger)}.management-month-legend i.capacity-limit{width:2px;height:14px;border-radius:2px;background:var(--text)}
.management-report-grid{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(460px,1.3fr);gap:18px;margin:10px 0 24px}.management-mix{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:10px}.management-mix b{font-variant-numeric:tabular-nums}.management-projects table{min-width:520px}.management-detail table{min-width:1100px}
@media(max-width:1100px){.management-kpis{grid-template-columns:repeat(3,1fr)}.management-month-grid{grid-template-columns:repeat(2,1fr)}.management-report-grid{grid-template-columns:1fr}}@media(max-width:700px){.management-report-title{display:block}.management-report-title button{margin-top:12px}.management-kpis,.management-month-grid{grid-template-columns:1fr}}
@media print{body.print-management-report header,body.print-management-report main>.cards,body.print-management-report nav,body.print-management-report .tab:not(#managementReport),body.print-management-report footer,body.print-management-report #toast,body.print-management-report .management-report-title button{display:none!important}body.print-management-report{background:#fff;color:#111}body.print-management-report main{padding:0}body.print-management-report #managementReport{display:block!important}body.print-management-report .management-report{border:0;box-shadow:none;padding:8mm;background:#fff;color:#111}body.print-management-report .management-kpis>div,body.print-management-report .management-month,body.print-management-report .management-mix>div{break-inside:avoid;background:#fff}body.print-management-report .management-month-grid{grid-template-columns:repeat(3,1fr)}body.print-management-report .management-report-grid{grid-template-columns:1fr 1.3fr}.management-bar{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* V84 Frühwarnsystem */
.early-warning{border:1px solid var(--line);border-left:6px solid var(--ok);border-radius:16px;padding:18px;margin-bottom:18px;background:var(--panel-bg);box-shadow:0 8px 20px rgba(15,23,42,.04)}.early-warning.warning{border-left-color:var(--warn)}.early-warning.critical{border-left-color:var(--danger)}.early-warning-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.early-warning-head h3{display:flex;align-items:center;gap:10px;margin:5px 0}.early-warning-head p{margin:0;color:var(--muted)}.traffic-light{width:16px;height:16px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 5px color-mix(in srgb,var(--ok) 17%,transparent)}.traffic-light.warning{background:var(--warn);box-shadow:0 0 0 5px color-mix(in srgb,var(--warn) 17%,transparent)}.traffic-light.critical{background:var(--danger);box-shadow:0 0 0 5px color-mix(in srgb,var(--danger) 17%,transparent)}.warning-counts{display:grid;grid-template-columns:auto auto;gap:2px 9px;align-items:baseline;text-align:right}.warning-counts b{font-size:1.2rem}.warning-counts span{font-size:.75rem;color:var(--muted)}.warning-list{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:8px;margin-top:16px}.warning-item{display:flex;gap:10px;padding:10px 12px;border-radius:10px;background:var(--card);border:1px solid var(--line)}.warning-item p{margin:3px 0 0;color:var(--muted);font-size:.8rem}.warning-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;background:var(--warn);flex:0 0 auto}.warning-item.critical .warning-dot{background:var(--danger)}.warning-empty{color:var(--muted);padding:8px 0}@media(max-width:750px){.early-warning-head{display:block}.warning-counts{display:flex;text-align:left;margin-top:12px}.warning-list{grid-template-columns:1fr}}

.manual-board-access{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:8px}.manual-board-access label{display:flex;align-items:center;gap:8px}.manual-board-access select{min-width:130px}
