:root{--bg:#0f141b;--panel:#171e27;--panel2:#1c2530;--text:#e9eef5;--muted:#98a6b7;--border:#303b49;--accent:#4da3ff;--accent2:#237bd5;--red:#ff5a67;--orange:#f3a53f;--green:#4ac37a;--violet:#b986ff;--shadow:0 8px 30px rgba(0,0,0,.18)}
*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:#8dc5ff;text-decoration:none}a:hover{text-decoration:underline}h1,h2,p{margin-top:0}.muted{color:var(--muted)}
.topbar{display:flex;align-items:center;gap:24px;padding:12px 22px;background:#111820;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.brand{font-weight:800;color:white;font-size:18px;white-space:nowrap}.mainnav{display:flex;gap:14px;flex:1;flex-wrap:wrap}.mainnav a{color:#d8e3ef}.account{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--muted);flex-wrap:wrap}.account form{margin:0}.link-button{background:none;border:0;color:#8dc5ff;padding:0;cursor:pointer;font:inherit}.page{max-width:1600px;margin:0 auto;padding:24px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.page-head h1{margin-bottom:4px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(--muted);margin-bottom:5px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);color:var(--text);cursor:pointer;font:inherit}.button:hover{text-decoration:none;border-color:#59697d}.button.primary{background:var(--accent2);border-color:var(--accent2);color:white}.button.danger{border-color:#8e3c45;color:#ffadb4;background:#351b20}.actions{display:flex;gap:12px;flex-wrap:wrap}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 16px;flex-wrap:wrap}
.calendar-scroll,.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.calendar-table,.matrix-table,.data-table{width:100%;border-collapse:collapse;min-width:1050px}.calendar-table th,.matrix-table th,.data-table th{background:#1a232d;color:#dce8f5;text-align:left}.calendar-table th,.calendar-table td,.matrix-table th,.matrix-table td,.data-table th,.data-table td{padding:10px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);vertical-align:top}.calendar-table thead th{text-align:center;min-width:155px}.calendar-table th small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.week-cell{height:230px}.job-card{display:flex;flex-direction:column;gap:3px;padding:9px 10px;border:2px solid;border-radius:9px;margin-bottom:8px;color:var(--text);background:#141c25}.job-card:hover{text-decoration:none;filter:brightness(1.1)}.job-card span{font-size:13px}.job-card small{color:var(--muted)}.status-empty{border-color:var(--red)!important}.status-partial{border-color:var(--orange)!important}.status-full{border-color:var(--green)!important}.status-conflict{border-color:var(--red)!important;background:#351b20!important}.status-cancelled{border-color:#687586!important;opacity:.65}.section-title{margin-top:28px}
.matrix-table .sticky-col{position:sticky;left:0;z-index:2;background:#1a232d;min-width:190px}.matrix-table tbody .sticky-col{background:#151d26}.sticky-col span,.sticky-col small{display:block}.sticky-col small{color:var(--muted);font-weight:400}.resource-cell{min-width:145px;height:78px}.resource-job{display:block;padding:6px 7px;border-radius:6px;background:#233246;margin-bottom:4px;color:#dcebff;font-size:12px}.resource-job small{display:block;color:var(--muted)}.resource-absence{display:block;padding:6px 7px;background:#473723;border:1px solid #725736;border-radius:6px;font-size:12px}.resource-conflict{background:#3a1c22}.free{color:#688097;font-size:12px}
.messages{display:grid;gap:8px;margin-bottom:16px}.message{padding:10px 12px;border-radius:8px;background:#253142;border:1px solid #3d5269}.message.success{background:#183125;border-color:#2f6846}.message.error{background:#3a1c22;border-color:#7a3540}.message.warning{background:#3b2d1b;border-color:#775a31}.message.info{background:#1d2d3c;border-color:#35536c}
.card-list{display:grid;gap:14px}.project-card,.panel,.narrow-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;box-shadow:var(--shadow)}.project-head,.panel-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.project-head h2{margin-bottom:4px}.project-head p{color:var(--muted)}.job-lines{display:grid;gap:6px}.job-lines>a{display:grid;grid-template-columns:minmax(220px,1fr) 180px 130px;gap:12px;padding:9px;border-top:1px solid var(--border);color:var(--text)}
.two-col{display:grid;grid-template-columns:1fr 1.1fr;gap:18px}.status-pill{display:inline-flex;padding:8px 12px;border-radius:999px;border:2px solid;font-weight:700}.person-row,.candidate{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.person-row small,.candidate small,.candidate em{display:block;color:var(--muted);font-size:12px;font-style:normal}.candidate form{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.candidate-busy{background:#241c1d;margin:0 -8px;padding:11px 8px}.available{color:var(--green);font-size:12px}.busy{color:#ff9ca5;font-size:12px}.force{font-size:12px;color:var(--muted)}.empty-warning,.conflict-box{padding:12px;border-radius:8px;border:1px solid #7a3540;background:#341b21;margin-top:10px}.conflict-box p{margin:6px 0 0}.conflict-list{margin:8px 0 0;padding-left:20px}.conflict-list>li{margin:7px 0}.conflict-list ul{margin:4px 0 0;padding-left:20px}.conflict-list li{line-height:1.35}.shift-row{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.narrow-card{max-width:760px;margin:0 auto}.form-grid{display:grid;gap:14px}.field{display:grid;gap:5px;font-weight:600}.field input:not([type=checkbox]),.field select,.field textarea,.login-card input{width:100%;padding:10px 11px;border-radius:7px;border:1px solid var(--border);background:#0f151c;color:var(--text);font:inherit}.field input[type=checkbox]{margin-right:8px}.field small{font-weight:400;color:var(--muted)}.field-error{color:#ff9ca5;font-size:12px}.form-actions{display:flex;gap:10px;margin-top:4px}.data-table{min-width:850px}.badge,.tag{display:inline-block;padding:3px 7px;border-radius:999px;border:1px solid var(--border);font-size:12px;margin:1px}.badge.ok{border-color:#2f6846;color:#9be7b8}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:26px;box-shadow:var(--shadow)}.login-card label{display:grid;gap:5px}.login-card h1{margin-bottom:6px}
@media(max-width:900px){.topbar{align-items:flex-start;flex-wrap:wrap}.mainnav{order:3;width:100%}.account{margin-left:auto}.page{padding:16px}.two-col{grid-template-columns:1fr}.page-head{align-items:stretch;flex-direction:column}.job-lines>a{grid-template-columns:1fr}.calendar-table,.matrix-table{min-width:900px}}
.status-completed{border-color:var(--green)!important;background:rgba(34,139,84,.12)!important;opacity:1}.completed-card{opacity:.78}.completed-note{margin:-4px 0 18px;padding:10px 12px;border:2px solid var(--green);border-radius:8px;background:rgba(34,139,84,.10);color:var(--text)}
.project-open{border-color:var(--red)}.project-progress{border-color:var(--orange)}.project-paused{border-color:var(--orange);color:var(--orange)}.project-completed{border-color:#687586;color:#c0cad5}.job-line-completed{opacity:.62;text-decoration:line-through}.location-line{margin:8px 0 3px}.office-hint{display:block;margin:3px 0;padding:3px 6px;border:1px solid #6a5b38;border-radius:6px;background:#372f20;color:#f3c775;font-size:12px}.office-overridden{outline:2px solid #a7782d;outline-offset:-2px}.candidate-office-warning{box-shadow:inset 3px 0 0 #a7782d}
.checklist-panel{margin-top:18px}.checklist-list{display:grid;gap:4px}.checklist-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.checklist-text{display:flex;align-items:flex-start;gap:10px;min-width:0}.checklist-text small{display:block;color:var(--muted);font-weight:400}.check-toggle{border:0;background:none;color:#dce8f5;font-size:22px;line-height:1;cursor:pointer;padding:0}.check-toggle-static{font-size:22px;line-height:1}.checklist-done .checklist-text strong{text-decoration:line-through;color:var(--muted)}.checklist-add{display:flex;gap:10px;margin-top:14px}.checklist-add input{flex:1;min-width:0;padding:10px 11px;border-radius:7px;border:1px solid var(--border);background:#0f151c;color:var(--text);font:inherit}.job-notes{margin-top:18px}.field ul{list-style:none;padding:0;margin:4px 0;display:flex;gap:14px;flex-wrap:wrap}.field ul label{display:flex;align-items:center;gap:6px;font-weight:500}.field ul input{margin:0}
@media(max-width:650px){.checklist-item,.checklist-add{align-items:stretch;flex-direction:column}.checklist-item>.button{align-self:flex-start}}
.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.filter-bar label{font-weight:700}.filter-bar select{min-width:220px;padding:9px 11px;border-radius:7px;border:1px solid var(--border);background:#0f151c;color:var(--text);font:inherit}.first-section{margin-top:10px}.completed-projects{margin-bottom:28px}.inline-form{display:inline}.mini-link{border:0;background:none;color:#8dc5ff;cursor:pointer;font:inherit;padding:0 2px}.danger-text{color:#ff9ca5}.availability-tag{border-color:#2f6846;color:#9be7b8}.warning-tag{border-color:#775a31;color:#f3c775}.trainee-away{background:#3b2d1b;border-color:#775a31}

/* Abwesenheitstypen */
.tag.absence-vacation,.resource-absence.absence-vacation{background:#173826;border-color:#2f7b4d;color:#a8efc2}
.tag.absence-no-travel,.resource-absence.absence-no-travel{background:#46341b;border-color:#9a6d25;color:#ffd58a}
.tag.absence-absent,.resource-absence.absence-absent{background:#442027;border-color:#9c4450;color:#ffb0b8}
.tag.absence-training,.resource-absence.absence-training{background:#1b3450;border-color:#386fa8;color:#aed7ff}

.absence-legend{display:flex;gap:8px;flex-wrap:wrap;margin:-6px 0 14px}

/* v0.6: gemeinsame Dispo-Achse */
.dispo-board-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.dispo-board{min-width:calc(190px + (var(--week-count) * 155px));width:100%}
.dispo-week-row,.dispo-job-row,.resource-grid-row{display:grid;grid-template-columns:190px repeat(var(--week-count),minmax(155px,1fr))}
.dispo-week-row{position:relative;z-index:8;background:#1a232d;border-bottom:1px solid var(--border)}
.dispo-corner,.dispo-week-head,.dispo-row-label,.resource-person,.dispo-week-cell,.resource-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px;min-width:0}
.dispo-corner,.dispo-row-label,.resource-person{position:sticky;left:0;z-index:6;background:#151d26}
.dispo-corner{z-index:10;background:#1a232d;font-weight:800}
.dispo-week-head{text-align:center;background:#1a232d}.dispo-week-head small{display:block;color:var(--muted);font-weight:400;margin-top:3px}
.dispo-job-row{align-items:stretch;background:#151d26}.dispo-row-label small,.resource-person small{display:block;color:var(--muted);font-weight:400;margin-top:3px}
.job-week-cell{min-height:190px;background:#151d26}.job-week-cell .job-card:last-child{margin-bottom:0}
.resource-title-line{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:12px 14px;background:#0f151c;border-bottom:1px solid var(--border)}
.resource-vertical-scroll{max-height:480px;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}
.resource-grid-row{min-height:86px}.resource-grid-row:last-child>*{border-bottom:0}.resource-person{font-weight:700}.resource-cell{height:auto;min-height:86px}
@media(max-width:900px){.dispo-board{min-width:calc(175px + (var(--week-count) * 145px))}.dispo-week-row,.dispo-job-row,.resource-grid-row{grid-template-columns:175px repeat(var(--week-count),145px)}.resource-vertical-scroll{max-height:420px}}

/* v0.6: gemeinsamer Zeitraum-Picker */
.native-date-hidden{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}
.date-range-trigger{width:100%;text-align:left;padding:10px 11px;border-radius:7px;border:1px solid var(--border);background:#0f151c;color:var(--text);font:inherit;cursor:pointer;min-height:43px}
.date-range-trigger:hover,.date-range-trigger:focus{border-color:#6b7e94;outline:none}
.date-range-picker{border:1px solid var(--border);border-radius:10px;background:#111820;padding:12px;box-shadow:var(--shadow);margin-top:-5px}
.range-toolbar,.range-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.range-mode-hint{color:var(--muted);font-size:12px;margin:7px 0 10px}.range-nav{border:1px solid var(--border);background:var(--panel2);color:var(--text);border-radius:7px;width:38px;height:34px;cursor:pointer}.range-months{display:grid;grid-template-columns:1fr 1fr;gap:12px}.range-month{min-width:0}.range-month-title{text-align:center;font-weight:700;margin-bottom:8px}.range-weekdays,.range-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.range-weekdays span{text-align:center;color:var(--muted);font-size:11px;padding:4px 0}.range-day{border:0;border-radius:5px;background:transparent;color:var(--text);min-height:32px;cursor:pointer;font:inherit}.range-day.outside{color:#607080}.range-day:hover{outline:1px solid #7990aa}.range-day.in-range,.range-day.range-preview{background:#233d59}.range-day.range-start,.range-day.range-end{background:var(--accent2);color:white;font-weight:800}.range-day.range-start.range-preview,.range-day.range-end.range-preview{background:var(--accent2)}.range-actions{justify-content:flex-end;margin-top:12px}
@media(max-width:650px){.range-months{grid-template-columns:1fr}.range-months .range-month:nth-child(2){display:none}}


/* v0.7: I&C-Kapazitätsplanung */
.capacity-filter select{min-width:170px}.capacity-summary{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;margin-bottom:24px}.capacity-summary>div{display:grid;gap:4px;padding:10px 12px;border-left:3px solid var(--border)}.capacity-summary strong{font-size:22px}.capacity-summary small{color:var(--muted);font-size:11px}.section-heading{margin:24px 0 12px}.month-capacity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.capacity-card{border:1px solid var(--border);border-left:5px solid;border-radius:10px;padding:13px;background:var(--panel)}.capacity-card-head,.capacity-numbers{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.capacity-card-head span{font-size:20px;font-weight:800}.capacity-numbers{font-size:12px;color:var(--muted)}.capacity-numbers strong{color:var(--text)}.capacity-meter{height:7px;background:#0d1319;border-radius:999px;overflow:hidden;margin:10px 0}.capacity-meter span{display:block;height:100%;background:currentColor;opacity:.8}.capacity-legend{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 24px}.legend-chip{border:1px solid;border-radius:999px;padding:5px 9px;font-size:12px;background:var(--panel)}.week-capacity-grid{display:grid;grid-template-columns:repeat(13,minmax(74px,1fr));gap:7px}.week-capacity-card{display:grid;gap:4px;min-height:83px;border:1px solid;border-top:4px solid;border-radius:8px;padding:8px;background:var(--panel)}.week-capacity-card>div{display:grid}.week-capacity-card>div small,.week-capacity-card>small{color:var(--muted);font-size:10px}.week-capacity-card>span{font-size:19px;font-weight:800}.capacity-note{margin-top:24px}.capacity-note p{margin:7px 0 0;color:var(--muted)}
.band-air{border-color:#2f7b4d!important;color:#9be7b8}.band-normal{border-color:#b68a24!important;color:#ffe08a}.band-high{border-color:#b84a4a!important;color:#ffaaa5}.band-full{border-color:#e13e4d!important;color:#ff858f}.band-over{border-color:#ff2038!important;color:#ff7481}.week-capacity-card.is-past{border-color:#56616e!important}.capacity-summary .capacity-band{border-left-color:currentColor}
@media(max-width:1100px){.capacity-summary{grid-template-columns:repeat(3,1fr)}.month-capacity-grid{grid-template-columns:repeat(3,1fr)}.week-capacity-grid{grid-template-columns:repeat(9,minmax(74px,1fr))}}@media(max-width:750px){.capacity-summary{grid-template-columns:1fr 1fr}.month-capacity-grid{grid-template-columns:1fr 1fr}.week-capacity-grid{grid-template-columns:repeat(5,minmax(74px,1fr))}}@media(max-width:480px){.capacity-summary,.month-capacity-grid{grid-template-columns:1fr}.week-capacity-grid{grid-template-columns:repeat(3,minmax(74px,1fr))}}


/* v0.9: I&C-Bestätigung und Deadline-Steuerung */
.status-pending { border-color: #8b5cf6 !important; background: rgba(139,92,246,.10) !important; }
.assignment-status { font-weight: 700; }
.assignment-pending { color: #7c3aed; }
.assignment-confirmed { color: #15803d; }
.assignment-declined { color: #b91c1c; }
.confirmation-panel { border-left: 5px solid #8b5cf6; }
.assignment-response { display:flex; flex-wrap:wrap; gap:.6rem; padding-top:.8rem; border-top:1px solid var(--border); }
.deadline-line { margin:.45rem 0; font-size:.95rem; }
.deadline-normal { color: #166534; }
.deadline-soon { color: #a16207; }
.deadline-critical { color: #c2410c; font-weight:700; }
.deadline-overdue { color: #b91c1c; font-weight:800; }
.urgent-panel { margin-bottom: 1rem; }
.urgent-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:.65rem; }
.urgent-job { display:flex; flex-direction:column; gap:.25rem; padding:.8rem; border:1px solid var(--border); border-left-width:5px; border-radius:.7rem; text-decoration:none; color:inherit; background:var(--panel); }
.urgent-job.deadline-normal { border-left-color:#16a34a; }
.urgent-job.deadline-soon { border-left-color:#ca8a04; }
.urgent-job.deadline-critical { border-left-color:#ea580c; }
.urgent-job.deadline-overdue { border-left-color:#dc2626; background:rgba(220,38,38,.06); }

.resource-job-pending { outline:2px dashed #8b5cf6; outline-offset:-2px; }


/* v0.11: SUB-Firmen, Teamansicht und eigener SUB-Kalender */
.sub-team-panel{margin-bottom:18px}.sub-team-list{display:grid;gap:0}.sub-team-list .person-row:last-child{border-bottom:0}
.sub-calendar-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.sub-calendar-grid{display:grid;grid-template-columns:repeat(var(--week-count),minmax(190px,1fr));min-width:calc(var(--week-count) * 190px)}
.sub-week-column{border-right:1px solid var(--border);min-height:360px}.sub-week-column:last-child{border-right:0}
.sub-week-column>header{position:sticky;top:0;z-index:2;text-align:center;padding:11px 8px;background:#1a232d;border-bottom:1px solid var(--border)}
.sub-week-column>header small{display:block;color:var(--muted);font-weight:400;margin-top:3px}
.sub-week-jobs{display:grid;gap:8px;padding:8px}.sub-week-empty{color:var(--muted);font-size:12px;padding:6px}
.sub-calendar-job{display:grid;gap:4px;padding:10px;border:1px solid #2f7b4d;border-radius:8px;background:#151d26;color:var(--text);text-decoration:none}
.sub-calendar-job:hover{border-color:#60a5fa}.sub-calendar-job span{font-size:13px}.sub-calendar-job small{color:var(--muted);font-size:11px}.sub-job-completed{opacity:.65;border-color:#5a6877}

.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px}.calendar-nav strong{color:var(--muted)}

/* v0.12: YTD-Kapazität und Passwort-Reset-Warteschlange */
.nav-alert-link{display:inline-flex;align-items:center;gap:6px}.nav-count{display:inline-flex;min-width:20px;height:20px;padding:0 6px;align-items:center;justify-content:center;border-radius:999px;background:var(--red);color:#fff;font-size:11px;font-weight:800}.login-help-link{text-align:center;margin-top:2px}.reset-request-panel{padding:0;overflow:hidden}.reset-request-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border)}.reset-request-row:last-child{border-bottom:0}.reset-request-row>div{display:grid;gap:3px}.reset-request-row small{color:var(--muted)}.reset-request-row form{margin:0}.empty-state{padding:18px;color:var(--muted)}.reset-request-tag{display:block;margin-top:5px;width:max-content;border-color:#9c4450;color:#ffb0b8;background:#442027}
.capacity-summary{grid-template-columns:repeat(4,minmax(150px,1fr))}
@media(max-width:900px){.reset-request-row{align-items:flex-start;flex-direction:column}.capacity-summary{grid-template-columns:1fr 1fr}}@media(max-width:520px){.capacity-summary{grid-template-columns:1fr}}

/* v0.13: frei vergebbare temporäre Passwörter; Linux-Deployment-Dateien ergänzt. */

.confirmation-open{border-color:#8a6224!important;background:#3a2a14!important;color:#ffd88a!important}


/* v0.20 – Live-Dokumentation und Audit */
.documentation-panel{margin-top:1rem}.document-list{display:grid;gap:.55rem;margin:1rem 0}.document-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem;border:1px solid var(--border,#343a46);border-radius:10px}.document-row small{display:block;margin-top:.2rem}.document-upload{display:flex;flex-wrap:wrap;gap:.8rem;align-items:end;margin-top:1rem}.document-upload label{display:grid;gap:.3rem}.danger-zone{margin-top:1.25rem;padding:1rem;border:1px solid #8e4040;border-radius:10px}.danger-zone form{display:grid;gap:.75rem}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;align-items:end}.filter-grid label{display:grid;gap:.3rem}

/* v0.21 – kompakte, klappbare Job-Dokumentation */
.documentation-collapsible{padding:0;overflow:hidden}.documentation-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;cursor:pointer;list-style:none;user-select:none}.documentation-summary::-webkit-details-marker,.document-group>summary::-webkit-details-marker{display:none}.documentation-summary>span:first-child{display:grid;gap:.2rem}.documentation-summary strong{font-size:1.15rem}.documentation-summary small,.document-group summary small{color:var(--muted)}.documentation-content{padding:0 1.1rem 1.1rem;border-top:1px solid var(--border)}.documentation-toggle,.group-toggle{color:var(--link,#8fc5ff);white-space:nowrap}.close-label{display:none}.documentation-collapsible[open]>.documentation-summary .open-label,.document-group[open]>summary .open-label{display:none}.documentation-collapsible[open]>.documentation-summary .close-label,.document-group[open]>summary .close-label{display:inline}.document-groups{display:grid;gap:.65rem;margin-top:1rem}.document-group{border:1px solid var(--border,#343a46);border-radius:10px;overflow:hidden}.document-group>summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .85rem;cursor:pointer;list-style:none;background:rgba(255,255,255,.015)}.document-group>.document-list{margin:0;padding:.65rem;border-top:1px solid var(--border)}.document-group .document-row:last-child{margin-bottom:0}@media(max-width:700px){.documentation-summary,.document-group>summary{align-items:flex-start}.documentation-content .panel-head{align-items:flex-start;flex-direction:column}}

/* v0.22: komfortablere Dokumenten-Auswahl und Bildvorschau */
.document-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.document-upload .document-kind-field{min-width:180px;flex:0 0 180px}
.document-upload .document-kind-field select{width:100%;min-height:42px}
.document-upload .document-file-field{min-width:360px;flex:1 1 460px}
.document-upload .document-file-field input[type=file]{width:100%;min-height:42px;padding:.45rem}
@media (max-width:700px){.document-upload .document-kind-field,.document-upload .document-file-field{min-width:100%;flex-basis:100%}}

.danger-link { color: #ff7b86 !important; }
.danger-link:hover { color: #ff9aa3 !important; }

/* v0.27: operatives 8-Wochen-Fenster */
.dispo-week-head.is-past, .sub-week-column.is-past > header { opacity:.62; }
.dispo-week-head.is-current, .sub-week-column.is-current > header { outline:2px solid currentColor; outline-offset:-2px; }

/* v0.28: Auftragsnotizen und @Mentions */
.note-list { display: grid; gap: 12px; margin-top: 14px; }
.note-card, .mention-card { border-left: 4px solid #64748b; }
.note-card.note-issue { border-left-color: #dc2626; }
.mention-card.mention-unread { border-left-color: #f59e0b; box-shadow: 0 0 0 1px rgba(245,158,11,.18); }
.note-head { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; }
.note-subject { margin-left: 10px; font-weight: 600; }
.note-meta { margin-top: 7px; font-size: .9rem; opacity: .75; }
.note-text { margin-top: 12px; white-space: normal; }
.note-mentions { margin-top: 12px; }
.note-create-panel textarea { width: 100%; min-height: 110px; }

/* v0.29: kompakter Kalender, stärkere Notiz-Aktion und Benachrichtigungscenter */
.notes-button{font-size:15px;font-weight:700;padding:10px 14px}
.job-week-cell{padding:0!important;min-height:0}
.job-week-summary{padding:6px 8px;border-bottom:1px solid var(--border);color:var(--muted);font-size:11px;min-height:28px}
.job-week-scroll{max-height:520px;overflow-y:auto;padding:8px;scrollbar-gutter:stable}
.job-week-scroll .job-card:last-child{margin-bottom:0}
.notification-actions{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}.notification-actions form{margin:0}

/* v0.32 Auftragsdokumentation */
.documentation-button{font-size:15px;font-weight:700;padding:10px 14px}
.documentation-summary{display:flex;align-items:center;gap:6px;margin-bottom:14px}
.project-documentation-list{gap:12px}
.project-documentation-job h2{margin-bottom:4px}
.documentation-present{border-color:#2f9e69;color:#8ee6b7}
.documentation-group{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
.documentation-group summary{cursor:pointer;color:var(--text);padding:6px 0}
.documentation-files{display:grid;gap:8px;margin-top:8px}
.documentation-file-row{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--border);border-radius:9px;padding:10px}
@media(max-width:700px){.documentation-file-row{align-items:stretch;flex-direction:column}.documentation-file-row .actions{justify-content:flex-start}}

/* v0.34 – User-Design, Tablet-App-Ansicht, Setup und kompakte Aufträge */
.nav-icon{display:none}
.project-accordion{padding:0;overflow:hidden}
.project-accordion-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 16px;cursor:pointer;list-style:none;min-height:58px}
.project-accordion-summary::-webkit-details-marker{display:none}
.project-summary-main{display:flex;align-items:center;gap:12px;min-width:0;white-space:nowrap;overflow:hidden}
.project-summary-main>strong{font-size:1.05rem;overflow:hidden;text-overflow:ellipsis}
.project-summary-meta{color:var(--muted);font-size:.9rem;overflow:hidden;text-overflow:ellipsis}
.project-summary-status{display:flex;align-items:center;gap:9px;white-space:nowrap}
.project-accordion-summary .status-pill{padding:5px 9px;border-width:1px;font-size:.85rem}
.compact-doc-count{color:var(--muted);font-weight:700}
.accordion-chevron{font-size:1.3rem;transition:transform .18s ease;color:var(--muted)}
.project-accordion[open] .accordion-chevron{transform:rotate(180deg)}
.project-accordion-body{padding:14px 18px 18px;border-top:1px solid var(--border)}
.threshold-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.setup-card h2{margin:12px 0 0}

/* Helles Design */
html.theme-light{color-scheme:light;--bg:#f3f6f9;--panel:#ffffff;--panel2:#f7f9fb;--text:#17202b;--muted:#64748b;--border:#cbd5e1;--accent:#1268b3;--accent2:#1769aa;--red:#c92a3a;--orange:#b66b08;--green:#16834c;--violet:#7651c9;--shadow:0 8px 24px rgba(15,23,42,.08)}
html.theme-light body{background:var(--bg);color:var(--text)}
html.theme-light .topbar{background:#fff}html.theme-light .brand{color:#17202b}html.theme-light .mainnav a{color:#334155}
html.theme-light .calendar-table th,html.theme-light .matrix-table th,html.theme-light .data-table th,html.theme-light .matrix-table .sticky-col,html.theme-light .sub-week-column>header{background:#eef2f6;color:#17202b}
html.theme-light .matrix-table tbody .sticky-col{background:#f8fafc}html.theme-light .job-card,html.theme-light .sub-calendar-job{background:#fff}
html.theme-light .field input:not([type=checkbox]),html.theme-light .field select,html.theme-light .field textarea,html.theme-light .login-card input,html.theme-light .filter-bar select,html.theme-light .checklist-add input{background:#fff;color:#17202b}
html.theme-light .confirmation-open{background:#fff3d6!important;color:#8a5b00!important}
@media(prefers-color-scheme:light){html.theme-system{color-scheme:light;--bg:#f3f6f9;--panel:#ffffff;--panel2:#f7f9fb;--text:#17202b;--muted:#64748b;--border:#cbd5e1;--accent:#1268b3;--accent2:#1769aa;--red:#c92a3a;--orange:#b66b08;--green:#16834c;--violet:#7651c9;--shadow:0 8px 24px rgba(15,23,42,.08)}html.theme-system body{background:var(--bg);color:var(--text)}html.theme-system .topbar{background:#fff}html.theme-system .brand{color:#17202b}html.theme-system .mainnav a{color:#334155}html.theme-system .field input:not([type=checkbox]),html.theme-system .field select,html.theme-system .field textarea,html.theme-system .login-card input,html.theme-system .filter-bar select,html.theme-system .checklist-add input{background:#fff;color:#17202b}}

/* Tablet / App-Ansicht: dieselbe Web-App, aber Navigation wie App-Kacheln */
html.layout-tablet .topbar{display:grid;grid-template-columns:1fr auto;align-items:start;gap:14px;padding:18px 24px}
html.layout-tablet .brand{font-size:24px}
html.layout-tablet .account{justify-content:flex-end}
html.layout-tablet .mainnav{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;width:100%}
html.layout-tablet .mainnav>a{position:relative;display:flex;min-height:112px;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px;border:1px solid var(--border);border-radius:22px;background:var(--panel);box-shadow:var(--shadow);font-size:15px;font-weight:750;text-align:center;color:var(--text)}
html.layout-tablet .mainnav>a:hover{text-decoration:none;transform:translateY(-1px);border-color:var(--accent)}
html.layout-tablet .nav-icon{display:block;font-size:34px;line-height:1}
html.layout-tablet .mainnav .nav-count{position:absolute;right:12px;top:10px}
html.layout-tablet .page{padding-top:22px}
@media(max-width:900px){.project-accordion-summary{align-items:flex-start;flex-direction:column;gap:8px}.project-summary-main{width:100%;white-space:normal;align-items:flex-start;flex-direction:column;gap:2px}.project-summary-status{width:100%;flex-wrap:wrap}.project-accordion-body{padding:12px}.threshold-grid{grid-template-columns:1fr}html.layout-tablet .mainnav{grid-template-columns:repeat(3,minmax(95px,1fr))}html.layout-tablet .mainnav>a{min-height:100px}}
@media(max-width:560px){html.layout-tablet .mainnav{grid-template-columns:repeat(2,minmax(110px,1fr))}.project-summary-meta{white-space:normal}}
/* Zusätzliche Light-Mode-Anpassungen für bestehende Status- und Tabellenflächen */
html.theme-light .calendar-table th,html.theme-light .matrix-table th,html.theme-light .data-table th,
html.theme-light .sub-week-column>header,html.theme-light .completed-note{background:#eef2f6;color:#17202b}
html.theme-light .resource-job{background:#e8f1fb;color:#173a5e}
html.theme-light .resource-conflict,html.theme-light .status-conflict{background:#fde8ea!important}
html.theme-light .message{background:#eef4fa}html.theme-light .message.success{background:#e7f7ed}html.theme-light .message.error{background:#fdebed}html.theme-light .message.warning{background:#fff4df}html.theme-light .message.info{background:#e9f3fb}
html.theme-light .document-group>summary{background:#f8fafc}
@media(prefers-color-scheme:light){html.theme-system .calendar-table th,html.theme-system .matrix-table th,html.theme-system .data-table th,html.theme-system .sub-week-column>header,html.theme-system .completed-note{background:#eef2f6;color:#17202b}html.theme-system .resource-job{background:#e8f1fb;color:#173a5e}html.theme-system .document-group>summary{background:#f8fafc}}

/* v0.35 – Responsive PC/iPad/iPhone, stabiler Light Mode und Release-Dialog */
html.theme-light body,html.theme-light .page,html.theme-light .project-accordion-body{background:var(--bg);color:var(--text)}
html.theme-light .panel,html.theme-light .card,html.theme-light .narrow-card,html.theme-light .login-card,html.theme-light .project-accordion,html.theme-light .release-dialog{background:var(--panel);color:var(--text)}
html.theme-light .button:not(.primary):not(.danger){background:var(--panel2);color:var(--text)}
html.theme-light .link-button{color:var(--accent2)}

.mobile-nav{display:none}
.release-overlay{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:24px;background:rgba(4,9,15,.72);backdrop-filter:blur(5px)}
.release-dialog{width:min(680px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:28px;border:1px solid var(--border);border-radius:20px;background:var(--panel);box-shadow:0 28px 80px rgba(0,0,0,.35)}
.release-kicker{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}
.release-dialog h1{font-size:2rem;margin:.25rem 0 .35rem}.release-dialog h2{font-size:1.05rem;margin:0 0 .25rem}.release-dialog p{margin-bottom:0}
.release-sections{display:grid;gap:10px;margin:20px 0}.release-sections>div{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--panel2)}
.release-continue{width:100%;min-height:46px;font-weight:750}

/* iPad / mittelgroße Touch-Geräte: Luft, größere Trefferflächen, weniger Gedränge */
@media (min-width:641px) and (max-width:1024px){
  .topbar{gap:16px;padding:14px 18px;align-items:flex-start;flex-wrap:wrap}
  .brand{font-size:20px}.mainnav{order:3;width:100%;gap:8px}.mainnav a{padding:8px 6px;min-height:40px}
  .account{margin-left:auto}.page{padding:18px}.button{min-height:44px;padding:10px 14px}
  .field input:not([type=checkbox]),.field select,.field textarea{min-height:44px;font-size:16px}
  .calendar-table,.matrix-table{min-width:860px}.job-card{padding:11px}
}

/* iPhone / schmale Smartphones: eigene Bottom-Navigation und Karten-orientierte Bedienung */
@media (max-width:640px){
  body{padding-bottom:78px;font-size:16px}
  .topbar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;min-height:58px}
  .brand{font-size:19px;overflow:hidden;text-overflow:ellipsis}.desktop-nav{display:none!important}
  .account{margin-left:auto;gap:8px;font-size:12px}.account>a,.account>form{display:none}.account>span{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .page{padding:16px 14px}.page-head{gap:10px;margin-bottom:14px}.page-head h1{font-size:2rem;line-height:1.1}
  .actions,.toolbar{gap:8px}.button{min-height:46px;padding:10px 14px;border-radius:10px}.button.primary{font-weight:700}
  .mobile-nav{position:fixed;z-index:150;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);align-items:stretch;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid var(--border);background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(16px);box-shadow:0 -8px 30px rgba(0,0,0,.2)}
  .mobile-nav>a,.mobile-more>summary{position:relative;display:flex;min-width:0;min-height:58px;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;border-radius:10px;color:var(--text);text-align:center;cursor:pointer;list-style:none}
  .mobile-nav>a:hover,.mobile-more>summary:hover{text-decoration:none;background:var(--panel2)}.mobile-nav span,.mobile-more>summary span{font-size:22px;line-height:1}.mobile-nav small,.mobile-more>summary small{font-size:10px;line-height:1.15;white-space:nowrap}
  .mobile-nav .nav-count{position:absolute;top:2px;right:14%;min-width:19px;height:19px;padding:1px 5px;font-size:11px}
  .mobile-more{position:static}.mobile-more>summary::-webkit-details-marker{display:none}.mobile-more-sheet{position:fixed;left:10px;right:10px;bottom:78px;display:grid;max-height:70vh;overflow:auto;padding:10px;border:1px solid var(--border);border-radius:16px;background:var(--panel);box-shadow:0 20px 60px rgba(0,0,0,.4)}
  .mobile-more-sheet a,.mobile-more-sheet button{display:block;width:100%;padding:13px 14px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font:inherit;text-align:left}.mobile-more-sheet form{margin:0}.mobile-more-sheet button{cursor:pointer}
  .calendar-scroll,.table-wrap{margin-left:-14px;margin-right:-14px;border-left:0;border-right:0;border-radius:0}.calendar-table,.matrix-table,.data-table{font-size:13px}
  .project-accordion-summary{padding:12px}.project-summary-status{gap:6px}.project-accordion-body{padding:10px}
  .narrow-card,.panel,.card{border-radius:12px}.field input:not([type=checkbox]),.field select,.field textarea{width:100%;min-height:46px;font-size:16px}
  .release-overlay{align-items:end;padding:0}.release-dialog{width:100%;max-height:88vh;padding:22px 18px calc(18px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;border-left:0;border-right:0;border-bottom:0}.release-dialog h1{font-size:1.7rem}.release-sections>div{padding:12px}
}
.release-actions{display:grid;grid-template-columns:auto 1fr;gap:10px}.release-notes-page{padding:20px}.release-notes-page pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);font:inherit;line-height:1.6}
@media(max-width:640px){.release-actions{grid-template-columns:1fr}.release-actions .button{width:100%}.release-notes-page{padding:14px}}

/* v0.36 – Aktionen, vollständiger Light-Mode im Dispo-Board und Mobile-Tabelle */
.icon-plus,.icon-delete{display:inline-grid;place-items:center;width:1.35em;height:1.35em;border-radius:50%;font-weight:900;line-height:1;flex:0 0 auto}
.icon-plus{background:#198754;color:#fff}.icon-delete{background:#d62839;color:#fff;font-size:1.05em}.icon-wrench{display:inline-block;line-height:1}
.action-add,.action-edit,.action-delete{display:inline-flex;align-items:center;gap:6px}
.scheduling-todo-panel{border-color:#a06b19}.scheduling-todo-job{border-color:#a06b19!important}
html.theme-light .dispo-board,html.theme-light .dispo-week-row,html.theme-light .dispo-job-row,html.theme-light .resource-grid-row{background:#fff;color:var(--text)}
html.theme-light .dispo-corner,html.theme-light .dispo-row-label,html.theme-light .resource-person{background:#f8fafc;color:#17202b}
html.theme-light .dispo-corner{background:#eef2f6}
html.theme-light .dispo-week-head{background:#eef2f6;color:#17202b}
html.theme-light .dispo-week-head.is-past{background:#f6f7f9}
html.theme-light .dispo-week-cell,html.theme-light .resource-cell{background:#fff;color:#17202b}
html.theme-light .job-week-summary,html.theme-light .resource-title-line{background:#f8fafc;color:#334155}
@media(prefers-color-scheme:light){
  html.theme-system .dispo-board,html.theme-system .dispo-week-row,html.theme-system .dispo-job-row,html.theme-system .resource-grid-row{background:#fff;color:var(--text)}
  html.theme-system .dispo-corner,html.theme-system .dispo-row-label,html.theme-system .resource-person{background:#f8fafc;color:#17202b}
  html.theme-system .dispo-corner,html.theme-system .dispo-week-head{background:#eef2f6;color:#17202b}
  html.theme-system .dispo-week-cell,html.theme-system .resource-cell{background:#fff;color:#17202b}
}
@media(max-width:640px){
  .dispo-corner,.dispo-row-label,.resource-person,.sticky-resource-name{position:static!important;left:auto!important;z-index:auto!important}
  .dispo-corner,.dispo-row-label,.resource-person{width:92px!important;min-width:92px!important;max-width:92px!important;padding:7px!important}
  .dispo-board-scroll{-webkit-overflow-scrolling:touch}
}

/* v0.37.0 */
.todo-reason{display:inline-block;margin:2px 6px 2px 0;padding:2px 7px;border-radius:999px;border:1px solid #d79a29;background:rgba(215,154,41,.12);font-size:12px}
.training-toggle-row{display:flex!important;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--border);border-radius:9px;background:var(--panel-2);font-weight:700}
.training-toggle-row input[type=checkbox]{width:20px;height:20px;margin:0}
.training-toggle-row small{margin-left:auto;max-width:58%;text-align:right}
@media(max-width:600px){.training-toggle-row{flex-wrap:wrap}.training-toggle-row small{margin-left:30px;max-width:none;text-align:left}}

/* v0.38.0 – Veranstaltungen, Ressourcen-Gruppen und Tages-Drilldown */
.week-drill-link{display:flex;flex-direction:column;justify-content:center;color:inherit;text-decoration:none;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}
.week-drill-link:hover{text-decoration:none;filter:brightness(1.08)}
.week-drill-link.is-expanded{box-shadow:inset 0 -3px 0 #4ea1ff}
.week-drill-hint{display:block;margin-top:5px;font-size:11px;color:var(--muted);font-weight:600}
.resource-group-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:#111922;border-bottom:1px solid var(--border);color:var(--text);list-style:none;cursor:default}
.resource-group-heading::-webkit-details-marker{display:none}
.resource-group-heading span{font-size:12px;color:var(--muted);font-weight:500}
.resource-group-collapsible>summary{cursor:pointer}
.resource-group-collapsible[open]>summary span::after{content:' · zuklappen'}
.resource-empty{padding:10px 12px;color:var(--muted);border-bottom:1px solid var(--border)}
.week-detail-panel{margin-top:18px;padding:0;overflow:hidden}
.week-detail-panel>.panel-head{padding:14px}
.day-board-scroll{overflow-x:auto;border-top:1px solid var(--border)}
.day-board{min-width:calc(150px + (7 * 155px));background:#151d26}
.day-grid-row{display:grid;grid-template-columns:150px repeat(7,minmax(155px,1fr))}
.day-corner,.day-head,.day-row-label,.day-resource-person,.day-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:9px;min-width:0}
.day-corner,.day-row-label,.day-resource-person{background:#151d26;font-weight:700}
.day-head{background:#1a232d;text-align:center}
.day-head small{display:block;color:var(--muted);margin-top:3px}
.day-head.weekend{background:#22202a}
.day-cell{background:#151d26;min-height:72px}
.day-resource-person span{display:block}
.day-group-heading{min-width:calc(150px + (7 * 155px))}
html.theme-light .resource-group-heading,html.theme-light .day-group-heading{background:#eef2f6;color:#17202b}
html.theme-light .day-board,html.theme-light .day-cell{background:#fff;color:#17202b}
html.theme-light .day-corner,html.theme-light .day-row-label,html.theme-light .day-resource-person{background:#f8fafc;color:#17202b}
html.theme-light .day-head{background:#eef2f6;color:#17202b}
html.theme-light .day-head.weekend{background:#f3edf7}
@media(prefers-color-scheme:light){
  html.theme-system .resource-group-heading,html.theme-system .day-group-heading{background:#eef2f6;color:#17202b}
  html.theme-system .day-board,html.theme-system .day-cell{background:#fff;color:#17202b}
  html.theme-system .day-corner,html.theme-system .day-row-label,html.theme-system .day-resource-person{background:#f8fafc;color:#17202b}
  html.theme-system .day-head{background:#eef2f6;color:#17202b}
}
@media(max-width:700px){
  .day-board{min-width:calc(92px + (7 * 138px))}
  .day-grid-row{grid-template-columns:92px repeat(7,138px)}
  .day-group-heading{min-width:calc(92px + (7 * 138px))}
  .day-corner,.day-row-label,.day-resource-person{padding:7px;font-size:12px}
}

/* v0.39 · rollenbezogene Startseite */
.home-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px;padding:22px 24px;border:1px solid var(--border);border-radius:18px;background:var(--panel)}
.home-hero h1{margin:.2rem 0 .35rem;font-size:clamp(1.8rem,4vw,2.55rem)}
.home-kicker{font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.home-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}
.home-stat-card{display:flex;flex-direction:column;gap:5px;padding:16px 18px;border:1px solid var(--border);border-radius:15px;background:var(--panel);color:var(--text);text-decoration:none}
.home-stat-card>span,.home-stat-card>small{color:var(--muted)}
.home-stat-card>strong{font-size:1.8rem;line-height:1}
.home-stat-card.needs-action{border-color:#d49a27}
.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.employee-home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-panel{margin:0;min-width:0}
.home-list{display:flex;flex-direction:column;gap:8px}
.home-list-item{display:flex;flex-direction:column;gap:3px;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:var(--panel2);color:var(--text);text-decoration:none}
.home-list-item:hover{border-color:var(--accent)}
.home-list-item span{font-size:.88rem;color:var(--muted)}
.home-list-item.attention{border-left:4px solid #d49a27}

/* v0.39 · I&C Innen-/Außendienst je Mitarbeiter */
.workmix-panel{margin-top:18px}
.workmix-target{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}
.workmix-target>span,.workmix-target>small{color:var(--muted)}
.workmix-target>strong{font-size:1.25rem}
.workmix-thresholds{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 14px}
.mix-chip{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:.78rem;font-weight:800;border:1px solid transparent}
.mix-chip.mix-green{background:rgba(47,158,68,.15);border-color:rgba(47,158,68,.35)}
.mix-chip.mix-orange{background:rgba(245,159,0,.16);border-color:rgba(245,159,0,.4)}
.mix-chip.mix-red{background:rgba(224,49,49,.15);border-color:rgba(224,49,49,.4)}
.workmix-list{display:flex;flex-direction:column;gap:9px}
.workmix-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(250px,1fr) minmax(220px,2fr);align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--border);border-left-width:5px;border-radius:12px;background:var(--panel2)}
.workmix-row.mix-green{border-left-color:#2f9e44}.workmix-row.mix-orange{border-left-color:#f59f00}.workmix-row.mix-red{border-left-color:#e03131}
.workmix-person{display:flex;flex-direction:column;gap:2px}.workmix-person small{color:var(--muted)}
.workmix-values{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;font-size:.88rem}.workmix-values strong{min-width:78px;text-align:right}
.workmix-bar{height:15px;display:flex;overflow:hidden;border-radius:999px;background:var(--border);position:relative}
.workmix-indoor{height:100%;background:#748ffc}.workmix-outdoor{height:100%;background:#ff922b}
.workmix-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--muted)}

@media (max-width:900px){
  .home-stat-grid{grid-template-columns:1fr 1fr}
  .home-grid,.employee-home-grid{grid-template-columns:1fr}
  .workmix-row{grid-template-columns:1fr;gap:8px}
  .workmix-values{justify-content:flex-start}
  .workmix-values strong{text-align:left}
  .workmix-target{align-items:flex-start}
}
@media (max-width:600px){
  .home-hero{padding:16px;flex-direction:column}
  .home-stat-grid{grid-template-columns:1fr 1fr;gap:10px}
  .home-stat-card{padding:13px}.home-stat-card>strong{font-size:1.5rem}
  .workmix-row{padding:11px}
  .workmix-values{gap:8px 12px}
}
.workmix-row.mix-none{border-left-color:var(--border);opacity:.8}

/* v0.40 · Pauschale + korrigierte Innen/Außen-Quote */
.workmix-absent{height:100%;background:#adb5bd}
.home-personal-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}
.personal-metric{display:flex;flex-direction:column;gap:6px;margin:0;color:var(--text);text-decoration:none;border-left:5px solid var(--border)}
.personal-metric>span,.personal-metric>small{color:var(--muted)}
.personal-metric>strong{font-size:1.65rem;line-height:1.1}.personal-metric>strong small{font-size:.7rem;color:var(--muted)}
.personal-metric.mix-green{border-left-color:#2f9e44}.personal-metric.mix-orange{border-left-color:#f59f00}.personal-metric.mix-red{border-left-color:#e03131}
.allowance-head{align-items:center}.period-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.period-nav>strong{font-size:1.1rem}
.allowance-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.allowance-summary strong{font-size:2rem}
.allowance-list{display:flex;flex-direction:column;gap:8px}.allowance-list-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--border);border-radius:11px;background:var(--panel2);color:var(--text);text-decoration:none}.allowance-list-row:hover{border-color:var(--accent)}.allowance-list-row>span{display:flex;flex-direction:column;gap:2px}.allowance-list-row small{color:var(--muted)}
.allowance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.allowance-calendar-panel{padding:14px}.allowance-weekdays,.allowance-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.allowance-weekdays{margin-bottom:6px}.allowance-weekdays span{text-align:center;color:var(--muted);font-size:.78rem;font-weight:800}
.allowance-day-form{margin:0}.allowance-day{width:100%;aspect-ratio:1.25/1;min-height:58px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text);font:inherit;font-weight:800;cursor:default}.allowance-day-form .allowance-day{cursor:pointer}.allowance-day-form .allowance-day:hover{border-color:var(--accent);transform:translateY(-1px)}.allowance-day.is-marked{background:rgba(47,158,68,.18);border-color:#2f9e44;color:var(--text)}.allowance-day.is-marked b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#2f9e44;color:#fff}.allowance-day.is-outside{opacity:.22}.allowance-day.is-weekend:not(.is-marked):not(.is-suggested){background:#f4ecd9;border-color:#d7c8a6;color:#2b2b2b}html.theme-dark .allowance-day.is-weekend:not(.is-marked):not(.is-suggested){background:#3a3428;border-color:#6c6049;color:var(--text)}.allowance-day.is-today{box-shadow:inset 0 0 0 2px var(--accent)}
.allowance-year-grid{display:grid;grid-template-columns:repeat(12,minmax(54px,1fr));gap:8px}.allowance-month-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 6px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text);text-decoration:none}.allowance-month-card strong{font-size:1.25rem}.allowance-month-card span{color:var(--muted);font-size:.76rem}.allowance-month-card.is-current{border-color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}
@media(max-width:900px){.allowance-year-grid{grid-template-columns:repeat(6,1fr)}}
@media(max-width:640px){.home-personal-metrics{grid-template-columns:1fr}.period-nav{display:grid;grid-template-columns:1fr 1fr}.period-nav>strong{grid-column:1/-1;grid-row:1;text-align:center}.period-nav .button{font-size:.8rem;padding:8px}.allowance-calendar-panel{padding:8px}.allowance-weekdays,.allowance-calendar{gap:3px}.allowance-day{min-height:44px;border-radius:7px;font-size:.9rem}.allowance-day.is-marked b{width:18px;height:18px;font-size:.72rem}.allowance-year-grid{grid-template-columns:repeat(4,1fr)}.allowance-head{align-items:flex-start}.allowance-head>.button{width:100%}}

/* v0.41.0 – Landing-Page, Pauschalen-Prüfung und Monatsend-Erinnerung */
.home-stat-card.is-critical{border-color:#e03131;box-shadow:inset 0 0 0 1px rgba(224,49,49,.18)}
.dispatcher-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.dispatcher-home-grid{margin-bottom:16px}
.dispatcher-quicklinks{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px}
.dispatcher-personal-strip{margin-top:16px}
.home-list-item.mix-orange{border-left:4px solid #f59f00}.home-list-item.mix-red{border-left:4px solid #e03131}
.allowance-tabs{display:flex;gap:8px;margin:0 0 14px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--panel);width:max-content;max-width:100%}
.allowance-tabs a{padding:9px 14px;border-radius:9px;color:var(--text);text-decoration:none;font-weight:800}
.allowance-tabs a.is-active{background:var(--accent);color:#fff}
.allowance-legend{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding:10px 14px;font-size:.86rem;color:var(--muted)}
.legend-swatch{display:inline-block;width:15px;height:15px;border-radius:4px;margin-right:6px;vertical-align:-2px;border:1px solid var(--border)}
.legend-swatch.suggested{background:#7b8490}.legend-swatch.confirmed{background:#2f9e44}
.allowance-day.is-suggested{background:#6d7580;color:#fff;border-color:#8a939e}
.allowance-day.is-suggested:hover{filter:brightness(1.08)}
html.theme-light .allowance-day.is-suggested{background:#d7dce2;color:#17202b;border-color:#aeb6c0}
@media(prefers-color-scheme:light){html.theme-system .allowance-day.is-suggested{background:#d7dce2;color:#17202b;border-color:#aeb6c0}}
.allowance-reminder-card{border-left:5px solid #f59f00}
@media(max-width:900px){.dispatcher-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dispatcher-quicklinks{align-items:flex-start;flex-direction:column}}
@media(max-width:640px){.dispatcher-stat-grid{grid-template-columns:1fr 1fr}.allowance-tabs{width:100%}.allowance-tabs a{flex:1;text-align:center}.dispatcher-quicklinks .actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.dispatcher-quicklinks .button{justify-content:center}}
.allowance-reminder-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;border-left:5px solid #f59f00}.allowance-reminder-banner p{margin:.25rem 0 0}.allowance-reminder-banner .actions{flex-wrap:nowrap}
@media(max-width:640px){.allowance-reminder-banner{align-items:flex-start;flex-direction:column}.allowance-reminder-banner .actions{width:100%;flex-wrap:wrap}}


/* v0.42.0 – PL-Prognose, Auftragsfortschritt und HdF-Regel */
.project-progress-chip{display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:5px 9px;border-radius:999px;background:rgba(45,164,78,.14);border:1px solid rgba(45,164,78,.34);font-weight:800;font-size:.86rem}
.project-progress-chip.hdf-capped{background:rgba(212,154,39,.14);border-color:rgba(212,154,39,.5)}
.pm-forecast-panel{margin:16px 0}
.pm-forecast-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pm-forecast-card{padding:14px;border:1px solid var(--border);border-radius:13px;background:var(--panel);display:flex;flex-direction:column;gap:7px}
.pm-forecast-card>span,.pm-forecast-card>small{color:var(--muted)}
.pm-forecast-card>strong{font-size:1.55rem}
.pm-progress-track{height:8px;border-radius:999px;background:var(--soft);overflow:hidden}
.pm-progress-track>span{display:block;height:100%;border-radius:999px;background:currentColor}
.pm-forecast-card.capacity-air{color:#2b8a3e}.pm-forecast-card.capacity-normal{color:#d49a27}.pm-forecast-card.capacity-high{color:#e67700}.pm-forecast-card.capacity-full,.pm-forecast-card.capacity-over{color:#e03131}
@media(max-width:800px){.pm-forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.pm-forecast-grid{grid-template-columns:1fr}.pm-forecast-card{padding:11px}.project-progress-chip{min-width:46px}}

/* v0.44.0 – Personalraster, Pauschalen-AJAX und Fahrzeuge */
.data-table.employee-table td{vertical-align:middle}
.employee-actions{vertical-align:middle!important;white-space:nowrap}
.employee-actions .actions{align-items:center;flex-wrap:wrap;margin:0}
.allowance-day[disabled]{opacity:.72;cursor:wait}

/* Fahrzeugmodul 0.46 */
.license-plate{display:inline-flex;align-items:center;justify-content:center;background:#f7f7f4;color:#111;border:2px solid #222;border-radius:5px;padding:.2rem .45rem;font-weight:800;letter-spacing:.06em;white-space:nowrap;box-shadow:inset 0 0 0 1px #bbb}.license-plate:before{content:"🇪🇺";font-size:.68rem;margin-right:.28rem}.license-plate-large{font-size:1.25rem;padding:.4rem .7rem}.license-plate.mini{font-size:.72rem;padding:.08rem .25rem;margin-top:.2rem}.cell-sub{display:block;color:var(--muted);margin-top:.15rem}.vehicle-assignment-form select{min-width:230px}.vehicle-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;margin-bottom:1rem}.vehicle-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.vehicle-card-head h2{margin:.2rem 0}.vehicle-facts{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1rem 0}.vehicle-facts>div{background:var(--surface-2,#101923);padding:.75rem;border-radius:.6rem}.vehicle-facts span{display:block;color:var(--muted);font-size:.82rem}.vehicle-note{border-left:3px solid var(--accent,#2684ff);padding-left:.75rem}.tuv-badge{display:inline-block;padding:.25rem .45rem;border-radius:.45rem;font-weight:700}.tuv-ok,.tuv-text-ok{color:#43c06b}.tuv-warning,.tuv-text-warning{color:#e6b94c}.tuv-critical,.tuv-text-critical,.tuv-overdue,.tuv-text-overdue{color:#ff6666}.tuv-unknown,.tuv-text-unknown{color:var(--muted)}.badge.warn{border-color:#d9a620;color:#d9a620}.badge.danger{border-color:#e05454;color:#e05454}.vehicle-request-panel{margin-bottom:1rem}.vehicle-request-panel .home-list-item{display:flex;justify-content:space-between;align-items:center;gap:1rem}.vehicle-calendar-legend{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.vehicle-calendar-legend span{padding:.3rem .55rem;border-radius:.45rem;font-size:.82rem;font-weight:700}.vehicle-calendar-wrap{overflow:auto;border:1px solid var(--border,#33404d);border-radius:.7rem;max-width:100%}.vehicle-calendar{border-collapse:separate;border-spacing:0;min-width:1600px;width:100%;font-size:.78rem}.vehicle-calendar th,.vehicle-calendar td{border-right:1px solid var(--border,#33404d);border-bottom:1px solid var(--border,#33404d);padding:.35rem;text-align:center;min-width:48px;height:46px}.vehicle-calendar thead th{position:sticky;top:0;z-index:3;background:var(--surface,#151f29)}.vehicle-calendar thead th span,.vehicle-calendar thead th strong{display:block}.vehicle-calendar .vehicle-sticky{position:sticky;left:0;z-index:2;background:var(--surface,#151f29);min-width:160px;text-align:left}.vehicle-calendar thead .vehicle-sticky{z-index:4}.vehicle-calendar .vehicle-sticky>*{display:block}.vc-assigned{background:rgba(50,126,220,.22)}.vc-free{background:rgba(55,180,100,.20)}.vc-booked{background:rgba(149,91,220,.27)}.vc-pending{background:rgba(220,166,55,.25)}.vc-blocked{background:rgba(200,70,70,.24)}.vehicle-calendar td span{display:block;max-width:54px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:auto}.my-vehicle-home{margin-bottom:1rem}.my-vehicle-home-list>div{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.my-vehicle-home-list>div>span:last-child{color:var(--muted)}

/* v0.48.1 – Systemzeit ohne Tech-Hintergrund */
.home-hero-tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.system-clock{min-width:176px;padding:9px 13px;border:1px solid rgba(90,169,255,.42);border-radius:9px;background:rgba(5,18,34,.88);box-shadow:inset 0 0 18px rgba(41,140,255,.07);font-variant-numeric:tabular-nums;text-align:right;letter-spacing:.06em}
.system-clock span{display:block;color:#69b7ff;font-size:.62rem;font-weight:800;letter-spacing:.19em}
.system-clock strong{display:block;color:#e7f5ff;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.42rem;line-height:1.18;text-shadow:0 0 12px rgba(69,166,255,.34)}
.system-clock small{display:block;color:#8da8c4;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}
html.icons-2d .nav-icon{filter:grayscale(1);text-shadow:none;transform:none}
html.icons-3d .nav-icon{filter:drop-shadow(0 2px 2px rgba(0,0,0,.35)) saturate(1.12)}
.allowance-summary>div{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.allowance-summary>div span{font-weight:700}.allowance-list-row>div{display:block}.allowance-list-row>div strong{white-space:normal}
@media(max-width:700px){.home-hero-tools{width:100%;justify-content:flex-end}.system-clock{flex:0 0 auto;text-align:right}}

/* v0.49.0 – Fahrzeug-Zeitraum, Checklisten-UX */
.vehicle-request-form{max-width:820px;margin:0 auto}
.compact-head{margin-bottom:.8rem}
.range-summary{padding:.75rem 1rem;border:1px solid var(--border);border-radius:.65rem;background:var(--soft);font-weight:800;margin:.35rem 0 .7rem}
.range-calendar{border:1px solid var(--border);border-radius:.8rem;padding:.8rem;background:var(--panel)}
.range-calendar-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;margin-bottom:.7rem}.range-calendar-head strong{text-align:center;font-size:1.05rem}
.range-weekdays,.range-days{display:grid;grid-template-columns:repeat(7,minmax(38px,1fr));gap:.28rem}.range-weekdays span{text-align:center;color:var(--muted);font-size:.78rem;font-weight:800;padding:.25rem}
.range-day{border:1px solid transparent;border-radius:.55rem;background:var(--soft);color:inherit;min-height:42px;cursor:pointer;font-weight:700}.range-day:hover{border-color:var(--accent)}
.range-day.range-between{background:rgba(46,134,222,.16);border-radius:.25rem}.range-day.range-start,.range-day.range-end{background:var(--accent);color:#fff;border-color:var(--accent)}
.checklist-toggle-form{margin:0}.check-toggle:disabled{opacity:.55;cursor:wait}.checklist-completed-meta:empty{display:none}
@media(max-width:600px){.range-weekdays,.range-days{gap:.15rem}.range-day{min-height:38px;padding:.25rem}}


/* v0.50.0 – Job-Fortschritt und PL-Auslastung */
.job-lines > a {
  grid-template-columns: minmax(220px, 1.6fr) minmax(145px, .75fr) minmax(210px, 1.2fr) auto;
  align-items: center;
}
.job-progress-chip {
  justify-self: end;
  min-width: 58px;
  padding: .32rem .55rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--panel);
  font-weight: 800;
  text-align: center;
  white-space: nowrap;
}
.job-line-completed .job-progress-chip { opacity: .8; }
.pl-capacity-summary { margin-bottom: 1rem; }
.pl-future-weeks { margin-bottom: 1.25rem; }
@media (max-width: 900px) {
  .job-lines > a { grid-template-columns: 1fr auto; gap: .3rem .7rem; }
  .job-lines > a > strong, .job-lines > a > .job-line-status { grid-column: 1 / 2; }
  .job-lines > a > span:nth-of-type(1) { grid-column: 1 / 2; }
  .job-progress-chip { grid-column: 2; grid-row: 1 / span 3; align-self: center; }
}

/* v0.51.0 – zentrale PL-Vertretung & lesbarer Zeitraum-Kalender */
.pm-representation-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;border-left:4px solid var(--accent)}
.pm-representation-panel>div:first-child{min-width:0}.pm-representation-panel strong{display:block;font-size:1.05rem;margin:.15rem 0}.pm-representation-panel p{margin:0}.pm-representation-panel form{margin:0}
html.theme-light .range-calendar{background:#fff;color:#17202b}
html.theme-light .range-calendar-head strong{color:#17202b}
html.theme-light .range-weekdays span{color:#64748b}
html.theme-light .range-day{background:#f1f5f9;color:#17202b;border-color:#dbe3ec}
html.theme-light .range-day:hover{background:#e6f0fb;border-color:var(--accent)}
html.theme-light .range-day.range-between{background:#d9eafd;color:#173a5e;border-color:#c4def8}
html.theme-light .range-day.range-start,html.theme-light .range-day.range-end{background:var(--accent);color:#fff;border-color:var(--accent)}
html.theme-light .range-summary{background:#f8fafc;color:#17202b}
@media(prefers-color-scheme:light){
  html.theme-system .range-calendar{background:#fff;color:#17202b}
  html.theme-system .range-calendar-head strong{color:#17202b}
  html.theme-system .range-weekdays span{color:#64748b}
  html.theme-system .range-day{background:#f1f5f9;color:#17202b;border-color:#dbe3ec}
  html.theme-system .range-day:hover{background:#e6f0fb;border-color:var(--accent)}
  html.theme-system .range-day.range-between{background:#d9eafd;color:#173a5e;border-color:#c4def8}
  html.theme-system .range-day.range-start,html.theme-system .range-day.range-end{background:var(--accent);color:#fff;border-color:var(--accent)}
  html.theme-system .range-summary{background:#f8fafc;color:#17202b}
}
@media(max-width:760px){.pm-representation-panel{align-items:stretch;flex-direction:column}.pm-representation-panel .actions{width:100%}.pm-representation-panel .actions>*{flex:1}}

/* v0.54.0 – Mittagspausen-Poll & 14-Tage-Vertretungsrückblick */
.lunch-poll{margin-bottom:1rem}
.lunch-poll-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem}
.lunch-choice-wrap{min-width:0}.lunch-vote-form{margin:0}
.lunch-choice{width:100%;min-height:82px;text-align:left;border:1px solid var(--border);border-radius:.75rem;background:var(--soft);color:inherit;padding:.75rem .85rem;cursor:pointer;transition:.15s ease}
.lunch-choice:hover{border-color:var(--accent);transform:translateY(-1px)}
.lunch-choice.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent);background:color-mix(in srgb,var(--accent) 12%,var(--soft))}
.lunch-choice-top{display:flex;justify-content:space-between;gap:.6rem;align-items:center}.lunch-choice-top b{white-space:nowrap;color:var(--accent)}
.lunch-choice small{display:block;color:var(--muted);margin-top:.45rem;line-height:1.35}
.lunch-menu-link{display:inline-block;margin:.4rem .2rem 0;font-size:.9rem;font-weight:700;text-decoration:none}.lunch-menu-link:hover{text-decoration:underline}.lunch-clear-form{margin:.75rem 0 0;text-align:right}.lunch-clear-form .link-button{color:var(--muted)}
.representation-review-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;border-left:4px solid #6f8da8}.representation-review-panel strong{display:block}.representation-review-links{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
.lunch-station-create{display:flex;align-items:end;gap:.8rem;flex-wrap:wrap}.lunch-station-create label{min-width:180px;flex:1}.lunch-admin-list{display:grid;gap:.65rem}.lunch-admin-row{display:grid;grid-template-columns:minmax(200px,1fr) minmax(260px,1.4fr) 110px auto auto;gap:.65rem;align-items:center;margin:0}.lunch-admin-row input[type=text],.lunch-admin-row input[type=url],.lunch-admin-row input:not([type]){width:100%}.checkbox-line{display:flex;gap:.4rem;align-items:center;white-space:nowrap}
@media(max-width:760px){.representation-review-panel{align-items:stretch;flex-direction:column}.representation-review-links{justify-content:stretch}.representation-review-links .button{flex:1}.lunch-admin-row{grid-template-columns:1fr}.lunch-admin-row .checkbox-line,.lunch-admin-row .button{grid-column:auto}}

/* v0.55.0 – SUB-Einsatzplanung, Mittagspausen-Statistik */
.sub-plan-group{border:1px solid var(--border);border-radius:14px;padding:16px;margin:0 0 16px;background:var(--panel2)}
.sub-plan-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.sub-plan-head small,.sub-slot-card small{display:block;color:var(--muted);margin-top:4px}
.sub-slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.sub-slot-card{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--panel)}.sub-slot-card select{width:100%;margin-top:8px}
.sub-slot-add{margin:12px 0 18px}.sub-slot-add label{min-width:180px}.sub-slot-list{display:grid;gap:8px}
.lunch-stats-list{display:grid;gap:8px}.lunch-stat-row{display:flex;justify-content:space-between;gap:16px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
@media(max-width:760px){.sub-plan-head,.lunch-stat-row{display:block}.sub-plan-head .actions{margin-top:10px}}

/* v0.56.0 – Range-Picker Theme-Fix & Feiertagsbestätigung */
.date-range-picker{background:var(--panel);color:var(--text)}
.date-range-picker .range-day.in-range,.date-range-picker .range-day.range-preview{background:rgba(46,134,222,.18);border-color:rgba(77,163,255,.28);color:var(--text)}
.date-range-picker .range-day.range-start,.date-range-picker .range-day.range-end{background:var(--accent2);color:#fff;border-color:var(--accent2)}
.date-range-picker .range-day.outside{opacity:.5}
html.theme-light .date-range-picker{background:#fff;color:#17202b;border-color:#cfd9e5}
html.theme-light .date-range-picker .range-toolbar strong,html.theme-light .date-range-picker .range-month-title{color:#17202b}
html.theme-light .date-range-picker .range-mode-hint,html.theme-light .date-range-picker .range-weekdays span{color:#64748b}
html.theme-light .date-range-picker .range-nav{background:#f8fafc;color:#17202b;border-color:#cfd9e5}
html.theme-light .date-range-picker .range-day{background:#f1f5f9;color:#17202b;border:1px solid #dbe3ec}
html.theme-light .date-range-picker .range-day:hover{background:#e6f0fb;border-color:var(--accent)}
html.theme-light .date-range-picker .range-day.in-range,html.theme-light .date-range-picker .range-day.range-preview{background:#d9eafd;color:#173a5e;border-color:#c4def8}
html.theme-light .date-range-picker .range-day.range-start,html.theme-light .date-range-picker .range-day.range-end{background:var(--accent2);color:#fff;border-color:var(--accent2);opacity:1}
html.theme-light .date-range-trigger{background:#fff!important;color:#17202b!important;border-color:#cfd9e5!important}
@media(prefers-color-scheme:light){
  html.theme-system .date-range-picker{background:#fff;color:#17202b;border-color:#cfd9e5}
  html.theme-system .date-range-picker .range-toolbar strong,html.theme-system .date-range-picker .range-month-title{color:#17202b}
  html.theme-system .date-range-picker .range-mode-hint,html.theme-system .date-range-picker .range-weekdays span{color:#64748b}
  html.theme-system .date-range-picker .range-nav{background:#f8fafc;color:#17202b;border-color:#cfd9e5}
  html.theme-system .date-range-picker .range-day{background:#f1f5f9;color:#17202b;border:1px solid #dbe3ec}
  html.theme-system .date-range-picker .range-day:hover{background:#e6f0fb;border-color:var(--accent)}
  html.theme-system .date-range-picker .range-day.in-range,html.theme-system .date-range-picker .range-day.range-preview{background:#d9eafd;color:#173a5e;border-color:#c4def8}
  html.theme-system .date-range-picker .range-day.range-start,html.theme-system .date-range-picker .range-day.range-end{background:var(--accent2);color:#fff;border-color:var(--accent2);opacity:1}
  html.theme-system .date-range-trigger{background:#fff!important;color:#17202b!important;border-color:#cfd9e5!important}
}
.holiday-confirm-overlay{position:fixed;inset:0;z-index:1000;background:rgba(4,10,18,.72);display:grid;place-items:center;padding:1.2rem;backdrop-filter:blur(3px)}
.holiday-confirm-dialog{width:min(620px,100%);display:grid;grid-template-columns:auto 1fr;gap:1rem;background:var(--panel);border:1px solid var(--orange);border-radius:14px;padding:1.25rem;box-shadow:0 20px 70px rgba(0,0,0,.45)}
.holiday-confirm-icon{font-size:2rem;line-height:1}.holiday-confirm-dialog h2{margin-bottom:.65rem}.holiday-confirm-list{margin:.6rem 0 1rem;padding-left:1.25rem}.holiday-confirm-list li{margin:.35rem 0}
html.theme-light .holiday-confirm-dialog{background:#fff;color:#17202b}
@media(prefers-color-scheme:light){html.theme-system .holiday-confirm-dialog{background:#fff;color:#17202b}}
@media(max-width:600px){.holiday-confirm-dialog{grid-template-columns:1fr}.holiday-confirm-icon{display:none}}

/* v0.62.0 */
.sub-staff-inline{margin:1rem 0;border:1px solid var(--border-color,#d6dde5);border-radius:12px;padding:.9rem;background:var(--panel-bg,var(--card-bg,#fff))}.sub-staff-inline h3{margin:0}.chain-action-row{align-items:center}.chain-action-row form{margin:0}.chain-action-row .button{white-space:nowrap}


/* v0.63.0 */
/* Dropdowns: global größer und auf Touch-Geräten leichter bedienbar. */
select{min-height:42px;padding:9px 36px 9px 12px;border-radius:8px;font-size:16px;line-height:1.2}
/* SUB-Personalbedarf: Eingaben links, Aktion wie „Zuordnen“ rechts. */
.sub-slot-add{display:flex;align-items:flex-end;gap:10px;width:100%;margin:12px 0 18px}.sub-slot-add label{min-width:0}.sub-slot-add label:first-of-type{flex:0 1 360px}.sub-slot-add label:nth-of-type(2){flex:0 0 110px}.sub-slot-add .button{margin-left:auto;white-space:nowrap;min-height:42px}
@media(max-width:700px){.sub-slot-add{flex-direction:column;align-items:stretch}.sub-slot-add label:first-of-type,.sub-slot-add label:nth-of-type(2){flex:1 1 auto;width:100%}.sub-slot-add .button{margin-left:0;width:100%}}

/* v0.64.0: PL capacity horizon through end of calendar year; existing capacity grids reused. */

/* v0.66.0: Personalbedarf sofort sichtbar */
.staffing-warning{display:inline-flex;align-items:center;justify-content:center;margin-left:.3rem;font-size:1.05em;line-height:1;color:#7a1018;filter:saturate(1.15);vertical-align:baseline}.staffing-ratio{display:inline-flex;align-items:center;margin-left:.35rem;padding:.12rem .48rem;border-radius:999px;border:1px solid var(--border);font-size:.78em;line-height:1.25;vertical-align:.12em}.staffing-ratio-open{border-color:#b52835;background:#fff3c4;color:#7a1018}.staffing-ratio-complete{border-color:var(--green);color:var(--green)}

/* v0.72.0 – saubere Auswahlfelder und Wochen-/Tagesumschalter */
.field-choice-block{display:grid;gap:8px}.field-choice-title{font-weight:600}
.field-choice-block #id_work_mode{display:grid;gap:8px}
.field-choice-block #id_work_mode>div{display:block}
.field-choice-block #id_work_mode label,.inline-choice{display:flex;align-items:center;gap:10px;min-height:40px;font-weight:500;cursor:pointer;width:max-content;max-width:100%}
.field-choice-block input[type=radio],.field-choice-block input[type=checkbox],.inline-choice input[type=checkbox]{width:20px;height:20px;margin:0;flex:0 0 auto}
.calendar-view-switch{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin:-4px 0 14px}.calendar-view-switch label{font-weight:700}.calendar-view-switch select{min-width:180px;min-height:42px;padding:8px 34px 8px 12px;border:1px solid var(--border);border-radius:9px;background:var(--panel);color:var(--text);font:inherit}
.day-view-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
html.theme-light .calendar-view-switch select{background:#fff;color:#17202b}
@media(prefers-color-scheme:light){html.theme-system .calendar-view-switch select{background:#fff;color:#17202b}}
@media(max-width:700px){.calendar-view-switch{justify-content:stretch}.calendar-view-switch select{flex:1;min-width:0}.day-view-actions{width:100%;justify-content:stretch}.day-view-actions .button{flex:1 1 140px}}


/* v0.73.0 – kompaktere Disposition und sauber ausgerichtete Formularoptionen */
.field-choice-block #id_work_mode>div>label{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;width:100%!important;min-height:42px!important}
.field-choice-block #id_work_mode input[type=radio]{order:-1!important;position:static!important;transform:none!important;margin:0!important}
.inline-choice{justify-content:flex-start!important;width:100%!important}.inline-choice input[type=checkbox]{order:-1!important;position:static!important;transform:none!important}
.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-bar>label:not(.filter-own-choice){margin-right:-2px}.filter-own-choice{display:inline-flex;align-items:center;gap:8px;min-height:42px;font-weight:600;cursor:pointer;white-space:nowrap}.filter-own-choice input{width:18px;height:18px;margin:0}
.compact-alert-panel{padding:0!important;overflow:hidden}.compact-alert-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;padding:16px 18px;font-size:1.15rem;font-weight:800;list-style:none}.compact-alert-summary::-webkit-details-marker{display:none}.compact-alert-summary::after{content:'▾';color:var(--muted);transition:transform .15s ease}.compact-alert-panel[open] .compact-alert-summary::after{transform:rotate(180deg)}.count-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 9px;border:1px solid currentColor;border-radius:999px;font-size:.88rem}.compact-alert-body{padding:0 18px 18px}.compact-alert-body>.muted{margin-top:0}.compact-alert-panel+ .compact-alert-panel{margin-top:10px}
.note-meta-row{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.note-meta-row .field{flex:1 1 260px;min-width:220px}.note-meta-row select{width:100%}.note-text-field textarea{width:100%;min-height:130px}.note-create-form{gap:14px}
@media(max-width:700px){.filter-bar{align-items:stretch}.filter-bar select{width:100%;min-width:0}.filter-own-choice{width:100%}.note-meta-row{display:grid;grid-template-columns:1fr}.note-meta-row .field{min-width:0}}

/* v0.74.0 – Mittagspausen-Verwaltung wieder im Setup + Abstimmung ohne Scrollsprung */
.setup-shortcut-card{margin-bottom:1rem}
.setup-shortcut-card .panel-head{margin:0}
.lunch-admin-row-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:center}
.lunch-delete-form{margin:0}
.lunch-clear-form[hidden]{display:none!important}
@media(max-width:760px){.lunch-admin-row-wrap{grid-template-columns:1fr}.lunch-delete-form .button{width:100%}}

/* v0.75.0 – optionale Speisekarten-Links für Mittagspausen-Stationen */


/* v0.76 – Pilotbetrieb, große Auftrag-Aktionen und persönliche UI-Profile */
.project-head .actions>.button,.project-head .actions>.project-action-add,.project-head .actions>.project-action-edit,.project-head .actions>.project-action-delete{font-size:15px;font-weight:750;padding:10px 14px;min-height:42px;border-radius:9px}
.project-action-add{background:#16833d!important;border-color:#16833d!important;color:#fff!important}.project-action-add:hover{background:#116a31!important;border-color:#28a657!important}
.project-action-edit{background:#1d6fd1!important;border-color:#1d6fd1!important;color:#fff!important}.project-action-edit:hover{background:#185eb1!important;border-color:#4d93e8!important}
.project-action-delete{background:#bd2c3a!important;border-color:#bd2c3a!important;color:#fff!important}.project-action-delete:hover{background:#a42431!important;border-color:#e14a58!important}
.assignment-admin-actions{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.assignment-admin-actions form{margin:0}.confirm-for-employee{border-color:#2f7b4d!important;background:#183d28!important;color:#b8f3cc!important}
@media(max-width:640px){.project-head .actions{display:grid;grid-template-columns:1fr;width:100%}.project-head .actions>.button,.project-head .actions>a{width:100%;justify-content:center}.assignment-admin-actions{width:100%;justify-content:flex-start}.assignment-admin-actions .button{width:100%}}

/* UI-Profil Blossom */
html.ui-blossom{--accent:#d979a7;--accent2:#b95c8c;--violet:#c58be4}
html.ui-blossom body{background-image:radial-gradient(circle at 12% 0%,rgba(217,121,167,.10),transparent 32%),radial-gradient(circle at 95% 12%,rgba(197,139,228,.08),transparent 28%)}
html.ui-blossom .panel,html.ui-blossom .project-card,html.ui-blossom .narrow-card,html.ui-blossom .login-card{border-radius:18px}
html.ui-blossom .button{border-radius:12px}html.ui-blossom .topbar{border-bottom-color:color-mix(in srgb,var(--accent) 45%,var(--border))}
html.theme-light.ui-blossom{--bg:#fff8fb;--panel:#fff;--panel2:#fff0f6;--text:#3f2734;--muted:#826878;--border:#ead4df;--accent:#c85c91;--accent2:#ae477a}

/* UI-Profil Neon */
html.ui-neon{--bg:#0b0f12;--panel:#12181c;--panel2:#182126;--text:#eef7f2;--muted:#91a39a;--border:#314037;--accent:#8ee637;--accent2:#5fae18;--green:#8ee637}
html.ui-neon .topbar{box-shadow:inset 0 -2px 0 rgba(142,230,55,.35)}html.ui-neon .panel,html.ui-neon .project-card,html.ui-neon .narrow-card{border-radius:7px}html.ui-neon .button{border-radius:6px;text-transform:none}html.ui-neon .status-pill{border-radius:6px}
html.theme-light.ui-neon{--bg:#f4f7f4;--panel:#fff;--panel2:#edf3ee;--text:#172019;--muted:#5b6e60;--border:#c9d4cb;--accent:#4f990d;--accent2:#397609}

/* UI-Profil Bronze */
html.ui-bronze{--bg:#17110c;--panel:#241a12;--panel2:#302218;--text:#f2e4c8;--muted:#bca886;--border:#6b5031;--accent:#d39a45;--accent2:#9b6427;--orange:#d39a45;--shadow:0 8px 30px rgba(0,0,0,.32)}
html.ui-bronze body{background-image:radial-gradient(circle at 20% 0%,rgba(211,154,69,.09),transparent 28%),linear-gradient(rgba(255,255,255,.008) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.008) 1px,transparent 1px);background-size:auto,24px 24px,24px 24px}
html.ui-bronze .panel,html.ui-bronze .project-card,html.ui-bronze .narrow-card,html.ui-bronze .login-card{border:1px solid #765936;box-shadow:inset 0 0 0 1px rgba(211,154,69,.06),var(--shadow)}html.ui-bronze .button{border-color:#765936;background:linear-gradient(#3a2a1c,#2a1d14);color:#f2e4c8}html.ui-bronze .topbar{background:#1e150e;border-bottom-color:#765936}html.ui-bronze .status-pill{border-radius:4px}
html.theme-light.ui-bronze{--bg:#f4ead9;--panel:#fff9ed;--panel2:#ead9bd;--text:#3b2919;--muted:#756149;--border:#b89a6c;--accent:#a4661f;--accent2:#86501b}

/* UI-Profil Ember */
html.ui-ember{--bg:#0c1014;--panel:#151b20;--panel2:#1d252c;--text:#edf2f5;--muted:#95a2aa;--border:#37434b;--accent:#ff7a18;--accent2:#d65d00;--orange:#ff7a18}
html.ui-ember .topbar{box-shadow:inset 0 -3px 0 rgba(255,122,24,.32)}html.ui-ember .panel,html.ui-ember .project-card,html.ui-ember .narrow-card{border-left-width:3px}html.ui-ember .button{border-radius:5px}html.ui-ember .status-pill{border-radius:999px}
html.theme-light.ui-ember{--bg:#f4f6f7;--panel:#fff;--panel2:#edf0f2;--text:#182027;--muted:#60707a;--border:#ccd4d9;--accent:#e76505;--accent2:#bd4f00}

.dispatcher-confirmation-panel{margin-top:1rem}.dispatcher-confirmation-row{display:flex!important;align-items:center;justify-content:space-between;gap:1rem}.dispatcher-confirmation-row>a{display:grid;gap:.2rem;min-width:0;color:inherit;flex:1}.dispatcher-confirmation-row>a:hover{text-decoration:none}.dispatcher-confirmation-row form{margin:0;flex:0 0 auto}@media(max-width:700px){.dispatcher-confirmation-row{align-items:stretch;flex-direction:column}.dispatcher-confirmation-row .button{width:100%}}

/* v0.77.0 – Aufträge beobachten */
.project-watch-form{margin:0;display:inline-flex}.project-watch-button{white-space:nowrap}.project-watch-button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--panel));color:var(--text);font-weight:750}
@media(max-width:640px){.project-head .actions>.project-watch-form{width:100%}.project-head .actions>.project-watch-form .button{width:100%;justify-content:center}}

/* v0.79: Konfliktzustände müssen in allen Themes lesbar bleiben. */
.candidate-busy{background:rgba(220,83,83,.10)!important;border:1px solid rgba(220,83,83,.36);border-radius:8px;margin:0 -8px;padding:11px 8px;color:var(--text)!important}
.candidate-busy strong,.candidate-busy span,.candidate-busy label,.candidate-busy em{color:var(--text)}
.candidate-busy .busy{color:#c63f4d!important}.candidate-busy .force{color:var(--muted)!important}
html.theme-dark .candidate-busy,html.theme-system .candidate-busy{background:rgba(220,83,83,.13)!important;border-color:rgba(255,120,130,.38)}
html.theme-dark .candidate-busy .busy,html.theme-system .candidate-busy .busy{color:#ff9ca5!important}
html.theme-light .candidate-busy{background:#fff0f1!important;border-color:#e6a9af;color:#17202a!important}
html.theme-light .candidate-busy strong,html.theme-light .candidate-busy span,html.theme-light .candidate-busy label,html.theme-light .candidate-busy em{color:#17202a}
html.theme-light .candidate-busy .busy{color:#a92735!important}
.trainee-school-info{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}

/* v0.81: Dispatcher-Dashboard bleibt auch bei vielen offenen Punkten kompakt. */
.dispatcher-home-grid .dashboard-scroll-list,
.dispatcher-confirmation-panel .dashboard-scroll-list{
  max-height:354px;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding-right:4px;
  scrollbar-gutter:stable;
}
.dispatcher-home-grid .dashboard-scroll-list>.home-list-item,
.dispatcher-confirmation-panel .dashboard-scroll-list>.home-list-item{
  min-height:62px;
  box-sizing:border-box;
}
.home-list-item.staffing-shortage{border-left:4px solid #d62f3a}
.home-list-item.staffing-shortage b{color:#c72531}
html.theme-dark .home-list-item.staffing-shortage b,html.theme-system .home-list-item.staffing-shortage b{color:#ff7b84}

.candidate-group-heading{margin-top:14px;padding:7px 0 5px;border-bottom:1px solid var(--border);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.candidate-group-heading:first-of-type{margin-top:4px}

/* v0.82.0: Kapazitaets-Heatmap */
.week-capacity-card:not(.is-past).band-air{background:color-mix(in srgb,#2f7b4d 12%,var(--panel));}
.week-capacity-card:not(.is-past).band-normal{background:color-mix(in srgb,#b68a24 14%,var(--panel));}
.week-capacity-card:not(.is-past).band-high{background:color-mix(in srgb,#b84a4a 15%,var(--panel));}
.week-capacity-card:not(.is-past).band-full{background:color-mix(in srgb,#e13e4d 18%,var(--panel));}
.week-capacity-card:not(.is-past).band-over{background:color-mix(in srgb,#ff2038 23%,var(--panel));}
.week-capacity-card.is-past{border-color:var(--border)!important;background:color-mix(in srgb,var(--muted) 8%,var(--panel))!important;color:var(--muted)!important;filter:grayscale(1);opacity:.52;}
.week-capacity-card.is-past small{color:var(--muted)!important;}
.week-capacity-card.is-current{outline:3px solid color-mix(in srgb,var(--accent,#1673b1) 55%,transparent);outline-offset:2px;}

/* v0.82.0: Einsatzkarte */
.job-map-shell{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}.job-map-panel{border:1px solid var(--border);border-radius:14px;background:var(--panel);overflow:hidden}.job-map-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:14px;border-bottom:1px solid var(--border)}.job-map-toolbar label{display:grid;gap:4px;font-size:12px;color:var(--muted)}.job-map-toolbar select{min-width:105px}.job-map-toolbar .button{white-space:nowrap}.job-map-toolbar>label{flex:0 1 auto}.job-map-toolbar .map-compact-check{white-space:nowrap}.job-map-canvas{height:620px;min-height:420px}.job-map-sidebar{display:grid;gap:14px}.job-map-sidebar .panel{margin:0}.map-cluster-list,.map-missing-list{display:grid;gap:8px;margin-top:10px}.map-cluster-item,.map-missing-item{border:1px solid var(--border);border-radius:9px;padding:9px;background:var(--surface,var(--panel))}.map-cluster-item a,.map-missing-item a{font-weight:700}.map-job-meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px}.map-empty{padding:28px;text-align:center;color:var(--muted)}@media(max-width:900px){.job-map-shell{grid-template-columns:1fr}.job-map-canvas{height:500px}.job-map-sidebar{grid-template-columns:1fr}}

/* Kartenquelle / Fallback */
.map-source-status{padding:7px 14px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border);background:var(--panel)}
.map-source-status[data-kind="ok"]{color:#1f7a43}.map-source-status[data-kind="fallback"]{color:#9a6500}.map-source-status[data-kind="error"]{color:#b3261e}

/* v0.85 · user controlled language switcher */
.language-switcher{position:relative;display:inline-flex;align-items:center}.language-switcher>summary{list-style:none;cursor:pointer;line-height:1;min-width:52px;min-height:32px;display:flex;align-items:center;justify-content:center;gap:.35rem;border-radius:8px}.language-switcher>summary::-webkit-details-marker{display:none}.language-switcher>summary:hover{background:var(--accent-soft,rgba(127,127,127,.1))}.language-flag{display:block;width:22px;height:15px;object-fit:cover;border-radius:3px;flex:0 0 auto;box-shadow:0 0 0 1px rgba(127,127,127,.18)}.language-flag-current{width:24px;height:16px}.language-menu{position:absolute;right:0;top:calc(100% + .45rem);z-index:1200;min-width:180px;padding:.35rem;background:var(--card-bg,#fff);border:1px solid var(--border-color,#d6dde5);border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.16)}.language-menu form{margin:0}.language-menu button{width:100%;border:0;background:transparent;color:inherit;display:grid;grid-template-columns:1.7rem 1fr auto;align-items:center;gap:.4rem;text-align:left;padding:.58rem .65rem;border-radius:7px;cursor:pointer;font:inherit}.language-menu button:hover,.language-menu button.is-current{background:var(--accent-soft,rgba(127,127,127,.1))}.mobile-language-block{border-top:1px solid var(--border-color,#d6dde5);border-bottom:1px solid var(--border-color,#d6dde5);padding:.3rem 0}.mobile-language-block form{margin:0}.mobile-language-block button{width:100%;display:grid;grid-template-columns:1.7rem 1fr auto;align-items:center;gap:.4rem;text-align:left;border:0;background:transparent;color:inherit;padding:.6rem .7rem;font:inherit}

/* v0.87 · DE/INT Fachstandard */
.standard-switcher{display:flex;gap:.55rem;flex-wrap:wrap;margin:.75rem 0 1rem}.standard-choice{display:inline-flex;align-items:center;gap:.55rem;padding:.55rem .75rem;border:1px solid var(--border-color,#d6dde5);border-radius:10px;text-decoration:none;background:var(--card-bg,#fff);color:inherit;transition:.15s ease}.standard-choice:hover{border-color:var(--accent,#1976d2);transform:translateY(-1px)}.standard-choice.active{border-color:var(--accent,#1976d2);background:var(--accent-soft,#eaf3ff);box-shadow:inset 0 0 0 1px var(--accent,#1976d2)}.standard-choice img{width:24px;height:16px;object-fit:contain;border-radius:3px;flex:0 0 auto}.standard-choice strong{font-size:.72rem;border:1px solid var(--border-color,#cbd5e1);border-radius:999px;padding:.08rem .38rem}.standard-badge{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border-color,#d6dde5);border-radius:999px;padding:.28rem .58rem;font-size:.82rem;font-weight:700;background:var(--accent-soft,#eef6ff);margin:.15rem 0 .8rem}.standard-badge img{width:21px;height:14px;object-fit:contain;border-radius:3px}.project-field-table{width:100%;border-collapse:collapse}.project-field-table th,.project-field-table td{padding:.6rem .55rem;border-bottom:1px solid var(--border-color,#e4e8ed);vertical-align:middle}.project-field-table th{text-align:left;color:var(--muted-color,#64748b);font-size:.8rem}.project-field-table input[type="text"]{min-width:180px}.project-field-table input[type="number"]{width:90px}.project-field-table input[type="checkbox"]{width:18px;height:18px}.field-key{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;color:var(--muted-color,#64748b)}

/* v0.88.0 – teamweite Hotel-Ebene auf der Einsatzkarte */
.map-layer-toggle{align-self:center!important;display:flex!important;grid-template-columns:none!important;align-items:center;gap:6px;min-height:38px;padding:0 4px;color:var(--text)!important}.map-layer-toggle input{width:18px;height:18px}.hotel-map-div-icon{background:transparent!important;border:0!important}.hotel-map-pin{position:relative;display:grid;place-items:center;width:34px;height:34px;border:2px solid #fff;border-radius:50% 50% 50% 0;background:#7b3fa0;box-shadow:0 2px 7px rgba(0,0,0,.38);transform:rotate(-45deg)}.hotel-map-pin>span{display:block;font-size:17px;line-height:1;transform:rotate(45deg)}.hotel-popup-note{display:block;max-width:260px;margin:5px 0}.hotel-map-info .button{margin-top:4px}.hotel-table td{vertical-align:top}.nowrap{white-space:nowrap}@media(max-width:720px){.hotel-table th:nth-child(3),.hotel-table td:nth-child(3),.hotel-table th:nth-child(5),.hotel-table td:nth-child(5){display:none}}

/* v0.88.3 – Einsatzkarte: Filter und Handlungsampel */
.job-map-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}
.job-map-legend span{display:inline-flex;align-items:center;gap:6px}.job-map-dot{display:inline-block;width:11px;height:11px;border-radius:50%;border:1px solid rgba(0,0,0,.25)}
.job-map-dot.is-red{background:#d92d20}.job-map-dot.is-yellow{background:#f5c542}.job-map-dot.is-green{background:#2f9e44}
.job-map-div-icon{background:transparent!important;border:0!important}.job-map-pin{position:relative;display:grid;place-items:center;width:30px;height:30px;border:3px solid #fff;border-radius:50% 50% 50% 0;box-shadow:0 0 0 1px rgba(0,0,0,.30),0 3px 8px rgba(0,0,0,.48);transform:rotate(-45deg)}
.job-map-pin.is-red{background:#d92d20}.job-map-pin.is-yellow{background:#f5c542}.job-map-pin.is-green{background:#2f9e44}.job-map-pin>span{display:block;width:7px;height:7px;border-radius:50%;background:#fff;transform:rotate(45deg)}

/* Setup dashboard: clear, responsive three-column administration grid. */
.setup-grid-form{max-width:1500px;margin:0 auto}.setup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}.setup-tile{background:var(--card-bg,#fff);border:1px solid var(--border-color,#d6dde5);border-radius:14px;padding:18px;min-width:0;box-shadow:0 8px 22px rgba(15,23,42,.04);display:flex;flex-direction:column;height:100%}.setup-tile-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px;min-height:64px}.setup-tile-head>div{min-width:0}.setup-tile-head h2{margin:0 0 4px;font-size:1.16rem}.setup-tile-head p{margin:0}.setup-tile-icon{font-size:1.35rem;line-height:1.2;flex:0 0 auto}.setup-tile .field{margin-top:12px}.setup-tile .field:first-of-type{margin-top:0}.setup-tile .field input:not([type="checkbox"]):not([type="radio"]),.setup-tile .field select,.setup-tile .field textarea{width:100%;max-width:none;box-sizing:border-box}.setup-tile-actions{display:flex;justify-content:flex-end;align-items:flex-end;margin-top:auto;padding-top:18px}.setup-checkbox-field label{display:flex;align-items:center;gap:10px;font-weight:700}.setup-checkbox-field input[type="checkbox"]{width:20px;height:20px}.setup-threshold-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-group-title{padding-top:8px}.setup-group-title h2{margin-bottom:4px}.setup-group-title p{margin:0}.setup-savebar{display:flex;justify-content:flex-end;margin-top:18px;padding:14px 0}.setup-grid-full{grid-column:1/-1}@media(max-width:1100px){.setup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.setup-grid{grid-template-columns:1fr}.setup-threshold-grid{grid-template-columns:1fr}.setup-tile{padding:15px}.setup-tile-head{min-height:0}.setup-savebar .button{width:100%}}

/* v0.93 – Organisation / semantisch gruppiertes Setup */
.setup-group-title{padding:4px 2px 0}.setup-group-title h2{margin:0 0 3px;font-size:1.05rem}.setup-group-title p{margin:0}
.org-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:1500px;margin:0 auto}.org-hub-card{display:flex;align-items:flex-start;gap:14px;min-height:120px;padding:20px;border:1px solid var(--border-color,#d6dde5);border-radius:14px;background:var(--card-bg,#fff);color:inherit;text-decoration:none;box-shadow:0 8px 22px rgba(15,23,42,.04)}.org-hub-card:hover{border-color:var(--accent,#2f7d13);transform:translateY(-1px)}.org-hub-icon{font-size:1.6rem;line-height:1.2}.org-hub-card strong{display:block;font-size:1.12rem;margin-bottom:6px}.org-hub-card small{display:block;color:var(--muted,#64748b);line-height:1.45}
.holiday-region-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:1500px;margin:0 auto}.holiday-region-card h2{margin-top:0}.holiday-state-list ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px}.holiday-state-list label{display:flex;align-items:center;gap:8px;font-weight:500}.holiday-state-list input{width:18px;height:18px}
@media(max-width:1000px){.org-hub-grid,.holiday-region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.org-hub-grid,.holiday-region-grid{grid-template-columns:1fr}.holiday-state-list ul{grid-template-columns:1fr}}

/* v0.94.0 – optionale internationale Vergleichsuhr */
.clock-stack{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:190px}.international-clock{border-color:rgba(120,190,255,.5)}.intl-clock-form select{width:100%;font-size:.75rem;padding:6px 8px}.intl-clock-toggle{text-align:right}.clock-link{border:0;background:transparent;color:var(--link,#79b8ff);font-size:.72rem;cursor:pointer;padding:2px 0}.clock-link:hover{text-decoration:underline}

/* v0.95 Lizenzverwaltung */
.license-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.license-status-row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.status-badge{display:inline-flex;padding:6px 10px;border-radius:999px;border:1px solid var(--border);font-size:.85rem}.status-badge.ok{border-color:#3a8f60}.status-badge.warn{border-color:#c88a32}.license-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 0}.license-facts div{padding:10px 0;border-top:1px solid var(--border)}.license-facts dt{font-size:.78rem;color:var(--muted);text-transform:uppercase}.license-facts dd{margin:4px 0 0;overflow-wrap:anywhere}.license-edition-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.license-edition-grid>div{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid var(--border);border-radius:12px}.license-edition-grid span{color:var(--muted);font-size:.9rem}@media(max-width:850px){.license-grid,.license-edition-grid{grid-template-columns:1fr}.license-facts{grid-template-columns:1fr}}

/* v0.96.0 Lizenzkomfort */
.license-seat-summary{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.8rem 1rem;margin:.75rem 0}.license-seat-summary .mini-link{margin-left:auto}.employee-active-toggle{display:inline-flex;margin:0}.employee-active-toggle label{display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;white-space:nowrap}.employee-active-toggle input[type=checkbox]{width:18px;height:18px}.license-file-install{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.license-file-install form{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.admin-license-summary{margin-bottom:1rem}

/* v0.97.0 – responsive Editoren, saubere Tabellen und Lizenzmatrix */
.responsive-editor-card{width:min(1500px,calc(100vw - 48px));max-width:1500px;margin-inline:auto}
@media(min-width:1100px){.responsive-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}.responsive-form-grid>.form-actions,.responsive-form-grid>.message,.responsive-form-grid>.job-options-heading,.responsive-form-grid>.date-range-picker{grid-column:1/-1}.responsive-form-grid .field textarea{min-height:110px}.responsive-form-grid .field:has(textarea){grid-column:1/-1}}
@media(max-width:1099px){.responsive-editor-card{width:min(920px,calc(100vw - 32px))}}
@media(max-width:700px){.responsive-editor-card{width:100%;max-width:none}}
.sub-company-table{table-layout:fixed;min-width:1180px}.sub-company-table th:nth-child(1){width:9%}.sub-company-table th:nth-child(2){width:18%}.sub-company-table th:nth-child(3){width:7%}.sub-company-table th:nth-child(4){width:8%}.sub-company-table th:nth-child(5){width:22%}.sub-company-table th:nth-child(6){width:12%}.sub-company-table th:nth-child(7){width:9%}.sub-company-table th:nth-child(8){width:15%}.sub-company-table th,.sub-company-table td{vertical-align:middle;height:58px;box-sizing:border-box}.sub-company-table thead th{height:48px}.sub-company-table tbody tr{height:58px}.sub-company-table td>*{margin-top:0;margin-bottom:0}.sub-company-table .actions{display:flex;gap:.75rem;align-items:center;flex-wrap:nowrap;min-height:36px}.sub-contact-chip{display:block;white-space:normal}.sub-contact-chip+.sub-contact-chip{margin-top:.25rem}
.license-matrix{width:100%;border-collapse:collapse;min-width:820px}.license-matrix th,.license-matrix td{padding:11px 14px;border-bottom:1px solid var(--border);text-align:center}.license-matrix th:first-child,.license-matrix td:first-child{text-align:left;width:42%}.license-matrix thead th{background:var(--panel2);font-weight:800}.license-matrix .matrix-group td{background:var(--panel2);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--muted)}.license-matrix td:not(:first-child){font-size:1.02rem}.license-matrix .matrix-no{color:var(--muted)}.license-expiry-banner{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.license-expiry-banner a{margin-left:auto}

/* v0.98.0 - Free-Uebergabe */
.license-transition-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.license-transition-list{display:grid;gap:8px;max-height:520px;overflow:auto;padding-right:4px}.license-transition-choice{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}.license-transition-choice input{width:18px;height:18px}.license-transition-choice small{display:block;color:var(--muted)}@media(max-width:850px){.license-transition-grid{grid-template-columns:1fr}}


/* v0.99.0 - neutrale UI-Profile und frei konfigurierbare Farben */
html.ui-ocean{--accent:#0077b6;--accent2:#00a6d6;--violet:#4e8cff}
html.ui-ocean body{background-image:radial-gradient(circle at 85% 0%,rgba(0,119,182,.13),transparent 32%)}
html.ui-ocean .panel,html.ui-ocean .project-card,html.ui-ocean .narrow-card{border-radius:13px}
html.theme-light.ui-ocean{--bg:#f2f9fc;--panel:#ffffff;--panel2:#e7f4f9;--text:#15313e;--muted:#5d7884;--border:#bfd9e3;--accent:#006ea8;--accent2:#009bc8}

html.ui-forest{--accent:#238b45;--accent2:#45b96b;--green:#37aa5d}
html.ui-forest body{background-image:radial-gradient(circle at 10% 5%,rgba(35,139,69,.12),transparent 30%)}
html.ui-forest .panel,html.ui-forest .project-card,html.ui-forest .narrow-card{border-radius:11px}
html.theme-light.ui-forest{--bg:#f3f8f4;--panel:#ffffff;--panel2:#e8f1ea;--text:#1c3222;--muted:#617468;--border:#c6d8ca;--accent:#237a3e;--accent2:#36a85a}

html.ui-nordic{--accent:#3e7fa6;--accent2:#5ca7cf;--violet:#718ac7}
html.ui-nordic .panel,html.ui-nordic .project-card,html.ui-nordic .narrow-card{border-radius:16px}
html.theme-light.ui-nordic{--bg:#f5f8fa;--panel:#ffffff;--panel2:#edf2f5;--text:#23323d;--muted:#6b7b86;--border:#d2dde4;--accent:#356f94;--accent2:#4e94bc}

html.ui-slate{--bg:#111820;--panel:#18222c;--panel2:#202c37;--text:#edf3f7;--muted:#9aabb7;--border:#3a4a58;--accent:#526f8a;--accent2:#7798b6}
html.ui-slate .panel,html.ui-slate .project-card,html.ui-slate .narrow-card{border-radius:9px}
html.theme-light.ui-slate{--bg:#f1f4f6;--panel:#ffffff;--panel2:#e7ecef;--text:#25313a;--muted:#667680;--border:#cbd4da;--accent:#456984;--accent2:#6689a4}

html.ui-custom{
  --bg:var(--custom-background,#10161d);
  --panel:var(--custom-panel,#18212a);
  --panel2:color-mix(in srgb,var(--custom-panel,#18212a) 84%,var(--custom-background,#10161d));
  --text:var(--custom-text,#eef4f8);
  --muted:color-mix(in srgb,var(--custom-text,#eef4f8) 65%,var(--custom-background,#10161d));
  --border:var(--custom-border,#33414d);
  --accent:var(--custom-primary,#1976d2);
  --accent2:var(--custom-accent,#66aaff);
  --link:var(--custom-accent,#66aaff);
}
html.ui-custom body{background:var(--custom-background,#10161d);color:var(--custom-text,#eef4f8)}
html.ui-custom .panel,html.ui-custom .card,html.ui-custom .project-card,html.ui-custom .narrow-card,html.ui-custom .login-card{background:var(--custom-panel,#18212a);color:var(--custom-text,#eef4f8);border-color:var(--custom-border,#33414d)}
html.ui-custom .topbar{border-bottom-color:var(--custom-border,#33414d)}
html.ui-custom .button.primary{background:var(--custom-primary,#1976d2);border-color:var(--custom-primary,#1976d2)}
/* v1.00.0 – Betriebsmittel und Abschlusslogik */
.equipment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-bottom:16px}.equipment-card h2{margin:.25rem 0}.equipment-id{font-size:.78rem;font-weight:800;letter-spacing:.08em;color:var(--muted)}.equipment-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.equipment-facts>div{padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}.equipment-facts span{display:block;font-size:.78rem;color:var(--muted);margin-bottom:3px}.inspection-overdue,.inspection-critical{color:var(--red)}.inspection-warning{color:var(--orange)}.inspection-ok{color:var(--green)}.job-close-reminder{border-left:4px solid var(--orange)}.job-required-skills{display:flex;gap:6px;flex-wrap:wrap;margin:.5rem 0}.job-required-skills span{padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--panel2);font-size:.8rem;font-weight:700}


/* v1.01.0 - Feinschliff Fahrzeug, Pauschale und Betriebsmittel */
.empty-vehicle + .panel,.vehicle-card-grid + .panel,.my-vehicle-home + .panel{margin-top:14px}
.empty-vehicle ~ .panel{margin-top:14px}
.vehicle-calendar-wrap{background:var(--panel);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.vehicle-calendar{min-width:1760px;table-layout:fixed;font-size:.8rem}
.vehicle-calendar th,.vehicle-calendar td{height:54px;padding:.35rem .28rem}
.vehicle-calendar thead th{min-width:55px}
.vehicle-calendar .vehicle-sticky{width:170px;min-width:170px;max-width:170px;padding:.45rem .55rem}
.vehicle-calendar tbody tr:hover td,.vehicle-calendar tbody tr:hover .vehicle-sticky{box-shadow:inset 0 0 0 999px rgba(255,255,255,.025)}
.vehicle-calendar th.weekend{background:color-mix(in srgb,var(--surface) 82%,#d9c28c)}
.vehicle-calendar td.weekend.vc-free{background:color-mix(in srgb,rgba(55,180,100,.20) 82%,#eadfca)}
.vehicle-calendar th.today,.vehicle-calendar td.today{box-shadow:inset 0 0 0 2px var(--accent)}
.vehicle-calendar td span{max-width:100%;padding:.15rem .2rem;border-radius:.3rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.equipment-job-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.7rem}
.equipment-job-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;border:1px solid var(--border);border-radius:.65rem;padding:.7rem .8rem;background:var(--panel2)}
.equipment-job-row.is-busy{opacity:.64}
.equipment-job-row small{display:block;color:var(--muted);margin-top:.15rem}
.equipment-job-row .equipment-conflict{color:#c57a00;font-weight:700}
.equipment-job-row.is-busy button{cursor:not-allowed}
.setup-checkbox-list ul{list-style:none;padding:0;margin:.25rem 0;display:grid;gap:.35rem}.setup-checkbox-list label{display:flex;align-items:center;gap:.5rem}


/* v1.04.0 – kompakte Betriebsmittellisten */
.equipment-list{display:grid;gap:7px;margin-bottom:16px}
.equipment-list-row{display:grid;grid-template-columns:minmax(260px,1.55fr) minmax(150px,.75fr) minmax(135px,.7fr) auto auto;gap:14px;align-items:center;padding:10px 12px}
.equipment-list-main{min-width:0}.equipment-list-title{display:flex;align-items:baseline;gap:9px;min-width:0}.equipment-list-title strong{font-size:1.03rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equipment-list-id{font-size:.75rem;font-weight:750;color:var(--muted);white-space:nowrap}.equipment-list-main>.muted{display:block;margin-top:2px;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.equipment-list-fact{min-width:0}.equipment-list-fact>span{display:block;color:var(--muted);font-size:.72rem;margin-bottom:2px}.equipment-list-fact>strong{display:block;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equipment-list-status{justify-self:end}.equipment-list-actions{justify-content:flex-end;flex-wrap:nowrap}.equipment-list-actions .button{padding:.45rem .65rem}.equipment-list-actions form{margin:0}
.equipment-job-list{display:grid;gap:6px}.equipment-job-selected{margin-bottom:10px}.equipment-job-row{display:grid;grid-template-columns:minmax(180px,.85fr) minmax(260px,1.8fr) auto;align-items:center;gap:12px;padding:.5rem .65rem;border:1px solid var(--border);border-radius:.6rem;background:var(--panel2)}.equipment-job-name{min-width:0;display:flex;align-items:baseline;gap:8px}.equipment-job-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equipment-job-name>span{font-size:.74rem;color:var(--muted);white-space:nowrap}.equipment-job-meta{min-width:0;font-size:.86rem;color:var(--muted);overflow-wrap:anywhere}.equipment-job-meta small{display:block;margin-top:2px}.equipment-job-row form{margin:0;justify-self:end}.equipment-job-row .button{padding:.45rem .7rem}.equipment-job-row.is-busy{opacity:.7}.equipment-job-row .equipment-conflict{color:#c57a00;font-weight:700}.equipment-job-row .equipment-available{color:var(--green);font-weight:700}.equipment-job-add-title{margin-top:.85rem;margin-bottom:.55rem}
@media(max-width:1050px){.equipment-list-row{grid-template-columns:minmax(220px,1.4fr) minmax(140px,.8fr) minmax(130px,.7fr) auto}.equipment-list-status{grid-column:4}.equipment-list-actions{grid-column:1/-1;justify-content:flex-end;border-top:1px solid var(--border);padding-top:7px}.equipment-job-row{grid-template-columns:minmax(170px,.8fr) minmax(220px,1.5fr) auto}}
@media(max-width:720px){.equipment-list-row{grid-template-columns:1fr auto;gap:8px 12px}.equipment-list-main{grid-column:1}.equipment-list-status{grid-column:2;grid-row:1}.equipment-list-fact{grid-column:1/-1;display:grid;grid-template-columns:105px 1fr;align-items:center}.equipment-list-fact>span{margin:0}.equipment-list-actions{grid-column:1/-1}.equipment-job-row{grid-template-columns:1fr auto;gap:6px 10px}.equipment-job-name{grid-column:1}.equipment-job-meta{grid-column:1/-1;grid-row:2}.equipment-job-row form{grid-column:2;grid-row:1;align-self:center}}


/* v1.05.0 – einklappbare Betriebsmittelauswahl im Job */
.equipment-picker{margin-top:.8rem;border:1px solid var(--border);border-radius:.7rem;background:var(--panel2);overflow:hidden}
.equipment-picker>summary{list-style:none}
.equipment-picker>summary::-webkit-details-marker{display:none}
.equipment-picker-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:.72rem .82rem;cursor:pointer;user-select:none}
.equipment-picker-summary:hover{background:color-mix(in srgb,var(--panel2) 88%,var(--text) 12%)}
.equipment-picker-title{font-weight:800}
.equipment-picker-stats{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.equipment-picker-count{font-size:.78rem;font-weight:700;border:1px solid var(--border);border-radius:999px;padding:.22rem .5rem;white-space:nowrap}
.equipment-picker-count.available-count{color:var(--green)}
.equipment-picker-count.unavailable-count{color:var(--muted)}
.equipment-picker-toggle{font-size:.8rem;color:var(--muted);min-width:68px;text-align:right}
.equipment-picker .close-label{display:none}
.equipment-picker[open] .open-label{display:none}
.equipment-picker[open] .close-label{display:inline}
.equipment-picker-content{border-top:1px solid var(--border);padding:.55rem}
.equipment-picker-content .equipment-job-list{margin:0}
@media(max-width:720px){.equipment-picker-summary{align-items:flex-start;flex-direction:column;gap:7px}.equipment-picker-stats{justify-content:flex-start}.equipment-picker-toggle{text-align:left;min-width:auto}.equipment-picker-content{padding:.45rem}}

/* v1.06.0 – Betriebsmittelauswahl: zwei kompakte Tools pro Desktop-Zeile */
.equipment-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.equipment-picker-grid .equipment-job-row{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;gap:3px 10px;min-width:0}
.equipment-picker-grid .equipment-job-name{grid-column:1;grid-row:1;min-width:0}
.equipment-picker-grid .equipment-job-meta{grid-column:1;grid-row:2;min-width:0;font-size:.82rem}
.equipment-picker-grid .equipment-job-row form{grid-column:2;grid-row:1/3;align-self:center;justify-self:end}
@media(max-width:980px){.equipment-picker-grid{grid-template-columns:1fr}}


/* v1.08.0: compact collapsible job sections */
.assignment-compact-card{position:relative;padding:10px 16px;cursor:pointer;transition:padding .15s ease,background .15s ease}
.assignment-compact-card .project-head{align-items:center}
.assignment-compact-card .project-head h2{font-size:1.05rem;margin:1px 0 2px}
.assignment-compact-card .project-head p{margin:2px 0;font-size:.88rem}
.assignment-compact-card .eyebrow{font-size:.72rem}
.assignment-compact-card .status-pill{padding:6px 10px}
.assignment-compact-card .assignment-card-detail,.assignment-compact-card .assignment-response{display:none}
.assignment-compact-card.assignment-card-open{padding:16px 18px}
.assignment-compact-card.assignment-card-open .assignment-card-detail,.assignment-compact-card.assignment-card-open .assignment-response{display:flex}
.assignment-compact-card.assignment-card-open .assignment-card-detail{display:block}
.assignment-compact-card::after{content:'⌄';position:absolute;right:12px;bottom:3px;color:var(--muted);font-size:15px;line-height:1}
.assignment-compact-card.assignment-card-open::after{content:'⌃'}
.assignment-compact-card:focus-visible{outline:2px solid var(--link,#8fc5ff);outline-offset:2px}
.job-collapsible-section{padding:0;overflow:hidden;margin-top:18px}
.job-collapsible-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;cursor:pointer;list-style:none;user-select:none}
.job-collapsible-summary::-webkit-details-marker{display:none}
.job-collapsible-title{font-size:1.12rem;font-weight:750;display:flex;align-items:center;gap:9px;min-width:0}
.job-collapsible-meta{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}
.job-collapsible-toggle{color:var(--link,#8fc5ff);white-space:nowrap}
.job-collapsible-section[open]>.job-collapsible-summary .open-label{display:none}
.job-collapsible-section[open]>.job-collapsible-summary .close-label{display:inline}
.job-collapsible-section:not([open])>.job-collapsible-summary .close-label{display:none}
.job-collapsible-content{padding:0 16px 16px;border-top:1px solid var(--border)}
.staffing-collapsible .two-col{margin-top:16px}
.staffing-collapsible .two-col>.panel{box-shadow:none;margin:0}
.checklist-collapsible .checklist-list{margin-top:10px}
.job-summary-warning{color:#d7a84a;font-size:.88rem;font-weight:700;white-space:nowrap}
@media(max-width:700px){.assignment-compact-card .project-head{align-items:flex-start;gap:8px}.assignment-compact-card .project-head .actions{width:auto;display:flex;flex-direction:row;flex-wrap:wrap}.assignment-compact-card .status-pill{font-size:.78rem;padding:5px 8px}.job-collapsible-summary{align-items:flex-start}.job-collapsible-meta{align-items:flex-end;flex-direction:column;gap:4px}.job-collapsible-content{padding:0 10px 10px}}

/* v1.09.0 – Theme-Aliase für neuere Komponenten und konsistente Collapse-Flächen */
:root{--card-bg:var(--panel);--panel-bg:var(--panel);--border-color:var(--border);--muted-color:var(--muted);--surface:var(--panel);--surface-2:var(--panel2);--link:#8dc5ff;--accent-soft:color-mix(in srgb,var(--accent) 14%,transparent)}
html.theme-light{--link:var(--accent2);--accent-soft:color-mix(in srgb,var(--accent) 12%,white)}
@media(prefers-color-scheme:light){html.theme-system{--link:var(--accent2);--accent-soft:color-mix(in srgb,var(--accent) 12%,white)}}
.job-collapsible-section,.job-collapsible-summary,.job-collapsible-content{background:var(--panel);color:var(--text)}
.job-collapsible-summary:hover{background:var(--panel2)}
.job-collapsible-toggle{color:var(--link)}
.staffing-collapsible .two-col>.panel,.sub-staff-inline{background:var(--panel);color:var(--text);border-color:var(--border)}
.sub-staff-inline h3,.sub-staff-inline h4,.sub-staff-inline label{color:var(--text)}
.sub-staff-inline select,.sub-staff-inline input[type=number]{min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--panel2);color:var(--text);font:inherit}
.sub-staff-inline select:focus,.sub-staff-inline input[type=number]:focus{outline:2px solid var(--accent);outline-offset:1px}
.nav-order-item{background:var(--panel)!important;color:var(--text)!important;border-color:var(--border)!important}
.nav-order-item strong,.nav-order-help{color:var(--text)}
.nav-order-item .nav-drag{color:var(--muted)}
.nav-order-item .button{background:var(--panel2);color:var(--text);border-color:var(--border)}

/* v1.09.0 – Fahrzeugwahl direkt an der Einsatzbestätigung */
.assignment-confirm-form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.assignment-vehicle-choice{display:grid;gap:4px;min-width:min(440px,100%);font-weight:700}.assignment-vehicle-choice span{font-size:.82rem;color:var(--muted)}.assignment-vehicle-choice select,.assignment-vehicle-update select{min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);color:var(--text);font:inherit;min-width:320px}.assignment-vehicle-panel{margin-top:18px}.assignment-vehicle-panel h2{margin-bottom:4px}.assignment-vehicle-update{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assignment-vehicle-update select{flex:1 1 420px}.assignment-vehicle-choice option:disabled,.assignment-vehicle-update option:disabled{color:var(--muted)}
@media(max-width:700px){.assignment-confirm-form,.assignment-vehicle-update{align-items:stretch;flex-direction:column}.assignment-vehicle-choice,.assignment-vehicle-choice select,.assignment-vehicle-update select{width:100%;min-width:0}}

/* v1.09.0 – Blanko-Leistungsnachweis nach der bestehenden 2-Seiten-Vorlage */
.service-report-job-content{padding-top:14px}.service-report-job-head{align-items:center}.service-report-list{display:grid;gap:7px;margin-top:10px}.service-report-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--panel2);color:var(--text)}.service-report-row:hover{text-decoration:none;border-color:var(--accent)}.service-report-row small{display:block;color:var(--muted);margin-top:2px}.service-report-hours{font-weight:800;white-space:nowrap}
.service-report-sheet{max-width:1180px;margin:0 auto 30px;border:1px solid var(--border);background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.service-report-title{text-align:center;font-size:1.7rem;font-weight:800;padding:18px;border-bottom:1px solid var(--border);color:var(--accent)}.service-report-meta-grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--border)}.service-report-meta-three{grid-template-columns:1.5fr .7fr .7fr}.service-report-meta-grid label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;padding:10px 12px;border-right:1px solid var(--border);font-weight:750}.service-report-meta-grid label:last-child{border-right:0}.service-report-meta-grid input{min-width:0;width:100%;padding:8px 9px;border:1px solid var(--border);border-radius:6px;background:var(--panel2);color:var(--text);font:inherit}.service-report-work,.service-report-special,.service-report-docs,.service-report-confirmation{border-bottom:1px solid var(--border)}.service-report-section-head{display:grid;grid-template-columns:minmax(0,1fr) 285px;border-bottom:1px solid var(--border)}.service-report-section-head h2,.service-report-special h2,.service-report-docs h2,.service-report-confirmation h2{margin:0;padding:12px 14px;font-size:1.25rem}.service-report-time-head{display:grid;grid-template-columns:1fr 1fr .7fr;align-items:end;text-align:center;border-left:1px solid var(--border)}.service-report-time-head span{padding:12px 6px;border-right:1px solid var(--border);font-weight:750}.service-report-time-head span:last-child{border-right:0}.service-report-work-row{display:grid;grid-template-columns:minmax(0,1fr) 95px 95px 75px 36px;border-bottom:1px solid var(--border);min-height:56px}.service-report-work-row textarea,.service-report-work-row input{border:0;border-right:1px solid var(--border);border-radius:0;padding:9px;background:var(--panel);color:var(--text);font:inherit;min-width:0}.service-report-work-row textarea{resize:vertical}.service-report-remove-row{border:0;background:var(--panel2);color:var(--muted);cursor:pointer;font-size:20px}.service-report-remove-row:hover{color:var(--red)}.service-report-work-actions{padding:10px 12px}.service-report-total-row{display:grid;grid-template-columns:minmax(0,1fr) 190px;justify-items:end;gap:12px;padding:8px 14px;border-top:1px solid var(--border)}.service-report-total-row span{font-weight:700}.service-report-total-main{font-size:1.12rem;background:var(--panel2)}.service-report-special{padding-bottom:12px}.service-report-special p{padding:0 14px;margin:-6px 0 8px}.service-report-special textarea{display:block;width:calc(100% - 28px);min-height:180px;margin:0 14px;padding:10px;border:1px solid var(--border);border-radius:7px;background:var(--panel2);color:var(--text);font:inherit}.service-report-docs{padding-bottom:14px}.service-report-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px;padding:0 14px}.service-report-check-grid label{display:flex;gap:8px;align-items:flex-start}.service-report-check-grid input{margin-top:3px}.service-report-confirmation{padding-bottom:14px}.service-report-confirm-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:0 14px}.service-report-confirm-grid>div{border:1px solid var(--border);border-radius:9px;padding:12px}.service-report-confirm-grid h3{margin:0 0 10px}.service-report-confirm-grid label{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:8px;margin-top:8px}.service-report-confirm-grid input{width:100%;padding:8px 9px;border:1px solid var(--border);border-radius:6px;background:var(--panel2);color:var(--text);font:inherit}.service-report-savebar{display:flex;justify-content:flex-end;gap:10px;padding:14px}.service-report-sheet input:focus,.service-report-sheet textarea:focus,.service-report-sheet select:focus{outline:2px solid var(--accent);outline-offset:-1px}
@media(max-width:800px){.service-report-meta-grid,.service-report-meta-three,.service-report-confirm-grid{grid-template-columns:1fr}.service-report-meta-grid label{border-right:0;border-bottom:1px solid var(--border)}.service-report-section-head{grid-template-columns:1fr}.service-report-time-head{display:none}.service-report-work-row{grid-template-columns:1fr 1fr 1fr 40px}.service-report-work-row textarea{grid-column:1/-1;border-bottom:1px solid var(--border)}.service-report-work-row input[name=work_hours]{border-right:1px solid var(--border)}.service-report-check-grid{grid-template-columns:1fr}.service-report-total-row{grid-template-columns:1fr auto}.service-report-savebar{flex-direction:column-reverse}.service-report-savebar .button{width:100%}}


/* v1.10.0 – Terminbestätigung kompakt in einer Desktop-Zeile */
.assignment-confirm-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.assignment-confirm-actions>form{margin:0}
.assignment-confirm-form{flex-wrap:nowrap}
.assignment-confirm-form .assignment-vehicle-choice{flex:1 1 440px}
.assignment-confirm-form .button,.assignment-confirm-actions>form>.button{min-height:42px;white-space:nowrap}

/* v1.10.0 – Leistungsnachweis: Mitarbeiter, automatische Summen, Signatur und Exporte */
.service-report-employee-block{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:start;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border)}
.service-report-field-label{font-weight:750;padding-top:9px}
.service-report-employee-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px}
.service-report-employee-grid label{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:5px}
.service-report-employee-grid select{width:100%;min-width:0;padding:8px 9px;border:1px solid var(--border);border-radius:6px;background:var(--panel2);color:var(--text);font:inherit}
.service-report-meta-two{grid-template-columns:1fr 1fr}
.service-report-work-row input[name=work_hours][readonly]{background:var(--panel2);font-weight:750;cursor:default}
.signature-field{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;margin-top:8px;align-items:start}
.signature-field>span{padding-top:8px}
.signature-pad{display:block;width:100%;height:145px;border:1px solid var(--border);border-radius:7px;background:#fff;color:#111;touch-action:none;cursor:crosshair}
.signature-actions{grid-column:2;display:flex;justify-content:flex-end;margin-top:2px}
.service-report-row{gap:10px}.service-report-row-main{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;flex:1;color:var(--text)}.service-report-row-main:hover{text-decoration:none}.service-report-export-actions{display:flex;gap:6px;flex:0 0 auto}
@media(max-width:1050px){.service-report-employee-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.assignment-confirm-actions{align-items:stretch;flex-direction:column}.assignment-confirm-actions>form,.assignment-confirm-actions .button{width:100%}.assignment-confirm-form{flex-direction:column}.service-report-employee-block{grid-template-columns:1fr}.service-report-employee-grid{grid-template-columns:1fr}.signature-field{grid-template-columns:1fr}.signature-actions{grid-column:1}.service-report-row{align-items:stretch;flex-direction:column}.service-report-row-main{width:100%}.service-report-export-actions{width:100%}.service-report-export-actions .button{flex:1}}

/* v1.11.0 – Leistungsnachweis-Vorlageneditor */
.service-report-template-head{display:flex;align-items:center;justify-content:center;gap:18px;padding:12px 18px;border-bottom:1px solid var(--border)}
.service-report-form-logo{display:block;height:auto;object-fit:contain}.service-report-template-head .service-report-title{border:0;padding:4px 0}.service-report-header-text{text-align:center;margin:2px 0 0}.service-report-footer-text{text-align:center;color:var(--muted);padding:10px 14px;border-top:1px solid var(--border);font-size:.9rem}
.sr-template-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.65fr);gap:16px;align-items:start}.sr-template-card{border:1px solid var(--border);border-radius:10px;background:var(--panel);padding:16px;min-width:0}.sr-template-card h2{margin:0 0 12px}.sr-template-full,.sr-template-editor>.setup-savebar{grid-column:1/-1}.sr-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sr-template-grid .field,.sr-template-widths .field{display:grid;gap:5px}.sr-template-grid input[type=text],.sr-template-grid input[type=number],.sr-template-grid input[type=file],.sr-template-widths input,.sr-template-field-table input[type=text],.sr-template-field-table select,.sr-section-sort-row input[type=text]{width:100%;min-width:0;padding:8px 9px;border:1px solid var(--border);border-radius:6px;background:var(--panel2);color:var(--text);font:inherit}.sr-template-logo-current{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sr-template-logo-current img{max-width:180px;max-height:70px;object-fit:contain;background:#fff;border-radius:6px;padding:5px}.sr-template-field-table{display:grid;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden}.sr-template-field-table>div{display:grid;grid-template-columns:150px minmax(150px,1fr) minmax(190px,1fr) 70px;gap:10px;align-items:center;padding:8px 10px;background:var(--panel)}.sr-template-field-head{font-weight:800;background:var(--panel2)!important}.sr-template-widths{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.sr-section-sort{display:grid;gap:8px}.sr-section-sort-row{display:grid;grid-template-columns:28px 180px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--border);border-radius:8px;padding:9px;background:var(--panel2)}.sr-section-sort-row>span:nth-of-type(2){display:flex;gap:10px;align-items:center}.sr-section-sort-row input[type=checkbox]{width:auto}.sr-section-sort-handle{color:var(--muted);font-size:1.2rem}.sr-section-sort-actions{display:flex;gap:5px}.sr-template-doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sr-template-preview-card{position:sticky;top:12px}.sr-template-preview{border:1px solid var(--border);background:#fff;color:#111;padding:18px;border-radius:6px}.sr-preview-head{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:14px}.sr-preview-head img{height:auto;object-fit:contain}.sr-preview-head h3{margin:0;text-align:center;font-size:1.45rem}.sr-preview-head p{margin:3px 0 0;text-align:center;color:#555}.sr-preview-meta{display:grid;grid-template-columns:130px minmax(0,1fr) 150px minmax(0,1fr);border:1px solid #999}.sr-preview-meta>*{padding:7px 8px;border-right:1px solid #999;border-bottom:1px solid #999;min-width:0;overflow-wrap:anywhere}.sr-preview-meta>*:nth-child(4n){border-right:0}.sr-preview-section{margin-top:12px;border:1px solid #999;padding:10px;display:flex;justify-content:space-between;gap:12px}
@media(max-width:1100px){.sr-template-editor{grid-template-columns:1fr}.sr-template-preview-card{position:static}.sr-template-field-table>div{grid-template-columns:120px 1fr 1fr 60px}.sr-section-sort-row{grid-template-columns:28px 150px minmax(0,1fr) auto}}
@media(max-width:760px){.sr-template-grid,.sr-template-doc-grid,.sr-template-widths{grid-template-columns:1fr}.sr-template-field-table{background:transparent;border:0;gap:8px}.sr-template-field-head{display:none!important}.sr-template-field-table>div{grid-template-columns:1fr;border:1px solid var(--border);border-radius:8px}.sr-section-sort-row{grid-template-columns:28px 1fr auto}.sr-section-sort-row>span:nth-of-type(2){grid-column:1/-1}.sr-preview-meta{grid-template-columns:1fr}.sr-preview-meta>*{border-right:0}.service-report-template-head{flex-direction:column}}

/* v1.12.0 – kompakte Terminbestätigung ohne Überlagerung */
.assignment-confirm-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}
.assignment-confirm-actions>.assignment-confirm-form{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:10px;min-width:0;width:100%}
.assignment-confirm-form .assignment-vehicle-choice{min-width:0;width:100%}
.assignment-confirm-form .assignment-vehicle-choice select{width:100%;min-width:0}
.assignment-confirm-actions>form:last-child{margin:0;align-self:end}
@media(max-width:800px){.assignment-confirm-actions{grid-template-columns:1fr}.assignment-confirm-actions>.assignment-confirm-form{grid-template-columns:1fr}.assignment-confirm-actions>form:last-child,.assignment-confirm-actions>form:last-child .button{width:100%}.assignment-confirm-form .button{width:100%}}

/* v1.12.0 – offene Bestätigungen als echte linksbündige Liste */
.dispatcher-confirmation-row,.dispatcher-confirmation-row>a{text-align:left}
.dispatcher-confirmation-row>a{justify-items:start;align-items:start}

/* v1.12.0 – Aktionen am Leistungsnachweis */
.service-report-export-actions form{margin:0;display:inline-flex}

/* v1.13 – mehrwöchige Personalplanung */
.staffing-week-plan{border:1px solid var(--border);border-radius:10px;margin:10px 0 14px;overflow:hidden;background:var(--panel)}
.staffing-week-plan-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:10px 12px;border-bottom:1px solid var(--border)}
.staffing-week-plan-head small{color:var(--muted)}
.staffing-week-row{display:grid;grid-template-columns:120px 1fr auto;gap:12px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--border)}
.staffing-week-row:last-child{border-bottom:0}.staffing-week-row.staffing-week-open{background:color-mix(in srgb,var(--danger,#a62b35) 8%,transparent)}
.staffing-week-label small{display:block;color:var(--muted);font-size:11px}.staffing-week-people{display:flex;gap:6px;flex-wrap:wrap}
.staffing-week-person{display:inline-flex;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:12px}
.assignment-week-person-row>div:first-child{flex:1;min-width:0}.assignment-week-form{margin-top:8px;display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.assignment-week-checks,.candidate-week-checks{display:flex;gap:6px;flex-wrap:wrap}.assignment-week-checks label,.candidate-week-checks label{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid var(--border);border-radius:7px;font-size:12px;background:var(--surface)}
.assignment-week-save{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.candidate-assignment-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){.staffing-week-row{grid-template-columns:1fr auto}.staffing-week-people{grid-column:1/-1}.assignment-week-form{align-items:flex-start;flex-direction:column}.candidate-assignment-form{justify-content:flex-start}}


/* v1.14 – tagesgenaue Personalplanung */
.staffing-week-person{gap:7px;align-items:center;flex-wrap:wrap}.staffing-week-days{color:var(--muted);font-size:11px;font-weight:500}
.assignment-day-form{align-items:flex-start}.assignment-day-weeks{display:grid;gap:7px;flex:1;min-width:0}.assignment-day-week{display:grid;grid-template-columns:58px 1fr;gap:7px;align-items:start}.assignment-day-week-label{font-weight:700;padding-top:5px}
.assignment-day-checks,.candidate-day-checks{display:flex;gap:5px;flex-wrap:wrap}.assignment-day-checks label,.candidate-day-checks label{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid var(--border);border-radius:7px;font-size:12px;background:var(--surface);white-space:nowrap}
.candidate-day-assignment-form{align-items:center}.candidate-day-picker{min-width:160px}.candidate-day-picker>summary{cursor:pointer;padding:6px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);font-size:12px;font-weight:700}.candidate-day-picker[open]>summary{margin-bottom:7px}.candidate-day-weeks{display:grid;gap:7px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--panel);min-width:min(620px,75vw)}.candidate-day-week{display:grid;grid-template-columns:52px 1fr;gap:7px;align-items:start}.candidate-day-week>strong{padding-top:5px;font-size:12px}
@media(max-width:760px){.assignment-day-week,.candidate-day-week{grid-template-columns:1fr}.candidate-day-weeks{min-width:0;width:100%}.candidate-day-picker{width:100%}}

/* v1.15 – kompakte Tagesplanung und Konflikte direkt in der Auswahl */
.assignment-day-weeks{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(225px,1fr));
  gap:8px;
  width:100%;
}
.assignment-day-week{
  display:block;
  padding:8px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--panel);
  min-width:0;
}
.assignment-day-week-label{display:block;padding:0 0 6px;font-weight:700}
.assignment-day-checks{display:flex;gap:5px;flex-wrap:wrap}
.assignment-week-save{width:100%;justify-content:flex-end;margin-top:2px}
.candidate-day-weeks{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:8px;
  padding:8px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--panel);
  min-width:min(760px,78vw);
}
.candidate-day-week{display:block;padding:7px;border:1px solid var(--border);border-radius:7px;background:var(--surface);min-width:0}
.candidate-day-week>strong{display:block;padding:0 0 5px;font-size:12px}
.candidate-day-checks{display:flex;gap:5px;flex-wrap:wrap}
.candidate-day-checks label.day-conflict{
  position:relative;
  border-color:color-mix(in srgb,var(--danger,#a62b35) 55%,var(--border));
  background:color-mix(in srgb,var(--danger,#a62b35) 9%,var(--surface));
  cursor:help;
}
.candidate-day-checks label.day-conflict input:disabled{cursor:not-allowed}
.day-conflict-mark{font-size:10px;line-height:1;color:var(--danger,#a62b35)}
@media(max-width:980px){.assignment-day-weeks,.candidate-day-weeks{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;width:100%}}
@media(max-width:620px){.assignment-day-weeks,.candidate-day-weeks{grid-template-columns:1fr}.assignment-week-save{justify-content:flex-start}}


/* v1.16 – Tagesplanung: Wochen untereinander, Tage horizontal */
.assignment-day-weeks,
.candidate-day-weeks{
  grid-template-columns:1fr;
}
.assignment-day-week,
.candidate-day-week{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  gap:8px;
  align-items:center;
}
.assignment-day-week-label,
.candidate-day-week>strong{
  display:block;
  padding:0;
  margin:0;
  white-space:nowrap;
}
.assignment-day-checks,
.candidate-day-checks{
  display:flex;
  gap:6px;
  flex-wrap:nowrap;
  min-width:0;
}
.assignment-day-checks label,
.candidate-day-checks label{
  flex:0 0 auto;
}
@media(max-width:900px){
  .assignment-day-checks,.candidate-day-checks{flex-wrap:wrap}
}
@media(max-width:620px){
  .assignment-day-week,.candidate-day-week{grid-template-columns:1fr;align-items:start}
}

/* v1.17 – Wochenstatus und vertrauliche Skillmatrix */
.dispo-week-head.is-current{outline:3px solid #49b925;outline-offset:-3px;position:relative;z-index:1}
.dispo-week-head.is-staffing-open{background:color-mix(in srgb,#f2c94c 28%,var(--panel2,#1a232d));}
.dispo-week-head.is-current.is-staffing-open{background:color-mix(in srgb,#f2c94c 30%,var(--panel2,#1a232d));outline-color:#49b925}
html.theme-light .dispo-week-head.is-staffing-open{background:#fff4bd;color:#17202b}
html.theme-light .dispo-week-head.is-current.is-staffing-open{background:#fff4bd}
.skill-level-legend{display:flex;gap:.55rem;flex-wrap:wrap;margin:0 0 1rem}.skill-level-legend span{border:1px solid var(--border);background:var(--panel2);border-radius:999px;padding:.35rem .65rem;font-size:.82rem}
.skill-matrix-wrap{max-height:70vh}.skill-matrix-table th,.skill-matrix-table td{vertical-align:middle}.skill-matrix-table select{min-width:190px}.skill-person-col{position:sticky;left:0;z-index:2;background:var(--panel);min-width:180px}.skill-matrix-table thead .skill-person-col{z-index:4}.documentation-service-reports{border:1px solid var(--border);border-radius:10px;padding:.8rem;margin-bottom:1rem;background:var(--panel2)}.documentation-subhead{display:flex;align-items:center;gap:.55rem;margin-bottom:.45rem}

/* v1.18.0: vertrauliche Skillplanung / Präsentationsmodus */
.skill-matrix-wrap{overflow:auto;position:relative}
.skill-matrix-table thead th{position:sticky;top:0;z-index:3;background:var(--panel);box-shadow:0 1px 0 var(--border)}
.skill-matrix-table thead .skill-person-col{left:0;z-index:6}
.skill-matrix-table tbody .skill-person-col{z-index:2}
.presentation-mode-banner{position:sticky;top:0;z-index:80;border:1px solid var(--green);background:var(--panel)}
.presentation-toggle.is-active{font-weight:800}
.skill-match-list{display:grid;gap:.65rem}
.skill-match-row{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(300px,2fr);gap:.8rem;align-items:center;padding:.75rem;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
.skill-match-row>div:first-child small{display:block;color:var(--muted);margin-top:.2rem}
.skill-match-state{font-weight:800;white-space:nowrap}
.skill-match-ok .skill-match-state{color:var(--green)}
.skill-match-missing .skill-match-state{color:var(--orange)}
.skill-match-people{display:flex;gap:.4rem;flex-wrap:wrap}
.skill-match-people span{padding:.25rem .45rem;border:1px solid var(--border);border-radius:999px;font-size:.78rem}
.skill-match-people span.meets{border-color:var(--green);font-weight:700}
@media(max-width:850px){.skill-match-row{grid-template-columns:1fr}.skill-match-people{grid-column:1}}

/* v1.19.0: Qualifikationswarnungen früh in der Auftragsübersicht */
.qualification-warning{display:inline-flex;align-items:center;gap:.25rem;color:var(--orange);font-weight:800;white-space:nowrap}
.project-summary-main .qualification-warning{margin-left:.35rem;padding:.12rem .42rem;border:1px solid color-mix(in srgb,var(--orange) 55%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--orange) 10%,transparent);font-size:.78rem}

/* v1.20 · Pro automatische Disposition */
.job-staffing-head-actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.pro-chip{display:inline-block;margin-left:.25rem;font-size:.68rem;font-weight:800;letter-spacing:.04em;border-radius:999px;padding:.12rem .42rem;background:rgba(255,255,255,.22)}

/* v1.20.3 compact qualification + absence workflow */
.collapsible-panel{padding:0;overflow:hidden}
.collapsible-panel-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;cursor:pointer;list-style:none}
.collapsible-panel-summary::-webkit-details-marker{display:none}
.collapsible-panel-summary>span:first-child{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.collapsible-panel-summary small{color:var(--muted);font-weight:400}
.collapsible-panel-summary:after{content:'▾';font-size:1rem;transition:transform .15s ease}
.collapsible-panel[open]>.collapsible-panel-summary:after{transform:rotate(180deg)}
.collapsible-panel-body{padding:0 1.1rem 1rem;border-top:1px solid var(--border)}
.collapsible-panel-status{margin-left:auto;padding:.25rem .55rem;border-radius:999px;font-size:.88rem;white-space:nowrap}
.collapsible-panel-status.warning{font-weight:700;color:#b86b00;background:rgba(245,158,11,.12)}
.collapsible-panel-status.ok{font-weight:700;color:#16734a;background:rgba(22,163,74,.10)}
.absence-request-status{font-weight:700}.absence-request-status.status-pending{color:#b86b00}.absence-request-status.status-approved{color:#16734a}.absence-request-status.status-rejected{color:#b42318}
.absence-approval-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.absence-approval-item>div:first-child{display:flex;flex-direction:column;gap:.2rem}

/* v1.20.4 – konsistentes Aktionslayout, kompaktere Listen und Fahrzeugtickets */
.button{
  min-height:40px;
  padding:8px 13px;
  border-radius:9px;
  font-weight:650;
  line-height:1.15;
  box-sizing:border-box;
}
.actions{align-items:center;gap:8px}
.actions form{margin:0}
.button.danger{
  background:transparent;
  border-color:#b33b47;
  color:#b33b47;
}
html.theme-dark .button.danger,html.theme-system .button.danger{color:#ff9ca5;border-color:#a84b55;background:transparent}
.button.danger:hover{background:color-mix(in srgb,#b33b47 10%,var(--panel2));border-color:#b33b47}
.project-head .actions>.button,.project-head .actions>.project-action-add,.project-head .actions>.project-action-edit,.project-head .actions>.project-action-delete{
  min-height:40px!important;
  padding:8px 13px!important;
  border-radius:9px!important;
  font-size:14px!important;
  font-weight:650!important;
}
.project-action-add{background:#16833d!important;border-color:#16833d!important;color:#fff!important}
.project-action-edit{background:var(--accent2)!important;border-color:var(--accent2)!important;color:#fff!important}
.project-action-delete{background:transparent!important;border-color:#b33b47!important;color:#b33b47!important}
.project-action-delete:hover{background:color-mix(in srgb,#b33b47 10%,var(--panel2))!important}

/* Einzelne letzte Kachel in einem 2-Spalten-Raster nutzt die volle Breite. */
.home-grid>.home-panel:last-child:nth-child(odd){grid-column:1/-1}

/* Innen/Außen: Farbstatus wieder direkt im Balken sichtbar. */
.workmix-row.mix-green .workmix-outdoor{background:linear-gradient(90deg,#43b65d,#2f9e44)}
.workmix-row.mix-orange .workmix-outdoor{background:linear-gradient(90deg,#f7b733,#f59f00)}
.workmix-row.mix-red .workmix-outdoor{background:linear-gradient(90deg,#ef5b63,#e03131)}

/* Abwesenheitsgenehmigung kompakt: Inhalt links, Aktionen rechts. */
.absence-approval-item{display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;gap:14px}
.absence-approval-item>div:first-child{min-width:0;flex:1}
.absence-approval-item>.actions{flex:0 0 auto;flex-wrap:nowrap}
@media(max-width:700px){.absence-approval-item{align-items:stretch;flex-direction:column!important}.absence-approval-item>.actions{flex-wrap:wrap}}

/* Personalplanung: Bestätigen/Entfernen immer unterhalb der auswählbaren Tage. */
.assignment-week-person-row{align-items:stretch;flex-direction:column}
.assignment-admin-actions{width:100%;justify-content:flex-end;padding-top:2px}
@media(max-width:640px){.assignment-admin-actions{justify-content:flex-start}}

/* Dispatcher-Liste: Person und Job in einer linksbündigen Zeile. */
.dispatcher-confirmation-row>a.confirmation-inline{display:flex!important;flex-direction:row;align-items:baseline!important;gap:7px;justify-items:initial!important;text-align:left;min-width:0;flex-wrap:wrap}
.dispatcher-confirmation-row>a.confirmation-inline strong,.dispatcher-confirmation-row>a.confirmation-inline span{display:inline;margin:0}
.confirmation-separator{color:var(--muted);font-size:.88rem}

/* Auftragsfilter: Beschriftung oberhalb des Feldes. */
.project-filter-bar{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px 12px;align-items:end}
.project-filter-bar .filter-field{display:grid;gap:5px;min-width:0;margin:0;font-weight:700}
.project-filter-bar .filter-field>span{font-size:.82rem;color:var(--text)}
.project-filter-bar .filter-field select{width:100%;min-width:0}
.project-filter-bar .filter-field-wide{grid-column:span 2}
.project-filter-bar .filter-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;grid-column:1/-1}
@media(max-width:1100px){.project-filter-bar{grid-template-columns:repeat(3,minmax(160px,1fr))}.project-filter-bar .filter-field-wide{grid-column:span 1}}
@media(max-width:700px){.project-filter-bar{grid-template-columns:1fr}.project-filter-bar .filter-actions{grid-column:auto}.project-filter-bar .filter-actions .button{flex:1}}

/* Pausierte und abgeschlossene Aufträge standardmäßig kompakt. */
.project-group-collapse{margin-top:18px;border:0}
.project-group-collapse>summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;font-size:1.35rem;font-weight:800;padding:10px 0}
.project-group-collapse>summary::-webkit-details-marker{display:none}
.project-group-collapse>summary::after{content:'▾';margin-left:2px;color:var(--muted);font-size:.9rem;transition:transform .15s ease}
.project-group-collapse[open]>summary::after{transform:rotate(180deg)}
.project-group-collapse>.card-list{margin-top:6px}
.project-group-collapse .count-badge{margin-left:0;min-width:28px;height:26px;padding:0 8px;font-size:.78rem}

/* Fahrzeugticket-Liste */
.vehicle-ticket-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:14px}
.vehicle-ticket-row>div:first-child{min-width:0;flex:1}
.vehicle-ticket-row small{display:block;margin-top:3px;color:var(--muted)}
.vehicle-ticket-row.vehicle-ticket-blocked{border-left:4px solid #b33b47}
.vehicle-ticket-row>.actions{flex:0 0 auto}
@media(max-width:700px){.vehicle-ticket-row{align-items:stretch;flex-direction:column}.vehicle-ticket-row>.actions{width:100%}.vehicle-ticket-row>.actions .button{width:100%}}


/* v1.20.5 – letzte Layoutkorrekturen */
.dispatcher-confirmation-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:14px!important;flex-direction:initial!important;text-align:left!important}
.dispatcher-confirmation-row>a.confirmation-inline{display:flex!important;justify-content:flex-start!important;align-items:baseline!important;text-align:left!important;min-width:0!important;gap:7px!important;flex-wrap:wrap!important}
.dispatcher-confirmation-row form{margin:0!important;justify-self:end!important;align-self:center!important;width:auto!important}
.dispatcher-confirmation-row .confirm-for-employee{position:static!important;transform:none!important;margin:0!important;white-space:nowrap!important}
@media(max-width:700px){.dispatcher-confirmation-row{grid-template-columns:1fr!important}.dispatcher-confirmation-row form{justify-self:stretch!important;width:100%!important}.dispatcher-confirmation-row .confirm-for-employee{width:100%!important}}
.field-choice-block .inline-choice{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:9px!important}.field-choice-block .inline-choice input[type=checkbox]{position:static!important;transform:none!important;margin:0!important;flex:0 0 auto!important;width:20px!important;height:20px!important}.field-choice-block>small{margin-left:0!important}
/* v1.21.6: Sammeldisposition und direkte Maps-Kacheln */
.bulk-staffing-head{align-items:flex-start;margin-bottom:1rem}.bulk-staffing-toolbar{margin-bottom:1rem}.bulk-staffing-toolbar-grid{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(210px,.8fr) minmax(240px,.9fr) auto;gap:1rem;align-items:end}.bulk-staffing-toolbar-grid select{width:100%;margin-top:.35rem}.bulk-check{display:flex;align-items:flex-start;gap:.55rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:.65rem;background:var(--panel2)}.bulk-check span{display:flex;flex-direction:column;gap:.15rem}.bulk-check small{color:var(--muted)}.bulk-staffing-shortcuts{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.8rem}.bulk-staffing-table-wrap{overflow-x:auto}.bulk-staffing-table{min-width:1280px}.bulk-staffing-row{display:grid;grid-template-columns:70px minmax(220px,1.35fr) 135px 80px 170px minmax(200px,1.2fr) minmax(225px,1fr) 100px;gap:.7rem;align-items:center;padding:.72rem .55rem;border-bottom:1px solid var(--border)}.bulk-staffing-header{font-weight:800;background:var(--panel2);position:sticky;top:0;z-index:2}.bulk-cell-job{display:flex;flex-direction:column;gap:.18rem}.bulk-cell-job a{color:var(--text);text-decoration:none}.bulk-cell-job a:hover{text-decoration:underline}.bulk-cell-job small,.bulk-cell-period small,.bulk-assignment-list small{display:block;color:var(--muted)}.bulk-number{width:70px}.bulk-workweek{display:flex;align-items:center;gap:.4rem}.bulk-assignment-list{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}.bulk-assignment-chip{display:inline-flex;padding:.18rem .42rem;border:1px solid var(--border);border-radius:999px;font-size:.78rem;background:var(--panel2)}.bulk-assignment-chip.confirmed{border-color:#4c9f63}.bulk-assignment-chip.pending{border-color:#d49a27}.bulk-employee-select{width:100%}.bulk-inline-flags{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:.35rem;font-size:.78rem;color:var(--muted)}.home-job-with-map{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:.55rem;align-items:stretch}.home-job-map{display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid var(--border);border-radius:11px;background:var(--panel2);color:var(--text);text-decoration:none;font-weight:800;padding:.65rem}.home-job-map:hover{border-color:var(--accent);background:var(--surface)}
@media(max-width:900px){.bulk-staffing-toolbar-grid{grid-template-columns:1fr}.home-job-with-map{grid-template-columns:1fr}.home-job-map{min-height:42px}.bulk-staffing-table{min-width:1120px}}

/* v1.21.7: kompakter Auftragskopf und zeilenweise Sammeldisposition */
.project-head.project-actions-only{display:block}
.project-head.project-actions-only .actions{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:2px}
.project-head.project-actions-only .actions>*{flex:0 0 auto}
.bulk-staffing-toolbar-simple{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.bulk-staffing-toolbar-simple .bulk-staffing-shortcuts{margin-top:0}
.bulk-staffing-hint{margin:0}
.bulk-staffing-table{min-width:1420px}
.bulk-staffing-row{grid-template-columns:70px minmax(220px,1.25fr) 245px 80px 170px minmax(200px,1.1fr) minmax(225px,1fr) 100px}
.bulk-period-inputs{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.bulk-period-inputs label{display:flex;flex-direction:column;gap:.18rem;font-size:.75rem;color:var(--muted)}
.bulk-period-inputs input{width:100%;min-width:0;padding:.45rem .5rem;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);box-sizing:border-box}
@media(max-width:900px){.project-head.project-actions-only .actions{flex-wrap:wrap;overflow-x:visible}.bulk-staffing-toolbar-simple{align-items:stretch;flex-direction:column}.bulk-staffing-table{min-width:1260px}}

/* v1.21.8: Sammeldisposition Bedarf kompakt */
.bulk-staffing-row{grid-template-columns:70px minmax(220px,1.25fr) 245px 72px 178px minmax(200px,1.1fr) minmax(225px,1fr) 100px}
.bulk-number{width:64px!important;max-width:64px!important;box-sizing:border-box!important}


/* v1.21.9: Auftragsliste visuell schneller erfassbar */
.project-card.project-tone-warning{background:#2b1d21;border-color:#8f4650}
.project-card.project-tone-event{background:#182a3a;border-color:#3d739e}
.project-card.project-tone-warning .project-accordion-body,.project-card.project-tone-event .project-accordion-body{background:transparent}
html.theme-light .project-card.project-tone-warning{background:#fff3f3;border-color:#e8a2a8}
html.theme-light .project-card.project-tone-event{background:#eef7ff;border-color:#9cc8eb}
@media(prefers-color-scheme:light){
  html.theme-system .project-card.project-tone-warning{background:#fff3f3;border-color:#e8a2a8}
  html.theme-system .project-card.project-tone-event{background:#eef7ff;border-color:#9cc8eb}
}


/* v1.21.9: Pauschalen-Kalender zeigt den Einsatzgrund direkt im Tagesfeld */
.allowance-day{aspect-ratio:auto;min-height:82px;align-items:stretch;justify-content:flex-start;flex-direction:column;gap:5px;padding:8px 9px;text-align:left;overflow:hidden}
.allowance-day-head{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-width:0}
.allowance-day-number{font-weight:850;line-height:1}
.allowance-day-reasons{display:flex;flex-direction:column;gap:2px;width:100%;min-width:0}
.allowance-day-reason,.allowance-day-more{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;line-height:1.18;font-weight:650;opacity:.88}
.allowance-day-more{font-weight:800;opacity:.72}
@media(max-width:640px){.allowance-day{min-height:46px;padding:5px;gap:2px}.allowance-day-reasons{display:none}}

/* v1.21.10: Meine Einsätze nach KW + Auftrag bündeln */
.assignment-group-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:2px 0 2px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
.assignment-group-tools .actions{display:flex;gap:8px;flex-wrap:wrap}
.assignment-week-group{border:1px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}
.assignment-week-group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;position:relative}
.assignment-week-group>summary::-webkit-details-marker{display:none}
.assignment-week-group>summary::after{content:'⌄';color:var(--muted);font-size:16px;line-height:1;margin-left:4px;flex:0 0 auto}
.assignment-week-group[open]>summary::after{content:'⌃'}
.assignment-week-group>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.assignment-week-group-main{min-width:0;flex:1}
.assignment-week-group-main .eyebrow{margin:0 0 2px;font-size:.74rem}
.assignment-week-group-main h2{margin:0 0 3px;font-size:1.05rem;overflow-wrap:anywhere}
.assignment-week-group-main p{margin:0;font-size:.86rem}
.assignment-week-group-status{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.assignment-week-group-body{display:grid;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--panel) 92%,var(--panel2) 8%)}
.assignment-group-job{border:1px solid var(--border);border-radius:10px;background:var(--panel2);padding:10px 12px}
.assignment-group-job .project-head{align-items:center}
.assignment-group-job-main{min-width:0}
.assignment-group-job-main h3{margin:0 0 3px;font-size:.98rem}
.assignment-group-job-main h3 a{color:var(--text);text-decoration:none}
.assignment-group-job-main h3 a:hover{text-decoration:underline}
.assignment-group-job-main p{margin:2px 0;font-size:.86rem;color:var(--muted)}
.assignment-group-job-status{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.assignment-group-job .assignment-response{margin-top:9px;padding-top:9px}
@media(max-width:760px){
  .assignment-group-tools{align-items:stretch;flex-direction:column}
  .assignment-group-tools .actions{width:100%}.assignment-group-tools .actions .button{flex:1 1 auto}
  .assignment-week-group>summary{align-items:flex-start;padding:11px 12px}
  .assignment-week-group-status{max-width:45%;align-items:flex-end;flex-direction:column;gap:5px}
  .assignment-group-job .project-head{align-items:flex-start;gap:8px}
  .assignment-group-job-status{max-width:42%;align-items:flex-end;flex-direction:column}
  .assignment-week-group-body{padding:8px}
}

/* v1.21.17 – Setup-Seite: ruhiges, zeilenbasiertes Raster statt Puzzle-Optik */
.setup-grid-form{max-width:1500px;margin:0 auto}
.setup-section{display:grid;gap:14px;margin-top:30px}
.setup-section:first-of-type{margin-top:20px}
.setup-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.setup-row-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.setup-row>.setup-tile{height:auto;min-height:100%;align-self:stretch}
.setup-tile{height:auto}
.setup-tile-body{display:flex;flex-direction:column;flex:1;min-width:0}
.setup-tile-head{min-height:72px;margin-bottom:12px}
.setup-tile .field{display:grid;gap:5px;margin-top:12px}
.setup-tile .field:first-child{margin-top:0}
.setup-tile .field label{line-height:1.25}
.setup-tile .field small{display:block;line-height:1.35;min-height:0}
.setup-tile .field input:not([type="checkbox"]):not([type="radio"]),
.setup-tile .field select{min-height:42px}
.setup-threshold-grid{gap:14px 16px}
.setup-threshold-grid .field{margin-top:0}
.setup-tile-actions{min-height:44px;padding-top:16px}
.setup-row-compact .setup-tile-head{min-height:86px}
.setup-tile-compact{min-height:190px}
.setup-tile-watchdog{margin-top:18px}
.setup-watchdog-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:22px;align-items:start}
.setup-watchdog-grid>div{min-width:0}
.setup-watchdog-thresholds{margin-top:12px}
.setup-mail-body-field textarea{min-height:238px;resize:vertical}
.setup-group-title{padding:0 2px}.setup-group-title h2{margin:0 0 3px}.setup-group-title p{margin:0}
@media(max-width:1100px){
  .setup-row,.setup-row-two{grid-template-columns:repeat(2,minmax(0,1fr))}
  .setup-row>.setup-tile:nth-child(3):last-child{grid-column:1/-1}
  .setup-watchdog-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .setup-section{margin-top:24px}
  .setup-row,.setup-row-two{grid-template-columns:1fr}
  .setup-row>.setup-tile:nth-child(3):last-child{grid-column:auto}
  .setup-tile-head,.setup-row-compact .setup-tile-head{min-height:0}
  .setup-tile-compact{min-height:0}
  .setup-watchdog-grid{gap:10px}
}

/* v1.21.18 – Setup: feste, ruhige Komposition statt unterschiedlich hoher Karten */
.setup-row{grid-auto-rows:1fr}
.setup-row>.setup-tile{height:100%!important;min-height:0;align-self:stretch}
.setup-row-two{grid-auto-rows:1fr}
.setup-row-two>.setup-tile{height:100%!important}
.setup-region-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;align-items:stretch}
.setup-stack{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:18px;min-width:0}
.setup-stack>.setup-tile,.setup-map-tile{height:100%!important;min-height:0}
.setup-stack .setup-tile-head{min-height:0}
.setup-map-tile .setup-tile-body{flex:1}
.setup-row-compact{grid-auto-rows:1fr}
.setup-row-compact>.setup-tile{height:100%!important;min-height:180px}
.setup-section>.setup-tile-watchdog{width:100%;box-sizing:border-box}
.setup-tile-actions .button{min-height:42px;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:1100px){
  .setup-region-layout{grid-template-columns:1fr}
  .setup-stack{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none}
  .setup-stack>.setup-tile{height:100%!important}
}
@media(max-width:700px){
  .setup-region-layout,.setup-stack{grid-template-columns:1fr;grid-template-rows:none}
  .setup-row>.setup-tile,.setup-row-two>.setup-tile,.setup-stack>.setup-tile,.setup-map-tile,.setup-row-compact>.setup-tile{height:auto!important;min-height:0}
}


/* v1.21.21: Sammeldisposition – Bedarf sauber von Arbeitswoche trennen */
.bulk-staffing-row{grid-template-columns:70px minmax(220px,1.25fr) 245px 92px 190px minmax(200px,1.1fr) minmax(225px,1fr) 100px;gap:.85rem}
.bulk-staffing-row>div:nth-child(4){min-width:0;padding-right:.25rem}
.bulk-staffing-row>div:nth-child(5){min-width:0;padding-left:.15rem}
.bulk-number{display:block;width:58px!important;max-width:58px!important;min-width:0!important;box-sizing:border-box!important}
@media(max-width:900px){.bulk-staffing-table{min-width:1320px}}

/* v1.21.23 – SUB-Mailversand, Watchdog-Editor und saubere SUB-Tabelle */
.setup-tile-submail{margin-top:18px}
.setup-submail-grid{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(200px,.8fr) minmax(180px,.7fr);gap:16px;align-items:end}
.setup-submail-grid .field{margin-top:0}
.setup-watchdog-grid{align-items:stretch}
.setup-watchdog-grid>div:last-child{display:flex;flex-direction:column;min-height:100%}
.setup-watchdog-grid>div:last-child .setup-mail-body-field{display:flex;flex-direction:column;flex:1}
.setup-mail-body-field textarea{min-height:360px;height:100%;flex:1;resize:vertical}
.sub-company-panel{overflow:hidden}
.sub-company-table-wrap{width:100%;max-width:100%;border-radius:10px;overflow-x:auto;overflow-y:hidden}
.sub-company-table{table-layout:auto;min-width:1450px}
.sub-company-table th,.sub-company-table td{white-space:normal}
.sub-company-table th:last-child,.sub-company-table td:last-child{min-width:220px}
.sub-company-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;min-height:36px}
.sub-company-actions .button.small{padding:.38rem .6rem;white-space:nowrap}
.sub-mail-pending{display:block;margin-top:3px;color:var(--orange);font-weight:700}
.sub-digest-preview{display:grid;gap:8px;margin-bottom:18px}
.sub-digest-row{display:flex;justify-content:space-between;gap:16px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}
.sub-digest-row span{color:var(--muted);white-space:nowrap}
@media(max-width:900px){.setup-submail-grid{grid-template-columns:1fr 1fr}.setup-submail-grid .setup-checkbox-field{grid-column:1/-1}}
@media(max-width:700px){.setup-submail-grid{grid-template-columns:1fr}.setup-submail-grid .setup-checkbox-field{grid-column:auto}.sub-digest-row{flex-direction:column;gap:3px}.sub-digest-row span{white-space:normal}}

/* v1.21.26: SUB-Versandsteuerung fachlich direkt bei den SUB-Firmen. */
.sub-request-settings-panel{margin-bottom:16px;padding:18px}
.sub-request-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.sub-request-settings-head h2{margin:0 0 4px}
.sub-request-settings-form textarea{width:100%;resize:vertical}
.sub-request-settings-note{margin:10px 0 0}
.sub-request-settings-actions{display:flex;justify-content:flex-end;margin-top:14px}
@media(max-width:700px){.sub-request-settings-panel{padding:14px}.sub-request-settings-actions{justify-content:stretch}.sub-request-settings-actions .button{width:100%}}

/* v1.21.39: Sammeldisposition – globale Zuordnung und Bedarf klar getrennt */
.bulk-global-panel{margin-bottom:1rem}
.bulk-global-head h2{margin:0 0 .2rem;font-size:1.08rem}
.bulk-global-head p{margin:0 0 .8rem}
.bulk-global-grid{display:grid;grid-template-columns:150px 150px minmax(280px,1fr) minmax(210px,.7fr) auto;gap:.8rem;align-items:end}
.bulk-global-grid>label{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:var(--muted)}
.bulk-global-grid input[type=date],.bulk-global-grid select{width:100%;min-width:0;box-sizing:border-box}
.bulk-global-options{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;min-height:42px;font-size:.82rem;color:var(--muted)}
.bulk-global-options label{display:flex;align-items:center;gap:.35rem}
.bulk-global-apply{white-space:nowrap}
.bulk-staffing-table{min-width:1480px}
.bulk-staffing-row{grid-template-columns:70px minmax(220px,1.25fr) 260px 90px 190px minmax(200px,1.1fr) minmax(225px,1fr) 100px;gap:1rem}
.bulk-period-inputs{grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden}
.bulk-period-inputs label{min-width:0}
.bulk-period-inputs input{min-width:0!important;max-width:100%!important;width:100%!important}
.bulk-cell-demand{align-self:stretch;display:flex;align-items:center;border-left:1px solid var(--border);padding-left:.8rem!important;padding-right:.25rem!important}
.bulk-staffing-header>div:nth-child(4){border-left:1px solid var(--border);padding-left:.8rem}
@media(max-width:1100px){.bulk-global-grid{grid-template-columns:1fr 1fr}.bulk-global-employee,.bulk-global-options,.bulk-global-apply{grid-column:1/-1}.bulk-global-apply{justify-self:start}}
@media(max-width:700px){.bulk-global-grid{grid-template-columns:1fr}.bulk-global-employee,.bulk-global-options,.bulk-global-apply{grid-column:auto}.bulk-global-apply{width:100%}.bulk-staffing-table{min-width:1360px}}

/* v1.21.45 · Notiz-Threads + permanenter Bildupload */
.note-thread{margin-top:14px;padding-top:12px;border-top:1px solid var(--border,#d7dee5)}
.note-thread-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.note-reply{margin:8px 0 8px 18px;padding:10px 12px;border-left:3px solid #94a3b8;background:rgba(148,163,184,.08);border-radius:0 8px 8px 0}
.note-reply-meta{font-size:.86rem;color:var(--muted,#64748b);margin-bottom:5px}
.note-reply-text{white-space:normal}
.note-reply-delete{margin-top:6px}
.note-reply-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:10px}
.note-reply-form textarea{width:100%;min-height:72px}
.button-link{background:none;border:0;padding:0;cursor:pointer;font:inherit}
.job-upload-stack{display:grid;gap:10px;margin-top:12px}
.image-upload-always{border-left:4px solid #5e8fb3}
.image-upload-always small{display:block;margin-top:3px}
@media (max-width:700px){.note-reply{margin-left:8px}.note-reply-form{grid-template-columns:1fr}.note-reply-form .button{justify-self:start}}


/* v1.21.49 · Feld-Praxis-Hotfix */
@media(min-width:901px){.job-page-actions{flex-wrap:nowrap!important;align-items:center}.job-page-actions form{margin:0;display:inline-flex}}
@media(max-width:700px){.assignment-vehicle-update select{flex:none!important;height:auto!important;min-height:42px!important}.assignment-vehicle-update{gap:8px}}
.compact-document-upload{display:grid;grid-template-columns:minmax(150px,220px) minmax(220px,1fr) auto;gap:8px;align-items:center}.compact-document-upload select,.compact-document-upload input[type=file]{min-height:42px;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);color:var(--text);min-width:0}.job-upload-compact{margin-top:12px}.arrival-point-box{margin:10px 0;border:1px solid var(--border);border-radius:10px;background:var(--panel2);padding:0}.arrival-point-box summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;padding:10px 12px}.arrival-point-content{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:0 12px 12px}.arrival-point-content p{width:100%;margin:0}.project-filter-bar{display:flex!important;flex-wrap:nowrap!important;align-items:end!important;gap:10px 12px}.project-filter-bar .filter-field{flex:1 1 0}.project-filter-bar .filter-field-wide{flex:2 1 260px}.project-filter-bar .filter-actions{display:flex;gap:8px;flex:0 0 auto;flex-wrap:nowrap}.project-filter-bar .filter-actions .button{white-space:nowrap}
@media(max-width:1200px){.project-filter-bar{flex-wrap:wrap!important}.project-filter-bar .filter-field{flex:1 1 180px}.project-filter-bar .filter-field-wide{flex:2 1 280px}.project-filter-bar .filter-actions{flex:1 1 100%}}
@media(max-width:700px){.compact-document-upload{grid-template-columns:1fr}.project-filter-bar{display:grid!important;grid-template-columns:1fr!important}.project-filter-bar .filter-actions{display:flex}.job-page-actions{width:100%}.job-page-actions>*{flex:1 1 auto}.arrival-point-content{align-items:stretch}.arrival-point-content form,.arrival-point-content .button{width:100%}}


/* v1.21.57 – Mobile App UX: Content first, klare Screens, sichere Bottom-Bar */
.mobile-screenbar,.mobile-launcher,.mobile-week-list{display:none}
@media (max-width:640px){
  :root{--mobile-nav-height:78px;--mobile-safe-bottom:env(safe-area-inset-bottom,0px)}
  html,body{max-width:100%;overflow-x:hidden}
  body{padding-bottom:calc(var(--mobile-nav-height) + var(--mobile-safe-bottom) + 20px)}
  .page{padding:12px 14px calc(var(--mobile-nav-height) + var(--mobile-safe-bottom) + 26px)}
  .topbar{min-height:64px;padding-top:max(10px,env(safe-area-inset-top));box-shadow:0 1px 0 var(--border)}
  .brand{max-width:48vw;font-size:20px;font-weight:850}
  .account>span{max-width:42vw;font-size:12px}

  /* Start = Launcher statt langem Dashboard. */
  body:has(.mobile-launcher) .page-content{display:none}
  .mobile-launcher{display:block}
  .mobile-launcher-head{padding:10px 4px 12px}.mobile-launcher-head>span{font-size:.72rem;font-weight:800;letter-spacing:.12em;color:var(--muted)}
  .mobile-launcher-head h1{margin:.2rem 0 .1rem;font-size:1.9rem}.mobile-launcher-head p{margin:0;color:var(--muted)}
  .mobile-launcher-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .mobile-launcher-grid>a{position:relative;display:flex;min-height:112px;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;padding:16px;border:1px solid var(--border);border-radius:18px;background:var(--panel);color:var(--text);box-shadow:0 5px 18px rgba(0,0,0,.06)}
  .mobile-launcher-grid>a:hover{text-decoration:none}.mobile-launcher-grid>a.has-alert{border-color:#c99024}.mobile-launcher-icon{font-size:30px;line-height:1}.mobile-launcher-grid strong{font-size:1rem}.mobile-launcher-grid .nav-count{position:absolute;right:10px;top:10px}

  /* Jeder Unterbereich ist ein eigener App-Screen. */
  .mobile-screenbar{position:sticky;top:64px;z-index:120;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;margin:-12px -14px 12px;padding:8px 12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px)}
  .mobile-back-button{min-height:40px;padding:7px 11px;border:1px solid var(--border);border-radius:11px;background:var(--panel);color:var(--text);font:inherit;font-weight:750}
  .mobile-screen-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}
  .page-content>.page-head{margin:4px 0 12px}.page-content>.page-head h1{font-size:1.75rem}.page-content>.page-head .muted{font-size:.95rem;line-height:1.35}
  .page-content>.page-head .actions{margin-top:4px}

  /* Filter sind Werkzeuge, nicht der Inhalt. */
  .mobile-filter-drawer{display:block;margin:0 0 12px;border:1px solid var(--border);border-radius:14px;background:var(--panel);overflow:hidden}
  .mobile-filter-drawer>summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:10px 14px;cursor:pointer;font-weight:800;list-style:none}
  .mobile-filter-drawer>summary::-webkit-details-marker{display:none}.mobile-drawer-chevron{font-size:1.15rem;transition:transform .15s}.mobile-filter-drawer[open] .mobile-drawer-chevron{transform:rotate(180deg)}
  .mobile-filter-drawer>form{margin:0!important;padding:12px!important;border:0!important;border-top:1px solid var(--border);border-radius:0!important;background:var(--panel2)!important}
  .mobile-filter-drawer .filter-bar,.mobile-filter-drawer .job-map-toolbar{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .mobile-filter-drawer label{width:100%;margin:0}.mobile-filter-drawer select,.mobile-filter-drawer input:not([type=checkbox]):not([type=radio]){width:100%}
  .mobile-filter-drawer .button{width:100%;justify-content:center}

  /* Bottom-Navigation kann niemals mehr Inhalt oder Speichern überdecken. */
  .mobile-nav{min-height:var(--mobile-nav-height);padding-bottom:calc(7px + var(--mobile-safe-bottom))}
  .mobile-more-sheet{bottom:calc(var(--mobile-nav-height) + var(--mobile-safe-bottom) + 6px);max-height:62dvh}
  .mobile-sticky-actions{position:sticky;z-index:110;bottom:calc(var(--mobile-nav-height) + var(--mobile-safe-bottom) + 8px);padding:8px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--panel) 94%,transparent);box-shadow:0 8px 28px rgba(0,0,0,.16);backdrop-filter:blur(12px)}

  /* Allgemeine Listen: kompakt, touchfreundlich, Details erst beim Öffnen. */
  .card-list,.note-list,.home-list{gap:9px}.panel,.card,.project-card,.project-accordion,.assignment-week-group{border-radius:16px}
  .project-accordion-summary,.assignment-week-group-summary{min-height:72px;padding:12px 14px!important;cursor:pointer}
  .project-summary-main{gap:3px!important}.project-summary-title{font-size:1rem;line-height:1.25}.project-summary-meta{font-size:.82rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .project-summary-status{align-items:center!important;justify-content:flex-start}.project-progress-chip,.status-pill{white-space:nowrap}
  .project-accordion-body,.assignment-week-group-body{padding:10px!important}
  .assignment-group-tools{align-items:stretch!important;gap:8px}.assignment-group-tools>.actions{display:none}.assignment-week-group-summary{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}.assignment-week-group-main h2{font-size:1.1rem!important;line-height:1.25}.assignment-week-group-status{align-items:flex-end!important}.assignment-week-group-status .status-pill:not(:first-child){display:none}

  /* Kalender: echte mobile 8-Wochen-Ansicht statt zusammengeschobener Matrix. */
  .mobile-week-list{display:grid;gap:9px;margin-top:10px}.dispo-board-scroll{display:none!important}
  .mobile-week-card{border:1px solid var(--border);border-radius:16px;background:var(--panel);overflow:hidden}.mobile-week-card.is-current{border:2px solid #39a935}.mobile-week-card.has-warning:not(.is-current){border-color:#c99024}
  .mobile-week-card>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;cursor:pointer;list-style:none}.mobile-week-card>summary::-webkit-details-marker{display:none}.mobile-week-card>summary>span:first-child{display:grid;gap:2px}.mobile-week-card>summary small{color:var(--muted);font-weight:500}.mobile-week-count{padding:5px 8px;border-radius:999px;background:var(--panel2);font-size:.82rem;font-weight:750;white-space:nowrap}
  .mobile-week-body{display:grid;gap:8px;padding:0 10px 10px;border-top:1px solid var(--border)}.mobile-week-job{display:grid;gap:2px;padding:10px;border-left:4px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text)}.mobile-week-job:hover{text-decoration:none}.mobile-week-job.status-green{border-left-color:#2e9d54}.mobile-week-job.status-yellow{border-left-color:#d79b1f}.mobile-week-job.status-red{border-left-color:#d74747}.mobile-week-job span,.mobile-week-job small{color:var(--muted)}.mobile-week-day-link{width:100%;justify-content:center}.mobile-more-jobs{margin:0;text-align:center}
  .toolbar{display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important}.toolbar>strong{grid-column:1/-1;grid-row:1;text-align:center}.toolbar>.button{width:100%;justify-content:center;font-size:.9rem;padding:9px 7px}
  .calendar-view-switch{display:flex;align-items:center;gap:8px}.calendar-view-switch label{display:none}.calendar-view-switch select{width:100%}

  /* Einsatzkarte: Karte zuerst; Seitenspalten nach unten. */
  .job-map-shell{display:flex!important;flex-direction:column!important;gap:10px!important}.job-map-panel{order:1}.job-map-sidebar{order:2}.job-map-legend{display:none!important}.map-source-status{font-size:.78rem;padding:4px 2px}.job-map-canvas{height:min(62dvh,560px)!important;min-height:430px!important;border-radius:16px!important}.job-map-sidebar .panel{padding:12px}.job-map-sidebar .panel:not(:first-child){display:none}

  /* Seitenköpfe und Buttons nicht mehr raumgreifend. */
  .mobile-page-tools .button{min-height:42px;padding:8px 11px;font-size:.9rem}.page-head:has(.mobile-page-tools){display:grid;grid-template-columns:1fr auto;align-items:end}.page-head:has(.mobile-page-tools) .muted{grid-column:1/-1}
  .actions{flex-wrap:wrap}.actions>.button{flex:0 1 auto}

  /* Tabellen bleiben Ausnahme: wenn nötig horizontal, aber nie die ganze Seite. */
  .table-wrap,.calendar-scroll,.matrix-scroll{max-width:calc(100vw - 28px);overflow:auto;-webkit-overflow-scrolling:touch}
}
@media (max-width:640px){
  :root{--mobile-nav-height:70px}
  .mobile-nav{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .mobile-nav>a,.mobile-more>summary{min-height:54px!important;padding:3px 1px!important}
  .mobile-nav span,.mobile-more>summary span{font-size:20px!important}
  .mobile-nav small,.mobile-more>summary small{font-size:9px!important;letter-spacing:-.01em}
}

/* v1.21.58 – Benachrichtigungen: Handlungsbedarf zuerst, Systemarchiv kompakt */
.section-title-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  margin-top:1.5rem;
}
.section-title-row .section-title { margin:0; }
.notification-archive { margin-top:1.25rem; padding:0; overflow:hidden; }
.notification-archive > summary {
  cursor:pointer;
  padding:1rem 1.1rem;
  list-style:none;
  display:flex;
  align-items:center;
  gap:.45rem;
}
.notification-archive > summary::-webkit-details-marker { display:none; }
.notification-archive > summary::before { content:"▸"; color:var(--muted); }
.notification-archive[open] > summary::before { content:"▾"; }
.notification-archive-list { padding:0 1rem 1rem; }
.notification-archived-item {
  padding:.9rem 0;
  border-top:1px solid var(--border-color,#d6dde5);
}
@media (max-width: 768px) {
  .section-title-row { align-items:stretch; }
  .section-title-row form, .section-title-row .button { width:100%; }
  .section-title-row .button { justify-content:center; }
  .notification-archive { margin-bottom:calc(var(--mobile-nav-height, 76px) + env(safe-area-inset-bottom)); }
}

/* v1.21.59 – Materialisierung an SUB + sichtbare Ablehnungsgründe */
.materialization-panel { border-left: 4px solid #d7a200; }
.materialization-panel.materialization-overdue { border-left-color: #dc2626; background: #fff8f8; }
.materialization-panel.materialization-done { border-left-color: #2f7d00; }
.materialization-form { display:flex; gap:.75rem; align-items:flex-end; flex-wrap:wrap; }
.materialization-form label { display:flex; flex-direction:column; gap:.35rem; min-width:220px; }
.materialization-form input[type="date"], .materialization-form input[type="file"] { min-height:42px; }
.materialization-home-panel { margin-bottom:1rem; }
.materialization-home-panel .panel-head{margin-bottom:.45rem}.materialization-home-panel .home-list{gap:.35rem}.materialization-home-panel .home-list-item{padding:.55rem .7rem;min-height:0}.materialization-home-panel .home-list-item strong{font-size:.94rem}.materialization-home-panel .home-list-item span{font-size:.78rem}
.materialization-home-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.materialization-home-row > a:first-child { display:flex; flex-direction:column; gap:.2rem; flex:1; min-width:0; color:inherit; text-decoration:none; }
.materialization-home-row .actions { flex:0 0 auto; }
.assignment-status.assignment-declined { color:#b42318; font-weight:700; }

@media (max-width: 768px) {
  .materialization-form { display:grid; grid-template-columns:1fr; align-items:stretch; }
  .materialization-form label { min-width:0; }
  .materialization-form .button { width:100%; justify-content:center; }
  .materialization-home-row { align-items:flex-start; flex-direction:column; }
  .materialization-home-row .actions { width:100%; }
  .materialization-home-row .actions .button { flex:1; justify-content:center; }
}

/* v1.21.62 – kompakte Workflow-Termine */
.workflow-step-form{display:flex;align-items:end;gap:.65rem;flex-wrap:wrap}.workflow-step-date{display:flex;flex-direction:column;gap:.2rem;font-size:.82rem;color:var(--muted,#64748b)}.workflow-step-date input{min-height:38px;padding:.4rem .55rem;border:1px solid var(--line,#cbd5e1);border-radius:8px;background:var(--surface,#fff);color:inherit}@media(max-width:768px){.workflow-step-form{width:100%;align-items:stretch}.workflow-step-date{flex:1 1 150px}.workflow-step-form .button{flex:0 0 auto}}

/* v1.21.68 – iPad/Tablet UX: eigene produktive Zwischenstufe zwischen Mobile und Desktop */
@media (min-width:641px) and (max-width:1180px){
  :root{--tablet-gap:12px;--tablet-radius:15px}
  html,body{max-width:100%;overflow-x:hidden}
  .page{max-width:none;padding:16px 18px 28px}
  .topbar{position:sticky;top:0;z-index:130;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;padding:10px 16px;border-bottom:1px solid var(--border)}
  .brand{font-size:20px;line-height:1.15;overflow:hidden;text-overflow:ellipsis}
  .account{justify-content:flex-end;gap:7px;font-size:11px;line-height:1.2}
  .account>a,.account form .link-button{font-size:11px}
  .mainnav,.desktop-nav{grid-column:1/-1;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;order:3}
  .mainnav>a,.desktop-nav>a{position:relative;display:flex;min-height:72px;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 7px;border:1px solid var(--border);border-radius:14px;background:var(--panel);box-shadow:0 4px 14px rgba(15,23,42,.05);font-size:12px;font-weight:750;text-align:center;color:var(--text)}
  .mainnav>a:hover,.desktop-nav>a:hover{text-decoration:none;border-color:var(--accent);transform:none}
  .nav-icon{display:block!important;font-size:25px;line-height:1}
  .mainnav .nav-count,.desktop-nav .nav-count{position:absolute;right:8px;top:7px}

  /* Tablet-Startseite: Arbeitsinformation früher sichtbar. */
  .home-hero{gap:14px;margin-bottom:14px;padding:15px 17px;border-radius:var(--tablet-radius)}
  .home-hero h1{font-size:clamp(1.65rem,4vw,2.15rem);margin:.12rem 0 .2rem}
  .home-hero p{margin:0;font-size:.9rem}
  .home-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
  .home-stat-card{min-height:96px;padding:12px 14px;border-radius:13px}
  .home-stat-card>strong{font-size:1.55rem}.home-stat-card>small{font-size:.78rem;line-height:1.25}
  .home-grid,.employee-home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .home-panel,.panel,.card,.narrow-card,.project-card{border-radius:var(--tablet-radius)}
  .home-panel{padding:14px}.panel-head{gap:10px}.panel-head h2{font-size:1.08rem}
  .home-list{gap:7px}.home-list-item{padding:9px 10px}
  .dashboard-scroll-list{max-height:330px;overflow:auto;-webkit-overflow-scrolling:touch}

  /* Seitenkopf kompakter, Aktionen bleiben touchbar. */
  .page-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 12px;margin-bottom:14px}
  .page-head h1{font-size:1.7rem;line-height:1.1;margin:0}.page-head .muted{grid-column:1/-1;margin:0;font-size:.9rem}
  .page-head>.actions{justify-content:flex-end;margin:0}
  .button{min-height:42px;padding:9px 12px;border-radius:10px}
  .actions{gap:7px;flex-wrap:wrap}

  /* Formulare: zwei Spalten, aber keine gequetschten Desktop-Felder. */
  .form-grid,.filter-grid,.setup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .field input:not([type=checkbox]),.field select,.field textarea,.filter-bar select,.filter-bar input:not([type=checkbox]){min-height:44px;font-size:16px}
  form.filter-bar{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px!important;align-items:end}
  form.filter-bar .filter-actions{grid-column:1/-1;display:flex;justify-content:flex-end}

  /* Listen und Akkordeons für Touch statt Maus. */
  .project-accordion-summary,.assignment-week-group-summary,.documentation-summary{min-height:62px;padding:10px 12px!important}
  .project-summary-title{font-size:.98rem}.project-summary-meta{font-size:.8rem}
  .project-accordion-body,.assignment-week-group-body{padding:12px!important}

  /* Karten bekommen Fläche; Sidebar im Hochformat darunter. */
  .job-map-shell{grid-template-columns:1fr!important;gap:10px!important}
  .job-map-canvas{height:min(62vh,620px)!important;min-height:450px}
  .job-map-sidebar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .job-map-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}
  .job-map-toolbar .button{min-height:42px}

  /* Tabellen dürfen scrollen, aber bleiben innerhalb der Seite. */
  .table-wrap,.calendar-scroll,.matrix-scroll,.dispo-board-scroll{max-width:calc(100vw - 36px);overflow:auto;-webkit-overflow-scrolling:touch}
  .calendar-table,.matrix-table{min-width:820px}
  .data-table{font-size:.9rem}

  /* Keine Smartphone-Navigation auf dem Tablet. */
  .mobile-nav,.mobile-screenbar,.mobile-launcher{display:none!important}
  body{padding-bottom:0}
}

/* iPad Hochformat: 3 kompakte Navigationsspalten, Inhalt bleibt früh sichtbar. */
@media (min-width:641px) and (max-width:900px) and (orientation:portrait){
  .mainnav,.desktop-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mainnav>a,.desktop-nav>a{min-height:66px;padding:6px 5px;font-size:11px}
  .nav-icon{font-size:23px!important}
  .home-grid,.employee-home-grid{grid-template-columns:1fr}
  .job-map-sidebar{grid-template-columns:1fr}
}

/* iPad Querformat: zusätzliche Breite wirklich nutzen. */
@media (min-width:901px) and (max-width:1180px) and (orientation:landscape){
  .mainnav,.desktop-nav{grid-template-columns:repeat(5,minmax(0,1fr))}
  .mainnav>a,.desktop-nav>a{min-height:64px}
  .home-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .home-grid,.employee-home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .job-map-shell{grid-template-columns:minmax(0,1fr) 290px!important}
  .job-map-sidebar{grid-template-columns:1fr}
}

/* v1.21.69 – HOA-Typ und Eigen/Fremd/Unbekannt-Kennzeichnung */
.hoa-ownership-own { border-color: rgba(37,99,235,.45); background: rgba(37,99,235,.12); }
.hoa-ownership-external { border-color: rgba(217,119,6,.45); background: rgba(217,119,6,.12); }
.hoa-ownership-unknown { border-color: rgba(107,114,128,.45); background: rgba(107,114,128,.12); }
/* v1.21.72: I&C – direkter Google-Maps-Link unter jedem Job in Meine Einsätze */
.assignment-job-map-row{margin-top:7px!important}
.assignment-job-map-link{display:inline-flex;align-items:center;gap:.35rem;min-height:36px;padding:.38rem .65rem;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);text-decoration:none;font-weight:800;font-size:.84rem}
.assignment-job-map-link:hover{border-color:var(--accent);background:var(--panel)}
@media(max-width:900px){.assignment-job-map-link{min-height:44px;width:100%;justify-content:center;font-size:.9rem}}


/* v1.21.73 – persönliche Woche, kompakte Jobdetails */
.my-assignments-past-filter{display:flex;align-items:center;gap:.45rem;min-height:42px;padding:.25rem .35rem;font-weight:650}.my-assignments-past-filter input{width:18px;height:18px}.assignment-group-job.paused-card{opacity:.52;filter:grayscale(.85)}.assignment-group-job.completed-card .assignment-group-job-main h3,.assignment-group-job.completed-card .assignment-group-job-main p:not(.assignment-job-map-row){text-decoration:line-through;text-decoration-thickness:1.5px}.assignment-group-job.completed-card .assignment-job-map-row{text-decoration:none}.job-collapsible-section>.job-collapsible-summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.8rem}.job-collapsible-section>.job-collapsible-summary::-webkit-details-marker{display:none}.job-collapsible-meta{display:flex;align-items:center;justify-content:flex-end;gap:.25rem;flex-wrap:wrap;color:var(--muted);text-align:right}.job-collapsible-section>.job-collapsible-content{margin-top:.8rem}.job-collapsible-toggle .close-label{display:none}.job-collapsible-section[open] .job-collapsible-toggle .open-label{display:none}.job-collapsible-section[open] .job-collapsible-toggle .close-label{display:inline}@media(max-width:768px){.job-collapsible-section>.job-collapsible-summary{align-items:flex-start}.job-collapsible-meta{font-size:.86rem;max-width:58%}.lab-assignment-form{display:grid;grid-template-columns:1fr;gap:.7rem}.lab-assignment-form .button{width:100%;justify-content:center}}

/* v1.21.75: mobile job actions + readable conflict warning */
.conflict-box{background:#fde8ea!important;border-color:#d58a93!important;color:#5f1f29!important}
.conflict-box strong{color:#8b2635}
.conflict-box .conflict-list,.conflict-box .conflict-list li{color:#2d2022}
.conflict-box .conflict-list ul{color:#4b3a3d}

@media(max-width:700px){
  .job-page-actions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;width:100%}
  .job-page-actions>.button,.job-page-actions>.status-pill,.job-page-actions>form{width:100%;min-width:0;margin:0}
  .job-page-actions>.button,.job-page-actions>.status-pill,.job-page-actions>form .button{min-height:58px;height:58px;display:flex;align-items:center;justify-content:center;text-align:center;width:100%;box-sizing:border-box}
  .job-page-actions>.status-pill{border-radius:10px;padding:10px 14px}
  .job-page-actions>.job-action-complete{grid-column:1 / -1}
  .job-page-actions>.job-action-complete .button{width:100%;justify-content:center}
  .conflict-box{padding:12px 14px;border-width:1px}
  .conflict-list{padding-left:18px;margin-top:6px}
  .conflict-list>li{margin:6px 0}
  .conflict-list ul{padding-left:18px;margin-top:3px}
}


/* v1.21.76: compact mobile actions, daily staffing exceptions, lab occupancy, form cleanup */
@media(max-width:900px){.assignment-job-map-row{width:100%}.assignment-job-map-link{display:flex;width:100%;box-sizing:border-box}}
.capacity-filter-submit{min-height:42px}
@media(min-width:701px){form.capacity-filter{display:grid;grid-template-columns:minmax(150px,220px) minmax(260px,1fr);gap:10px 14px;align-items:center}form.capacity-filter>label{grid-column:1}form.capacity-filter>select{grid-column:2;width:100%;min-width:0}form.capacity-filter>.capacity-filter-submit{grid-column:2;width:100%;justify-content:center}}
.password-change-card{max-width:680px}.password-change-head{margin-bottom:18px}.password-change-head h1{margin-bottom:4px}.password-change-form{display:grid;gap:16px}.password-rules{border:1px solid var(--border);border-radius:10px;background:var(--panel2);padding:12px 14px;color:var(--muted)}.password-rules strong{display:block;color:var(--text);margin-bottom:6px}.password-rules ul{margin:0;padding-left:1.25rem}.password-change-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.password-change-actions .button{min-height:46px;justify-content:center}@media(max-width:700px){.password-change-actions{grid-template-columns:1fr}.password-change-actions .button{width:100%}}
.staffing-week-coverage{display:grid;gap:2px;min-width:150px;text-align:right}.staffing-week-coverage>strong{font-size:.9rem}.staffing-accepted-count{color:#9a6700;font-size:.78rem}.staffing-open-count{color:var(--red);font-size:.78rem}.staffing-day-statuses{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;padding:0 10px 10px}.staffing-day-status{display:grid;gap:6px;border:1px solid var(--border);border-radius:9px;padding:8px 10px;background:var(--panel2)}.staffing-day-status>div{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.staffing-day-status.is-ok{border-color:#6a9f7c;background:rgba(54,145,84,.08)}.staffing-day-status.is-accepted{border-color:#c6922d;background:rgba(214,157,44,.09)}.staffing-day-status.is-open{border-color:#c85a64;background:rgba(201,42,58,.08)}.staffing-day-status small{color:var(--muted);font-size:.74rem}.staffing-day-status form{margin:0}.staffing-day-status .button.small{min-height:32px;padding:5px 8px;font-size:.76rem;width:100%;justify-content:center}@media(max-width:700px){.staffing-week-row{grid-template-columns:1fr!important}.staffing-week-coverage{text-align:left}.staffing-day-statuses{grid-template-columns:1fr}}

/* v1.21.77: klare einspaltige Betriebsstellen-Filter auf Tablet/Mobil und kompakte Abwesenheitsaktionen */
.operating-site-filter-stack{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important;gap:10px!important}
.operating-site-filter-stack>label,.operating-site-filter-stack>button,.operating-site-filter-stack>a{width:100%!important;max-width:none!important;min-width:0!important}
.operating-site-filter-stack>label{display:grid!important;gap:5px!important}
.operating-site-filter-stack input[type="search"],.operating-site-filter-stack select{width:100%!important;max-width:none!important}
.operating-site-filter-stack .form-check{display:flex!important;align-items:center!important;gap:8px!important}
.absence-self-item{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.absence-self-item>div:first-child{display:grid;gap:4px;min-width:0}
.absence-self-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.absence-self-actions form{margin:0}
@media(max-width:1180px){.absence-self-actions{width:100%}.absence-self-actions .button,.absence-self-actions form{flex:1 1 180px}.absence-self-actions form .button{width:100%}}

/* 1.21.80: Light mode warnings remain legible with every theme setting */
html.theme-light .empty-warning,html.theme-light .conflict-box{background:#fff1f2!important;color:#881337!important;border-color:#fda4af!important}
html.theme-light .empty-warning *,html.theme-light .conflict-box *{color:inherit}
@media(prefers-color-scheme:light){html.theme-system .empty-warning,html.theme-system .conflict-box{background:#fff1f2!important;color:#881337!important;border-color:#fda4af!important}html.theme-system .empty-warning *,html.theme-system .conflict-box *{color:inherit}}
.sub-staff-inline>summary{cursor:pointer;padding:.65rem .2rem;list-style:revert}.sub-staff-inline[open]>summary{margin-bottom:.7rem}.sub-staff-inline>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* v1.21.85: visible, proportional Innen/Außen bar in both themes. */
.workmix-bar>span:not(.workmix-empty){display:block;flex:0 0 auto;min-width:0;height:100%}
.workmix-bar .workmix-absent{background:#9ca3af}
.workmix-bar{isolation:isolate;background:#cbd5ce}
/* Pause status visible before opening the editor. */
.job-lines>a.job-line-paused{background:rgba(245,159,0,.10);border-left:4px solid #f59f00;border-radius:6px}
.job-paused-tag{display:inline-block;margin-left:.4rem;padding:.12rem .45rem;border:1px solid #c77b00;border-radius:100px;background:rgba(245,159,0,.14);color:var(--text);font-size:.78rem;font-weight:800;white-space:nowrap}
