*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#f4f6f8;color:#17202a}header{background:#17202a;color:#fff;padding:14px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px}header a{color:#fff;text-decoration:none;margin-left:18px}.container{max-width:1100px;margin:28px auto;padding:0 18px}.narrow{max-width:620px}.center{min-height:100vh;display:grid;place-items:center;background:#f4f6f8}.card{background:#fff;border-radius:14px;padding:22px;margin-bottom:20px;box-shadow:0 5px 22px #0000000d}.auth{width:min(440px,92vw)}h1,h2,h3{margin-top:0}.muted{color:#68727d}.big{font-size:42px;font-weight:700;margin:15px 0 0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:20px;align-items:stretch}.stats div{background:#f2f4f6;padding:10px;border-radius:9px;font-size:12px;display:flex;flex-direction:column;justify-content:space-between;min-height:64px}.stats strong{display:block;font-size:16px;margin-top:5px}label{display:block;font-weight:600;margin-bottom:12px}input,select,textarea{display:block;width:100%;padding:11px;border:1px solid #ccd3da;border-radius:8px;margin-top:6px;font:inherit}button,.button{display:inline-block;border:0;border-radius:8px;padding:11px 16px;font:inherit;cursor:pointer;text-decoration:none;background:#e8edf1;color:#17202a}.primary{background:#146c43;color:white}.danger{background:#b02a37;color:white}.warning{background:#d97706;color:white}.large{width:100%;padding:17px;font-size:18px}.actions{display:grid;gap:12px;margin:20px 0}.inline{display:flex;gap:8px}.inline input{max-width:180px}.alert{padding:12px 15px;border-radius:9px;background:#e7f5ec;margin-bottom:15px}.alert.error{background:#fde8e8;color:#8a1c1c}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.tabs a{background:#fff;padding:10px 14px;border-radius:8px;text-decoration:none;color:#17202a}.tabs a:hover{background:#e8edf1}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid #e5e7eb}.qrgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.qrgrid article{text-align:center;border:1px solid #e1e5e8;border-radius:12px;padding:15px}.qrgrid img{max-width:220px;width:100%}@media(max-width:720px){.grid,.formgrid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}header{align-items:flex-start;flex-direction:column}header nav a{margin:0 12px 0 0}.inline{flex-wrap:wrap}}
/* V4 */
table input[type="time"],table input[type="number"]{min-width:105px}.qrgrid article{overflow-wrap:anywhere}.tabs{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}.tabs a{padding:.55rem .7rem;background:#fff;border:1px solid #ddd;border-radius:7px}.danger{cursor:pointer}

/* V6 */
details.employee{border:1px solid #e1e5e8;border-radius:10px;padding:12px;margin:10px 0}details.employee summary{cursor:pointer}.yeargrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.month{border:1px solid #e1e5e8;border-radius:10px;padding:10px}.monthdays{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.day{font-size:12px;text-align:center;padding:5px 2px;border-radius:4px;background:#f4f6f8}.day.absent{background:#d9eadf;font-weight:700}@media(max-width:850px){.yeargrid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.yeargrid{grid-template-columns:1fr}}


/* V6.1 QR display */
.qr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1rem 0}
.qr-card{border:1px solid #d8dee6;border-radius:10px;padding:1rem;text-align:center;background:#fff}
.qr-card img{display:block;max-width:100%;height:auto;margin:.5rem auto;background:#fff;padding:8px;border:1px solid #eee}
.qr-card small{display:block;overflow-wrap:anywhere;margin:.5rem 0;color:#555}
.button-link{display:inline-block;margin-top:.5rem;padding:.55rem .8rem;border:1px solid #bbb;border-radius:6px;text-decoration:none}

/* V6.2 vacation accounts */
.leave-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.leave-stats div{background:#f4f6f8;border-radius:9px;padding:12px}.leave-stats span{display:block;font-size:12px;color:#68727d}.leave-stats strong{display:block;margin-top:4px;font-size:20px}@media(max-width:720px){.leave-stats{grid-template-columns:repeat(2,1fr)}}


/* V6.3 Dienstplanung */
.container.wide{max-width:1500px}.planner-table-wrap{overflow-x:auto}.planner-table{min-width:1180px}.planner-table td{vertical-align:top}.planner-table select,.planner-table input{min-width:120px}.planner-table td:first-child{min-width:70px}.area-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.area-grid article{border:1px solid #e1e5e8;border-radius:10px;padding:12px;background:#fafbfc}.area-person{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #eceff2}.area-person:last-child{border-bottom:0}.area-person span{white-space:nowrap;color:#68727d}@media(max-width:720px){.area-person{display:block}.area-person span{display:block;margin-top:3px}}

/* V6.5 employee monthly schedule */
.planner-table.compact{min-width:900px}.planner-table.compact td,.planner-table.compact th{padding:8px}

.brand-title{display:inline-flex;align-items:center;gap:8px}.brand-clock{width:25px;height:25px;background:#fff;border-radius:50%}.site-branding{text-align:center;margin:14px auto 0;padding:0 18px}.site-branding img{display:block;max-width:min(100%,900px);max-height:180px;object-fit:contain;margin:0 auto;border-radius:10px}.month-summary td,.month-summary th{white-space:nowrap}.month-summary tr a{text-decoration:none}

/* V6.21 Dashboard-Layout */
.stats strong{white-space:nowrap}
.stats div:last-child{min-width:92px}
.dashboard-date-form{align-items:stretch}
.dashboard-date-form input{margin-top:0;height:44px}
.dashboard-date-form button,.dashboard-date-form .button{height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.qr-action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.qr-action-row.secondary{margin-top:12px}
@media(max-width:720px){.stats div:last-child{min-width:0}.dashboard-date-form{align-items:stretch}.dashboard-date-form input,.dashboard-date-form button,.dashboard-date-form .button{height:44px}.qr-action-row .button{flex:1 1 auto;text-align:center}}


/* V6.23 */
.mobile-report-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
@media(max-width:720px){
  .dashboard-bookings th:nth-child(3),.dashboard-bookings th:nth-child(4),
  .dashboard-bookings td:nth-child(3),.dashboard-bookings td:nth-child(4){display:none}
  .dashboard-bookings{table-layout:fixed}.dashboard-bookings th,.dashboard-bookings td{overflow-wrap:anywhere}
}

/* V6.24 */
.admin-menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px}
.admin-menu-grid .button{display:flex;align-items:center;justify-content:center;min-height:46px;background:#fff;border:1px solid #ddd;border-radius:8px;padding:10px 14px;text-align:center}
.admin-menu-grid .button:hover{background:#e8edf1}
.team-table{table-layout:fixed}.team-table th,.team-table td{vertical-align:middle}.team-table th:nth-child(1),.team-table td:nth-child(1){width:46%}.team-table th:nth-child(2),.team-table td:nth-child(2){width:27%}.team-table th:nth-child(3),.team-table td:nth-child(3){width:27%}
.approval-count{display:inline-flex;min-width:28px;height:28px;padding:0 8px;align-items:center;justify-content:center;border-radius:999px;background:#b02a37;color:#fff;font-size:14px;vertical-align:middle}
.approval-table input[type="checkbox"]{width:auto;margin:0}.approval-table th:first-child,.approval-table td:first-child{width:44px;text-align:center}.bulk-approval-actions{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end;margin-top:14px}.bulk-approval-actions input{margin-top:0}.daily-all-table td{vertical-align:middle}.daily-all-table .button{white-space:nowrap}
@media(max-width:720px){.admin-menu-grid{grid-template-columns:1fr;gap:10px}.team-table{table-layout:auto}.team-table th,.team-table td{padding:9px 7px}.bulk-approval-actions{grid-template-columns:1fr}.approval-table,.daily-all-table{min-width:720px}}

/* V6.25 Entscheidungen zu Ist-Zeit-Abweichungen */
.bulk-decision-buttons{display:flex;gap:10px;flex-wrap:wrap}.bulk-decision-buttons button{margin:0}@media(max-width:720px){.bulk-decision-buttons{display:grid;grid-template-columns:1fr;gap:8px}.bulk-decision-buttons button{width:100%}}

/* V6.26 – Weitere Einstellungen: klare Freistellung der Verwaltungsbuttons */
.admin-menu-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  column-gap:16px;
  row-gap:16px;
  margin-top:16px;
  align-items:stretch;
}
.admin-menu-grid > .button{
  width:100%;
  min-height:48px;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
@media(max-width:720px){
  .admin-menu-grid{
    grid-template-columns:1fr;
    column-gap:0;
    row-gap:14px;
  }
}


/* V6.27 – Weitere Einstellungen: sichtbarer Abstand, auch bei älteren Browser-Caches */
.admin-menu-grid{gap:18px!important;row-gap:18px!important;column-gap:18px!important}
.admin-menu-grid>.button{margin:0!important}
@media(max-width:720px){.admin-menu-grid{gap:18px!important;row-gap:18px!important;column-gap:0!important}}


/* V6.28 – Weitere Einstellungen: eigener, direkt angebundener Button-Container */
.more-settings-buttons{display:flex!important;flex-wrap:wrap!important;gap:18px!important;margin-top:16px!important;align-items:stretch!important}
.more-settings-buttons>.button{margin:0!important;flex:1 1 220px!important;min-height:48px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important}
@media(max-width:720px){.more-settings-buttons{display:flex!important;flex-direction:column!important;gap:16px!important}.more-settings-buttons>.button{width:100%!important;flex:0 0 auto!important}}


/* V6.31 – Mein Team kompakter, ohne internen horizontalen Scrollbalken */
.team-table-wrap{width:100%;overflow:visible}
.team-table{width:100%;min-width:0!important;table-layout:fixed}
.team-table th,.team-table td{padding:8px 6px;vertical-align:middle;overflow-wrap:anywhere}
.team-table.with-qualification th:nth-child(1),.team-table.with-qualification td:nth-child(1){width:36%}
.team-table.with-qualification th:nth-child(2),.team-table.with-qualification td:nth-child(2){width:13%;text-align:center;white-space:nowrap}
.team-table.with-qualification th:nth-child(3),.team-table.with-qualification td:nth-child(3){width:18%;text-align:center}
.team-table.with-qualification th:nth-child(4),.team-table.with-qualification td:nth-child(4){width:33%;white-space:nowrap}
.team-table.without-qualification th:nth-child(1),.team-table.without-qualification td:nth-child(1){width:47%}
.team-table.without-qualification th:nth-child(2),.team-table.without-qualification td:nth-child(2){width:20%;text-align:center}
.team-table.without-qualification th:nth-child(3),.team-table.without-qualification td:nth-child(3){width:33%;white-space:nowrap}
.team-table .team-qn,.team-table .team-shift{text-align:center}
@media(max-width:720px){
  .team-table{table-layout:fixed!important;font-size:13px}
  .team-table th,.team-table td{padding:7px 4px}
  .team-table.with-qualification th:nth-child(1),.team-table.with-qualification td:nth-child(1){width:35%}
  .team-table.with-qualification th:nth-child(2),.team-table.with-qualification td:nth-child(2){width:13%}
  .team-table.with-qualification th:nth-child(3),.team-table.with-qualification td:nth-child(3){width:17%}
  .team-table.with-qualification th:nth-child(4),.team-table.with-qualification td:nth-child(4){width:35%}
}

/* V6.34 – Mitarbeiterverwaltung nach Arbeitsbereichen */
.employee-admin-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.employee-admin-head h2{margin:0}
.employee-area-group>h3{margin-top:0;padding-bottom:8px;border-bottom:1px solid #ddd}
.employee-area-group details.employee+details.employee{margin-top:8px}
@media(max-width:720px){.employee-admin-head{align-items:stretch;flex-direction:column}.employee-admin-head .button{width:100%;text-align:center}}

/* V6.35 – kompakte Auswahlfelder in Geloggte Arbeitszeiten */
.control-button-size{width:auto!important;min-width:220px;max-width:320px;height:44px;padding:10px 38px 10px 14px;margin-top:6px}
.employee-select{min-width:260px}
@media(max-width:720px){.control-button-size,.employee-select{width:100%!important;max-width:100%;min-width:0}}


/* V6.36 – einheitlich größere Auswahlfelder */
.large-control,.filter-select{width:280px!important;min-width:280px;max-width:280px;height:44px;padding:10px 38px 10px 14px;margin-top:6px}
.area-group-row td{padding-top:12px;padding-bottom:8px;background:rgba(127,127,127,.10)}
.absence-edit{margin:10px 0;padding:10px 12px;border:1px solid rgba(127,127,127,.25);border-radius:8px}
.absence-edit summary{cursor:pointer}
@media(max-width:720px){.large-control,.filter-select{width:100%!important;min-width:0;max-width:100%}}

/* V6.37 – einheitliche Auswahlfelder in Dienstplanung und geloggten Buchungen */
.month-control{width:280px!important;min-width:280px;max-width:280px}
.planner-row-control{height:40px;padding:8px 34px 8px 10px;box-sizing:border-box}
.planner-shift-control{width:260px;min-width:260px;max-width:260px}
.planner-workplace-control{width:220px;min-width:220px;max-width:220px}
.logged-row-control{width:220px!important;min-width:220px;max-width:220px;height:44px}
@media(max-width:720px){.month-control,.planner-row-control,.planner-shift-control,.planner-workplace-control,.logged-row-control{width:100%!important;min-width:0;max-width:100%}}


/* V6.42 – Auswahlfelder anwendungsweit vereinheitlicht */
select{width:280px;min-width:280px;max-width:280px;min-height:44px;box-sizing:border-box;padding:8px 38px 8px 12px}
/* Tabellenfelder bleiben passend zu den vorgesehenen Spalten, erhalten aber die einheitliche Höhe. */
select.planner-row-control{min-height:40px;height:40px}
select.planner-shift-control{width:260px;min-width:260px;max-width:260px}
select.planner-workplace-control{width:220px;min-width:220px;max-width:220px}
select.logged-row-control{width:220px;min-width:220px;max-width:220px}
@media(max-width:720px){select,select.planner-row-control,select.planner-shift-control,select.planner-workplace-control,select.logged-row-control{width:100%!important;min-width:0!important;max-width:100%!important}}
