:root{--red:#ed1c24;--dark:#263541;--text:#24313b;--muted:#6d7982;--line:#dde3e7;--bg:#f4f6f8;--white:#fff}*{box-sizing:border-box}body{margin:0;font:14px Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{border:0;border-radius:8px;padding:10px 13px;font-weight:700;cursor:pointer}.hidden{display:none!important}.dark{background:var(--dark);color:#fff}.light{background:#f0f2f4;color:var(--text)}.full{width:100%}.green{background:#cfe9d4;color:#265c30}.yellow{background:#f6e7b3;color:#725b0f}.blue{background:#d9e6f5;color:#2b5e8c}.red{background:#f4d3d3;color:#9e3232}.login-screen{min-height:100vh;display:grid;place-items:center}.login-card{width:min(390px,92vw);background:#fff;padding:28px;border-radius:18px;box-shadow:0 20px 60px #25333e22}.login-card img{width:190px;display:block;margin:auto}.login-card h1,.login-card p{text-align:center}.login-card label,label{display:block;font-size:12px;margin:12px 0 5px}.login-card input,.login-card select,input,select{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.login-card button{margin-top:18px}.login-card small{display:block;margin-top:12px;color:var(--muted)}header{height:86px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:14px}.brand img{width:130px}.brand b{display:block;color:var(--red);font-size:22px}.brand span{font-size:12px;color:var(--muted)}.top-actions{display:flex;gap:10px;align-items:center}.app-shell{display:grid;grid-template-columns:205px 1fr;min-height:calc(100vh - 86px)}aside{background:#fff;border-right:1px solid var(--line);padding:15px 11px}.week-card{display:grid;grid-template-columns:35px 1fr 35px;align-items:center;text-align:center;background:var(--dark);color:#fff;border-radius:11px;padding:12px 5px}.week-card button{background:transparent;color:#fff;font-size:22px;padding:2px}.week-card strong,.week-card small{display:block}.stat{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:10px;padding:13px 11px;margin-top:9px}.stat b{font-size:18px}.filter-title{font-weight:700;margin-top:18px}aside select{margin-bottom:9px}aside nav{display:flex;flex-direction:column;gap:6px;margin-top:18px}aside nav button{background:#f0f3f5;text-align:left}aside nav button.active{background:#fff0f0;color:var(--red)}main{padding:14px;min-width:0}.planner-toolbar{height:54px;background:#fff;border:1px solid var(--line);border-radius:11px 11px 0 0;display:flex;align-items:center;justify-content:space-between;padding:8px 12px}.view-tabs{display:flex;gap:5px}.view-tabs button{background:#f0f2f4}.view-tabs button.active{background:#fff2f2;color:var(--red)}.planner{background:#fff;border:1px solid var(--line);border-top:0;overflow:auto;max-height:560px}.timeline{min-width:1050px}.timeline-row{display:grid;grid-template-columns:225px repeat(var(--cols),minmax(25px,1fr))}.cell{min-height:29px;border-right:1px solid #edf0f2;border-bottom:1px solid #edf0f2;position:relative;font-size:9px;padding:5px;text-align:center}.cell.left{position:sticky;left:0;background:#fff;z-index:4;text-align:left;font-weight:700}.cell.head{background:#fafbfc;font-weight:600}.cell.weekend{background:#f2f3f4}.cell.today{background:#fff0f0;color:var(--red)}.cell.employee{padding-left:22px;font-weight:400;color:var(--muted)}.bar{position:absolute;inset:4px 1px;border-radius:7px}.absence-mark{display:block;border-radius:4px;padding:3px 1px;font-size:8px;font-weight:700}.lower-grid{display:grid;grid-template-columns:2fr 1.25fr .8fr 1.1fr;gap:10px;margin-top:11px}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px}.panel h2,.panel h3{margin:0 0 10px}.legend{display:flex;flex-direction:column;gap:7px}.legend span{padding:6px;border-radius:5px;width:max-content}.vac{background:#f4d9d9}.sick{background:#dbe7f6}.training{background:#f4e9c9}.clock-card{max-width:520px;margin:30px auto;background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px}.status{display:inline-block;background:#eef1f3;padding:8px 11px;border-radius:99px;margin-bottom:10px}.clock-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}.presence-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px}.presence-card{border:1px solid var(--line);border-radius:10px;padding:14px}.presence-card .live{font-size:20px;font-weight:700;margin:8px 0}.location{font-size:12px;color:var(--muted);word-break:break-word}.people-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:12px}.person-row,.absence-row{display:flex;justify-content:space-between;align-items:center;padding:9px;border-bottom:1px solid #edf0f2}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.checks{display:grid;grid-template-columns:1fr 1fr;gap:7px;border:1px solid var(--line);border-radius:8px;padding:10px}.checks label{margin:0}.checks input{width:auto}.dialog-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;margin-top:18px}dialog{width:min(560px,94vw);border:0;border-radius:13px;padding:0;box-shadow:0 25px 80px #0004}dialog::backdrop{background:#1f293766}dialog form{padding:20px}.report-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.report-head>div{display:flex;gap:7px}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0}.summary-card{background:#f6f8f9;border-radius:9px;padding:13px}.summary-card b{display:block;font-size:23px}table{width:100%;border-collapse:collapse}th,td{padding:9px;border-bottom:1px solid var(--line);text-align:left;font-size:12px}#toast{display:none;position:fixed;right:18px;bottom:18px;background:var(--dark);color:#fff;padding:12px 16px;border-radius:9px;z-index:100}@media(max-width:900px){header{padding:0 10px}.brand img{width:100px}.brand span,.top-actions span,.top-actions .admin-only{display:none!important}.app-shell{grid-template-columns:1fr}aside{border-right:0;padding:8px;display:flex;gap:7px;overflow:auto;align-items:center}.week-card{min-width:170px}.stat,.filter-title,aside>label,aside>select,aside>.full{display:none!important}aside nav{flex-direction:row;margin:0;min-width:max-content}.lower-grid,.people-layout{grid-template-columns:1fr}.timeline-row{grid-template-columns:190px repeat(var(--cols),minmax(30px,1fr))}.clock-buttons{grid-template-columns:1fr}.report-head{align-items:flex-start;flex-direction:column}.report-head>div{flex-wrap:wrap}.summary-cards{grid-template-columns:1fr}.top-actions{gap:4px}.top-actions button{padding:8px}.brand b{font-size:17px}}

.clock-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:14px;max-width:1050px;margin:28px auto}.clock-layout .clock-card{max-width:none;margin:0}.daily-note-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px}.daily-note-card h2{margin-top:0}.daily-note-card textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit}.daily-note-card small{display:block;margin-top:9px;color:var(--muted)}.muted{color:var(--muted);font-size:12px}.clock-live-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0 16px}.clock-live-grid>div{background:#f5f7f8;border-radius:9px;padding:11px;min-height:70px}.clock-live-grid span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.clock-live-grid b{display:block;font-size:14px;word-break:break-word}.report-employee{font-size:15px;font-weight:700;margin:10px 0}.weekend-row td{background:#f3f4f5}.zero-hours{color:#9aa2a8}@media(max-width:900px){.clock-layout{grid-template-columns:1fr;margin:10px auto}.clock-live-grid{grid-template-columns:1fr}.daily-note-card{padding:16px}}


/* EPB 3.0.2 desktop plantafel */
@media(min-width:901px){
  #plannerPage{min-height:calc(100vh - 114px);display:flex;flex-direction:column}
  #plannerPage.hidden{display:none!important}
  .planner{max-height:440px;min-height:220px}
  .lower-grid{grid-template-columns:minmax(0,2.1fr) minmax(250px,1fr) 180px minmax(250px,1fr);margin-top:auto;padding-top:12px}
  .lower-grid>.panel{min-height:150px}
  .lower-grid .legend{flex-direction:row;flex-wrap:wrap}
}
.project-access{background:#fff;border:1px solid var(--line);border-radius:12px;margin-top:12px;padding:14px}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}
.section-head h3{margin:0 0 3px}.section-head p{margin:0;color:var(--muted);font-size:12px}
.project-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.project-access-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-left:7px solid var(--project-color);border-radius:10px;padding:12px;background:#fff}
.project-card-main{display:grid;gap:3px;min-width:0}.project-card-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-main small{color:var(--muted)}
.project-number{font-size:11px;font-weight:800;color:var(--red);letter-spacing:.03em}
.available-projects{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.available-projects summary{cursor:pointer;font-weight:800;margin-bottom:10px}.available-projects summary span{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-left:5px;border-radius:99px;background:#eef1f3}
.empty-state{padding:14px;border:1px dashed var(--line);border-radius:9px;color:var(--muted)}
.quick-clock{white-space:nowrap}
@media(max-width:900px){.project-access{display:none!important}}


/* EPB 3.0.6 desktop redesign */
@media(min-width:901px){
  body{background:#f3f5f7}
  header{height:76px;padding:0 18px;box-shadow:0 1px 8px #2635410a}
  .app-shell{min-height:calc(100vh - 76px);grid-template-columns:190px minmax(0,1fr)}
  aside{padding:12px 10px}
  main{padding:12px 14px 18px}
  #plannerPage{display:block;min-height:0}
  #plannerPage.hidden{display:none!important}
  .planner-toolbar{height:48px;border-radius:12px 12px 0 0;padding:6px 10px}
  .planner{min-height:0;max-height:360px;border-radius:0 0 12px 12px;box-shadow:0 5px 16px #2635410b}
  .timeline-row{grid-template-columns:210px repeat(var(--cols),minmax(25px,1fr))}
  .cell{min-height:30px;padding:5px 4px}
  .cell.left{display:flex;align-items:center;gap:7px;overflow:hidden}
  .project-label{font-size:10px;cursor:pointer}
  .project-label>span:nth-child(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .project-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
  .edit-mark{margin-left:auto;color:var(--muted)}
  .bar{inset:5px 2px;border-radius:6px;opacity:.9}
  .lower-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(250px,.85fr) minmax(180px,.55fr) minmax(240px,.8fr);gap:10px;margin-top:12px;padding-top:0;align-items:stretch}
  .lower-grid>.panel{min-height:138px;padding:14px;border-radius:12px;box-shadow:0 5px 16px #2635410a}
  .panel h3{font-size:15px;margin-bottom:10px}
  .employee-panel{min-width:0}
  .employee-panel table{table-layout:fixed}
  .employee-panel th,.employee-panel td{padding:8px 7px;text-align:center}
  .employee-panel th:first-child,.employee-panel td:first-child{text-align:left;width:28%}
  .absence-panel{display:flex;flex-direction:column}
  .absence-panel #addAbsenceBtn{margin-top:auto;align-self:flex-start}
  .legend-panel .legend{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px}
  .legend-panel .legend span{padding:5px 8px;font-size:11px}
  .notice-panel{font-size:12px;line-height:1.45}
  .panel-empty{min-height:88px;border:1px dashed #d8dee3;border-radius:10px;background:#fafbfc;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px;color:var(--muted)}
  .panel-empty b{color:var(--text);font-size:13px;margin-bottom:4px}
  .panel-empty span{font-size:11px;max-width:360px}
  .panel-empty.compact{min-height:70px}
  .stat{padding:10px 9px;margin-top:7px;background:#fbfcfd}
  .stat b{font-size:16px}
  aside nav{margin-top:14px}
  aside nav button{padding:9px 11px}
}

/* EPB 3.1 professional desktop dashboard */
:root{--surface:#fff;--surface-soft:#f8fafb;--shadow:0 10px 30px rgba(38,53,65,.08);--radius:16px}
@media(min-width:901px){
  body{background:#f2f4f6}
  header{height:72px;padding:0 22px;border-bottom:1px solid #e7ebee;box-shadow:none}
  .brand img{width:122px}.brand b{font-size:20px}.app-shell{grid-template-columns:188px minmax(0,1fr);min-height:calc(100vh - 72px)}
  aside{padding:14px 10px;background:#fbfcfd}.week-card{border-radius:14px;box-shadow:0 7px 18px rgba(38,53,65,.14)}
  main{padding:16px 18px 28px;max-width:1900px;width:100%;margin:0 auto}
  .planner-card{background:var(--surface);border:1px solid #e1e6ea;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
  .planner-toolbar{height:54px;border:0;border-bottom:1px solid #edf0f2;border-radius:0;padding:8px 14px}
  .planner{border:0;max-height:390px;min-height:0;height:auto;overflow:auto;background:#fff}
  .timeline{min-width:1050px}.timeline-row{grid-template-columns:220px repeat(var(--cols),minmax(25px,1fr))}
  .cell{min-height:31px}.cell.head{background:#fbfcfd}.cell.left{box-shadow:1px 0 0 #edf0f2}
  .dashboard-grid{display:grid;grid-template-columns:minmax(500px,1.75fr) minmax(260px,.82fr) minmax(290px,.9fr) minmax(260px,.82fr);gap:12px;margin-top:14px;align-items:stretch}
  .dashboard-grid>.panel{min-height:190px;border:1px solid #e1e6ea;border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);background:var(--surface)}
  .panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-heading h3{font-size:16px;margin:2px 0 0}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#89939b}
  .panel-badge{font-size:11px;padding:6px 9px;border-radius:99px;background:#f0f3f5;color:#5f6b74;font-weight:700}.icon-button{width:34px;height:34px;padding:0;border-radius:10px;background:#263541;color:#fff;font-size:20px}
  .employee-panel table{table-layout:fixed;border:1px solid #edf0f2;border-radius:10px;overflow:hidden}.employee-panel th{background:#f8fafb;color:#65717a;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.employee-panel th,.employee-panel td{padding:9px 7px;text-align:center}.employee-panel th:first-child,.employee-panel td:first-child{text-align:left;width:30%}
  .action-panel p{margin:0 0 13px;color:var(--muted);font-size:12px}.absence-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.absence-action{min-height:105px;padding:13px;text-align:left;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-content:center;border:1px solid transparent}.absence-action>span{grid-row:1/3;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:17px}.absence-action b{font-size:14px}.absence-action small{font-weight:500;color:#66727b}.vacation-action{background:#fff8f0;border-color:#f7e3c8;color:#62491d}.vacation-action>span{background:#fdebcf}.sick-action{background:#f3f7fc;border-color:#dbe7f5;color:#294b6b}.sick-action>span{background:#dfeaf7}
  .absence-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:8px 0}.absence-row span:nth-child(2){grid-column:1;color:var(--muted);font-size:11px}.absence-row b{grid-column:2;grid-row:1/3;align-self:center;padding:5px 7px;border-radius:7px;font-size:10px}
  .notice-panel #noticeText{font-size:12px;line-height:1.5;max-height:105px;overflow:auto}.notice-panel .legend{display:flex;flex-direction:row;gap:6px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid #edf0f2}.notice-panel .legend span{font-size:10px;padding:5px 7px}
  .project-access{border:1px solid #e1e6ea;border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-top:14px}.section-head{margin-bottom:14px}.section-head h3{margin:2px 0 3px;font-size:17px}
  .project-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-access-card{border-radius:13px;padding:13px;transition:transform .15s ease,box-shadow .15s ease}.project-access-card:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(38,53,65,.09)}
  .available-projects{margin-top:14px}.available-projects summary{padding:8px 0;margin:0}.available-projects[open] summary{margin-bottom:10px}
}
@media(min-width:901px) and (max-width:1350px){.dashboard-grid{grid-template-columns:1.5fr .8fr .9fr}.notice-panel{grid-column:2/4}.project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.dashboard-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}.dashboard-grid>.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start}.eyebrow{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:800}.absence-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.absence-action{display:grid;text-align:left;min-height:90px}.project-access{display:none!important}}
.dialog-hint{margin:-6px 0 12px;color:var(--muted);font-size:12px}

/* EPB 3.2 – adaptive Plantafel und bearbeitbare Fehltage */
.timeline-row.project-row .cell{min-height:var(--project-row-height,50px)}
.timeline-row.project-row .project-label{font-size:13px;align-items:center;display:flex;gap:9px;padding:10px 12px}
.timeline-row.project-row .project-dot{width:12px;height:12px;border-radius:50%;flex:0 0 auto}
.timeline-row.project-row .bar{inset:8px 2px;border-radius:10px}
.timeline-row.head-row .cell{min-height:34px}
.absence-edit{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.absence-edit:hover{background:#f7f9fa}
.absence-row{grid-template-columns:minmax(0,1fr) auto auto!important}
.absence-row i{grid-column:3;grid-row:1/3;align-self:center;font-style:normal;color:var(--muted);font-size:13px}
.absence-row b{grid-column:2!important}
@media(max-width:900px){.timeline-row.project-row .cell{min-height:42px}.timeline-row.project-row .project-label{font-size:12px;padding:8px}}

/* EPB 3.3 – durchgehende Gantt-Balken */
@media(min-width:901px){
  .planner{max-height:calc(100vh - 255px);min-height:390px}
  .gantt-timeline{min-width:1180px}
  .timeline-row.project-row{position:relative;isolation:isolate;cursor:pointer}
  .timeline-row.project-row:hover .cell{background-color:#fafcfd}
  .timeline-row.project-row .cell{min-height:var(--project-row-height,64px)}
  .timeline-row.project-row .project-label{padding:12px 14px;z-index:8;background:#fff;transition:background .15s ease}
  .timeline-row.project-row:hover .project-label{background:#f8fafb}
  .project-copy{display:grid;min-width:0;line-height:1.15}
  .project-copy b{font-size:10px;letter-spacing:.08em;color:var(--red);text-transform:uppercase}
  .project-copy strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}
  .project-copy small{font-size:10px;color:var(--muted);margin-top:5px;font-weight:500}
  .row-arrow{margin-left:auto;font-size:24px;color:#a3adb4;font-weight:400}
  .gantt-cell{z-index:1;padding:0}
  .spanning-bar{align-self:center;height:calc(var(--project-row-height,64px) - 28px);min-height:26px;margin:0 5px;border-radius:12px;background:var(--project-color);box-shadow:0 6px 15px rgba(38,53,65,.14);z-index:5;display:flex;align-items:center;padding:0 14px;overflow:hidden;border:1px solid rgba(38,53,65,.08);transition:transform .15s ease,box-shadow .15s ease}
  .spanning-bar span{font-size:11px;font-weight:800;color:#263541;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-shadow:0 1px rgba(255,255,255,.55)}
  .timeline-row.project-row:hover .spanning-bar{transform:translateY(-1px);box-shadow:0 9px 20px rgba(38,53,65,.18)}
  .today-line{z-index:6;justify-self:start;width:2px;height:100%;background:#ed1c24;box-shadow:0 0 0 1px rgba(237,28,36,.08);pointer-events:none}
  .head-row .today{position:relative;font-weight:800}.head-row .today:after{content:"";position:absolute;left:-1px;bottom:0;width:2px;height:8px;background:#ed1c24}
  .planner-empty{padding:54px;text-align:center;display:grid;gap:7px;color:var(--muted)}.planner-empty b{font-size:17px;color:var(--text)}
  .dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dashboard-grid>.panel{min-height:170px}
  body:has(.action-panel.hidden) .dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.project-detail-drawer{position:fixed;top:0;right:0;bottom:0;width:min(430px,94vw);z-index:80;background:#fff;box-shadow:-20px 0 60px rgba(25,36,44,.2);padding:24px;display:flex;flex-direction:column;animation:drawerIn .2s ease}
.drawer-backdrop{position:fixed;inset:0;z-index:70;background:rgba(26,36,44,.32);backdrop-filter:blur(2px)}
@keyframes drawerIn{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.drawer-head{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding-bottom:18px}.drawer-head h2{margin:4px 0 0;font-size:22px}.drawer-close{width:38px;height:38px;padding:0;border-radius:11px;background:#f0f3f5;font-size:25px;font-weight:400}.drawer-body{padding:20px 0;overflow:auto;flex:1}.drawer-color{height:10px;border-radius:99px;margin-bottom:18px}.drawer-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.drawer-facts>div{background:#f6f8f9;border-radius:12px;padding:13px}.drawer-facts span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:800}.drawer-facts b{display:block;margin-top:5px;font-size:13px}.drawer-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.drawer-section p{line-height:1.55}.drawer-actions{border-top:1px solid var(--line);padding-top:16px}.drawer-actions button{width:100%}
@media(max-width:900px){.spanning-bar{grid-column:auto!important}.project-detail-drawer{padding:18px}.drawer-facts{grid-template-columns:1fr}}


/* EPB 3.3.1 – Korrektur der Gantt-Zeilen */
main > .page.hidden{display:none!important}
@media(min-width:901px){
  .planner{min-height:0!important;max-height:none!important;overflow:auto}
  .timeline-row.project-row{grid-template-rows:var(--project-row-height,72px);min-height:var(--project-row-height,72px);overflow:hidden}
  .timeline-row.project-row > .cell{grid-row:1;min-height:100%!important}
  .timeline-row.project-row > .spanning-bar{grid-row:1!important;align-self:center;height:44px;min-height:44px;margin-inline:7px}
  .timeline-row.project-row > .today-line{grid-row:1!important;align-self:stretch;height:auto}
  .gantt-timeline{padding-bottom:0}
  .dashboard-grid{margin-top:12px}
}

/* EPB 4.0 – Sprint 1: Benutzer, Login und Sicherheit */
.login-screen{background:radial-gradient(circle at top left,#ffffff 0,#f5f7f9 38%,#e9eef2 100%);padding:28px}.login-shell{width:min(980px,96vw);display:grid;grid-template-columns:1.15fr .85fr;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.9);border-radius:28px;box-shadow:0 30px 90px rgba(34,48,59,.16);overflow:hidden;backdrop-filter:blur(16px)}.login-brand{padding:64px;background:#0b0b0c;color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:560px}.login-logo{display:flex;align-items:center;gap:17px;font-family:Georgia,"Times New Roman",serif;font-size:66px;line-height:1;font-weight:400;letter-spacing:.01em;margin-bottom:8px}.login-logo i{font-family:Segoe UI,Arial,sans-serif;font-style:normal;font-size:42px;font-weight:700;color:var(--red);transform:translateY(-2px)}.login-company{font-size:12px;font-weight:700;margin-bottom:34px;color:#fff;opacity:.9}.login-brand>span{font-size:12px;text-transform:uppercase;letter-spacing:.14em;font-weight:800;opacity:.72}.login-brand h1{font-size:42px;line-height:1.05;margin:18px 0 12px;max-width:420px}.login-brand p{font-size:17px;line-height:1.6;opacity:.78;max-width:430px}.login-card{width:auto;border-radius:0;box-shadow:none;padding:56px;display:flex;flex-direction:column;justify-content:center}.login-card img,.login-card h1,.login-card p{display:none}.login-kicker{font-size:24px;font-weight:800;margin-bottom:22px}.password-field{position:relative;display:flex;align-items:center}.password-field input{padding-right:92px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);margin:0!important;background:transparent;color:var(--muted);padding:6px 9px;font-size:12px;line-height:1;border-radius:6px}.password-toggle:hover{background:#f1f3f5;color:var(--text)}.remember-row{display:flex!important;align-items:center;gap:8px;margin-top:14px!important;font-size:13px!important}.remember-row input{width:auto!important}.link-button{background:transparent;color:var(--red);padding:10px;margin-top:4px}.login-card small{text-align:center}.people-header{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:16px}.people-header h2{margin:3px 0 4px;font-size:28px}.people-header p{margin:0;color:var(--muted)}.people-header input{max-width:320px}.people-layout-v4{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.7fr);gap:16px}.people-cards{display:grid;gap:12px}.person-card-v4{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;box-shadow:0 8px 24px rgba(38,53,65,.05)}.person-card-v4.inactive{opacity:.65}.person-avatar,.profile-avatar{width:58px;height:58px;border-radius:16px;background:linear-gradient(145deg,#263541,#526977);color:#fff;display:grid;place-items:center;font-size:18px;font-weight:800;overflow:hidden}.person-avatar img,.profile-avatar img{width:100%;height:100%;object-fit:cover}.person-title{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.person-title h3{margin:0;font-size:17px}.role-line{color:var(--red);font-weight:700;font-size:12px;margin:4px 0 9px}.person-contact{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-bottom:7px}.person-main small{color:var(--muted)}.person-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.status-pill,.role-badge{display:inline-flex;padding:5px 9px;border-radius:99px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.status-pill.active{background:#e5f4e8;color:#2d6b38}.status-pill.inactive{background:#f2e5e5;color:#945050}.create-person-card{align-self:start;position:sticky;top:102px}.password-hint{font-size:11px;color:var(--muted);margin:5px 0 14px}.profile-layout{display:grid;grid-template-columns:280px minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.profile-summary{text-align:center;padding:28px}.profile-summary .profile-avatar{width:92px;height:92px;border-radius:24px;margin:0 auto 16px;font-size:28px}.profile-summary h2{margin-bottom:8px}.profile-summary dl{margin:28px 0 0;text-align:left}.profile-summary dl>div{padding:12px 0;border-top:1px solid var(--line)}.profile-summary dt{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:800}.profile-summary dd{margin:5px 0 0;font-weight:700}.profile-form,.password-form{padding:22px}.section-title h2{margin:3px 0 18px}.password-meter{height:7px;border-radius:99px;background:#edf0f2;overflow:hidden;margin-top:8px}.password-meter i{display:block;width:0;height:100%;background:linear-gradient(90deg,#ed1c24,#e0b12f,#4b9a5b);transition:width .2s ease}.password-form small{display:block;color:var(--muted);margin-top:7px}
@media(max-width:950px){.login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-card{padding:34px;min-height:520px}.people-layout-v4,.profile-layout{grid-template-columns:1fr}.create-person-card{position:static}.person-card-v4{grid-template-columns:auto 1fr}.person-actions{grid-column:1/-1;justify-content:flex-start}.people-header{align-items:stretch;flex-direction:column}.people-header input{max-width:none}}

/* EPB 4.1 – Design Foundation, Navigation und Dashboard */
:root{--epb-black:#101112;--surface:#ffffff;--surface-soft:#f7f8f9;--shadow-sm:0 8px 24px rgba(24,34,42,.06);--shadow-md:0 18px 44px rgba(24,34,42,.10);--radius-sm:10px;--radius-md:16px;--radius-lg:22px}
button{transition:transform .15s ease,box-shadow .15s ease,background .15s ease}button:hover:not(:disabled){transform:translateY(-1px)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(237,28,36,.17);outline-offset:1px;border-color:var(--red)}
header{height:76px}.brand b{font-size:20px;letter-spacing:.035em}.brand img{width:116px}.top-actions>span{font-weight:700;color:#49555e}
.app-shell{grid-template-columns:220px minmax(0,1fr)}aside{display:flex;flex-direction:column;padding:14px 12px;background:#fff}aside nav{gap:5px;margin-top:18px}aside nav button{display:flex;align-items:center;gap:11px;background:transparent;border-radius:11px;padding:11px 12px;color:#56626b;font-weight:700}aside nav button:hover{background:#f4f6f7;color:var(--text)}aside nav button.active{background:#fff0f0;color:var(--red);box-shadow:inset 3px 0 0 var(--red)}.nav-icon{width:22px;height:22px;display:grid;place-items:center;font-size:18px;line-height:1}.sidebar-profile{margin-top:auto;border-top:1px solid var(--line);padding:14px 4px 2px;display:grid;grid-template-columns:38px minmax(0,1fr) 28px;gap:9px;align-items:center}.sidebar-avatar{width:38px;height:38px;border-radius:11px;background:var(--epb-black);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:800;overflow:hidden}.sidebar-avatar img{width:100%;height:100%;object-fit:cover}.sidebar-profile b,.sidebar-profile small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-profile b{font-size:12px}.sidebar-profile small{font-size:10px;color:var(--muted);margin-top:2px}.sidebar-profile button{padding:2px;background:transparent;font-size:22px;color:#849099}
main{padding:20px;max-width:1800px;width:100%;margin:0 auto}.dashboard-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;background:linear-gradient(135deg,#fff 0,#fafbfc 68%,#f5e9ea 100%);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px 30px;box-shadow:var(--shadow-sm);overflow:hidden;position:relative}.dashboard-hero:after{content:"";position:absolute;width:210px;height:210px;border:46px solid rgba(237,28,36,.055);border-radius:50%;right:-65px;top:-82px}.dashboard-hero h1{font-size:32px;line-height:1.1;margin:6px 0 8px}.dashboard-hero p{margin:0;color:var(--muted);font-size:14px}.dashboard-date{position:relative;z-index:1;text-align:right;min-width:210px}.dashboard-date span,.dashboard-date b,.dashboard-date small{display:block}.dashboard-date span{text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:800;color:var(--red)}.dashboard-date b{font-size:19px;margin:5px 0}.dashboard-date small{color:var(--muted)}
.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px}.dashboard-kpi{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:18px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-sm);min-height:116px}.dashboard-kpi-wide{grid-column:span 2}.dashboard-kpi-wide button{margin-left:auto;white-space:nowrap}.kpi-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:21px;font-weight:800;flex:0 0 auto}.kpi-icon.projects{background:#e9f0f6;color:#375d78}.kpi-icon.working{background:#e7f4ea;color:#327342}.kpi-icon.absence{background:#f8e9ea;color:#a43d43}.kpi-icon.clock{background:#f5eddf;color:#8a6528}.dashboard-kpi small,.dashboard-kpi b,.dashboard-kpi em{display:block}.dashboard-kpi small{font-size:11px;color:var(--muted);font-weight:700}.dashboard-kpi b{font-size:28px;line-height:1.05;margin:4px 0}.dashboard-kpi em{font-size:10px;color:#8a949b;font-style:normal}
.dashboard-content{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr) minmax(280px,.7fr);gap:14px;margin-top:14px}.dashboard-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-sm);min-height:285px}.dashboard-panel-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:15px}.dashboard-panel-head h2{font-size:18px;margin:4px 0 0}.today-project-list,.people-status-list,.notice-list{display:grid;gap:8px}.today-project{width:100%;display:grid;grid-template-columns:7px minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;background:#fafbfc;border:1px solid #edf0f2;border-radius:12px;padding:12px}.today-project>span{height:38px;border-radius:99px;background:var(--project-color)}.today-project b,.today-project small{display:block}.today-project b{font-size:13px}.today-project small{color:var(--muted);font-size:10px;margin-top:4px}.today-project i{font-style:normal;font-size:22px;color:#9ba5ac}.people-status-row{display:grid;grid-template-columns:10px minmax(0,1fr);gap:11px;align-items:center;padding:10px 3px;border-bottom:1px solid #eef1f3}.people-status-row:last-child{border-bottom:0}.people-status-row b,.people-status-row small{display:block}.people-status-row b{font-size:12px}.people-status-row small{font-size:10px;color:var(--muted);margin-top:3px}.status-dot{width:9px;height:9px;border-radius:50%;background:#aab2b8;box-shadow:0 0 0 4px #f1f3f4}.status-dot.online{background:#48a25c;box-shadow:0 0 0 4px #e8f5eb}.status-dot.pause{background:#d49a2e;box-shadow:0 0 0 4px #fbf1dc}.status-dot.absent{background:#d65b62;box-shadow:0 0 0 4px #fae8e9}.status-dot.vacation{background:#5788b3;box-shadow:0 0 0 4px #e8f0f7}.notice-item{display:grid;grid-template-columns:26px 1fr;gap:9px;align-items:start;padding:10px;border-radius:11px;background:#f7f8f9}.notice-item span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:#e9edf0;font-weight:800}.notice-item.important{background:#fff2f2}.notice-item.important span{background:var(--red);color:#fff}.notice-item p{margin:3px 0 0;font-size:11px;line-height:1.45}
@media(max-width:1200px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-content{grid-template-columns:1fr 1fr}.dashboard-notices{grid-column:1/-1;min-height:auto}}
@media(max-width:900px){header{height:66px}.app-shell{grid-template-columns:1fr}aside{display:block;overflow:auto}.sidebar-profile,.week-card,.stat{display:none!important}aside nav{display:flex;flex-direction:row;min-width:max-content;margin-top:0}aside nav button{padding:9px 11px}.nav-icon{display:none}main{padding:12px}.dashboard-hero{padding:20px;align-items:flex-start}.dashboard-date{display:none}.dashboard-hero h1{font-size:25px}.dashboard-kpis,.dashboard-content{grid-template-columns:1fr}.dashboard-kpi-wide{grid-column:auto}.dashboard-kpi-wide button{display:none}.dashboard-notices{grid-column:auto}.dashboard-panel{min-height:auto}.top-actions #userLabel{display:none}}
