:root{--bg:#f4f6fa;--panel:#fff;--text:#172033;--muted:#6e778a;--line:#e4e8f0;--nav:#111827;--accent:#f5b800;--accent2:#ffd84d;--danger:#b42318;--green:#067647;--radius:18px;--shadow:0 8px 30px rgba(23,32,51,.07)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}body{margin:0}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.topbar{position:fixed;z-index:20;top:0;left:0;right:0;height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px}.brand{display:flex;align-items:center;gap:12px}.brand span:last-child{display:flex;flex-direction:column}.brand small,.sidebar small{color:#8d96a8}.brandmark{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,var(--accent2),var(--accent));display:grid;place-items:center;font-weight:900;color:#111827}.brandmark.large{width:72px;height:72px;border-radius:22px;font-size:24px}.menu-toggle{display:none;border:0;background:none;font-size:24px}.sidebar{position:fixed;top:72px;left:0;bottom:0;width:248px;background:var(--nav);color:#dfe5f0;padding:22px 14px;display:flex;flex-direction:column;justify-content:space-between;z-index:15}.sidebar nav{display:flex;flex-direction:column;gap:7px}.sidebar nav a{padding:12px 14px;border-radius:12px;display:flex;gap:12px;align-items:center}.sidebar nav a:hover,.sidebar nav a.active{background:#263246;color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 var(--accent)}.sidebar .disabled{opacity:.45;pointer-events:none}.sidebar em{font-size:10px;font-style:normal;background:#344056;padding:2px 5px;border-radius:6px}.nav-divider{height:1px;background:#2e394c;margin:10px 0}.sidebar footer{border-top:1px solid #2e394c;padding:16px 12px 0;display:flex;flex-direction:column}.main{padding:104px 30px 50px;margin-left:248px;max-width:1700px}.main.public{margin-left:0;padding:0;max-width:none}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.page-head h1{font-size:32px;margin:3px 0}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:800;color:#9b7100;margin:0}.muted{color:var(--muted);margin:4px 0}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin-bottom:22px}.card h2{margin:0 0 16px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:13px}.button,button{border:1px solid #d8deea;background:#fff;border-radius:11px;padding:10px 14px;cursor:pointer;font-weight:650;color:var(--text)}button:hover,.button:hover{background:#f5f7fa}.primary{background:var(--accent);border-color:var(--accent);color:#181818}.primary:hover{background:#e7ad00}.danger{color:var(--danger);border-color:#f1c0bc;background:#fff}.actions,.inline,.form-row{display:flex;gap:8px;align-items:center}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:22px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column}.stat span,.stat small{color:var(--muted)}.stat strong{font-size:35px;margin:8px 0}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}.person-row,.summary-row,.request-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.person-row:last-child,.summary-row:last-child,.request-row:last-child{border-bottom:0}.person-row>div,.request-row>div:first-child{display:flex;flex-direction:column;flex:1}.person-row small,.request-row small{color:var(--muted)}.avatar{width:38px;height:38px;border-radius:12px;background:#edf0f6;display:grid;place-items:center;font-weight:800}.status{font-size:12px;background:#e8f7ef;color:var(--green);padding:5px 8px;border-radius:999px}.next-shift{min-height:150px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:#fff9df;border-radius:15px}.next-shift strong{font-size:36px}.next-shift span{font-size:20px;font-weight:700}.next-shift small{color:var(--muted);margin-top:7px}.announcement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.announcement{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fafbfc}.announcement.important{border-left:5px solid var(--accent);background:#fffaf0}.announcement h3,.announcement h2{margin:7px 0}.announcement p{white-space:pre-wrap;line-height:1.5}.announcement small{color:var(--muted)}.announcement-list{max-width:850px}.empty-state,.empty-mini{color:var(--muted);padding:25px;text-align:center}.empty-mini{padding:16px 0}.compact{padding:16px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:13px;align-items:end;margin-top:18px}.form-grid .span2{grid-column:span 2}.stack{display:flex;flex-direction:column;gap:11px}.form-grid label,.stack label,.login-card label{display:flex;flex-direction:column;gap:6px;color:#4f596c;font-size:13px;font-weight:650}input,select,textarea{border:1px solid #d8deea;border-radius:10px;padding:11px;background:#fff;color:var(--text);min-width:0}input:focus,select:focus,textarea:focus{outline:3px solid rgba(245,184,0,.22);border-color:#d09d00}.check{display:flex!important;flex-direction:row!important;align-items:center;gap:7px!important}.check input{width:auto}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(165px,1fr));gap:11px;margin-bottom:22px;overflow-x:auto}.day-card{min-height:245px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}.day-card.today{border:2px solid var(--accent)}.day-card>header{margin-bottom:11px}.day-card>header div{display:flex;justify-content:space-between}.day-card>header span{color:var(--muted)}.shift{border:1px solid #e0e5ee;border-left:4px solid #344056;border-radius:11px;padding:10px;margin-bottom:9px;background:#fafbfc}.shift-head{display:flex;justify-content:space-between;gap:4px}.shift b,.shift small{display:block;margin-top:4px}.shift small{color:var(--muted)}.shift p{font-size:12px}.badge{font-size:11px;padding:4px 7px;border-radius:999px;background:#edf0f6}.badge.pending{background:#fff1cc;color:#8a6300}.badge.approved{background:#dcfae6;color:#067647}.badge.rejected{background:#fee4e2;color:#b42318}.edit{margin-top:9px;border-top:1px solid var(--line);padding-top:6px}.edit form{display:flex;flex-direction:column;gap:7px;margin-top:8px}.absence-strip{display:flex;gap:8px;overflow:auto;margin-bottom:12px}.absence-strip span{white-space:nowrap;background:#e9efff;padding:7px 10px;border-radius:999px;font-size:12px}.summary-row{justify-content:space-between}.employee-grid{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:18px}.employee{margin:0}.employee-title{display:flex;gap:12px;align-items:center;margin-bottom:16px}.employee-title h3{margin:0}.employee-title small{color:var(--muted)}.employee-actions{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;display:flex;justify-content:space-between;gap:8px}.request-row .actions{flex-wrap:wrap}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:linear-gradient(135deg,#111827 0%,#253249 55%,#f4f6fa 55%);align-items:center;padding:8vw}.login-brand{color:white;max-width:500px}.login-brand h1{font-size:54px;margin:20px 0 8px}.login-brand p{font-size:19px;color:#cbd3df}.login-card{width:min(430px,100%);justify-self:end;padding:32px}.login-card h2{font-size:30px}.login-card button{width:100%;margin-top:5px}.login-card>small{color:var(--muted);text-align:center}.alert{background:#fee4e2;color:#b42318;padding:10px;border-radius:10px;margin:10px 0}@media(max-width:1100px){.week-grid{grid-template-columns:repeat(7,200px)}.form-grid{grid-template-columns:repeat(2,1fr)}.announcement-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.topbar{height:64px;padding:0 15px}.menu-toggle{display:block}.sidebar{top:64px;transform:translateX(-100%);transition:.2s}.nav-open .sidebar{transform:translateX(0)}.main{margin-left:0;padding:86px 14px 35px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:27px}.stat-grid,.dashboard-grid,.employee-grid{grid-template-columns:1fr}.announcement-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}.employee-actions{flex-direction:column}.request-row{align-items:flex-start;flex-wrap:wrap}.login-shell{display:flex;flex-direction:column;justify-content:center;gap:25px;background:#111827;padding:25px}.login-brand{text-align:center}.login-brand h1{font-size:38px}.login-brand p{font-size:15px}.login-card{justify-self:auto}.form-row{flex-direction:column;align-items:stretch}}
/* Dienstplan mit festen Öffnungsblöcken */
.schedule-blocks .day-card{min-height:430px}.shift-block{border:1px solid var(--line);border-radius:12px;padding:9px;margin-bottom:9px;background:#fbfcfe}.block-title{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);margin-bottom:8px}.block-title span{font-weight:800;color:var(--text)}.lunch-break{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;margin:7px 0;border-radius:10px;background:#fff5cc;color:#755500;font-size:12px;border:1px dashed #e0b936}.lunch-break span{font-weight:800}.shift.morning{border-left-color:#e4a600}.shift.afternoon{border-left-color:#344056}.closed-day{background:#eef1f5;color:#7c8492}.closed-label{height:340px;display:grid;place-items:center;font-weight:800;color:#8b93a1}.custom-time{display:none}
/* Schnelle Schichtzuweisung */
.clickable-slot{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.clickable-slot:hover,.clickable-slot:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(245,184,0,.14);outline:none}.clickable-slot:active{transform:scale(.995)}.quick-hint{font-size:11px;font-weight:750;text-align:center;color:#8a6500;background:#fff8dc;border:1px dashed #e4bd36;border-radius:9px;padding:7px;margin-top:7px}.assign-dialog{width:min(470px,calc(100% - 28px));border:0;border-radius:20px;padding:0;box-shadow:0 24px 80px rgba(17,24,39,.28)}.assign-dialog::backdrop{background:rgba(17,24,39,.55);backdrop-filter:blur(3px)}.assign-dialog form{padding:24px;display:flex;flex-direction:column;gap:15px}.assign-dialog label{display:flex;flex-direction:column;gap:7px;font-weight:650;color:#4f596c}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.dialog-head h2{margin:4px 0 0;font-size:21px}.icon-button{border:0;background:#eef1f5;border-radius:50%;width:36px;height:36px;padding:0;font-size:24px;line-height:1}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:5px}@media(max-width:760px){.assign-dialog form{padding:19px}.dialog-actions{display:grid;grid-template-columns:1fr 1fr}.quick-hint{font-size:10px}}

/* Kiosk Portal v1.0 – interaktiver Dienstplan */
.schedule-page-head{align-items:center}.week-actions{flex-wrap:wrap}.week-actions form{margin:0}.icon-nav{font-size:20px;min-width:43px;text-align:center}.staff-strip{display:flex;align-items:center;gap:22px;margin-bottom:14px}.staff-strip-title{display:flex;flex-direction:column;min-width:145px}.staff-strip-title small{color:var(--muted);margin-top:3px}.staff-chips{display:flex;gap:8px;overflow:auto;padding:2px}.staff-chip{white-space:nowrap;background:#f4f6fa;border:1px solid var(--line);padding:8px 11px;border-radius:999px;font-size:12px;font-weight:700}.staff-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#24a36a;margin-right:7px}.schedule-v1{grid-template-columns:repeat(7,minmax(205px,1fr));align-items:stretch}.schedule-v1 .day-card{min-height:510px;padding:13px;display:flex;flex-direction:column}.day-header{display:flex;justify-content:space-between;align-items:center;min-height:42px}.day-header>div{display:flex;flex-direction:column}.day-header>div span{font-size:12px;margin-top:2px}.day-status{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:4px 7px;border-radius:999px}.day-status.complete{background:#dcfae6;color:#067647}.day-status.partial{background:#fff1cc;color:#8a6300}.day-status.empty{background:#fee4e2;color:#b42318}.shift-slot{border:1px solid var(--line);border-radius:15px;background:#fbfcfe;overflow:hidden;transition:.16s}.shift-slot.free{border-style:dashed}.shift-slot.occupied{border-color:#cfe8da;background:#fcfffd}.slot-add{display:block;width:100%;border:0;border-radius:0;background:transparent;text-align:left;padding:13px}.slot-add:hover{background:#fff9df}.slot-add:disabled{cursor:default}.slot-add:disabled:hover{background:transparent}.slot-title{display:flex;justify-content:space-between;gap:8px;font-size:12px}.slot-title span{font-weight:800}.slot-title b{font-size:11px;color:var(--muted)}.add-label{display:block;margin-top:16px;text-align:center;padding:13px 7px;color:#8a6500;background:#fff8dc;border:1px dashed #e4bd36;border-radius:10px;font-size:12px;font-weight:800}.assigned-list{padding:0 8px 8px}.assigned-person{width:100%;display:flex;align-items:center;gap:9px;border:1px solid #dce8e1;background:#fff;border-radius:11px;padding:9px;margin-top:6px;text-align:left}.assigned-person:hover{border-color:#75b793;background:#f5fcf8}.assigned-person:disabled{cursor:default}.assigned-person.draft{border-style:dashed;background:#fffaf0}.person-avatar{width:31px;height:31px;flex:0 0 31px;border-radius:10px;background:#edf0f6;display:grid;place-items:center;font-weight:850}.person-info{display:flex;flex-direction:column;min-width:0;flex:1}.person-info strong{font-size:12px}.person-info small{font-size:10px;color:var(--muted);margin-top:2px}.person-info em{font-size:10px;color:#795b00;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.edit-arrow{font-size:23px;color:#8992a2}.add-another{width:calc(100% - 16px);margin:0 8px 9px;border:0;background:transparent;color:#796000;padding:6px;font-size:11px}.add-another:hover{background:#fff8dc}.schedule-v1 .lunch-break{margin:10px 0;padding:9px}.closed-label{flex:1;height:auto;display:flex;flex-direction:column;gap:5px}.closed-label small{font-weight:500}.weekly-summary h2{margin:3px 0}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.summary-person{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.summary-person>div{display:flex;flex-direction:column;flex:1}.summary-person small{color:var(--muted);font-size:11px}.summary-person>b{font-size:13px}.optional{font-weight:500;color:var(--muted);font-size:11px}.publish-check{padding:11px;border-radius:11px;background:#f5f7fa}.split-actions{display:grid;grid-template-columns:auto 1fr auto auto}.assign-dialog select,.assign-dialog input{font-size:15px}.assign-dialog h2{margin-bottom:2px}
@media(max-width:1100px){.summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.schedule-page-head{align-items:flex-start}.week-actions{width:100%}.week-actions form{width:100%}.week-actions form button{width:100%}.staff-strip{align-items:flex-start;flex-direction:column;gap:10px}.staff-chips{width:100%}.schedule-v1{grid-template-columns:repeat(7,260px)}.schedule-v1 .day-card{min-height:500px}.summary-grid{grid-template-columns:1fr}.split-actions{grid-template-columns:1fr 1fr}.split-actions span{display:none}.split-actions .danger{grid-column:1 / -1}.dialog-actions button{width:100%}}

/* Kiosk Portal v1.1 – Mitarbeiter-Verfügbarkeiten */
.availability-head{align-items:center}.availability-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.availability-filter{display:flex;gap:12px;flex:1}.availability-filter label{min-width:220px}.deadline-box{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.deadline-box small{color:var(--muted)}.availability-overview{margin-top:18px}.availability-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.availability-summary .summary-person:hover{border-color:var(--accent);background:#fffaf0}.availability-card{margin-top:18px}.availability-card .card-head{align-items:flex-start}.availability-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;font-weight:750}.availability-legend .preferred{color:#067647}.availability-legend .possible{color:#8a6300}.availability-legend .unavailable{color:#b42318}.locked-note{margin:12px 0;padding:11px 13px;border-radius:11px;background:#dcfae6;color:#067647;font-weight:700}.availability-grid{display:grid;grid-template-columns:repeat(7,minmax(210px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px}.availability-day{border:1px solid var(--line);border-radius:15px;padding:12px;background:#fbfcfe;min-height:290px}.availability-day header div{display:flex;justify-content:space-between;margin-bottom:10px}.availability-day header span{color:var(--muted)}.availability-slot,.day-note{display:flex;flex-direction:column;gap:5px;margin-top:9px}.availability-slot>span,.day-note>span{font-size:11px;font-weight:750;color:var(--muted)}.status-select{font-size:12px;font-weight:700;border-width:1px}.status-select.status-preferred{background:#ecfdf3;border-color:#86d5aa;color:#067647}.status-select.status-possible{background:#fff8dc;border-color:#e5c75b;color:#7a5800}.status-select.status-unavailable{background:#fff0ef;border-color:#efaaa5;color:#b42318}.availability-closed{height:220px;display:grid;place-items:center;color:var(--muted);font-weight:800}.availability-actions,.submit-availability{display:flex;justify-content:flex-end;margin-top:14px}.submit-availability button{background:#172033;color:#fff}.availability-empty{text-align:center;padding:50px}.availability-empty h2{margin-top:0}
@media(max-width:1100px){.availability-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.availability-toolbar,.availability-filter{flex-direction:column;align-items:stretch}.availability-filter label{min-width:0}.deadline-box{align-items:flex-start}.availability-summary{grid-template-columns:1fr}.availability-grid{grid-template-columns:repeat(7,255px)}.availability-card .card-head{flex-direction:column}.availability-actions button,.submit-availability button{width:100%}}
.availability-hint{margin-top:-4px;padding:10px 12px;border-radius:10px;background:#f4f5f7;font-weight:700}.availability-hint[data-status="preferred"]{background:#e9f8ef}.availability-hint[data-status="possible"]{background:#fff5d8}.availability-hint[data-status="unavailable"],.availability-hint[data-status="absence"]{background:#fdeaea}
/* Kiosk Portal v1.3 – Arbeitszeiterfassung */
.live-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}.live-card{display:flex;align-items:center;gap:12px;margin:0;padding:16px}.live-card>div{display:flex;flex-direction:column;flex:1}.live-card small{color:var(--muted);margin-top:3px}.live-dot{width:12px;height:12px;border-radius:50%;background:#98a2b3}.live-dot.working{background:#12b76a;box-shadow:0 0 0 5px #dcfae6}.live-dot.break{background:#f5b800;box-shadow:0 0 0 5px #fff1cc}.time-table-wrap{overflow:auto}.time-table{width:100%;border-collapse:collapse;min-width:780px}.time-table th,.time-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:13px}.time-table th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.event-row td{padding-top:0;background:#fafbfc}.event-list{display:flex;flex-wrap:wrap;gap:7px}.event-list>span{display:flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:11px}.event-list form{display:inline;margin:0}.event-delete{border:0;background:none;padding:0 2px;color:var(--danger);font-size:16px}.time-state{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800;background:#eef1f5;color:#667085}.time-state.working{background:#dcfae6;color:#067647}.time-state.break{background:#fff1cc;color:#8a6300}.time-state.off{background:#eef1f5;color:#667085}.terminal-shell{max-width:1300px;margin:auto}.terminal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.terminal-head h1{font-size:40px;margin:3px 0}.terminal-clock{font-size:18px;font-weight:750;color:var(--muted)}.terminal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.terminal-person{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:24px;text-align:center}.large-avatar{width:58px;height:58px;margin:auto;font-size:21px}.terminal-person h2{margin:12px 0 8px}.terminal-form{display:flex;flex-direction:column;gap:11px;margin-top:18px}.terminal-form input{text-align:center;font-size:22px;letter-spacing:.25em}.terminal-action,.terminal-actions button{min-height:52px;font-size:16px}.terminal-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.terminal-message{padding:14px 16px;border-radius:13px;margin-bottom:16px;font-weight:800}.terminal-message.success{background:#dcfae6;color:#067647}.terminal-message.error{background:#fee4e2;color:#b42318}.locked-terminal{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;padding:30px}.locked-terminal h1{margin:6px 0}.locked-terminal p,.locked-terminal small{color:var(--muted)}
@media(max-width:1000px){.live-grid,.terminal-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.live-grid,.terminal-grid{grid-template-columns:1fr}.terminal-head{flex-direction:column;gap:12px}.terminal-head h1{font-size:32px}.terminal-actions{grid-template-columns:1fr}.page-head form,.page-head form button{width:100%}}
.notification-row{display:flex;justify-content:space-between;gap:16px;padding:16px;border-bottom:1px solid var(--line,#e5e7eb);text-decoration:none;color:inherit}.notification-row.unread{font-weight:600;background:rgba(250,204,21,.08)}.notification-row p{margin:4px 0;font-weight:400}.dot{width:10px;height:10px;border-radius:50%;background:#eab308;flex:0 0 auto;margin-top:7px}.conflict{display:block;color:#b45309;margin-top:5px}.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kpi-row>div{padding:16px;border:1px solid var(--line,#e5e7eb);border-radius:12px}.kpi-row strong{display:block;font-size:1.6rem}.kpi-row small{display:block;color:#6b7280;margin-top:4px}@media(max-width:700px){.kpi-row{grid-template-columns:1fr}.notification-row{padding:14px 4px}}
/* v2.0 Aufgaben, Checklisten und Chat */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:flex;flex-direction:column;gap:6px}.form-grid .wide{grid-column:1/-1}.task-list{display:grid;gap:10px}.task-row{display:flex;align-items:center;gap:14px;border-left:5px solid transparent}.task-row.priority-high{border-left-color:#dc2626}.task-row.priority-low{border-left-color:#94a3b8}.task-check{width:42px;height:42px;border-radius:50%;font-size:22px;border:1px solid #d1d5db;background:#fff}.task-main{flex:1}.task-title{font-weight:800;font-size:1.05rem}.task-main p{margin:.3rem 0}.task-done{opacity:.62}.task-done .task-title{text-decoration:line-through}.meta{font-size:.84rem;color:#64748b;margin-top:6px}.small{padding:7px 10px;font-size:.8rem}.checklist-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:16px}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.check-items{display:grid;gap:8px}.check-item{width:100%;display:flex;text-align:left;gap:12px;align-items:flex-start;padding:12px;border-radius:12px;border:1px solid #e5e7eb;background:#fff}.check-item.done{background:#ecfdf5;border-color:#a7f3d0}.check-item small{display:block;color:#64748b;margin-top:3px}.channel-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.channel-tabs a{padding:9px 13px;border-radius:999px;background:#e5e7eb;text-decoration:none;color:#111827}.channel-tabs a.active{background:#111827;color:#fff}.chat-box{padding:0;overflow:hidden}.messages{min-height:360px;max-height:58vh;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:12px}.message{max-width:75%;background:#f1f5f9;border-radius:14px;padding:10px 12px}.message.mine{align-self:flex-end;background:#fef3c7}.message p{margin:4px 0;white-space:pre-wrap}.message small{color:#64748b}.chat-form{display:flex;gap:10px;padding:14px;border-top:1px solid #e5e7eb}.chat-form textarea{flex:1;resize:none}.badge.success{background:#dcfce7;color:#166534}@media(max-width:700px){.form-grid{grid-template-columns:1fr}.task-row{align-items:flex-start}.message{max-width:90%}.chat-form{flex-direction:column}}
.stat-grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}.dashboard-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-actions{display:flex;gap:.6rem;flex-wrap:wrap}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;background:#9ca3af}.dot.working{background:#22c55e}.dot.break{background:#f59e0b}.dot.off{background:#6b7280}.metric-line{display:flex;justify-content:space-between;margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e5e7eb}.activity-list>div{display:grid;grid-template-columns:minmax(160px,1fr) 2fr auto;gap:1rem;align-items:center;padding:.8rem 0;border-bottom:1px solid #e5e7eb}.activity-list>div:last-child{border-bottom:0}.activity-list small{color:#6b7280}.table-wrap{overflow:auto}.positive{color:#15803d;font-weight:700}.negative{color:#b91c1c;font-weight:700}textarea{font:inherit}label.wide{grid-column:1/-1}@media(max-width:1100px){.stat-grid-6{grid-template-columns:repeat(3,1fr)}.dashboard-grid.three{grid-template-columns:1fr 1fr}}@media(max-width:700px){.stat-grid-6,.dashboard-grid.three{grid-template-columns:1fr}.activity-list>div{grid-template-columns:1fr;gap:.2rem}}

.document-list{display:grid;gap:10px}.document-row{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--border,#e5e7eb);border-radius:14px}.document-icon{width:44px;height:44px;border-radius:12px;background:#f3f4f6;display:grid;place-items:center;font-size:22px}.document-row small{display:block;color:#6b7280;margin-top:3px}.document-actions{display:flex;gap:8px;align-items:center}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.feature-grid>div{padding:16px;background:#f8fafc;border-radius:14px}.feature-grid p{margin-bottom:0;color:#64748b}.small{font-size:.85rem}.button.danger{background:#fff1f2;color:#be123c;border-color:#fecdd3}@media(max-width:700px){.document-row{grid-template-columns:42px 1fr}.document-actions{grid-column:1/-1}.feature-grid{grid-template-columns:1fr}}
.toolbar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin:0 0 1rem}.inline-form{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.list-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--border,#e5e7eb)}.print-schedule{width:100%;border-collapse:collapse}.print-schedule th,.print-schedule td{border:1px solid #999;padding:10px;vertical-align:top}.print-head{display:flex;justify-content:space-between;align-items:center}.notice.success{padding:12px 14px;border-radius:10px;background:#ecfdf5;color:#065f46;margin-bottom:1rem}@media print{.sidebar,.topbar,.no-print{display:none!important}.main{margin:0!important;padding:0!important}.print-schedule{font-size:12px}.print-head{display:block}.panel{box-shadow:none!important;border:0!important}}
/* Kiosk Portal 2.7 – Stabilisierung */
.error-page{max-width:680px;margin:8vh auto;text-align:center;padding:42px}.error-code{font-size:4rem;font-weight:900;letter-spacing:-.05em;color:#98a2b3}.error-page h1{margin:.2rem 0}.error-page p{color:var(--muted);font-size:1.05rem}.error-page .quick-actions{justify-content:center;margin-top:22px}.system-meta{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin-bottom:18px}.system-meta span{color:var(--muted)}.system-meta strong{overflow-wrap:anywhere}.check-list{display:grid;gap:10px}.check-row{display:flex;gap:12px;align-items:flex-start;padding:13px;border-radius:12px;border:1px solid var(--line)}.check-row.ok{background:#ecfdf3;border-color:#abefc6}.check-row.warn{background:#fffaeb;border-color:#fedf89}.check-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-weight:900;background:#fff}.check-row small{display:block;color:var(--muted);margin-top:3px}.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(245,184,0,.45);outline-offset:2px}@media(max-width:700px){.main{padding:14px}.panel{padding:16px}.page-head{gap:10px}.page-head h1{font-size:1.55rem}.error-page{margin:2vh auto;padding:26px 18px}.list-row{align-items:flex-start;flex-direction:column}.list-row .button{width:100%}.system-meta{grid-template-columns:1fr}.system-meta strong{margin-bottom:8px}}

/* Kiosk Portal 3.0 – aufgeräumte Navigation & Verfügbarkeiten */
.sidebar{overflow-y:auto}.nav-tree{gap:5px!important}.nav-main{padding:11px 14px!important}.nav-section{border-radius:12px}.nav-section summary{list-style:none;padding:11px 14px;border-radius:12px;display:flex;gap:12px;align-items:center;cursor:pointer;font-weight:650}.nav-section summary::-webkit-details-marker{display:none}.nav-section summary:after{content:'›';margin-left:auto;transition:.18s}.nav-section[open] summary:after{transform:rotate(90deg)}.nav-section summary:hover,.nav-section[open]>summary{background:#1c2739;color:#fff}.nav-section>div{display:flex;flex-direction:column;gap:3px;padding:4px 0 6px 22px}.nav-section>div a{padding:9px 12px!important;font-size:14px}.availability-settings{display:flex;align-items:center;justify-content:space-between;gap:24px}.availability-settings h2{margin:4px 0}.shift-lock-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lock-toggle{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:#fafbfc}.lock-toggle input{width:auto}.compact-days{display:grid;grid-template-columns:repeat(2,minmax(430px,1fr));gap:14px}.compact-days .availability-day{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.compact-days .availability-day header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.compact-days .availability-day header>div{display:flex;gap:5px;align-items:baseline}.day-all{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.day-all select{padding:8px}.slot-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.compact-days .availability-slot{display:flex;flex-direction:column;gap:5px}.compact-days .availability-slot>span,.compact-days .day-note>span{font-size:12px;font-weight:700;color:#4f596c}.locked-slot{border:1px dashed #d5dae4;border-radius:10px;padding:9px;background:#f4f5f7;color:#8a93a3}.locked-slot strong{font-size:13px}.compact-days .day-note{display:flex;flex-direction:column;gap:5px;margin-top:9px}.closed-day{grid-column:1/-1}.closed-day .availability-closed{padding:12px;text-align:center;background:#f0f2f5;border-radius:10px;color:var(--muted)}
@media(max-width:1150px){.compact-days{grid-template-columns:1fr}.availability-settings{align-items:flex-start;flex-direction:column}}@media(max-width:760px){.slot-row{grid-template-columns:1fr}.compact-days{display:block}.compact-days .availability-day{margin-bottom:12px}.compact-days .availability-day header{align-items:flex-start;flex-direction:column}.day-all{width:100%;justify-content:space-between}.day-all select{flex:1}.shift-lock-form{flex-direction:column;align-items:stretch;width:100%}}

/* Eigene veröffentlichte Schichten des angemeldeten Mitarbeiters */
.assigned-person.own-shift {
  background: #e9f8ee;
  border-color: #5fbe7d;
  box-shadow: inset 4px 0 0 #2f9e57;
}
.assigned-person.own-shift .person-avatar {
  background: #2f9e57;
  color: #fff;
}
.assigned-person.own-shift .person-info strong { color: #176b36; }
.assigned-person.own-shift.draft {
  background: #edf8f0;
  border-color: #7ac892;
}
.settings-list{display:grid;gap:0;border-top:1px solid var(--border,#e5e7eb)}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--border,#e5e7eb);cursor:pointer}
.setting-row div{display:grid;gap:4px}.setting-row small{color:var(--muted,#6b7280)}
.setting-row input[type=checkbox]{width:22px;height:22px;flex:0 0 auto}
@media(max-width:640px){.setting-row{align-items:flex-start}.settings-list{gap:0}}

.permission-box{margin-top:16px;border-top:1px solid var(--border,#ddd);padding-top:12px}.permission-box summary{cursor:pointer;font-weight:700}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin:10px 0 14px}.permission-grid .check{display:flex;gap:9px;align-items:flex-start;padding:10px;border:1px solid var(--border,#ddd);border-radius:10px;background:var(--card,#fff)}

/* v3.8 Betriebsorganisation */
.quick-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 18px}.quick-card{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit}.quick-card strong{font-size:1.8rem}.quick-card span{color:var(--muted,#6b7280)}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.badge.warning{background:#fff4d6;color:#8a5a00}.knowledge-body{line-height:1.65;white-space:normal}.form-grid.compact{margin-top:14px}.checkbox-line{display:flex!important;align-items:center;gap:8px}.checkbox-line input{width:auto}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.tabs a{padding:8px 12px;border-radius:10px;background:#fff;border:1px solid #dfe4ea;text-decoration:none;color:inherit}.tabs a.active{font-weight:700;border-color:#111827}@media(max-width:800px){.quick-links{grid-template-columns:1fr}}

/* Sichtbare Dienstplan-Freigabe direkt pro Benutzer */
.schedule-access-box{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:14px 0;padding:14px;border:1px solid var(--border,#d9dee8);border-radius:14px;background:var(--surface-soft,#f7f9fc)}
.schedule-access-box>div{display:grid;gap:4px}.schedule-access-box small{color:var(--muted,#667085);line-height:1.35}
.schedule-view-switch{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.schedule-view-switch button{white-space:nowrap}
.schedule-view-switch button.selected{background:#172b4d;color:#fff;border-color:#172b4d;box-shadow:0 0 0 2px rgba(23,43,77,.12)}
@media(max-width:720px){.schedule-access-box{align-items:stretch;flex-direction:column}.schedule-view-switch{display:grid;grid-template-columns:1fr 1fr}.schedule-view-switch button{width:100%}}
.settings-form h2{margin:1rem 0 .2rem}.notice.success{padding:14px 16px;border-radius:12px;background:#e8f7ee;margin-bottom:16px}.permission-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
/* Kiosk Portal 4.1 – anpassbares Dashboard */
.topbar{display:flex;align-items:center;justify-content:space-between}.topbar-actions{display:flex;align-items:center;gap:10px}.notification-bell{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;text-decoration:none;background:#fff;color:#172b4d;border:1px solid #e3e7ed;font-size:19px}.notification-bell span{position:absolute;right:-5px;top:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#dc2626;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800}.stat-link{text-decoration:none;color:inherit;transition:.16s transform,.16s box-shadow}.stat-link:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,23,42,.09)}.widget-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.widget-toggle{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #e2e7ee;border-radius:14px;padding:15px;background:#fafbfc;cursor:pointer}.widget-toggle div{display:grid;gap:4px}.widget-toggle small{color:#667085}.widget-toggle input[type=checkbox]{width:22px;height:22px}.form-actions{display:flex;justify-content:flex-end;margin-top:18px}.filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto auto;gap:10px;align-items:end}.filter-grid label{display:grid;gap:5px}.notification-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px;border-bottom:1px solid #e8ebf0;text-decoration:none;color:inherit}.notification-row.unread{background:#f5f9ff}.unread-dot{width:10px;height:10px;border-radius:50%;background:#2563eb;flex:0 0 auto}@media(max-width:900px){.widget-settings{grid-template-columns:1fr}.filter-grid{grid-template-columns:1fr 1fr}.filter-grid label:first-child{grid-column:1/-1}}@media(max-width:600px){.filter-grid{grid-template-columns:1fr}.filter-grid label:first-child{grid-column:auto}.notification-bell{width:38px;height:38px}}

/* Version 4.2 – persönlicher Mitarbeiterbereich */
.my-account-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end}.next-shift-chip{background:var(--card,#fff);border:1px solid var(--line,#e3e8ef);border-radius:16px;padding:14px 18px;display:flex;flex-direction:column;box-shadow:0 8px 24px rgba(24,39,75,.06)}.next-shift-chip small,.metric-card small{color:var(--muted,#667085)}.personal-metrics{margin-bottom:24px}.metric-card.highlight{background:linear-gradient(135deg,#102a43,#1f5f99);color:#fff}.metric-card.highlight small,.metric-card.highlight span{color:rgba(255,255,255,.78)}.content-grid.two-thirds{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:22px;align-items:start}.content-grid.two-thirds>div,.content-grid.two-thirds>aside{display:grid;gap:22px}.panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panel-title h2{margin:.15rem 0 0}.earnings-panel{overflow:hidden}.estimate-badge{background:#e8f4ff;color:#175cd3;border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:700}.earnings-total{padding:24px 0 18px;display:flex;flex-direction:column}.earnings-total span{color:var(--muted,#667085)}.earnings-total strong{font-size:clamp(2.2rem,6vw,3.7rem);line-height:1.05;margin-top:5px}.earnings-breakdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.earnings-breakdown div,.mini-stats div{background:var(--soft,#f6f8fb);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:3px}.earnings-breakdown span,.mini-stats span{font-size:.78rem;color:var(--muted,#667085)}.legal-note{font-size:.78rem;color:var(--muted,#667085);margin:16px 0 0}.progress-track{height:14px;border-radius:999px;background:#e9eef5;overflow:hidden;margin:20px 0 8px}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2b6cb0,#38a169)}.progress-caption{display:flex;justify-content:space-between;color:var(--muted,#667085);font-size:.85rem}.balance-box{margin-top:18px;padding:14px;border-radius:13px;display:flex;justify-content:space-between;align-items:center}.balance-box.positive{background:#ecfdf3;color:#027a48}.balance-box.negative{background:#fff4ed;color:#b93815}.personal-list>div,.compact-shifts>div{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line,#e8edf3)}.personal-list>div:last-child,.compact-shifts>div:last-child{border-bottom:0}.personal-list span,.compact-shifts span{display:flex;flex-direction:column}.personal-list span:last-child,.compact-shifts span:last-child{text-align:right}.personal-list small,.compact-shifts small{color:var(--muted,#667085);margin-top:2px}.leave-number{text-align:center;padding:18px 0}.leave-number strong{display:block;font-size:3.4rem;line-height:1}.leave-number span{color:var(--muted,#667085)}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.document-mini-list{display:grid;gap:8px;margin:14px 0}.document-mini-list a{display:flex;gap:9px;align-items:center;padding:10px;border-radius:10px;background:var(--soft,#f6f8fb);text-decoration:none;color:inherit}.full{display:block;text-align:center;width:100%;box-sizing:border-box;margin-top:14px}
@media(max-width:900px){.content-grid.two-thirds{grid-template-columns:1fr}.earnings-breakdown{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.my-account-head{align-items:stretch;flex-direction:column}.personal-metrics{grid-template-columns:repeat(2,1fr)}.earnings-breakdown{grid-template-columns:1fr 1fr}.earnings-total strong{font-size:2.5rem}.progress-caption{gap:10px;flex-direction:column}.metric-card strong{font-size:1.35rem}}
