:root{--bg: #f4f6f9;--surface: #ffffff;--surface-2: #f9fafc;--border: #dde3ec;--text: #1c2536;--muted: #667085;--accent: #2b5fd9;--accent-soft: #e8efff;--accent-contrast: #ffffff;--titel: #1c2536;--ueberschrift: #1c2536;--day: #0f766e;--day-soft: #dcf5f1;--night: #4c4192;--night-soft: #e8e4fb;--danger: #c0392b;--danger-soft: #fdeceb;--warn: #b7791f;--warn-soft: #fdf3e0;--ok: #1e7a46;--ok-soft: #e3f6ea;--radius: 8px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}.topbar-logo{max-height:28px;max-width:180px;width:auto;object-fit:contain;display:block;flex:0 0 auto}.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:0 20px;display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:20}.topbar h1{font-size:16px;margin:0;padding:14px 0;color:var(--titel);white-space:nowrap}.topbar nav{display:flex;gap:4px;flex-wrap:wrap}.topbar nav a{padding:16px 9px;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;font-weight:500}.topbar nav a:hover{color:var(--text)}.topbar nav a.active{color:var(--accent);border-bottom-color:var(--accent)}.topbar nav a.nav-icon{font-size:17px;padding-left:11px;padding-right:11px}main{padding:24px;max-width:1600px;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;flex-wrap:wrap}.page-head h2{margin:0;font-size:30px;line-height:1.15;color:var(--ueberschrift)}.page-head p{margin:0;color:var(--muted)}.page-head .actions{flex:1 0 100%;justify-content:flex-start}.page-head .actions .rechts{display:flex;gap:8px;margin-left:auto}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:minmax(320px,380px) 1fr;align-items:start}.grid.cols-plan{grid-template-columns:1fr minmax(260px,300px);align-items:start}@media(max-width:1100px){.grid.cols-2,.grid.cols-plan{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card>h3{margin:0;padding:14px 16px;color:var(--ueberschrift);border-bottom:1px solid var(--border);font-size:14px;background:var(--surface-2)}.card-body{padding:16px}.card-titel-klappbar{display:flex;align-items:center;gap:6px;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.card-klapp-pfeil{color:var(--muted);width:.9em;display:inline-block}.field{margin-bottom:12px}.field label{display:block;font-weight:500;margin-bottom:4px;font-size:13px}input[type=text],input[type=number],input[type=time],input[type=date],input[type=month],input[type=email],input[type=search],select,textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.row{display:flex;gap:10px}.row>*{flex:1}.pause-gruppe{display:flex;align-items:center;gap:8px}.pause-gruppe input[type=time]{flex:1;min-width:0}.pause-gruppe input[type=number]{flex:0 0 auto}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}button{font:inherit;padding:8px 14px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}button:hover{background:var(--surface-2)}a.button{display:inline-block;font:inherit;padding:8px 14px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);text-decoration:none;cursor:pointer}a.button.small{padding:4px 10px;font-size:13px}a.button:hover{background:var(--surface-2)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}button.primary:hover{filter:brightness(1.08)}button.danger{color:var(--danger);border-color:#f0c8c3;background:var(--danger-soft)}button.erfolg{background:var(--ok);border-color:var(--ok);color:#fff}button.erfolg:hover{filter:brightness(1.08)}button.link{border:none;background:none;color:var(--accent);padding:2px 6px}button.small{padding:4px 8px;font-size:12px}button:disabled{opacity:.5;cursor:not-allowed}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.gruppen-filter{position:relative;display:inline-flex}.gruppen-filter>button{width:180px;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;white-space:nowrap}.gruppen-label{overflow:hidden;text-overflow:ellipsis}.gruppen-filter>button.offen{border-color:var(--accent);color:var(--accent)}.gruppen-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:30;min-width:200px;max-height:320px;overflow-y:auto;padding:8px;display:grid;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #10182824}.gruppen-panel .check{white-space:nowrap}.gruppen-trenner{border-top:1px solid var(--border);margin:2px 0}.monat-wahl{position:relative;display:inline-flex}.monat-wahl>button{min-width:160px;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;white-space:nowrap}.monat-wahl>button.offen{border-color:var(--accent);color:var(--accent)}.monat-wahl-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:30;width:240px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #10182824}.monat-wahl-jahr{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-weight:600}.monat-wahl-jahr button{width:28px;height:28px;padding:0;font-size:16px;line-height:1;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);cursor:pointer}.monat-wahl-jahr button:hover{background:var(--accent-soft)}.monat-wahl-raster{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.monat-wahl-raster button{padding:8px 0;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer}.monat-wahl-raster button:hover{background:var(--accent-soft)}.monat-wahl-raster button.aktiv{background:var(--accent);color:#fff;border-color:var(--accent)}.monat-wahl-leeren{width:100%;margin-top:8px;padding:6px 0;font-size:12px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);cursor:pointer;color:var(--muted)}.monat-wahl-leeren:hover{background:var(--accent-soft);color:var(--accent)}.schritte{display:flex;align-items:flex-start;gap:48px;flex-wrap:wrap}.schritt{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:8px 16px;align-items:start}.schritt-tat{display:grid;gap:6px;justify-items:start}.schritt-tat>button{width:100%}.schritt-optionen{display:grid;gap:4px}.schritt-kopf{grid-column:1 / -1;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.aenderung-kopf{display:grid;gap:4px;margin-bottom:12px}.aenderung-tabelle td.vorher{color:var(--muted);text-decoration:line-through}.aenderung-tabelle td.vorher .muted{text-decoration:none}.aenderung-tabelle td.nachher{font-weight:500}.overlay.aenderung .dialog{max-width:900px}.overlay.benachrichtigen .dialog{width:min(840px,100%);max-width:none}.overlay.archiv .dialog{width:min(760px,100%);max-width:none}.archiv-tabelle{width:100%;border-collapse:collapse}.archiv-tabelle th,.archiv-tabelle td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}.archiv-tabelle th{text-align:left;font-weight:600;color:var(--muted);font-size:12px}.archiv-tabelle th.num,.archiv-tabelle td.num{text-align:right;white-space:nowrap}.archiv-zeile{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.empfaenger-tabelle{width:100%;border-collapse:collapse}.empfaenger-tabelle th,.empfaenger-tabelle td{padding:6px 8px;border-bottom:1px solid var(--line)}.empfaenger-tabelle td:nth-child(2){min-width:220px}.empfaenger-tabelle th.num,.empfaenger-tabelle td.num{white-space:nowrap}.empfaenger-tabelle th{text-align:left;font-weight:600;color:var(--muted);font-size:12px}.empfaenger-tabelle th.num,.empfaenger-tabelle td.num{text-align:right}.empfaenger-tabelle tr.gesperrt{color:var(--muted);background:var(--surface-alt, #f7f8fa)}.einzelplaene{display:none}.schritt-nr{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:12px}table{width:100%;border-collapse:collapse}th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--border)}th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:var(--surface-2)}.gruppen-kopf{text-align:center;border-bottom-color:var(--border)}tbody tr:hover{background:var(--surface-2)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td.mitte,th.mitte{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}.adresse{display:flex;align-items:center;gap:0}.adresse input{border-top-right-radius:0;border-bottom-right-radius:0}.adresse select{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.adresse-domain{padding:9px 10px;border:1px solid var(--border);border-left:none;border-radius:0 6px 6px 0;background:var(--surface-2);color:var(--muted);white-space:nowrap}.domain-liste{display:grid;gap:6px}.domain-zeile{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px}.logo-zeile{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.logo-vorschau{width:200px;height:64px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface-2);display:flex;align-items:center;justify-content:center;padding:6px;flex:0 0 auto}.logo-vorschau img{max-width:100%;max-height:100%;object-fit:contain}.farbfeld{display:flex;align-items:center;gap:8px}.farbfeld input[type=color]{width:48px;height:32px;padding:2px;flex:0 0 auto}.mitarbeiter-tabelle thead th{height:56px}.mitarbeiter-tabelle tbody tr:not(.subtotal) td{height:58px}.mitarbeiter-tabelle td.kw,.mitarbeiter-tabelle th.kw{text-align:left;font-variant-numeric:tabular-nums;white-space:nowrap}.mitarbeiter-tabelle thead th:first-child{width:220px}.mitarbeiter-tabelle td.kw .auslastung,.mitarbeiter-tabelle th.kw{justify-content:flex-start}.mitarbeiter-tabelle .monatsspalte{padding-left:48px}.stufen{display:grid;gap:6px}.stufe{display:flex;align-items:center;gap:10px}.stufe input[type=color]{width:48px;height:30px;padding:2px;flex:0 0 auto}.stufe-grenze{display:flex;align-items:center;gap:6px}.branding-vorschau{margin-top:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);display:grid;gap:4px}.vorschau-knopf{border-radius:6px;padding:6px 12px;font-size:13px;font-weight:500}.einsatz-zelle{max-width:220px}.tabelle-aktionen{display:flex;gap:6px;justify-content:flex-end;flex-wrap:nowrap}.tabelle-aktionen button{white-space:nowrap;flex:0 0 auto}.tabelle-scroll{overflow-x:auto}.sicherungs-gruppe{border-top:1px solid var(--border);padding-top:8px;margin-top:8px}.sicherungs-gruppe:first-of-type{border-top:none;padding-top:0;margin-top:0}.sicherungs-gruppe summary{cursor:pointer;font-weight:600;padding:4px 0;list-style:revert}.sicherungs-gruppe .tabelle-scroll{margin-top:8px}.person-zelle{display:flex;align-items:center;gap:9px;min-width:0}tr.subtotal td{font-weight:600;background:var(--surface-2)}.empty{padding:24px;text-align:center;color:var(--muted)}.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.tag.tag-tag{background:var(--day-soft);color:var(--day)}.tag.tag-nacht{background:var(--night-soft);color:var(--night)}.tag.tag-werktag{background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.tag.tag-wochenende{background:var(--warn-soft);color:var(--warn)}.tag.tag-feiertag,.tag.tag-offen{background:var(--danger-soft);color:var(--danger)}.tag.tag-ok{background:var(--ok-soft);color:var(--ok)}.tag.tag-info{background:var(--accent-soft);color:var(--accent)}.tag.tag-warn{background:var(--warn-soft);color:var(--warn)}.muted{color:var(--muted)}.small{font-size:12px}.error{background:var(--danger-soft);color:var(--danger);padding:10px 12px;border-radius:6px;margin-bottom:12px}.notice{background:var(--accent-soft);color:var(--accent);padding:10px 12px;border-radius:6px;margin-bottom:12px}.notice.schliessbar{display:flex;align-items:flex-start;gap:8px}.notice.schliessbar>div{flex:1}.notice.schliessbar>button{flex:0 0 auto;color:inherit;margin:-4px -4px 0 0}.warning{background:var(--warn-soft);color:var(--warn);padding:10px 12px;border-radius:6px;margin-bottom:12px}.zeitraum-nav{display:inline-flex;align-items:center;width:fit-content;height:38px;border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden}.zeitraum-nav button{height:100%;border:none;background:none;font-weight:600;line-height:1;color:var(--accent);cursor:pointer}.zeitraum-nav>button:first-child,.zeitraum-nav>button:last-child{width:36px;font-size:16px}.zeitraum-nav button:hover:not(:disabled){background:var(--accent-soft)}.zeitraum-nav button:disabled{color:var(--muted);cursor:default}.zeitraum-nav-wert{padding:0 14px;min-width:150px;font-weight:500;color:var(--text)}.zeitraum-nav-wert.kurz{min-width:70px}.zeitraum-nav.chosen .zeitraum-nav-wert:disabled{color:var(--text);font-weight:700}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.calendar .weekday{background:var(--surface-2);padding:8px;font-size:12px;text-transform:uppercase;color:var(--muted);text-align:center;letter-spacing:.03em}.calendar .day{background:var(--surface);min-height:118px;padding:6px;display:flex;flex-direction:column;gap:4px}.calendar .day.outside{background:var(--surface-2);opacity:.55}.calendar .day.weekend{background:#fcfbf7}.calendar .day.feiertag{background:var(--warn-soft)}.calendar .day.feiertag .day-num{color:var(--warn)}.calendar .day-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.calendar .day-head .add{opacity:0}.calendar .day:hover .day-head .add{opacity:1}.calendar .day-num{font-weight:600;color:var(--text)}.calendar .day.heute .day-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--accent-contrast)}.calendar .day-feiertag{font-size:11px;color:var(--warn);font-weight:600;line-height:1.2}.zeitraum-kalender{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.mini-kalender{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;width:266px}.mini-kalender .weekday{text-align:center;font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:.03em;padding-bottom:4px}.mini-kalender .day{aspect-ratio:1;border:1px solid transparent;border-radius:6px;background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer}.mini-kalender .day:hover{border-color:var(--accent)}.mini-kalender .day.outside{color:var(--muted);background:none}.mini-kalender .day.heute{border-color:var(--border);font-weight:700}.mini-kalender .day.im-bereich{background:var(--accent-soft);color:var(--accent)}.mini-kalender .day.rand{background:var(--accent);color:var(--accent-contrast);font-weight:600}.shift{border-radius:5px;padding:4px 6px;font-size:12px;cursor:pointer;border:1px solid var(--border);border-left:3px solid var(--border);text-align:left;width:100%;background:var(--surface-2);color:var(--text);display:block}.shift.offen{border-style:dashed;border-color:var(--danger);background:var(--danger-soft)}.shift:hover{filter:brightness(.97)}.shift .shift-kopf{display:flex;justify-content:space-between;gap:6px;align-items:baseline}.shift .shift-abweichung{color:var(--danger);font-variant-numeric:tabular-nums;white-space:nowrap}.shift .shift-staff{font-weight:600;display:flex;flex-wrap:wrap;gap:2px 8px;overflow:hidden}.shift .shift-staff.leer{font-weight:500;color:var(--muted)}.shift .shift-bezeichnung{color:var(--muted)}.shift .shift-person{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.shift .shift-person.ziehbar{cursor:grab}.shift .shift-person.zug-quelle{opacity:.4}.shift .shift-person.zug-ziel{border-radius:4px;outline:2px dashed var(--accent);outline-offset:1px}.shift.zug-ziel{outline:2px dashed var(--accent);outline-offset:1px}.person-punkt{display:inline-block;width:8px;height:8px;border-radius:50%;flex:0 0 auto}.gantt-scroll{overflow-x:auto}.gantt{min-width:1040px}.gantt-row{display:grid;grid-template-columns:236px 1fr;border-bottom:1px solid var(--border)}.gantt-row:last-child{border-bottom:none}.gantt-label{position:sticky;left:0;z-index:3;background:var(--surface);border-right:1px solid var(--border);padding:7px 12px;display:flex;align-items:center;gap:10px;min-width:0}.gantt-person{min-width:0;flex:1}.gantt-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-head{background:var(--surface-2)}.gantt-head .gantt-label{background:var(--surface-2);font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.gantt-group .gantt-label,.gantt-open .gantt-label{background:var(--surface-2);font-weight:600;display:block;padding:5px 12px}.gantt-group .gantt-track,.gantt-open .gantt-track{background:var(--surface-2)}.gantt-track{position:relative;overflow:hidden}.gantt-day{position:absolute;top:0;bottom:0;border-right:1px solid var(--border)}.gantt-day.weekend{background:#fcfbf7}.gantt-day.feiertag{background:var(--warn-soft)}.gantt-day.today{box-shadow:inset 2px 0 0 var(--accent)}.gantt-day-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;color:var(--muted);gap:1px}.gantt-day-label strong{color:var(--text)}.gantt-day-num.heute{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 3px;border-radius:999px;background:var(--accent);color:var(--accent-contrast)}.gantt-day-feiertag{font-size:10px;color:var(--warn);font-weight:600;text-align:center;line-height:1.1}.gantt-bar{position:absolute;z-index:2;display:flex;align-items:center;padding:0 6px;border:none;border-left:3px solid var(--day);border-radius:4px;background:var(--day-soft);font-size:11px;line-height:1;text-align:left;white-space:nowrap;overflow:hidden;cursor:pointer}.gantt-bar:hover{filter:brightness(.96)}.gantt-bar.nacht{background:var(--night-soft);border-left-color:var(--night)}.gantt-bar.offen{background:var(--danger-soft);border-left-color:var(--danger);outline:1px dashed var(--danger);outline-offset:-1px}.gantt-bar.aushilfe{border:1px dashed var(--warn);border-left:3px solid var(--warn)}.gantt-bar.clip-start{border-top-left-radius:0;border-bottom-left-radius:0;border-left-style:dotted}.gantt-bar.clip-end{border-top-right-radius:0;border-bottom-right-radius:0}.gantt-bar-label{overflow:hidden;text-overflow:ellipsis}.gantt-bar.ziehbar{cursor:grab}.gantt-bar.zug-quelle{opacity:.4}.gantt-track.gantt-ziel{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft)}.gantt-band{position:absolute;top:3px;bottom:3px;z-index:1;display:flex;align-items:center;padding:0 6px;border:none;border-radius:4px;font:inherit;font-size:11px;text-align:left;white-space:nowrap;overflow:hidden;cursor:default}.gantt-band.aenderbar{cursor:pointer}.gantt-band.aenderbar:hover{filter:brightness(.96)}.gantt-band:disabled{opacity:1}.band-urlaub{background:var(--accent-soft);color:var(--accent)}.band-krankheit{background:var(--danger-soft);color:var(--danger)}.band-fortbildung{background:var(--ok-soft);color:var(--ok)}.band-sonstige{background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.band-freiwunsch{color:var(--warn);background:repeating-linear-gradient(45deg,var(--warn-soft),var(--warn-soft) 7px,transparent 7px,transparent 14px)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow:auto}.dialog{background:var(--surface);border-radius:10px;width:min(560px,100%);box-shadow:0 12px 40px #10182840}.dialog header{padding:16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.dialog header h3{margin:0;font-size:16px}.dialog .dialog-body{padding:16px}.dialog footer{padding:14px 16px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:8px;background:var(--surface-2)}.assignee{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;margin-bottom:6px}.assignee .name{font-weight:500}.stat-list{display:flex;flex-direction:column;gap:10px}.stat{border:1px solid var(--border);border-radius:6px;padding:10px 12px}.stat .stat-title{font-weight:600;margin-bottom:4px}.stat .stat-line{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}.stat .stat-line b{color:var(--text);font-variant-numeric:tabular-nums}td.num>div{white-space:nowrap}.bar{height:8px;border-radius:4px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden;min-width:80px;display:flex}.bar span{display:block;height:100%;background:var(--ok);flex:0 0 auto}.bar span.gutschrift{opacity:.42}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:28px;width:min(420px,100%)}.login-card h1{margin:0 0 4px;font-size:20px}.login-card>p{margin:0 0 18px}.login-card button.primary{width:100%}.login-card .actions button.primary{width:auto;flex:1}.topbar-user{margin-left:auto;display:flex;align-items:center;gap:12px;padding:8px 0;white-space:nowrap}.topbar-user .small{line-height:1.25;text-align:right}.topbar-user select{width:160px;padding:5px 8px}.simulation-waehler{display:flex;gap:6px}.simulation-waehler select{width:176px}.simulation-waehler select.aktiv{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}.avatar{border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-weight:600;border:1px solid var(--border);background:var(--surface-2)}.avatar-upload{display:flex;align-items:center;gap:12px}.avatar-upload input[type=file]{display:none}.nav-menu{position:relative;display:flex;align-items:stretch}.nav-menu-button{display:inline-flex;align-items:center;border:none;background:none;padding:16px 9px;font:inherit;font-weight:500;color:var(--muted);border-bottom:2px solid transparent;border-radius:0;cursor:pointer;white-space:nowrap;vertical-align:top}.nav-menu-button span{line-height:1}.nav-menu-button:hover{color:var(--text);background:none}.nav-menu-button.active,.nav-menu-button.open{color:var(--accent);border-bottom-color:var(--accent)}.nav-menu-panel{position:absolute;top:100%;left:0;z-index:30;min-width:190px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #10182824;display:flex;flex-direction:column}.nav-menu-panel a{padding:9px 12px;border-radius:5px;color:var(--text);text-decoration:none;border:none;font-weight:500}.nav-menu-panel a:hover{background:var(--surface-2)}.nav-menu-panel a.active{background:var(--accent-soft);color:var(--accent)}.nav-menu-gruppe{display:flex;flex-direction:column}.nav-menu-gruppe.getrennt{border-top:1px solid var(--border);margin-top:6px;padding-top:6px}.nav-menu-titel{padding:4px 12px 2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.dienstvorlage-formular .field>label{font-weight:700}.zahl-stepper{display:inline-flex;align-items:center;width:fit-content;height:38px;border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden}.zahl-stepper button{width:36px;height:100%;border:none;background:none;font-size:16px;font-weight:600;line-height:1;color:var(--accent);cursor:pointer}.zahl-stepper button:hover:not(:disabled){background:var(--accent-soft)}.zahl-stepper button:disabled{color:var(--muted);cursor:default}.zahl-stepper-wert{padding:0 6px;min-width:82px;text-align:center;font-weight:500}.zahl-stepper.aus{background:var(--surface-2)}.zahl-stepper.chosen{background:var(--accent-soft);border-color:var(--accent)}.zahl-stepper.chosen .zahl-stepper-wert{color:var(--accent)}.team-schalter{height:40px;padding:0 18px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font-weight:500;cursor:pointer}.team-schalter.chosen{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.team-schalter:hover{background:var(--surface-2)}.team-schalter.chosen:hover{background:var(--accent-soft)}.personen-team-zeile{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px}.personen-team-zeile .field{margin-bottom:0}.personen-team-zeile .oder{padding-bottom:10px;color:var(--muted);font-size:13px;font-weight:600}.team-erklaerung{flex:1 1 220px;max-width:300px;margin:0 0 9px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.zusammenfassung-zeile{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.zusammenfassung-zeile .actions{margin:0;flex:0 0 auto}.gruppen-picker{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.gruppen-picker label{display:inline-flex;align-items:center;gap:5px;margin:0;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted);font-weight:500;cursor:pointer}.gruppen-picker label.chosen{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.gruppen-picker label input{width:auto;margin:0}.feiertag-liste{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.edit-limit-row{display:flex;align-items:center;gap:8px}.edit-limit-row input[type=number]{width:70px}.edit-limit-row .check{white-space:nowrap}.feiertag-liste label{display:inline-flex;align-items:center;gap:5px;margin:0;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted);font-weight:500;cursor:pointer}.feiertag-liste label.chosen{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.feiertag-liste label input{width:auto;margin:0}.gruppen-picker label:has(input:disabled){cursor:default;opacity:.6}.zeit-slider{margin:30px 0 22px}.zeit-slider-bar{position:relative;height:40px;margin:0 11px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);cursor:pointer}.zeit-slider-fuellung{position:absolute;top:-1px;bottom:-1px;background:var(--accent-soft);border-top:2px solid var(--accent);border-bottom:2px solid var(--accent)}.zeit-slider-teilstrich{position:absolute;bottom:-18px;transform:translate(-50%);font-size:10px;color:var(--muted);pointer-events:none}.zeit-slider-marke{position:absolute;top:-38px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;line-height:1.3;pointer-events:none;white-space:nowrap}.zeit-slider-marke strong{font-size:13px;color:var(--accent)}.zeit-slider-marke em{font-style:normal;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.zeit-slider-griff{position:absolute;top:50%;width:18px;height:18px;padding:0;transform:translate(-50%,-50%);border-radius:50%;background:var(--accent);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--accent);cursor:ew-resize;touch-action:none}.zeit-slider-griff:hover,.zeit-slider-griff:focus-visible{filter:brightness(1.1)}.weekday-picker{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.weekday-picker label{display:inline-flex;align-items:center;gap:5px;margin:0;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted);font-weight:500;cursor:pointer}.weekday-picker label.chosen{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.weekday-picker label input{width:auto;margin:0}.weekday-picker button{margin-left:4px}.dienste-tabelle th.weekend,.dienste-tabelle td.weekend{background:#fcfbf7}.dienste-tabelle th.tag-zelle{text-align:center}.dienste-tabelle td.tag-zelle{padding:0;text-align:center;height:38px}.wochentag-marke{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--border)}.wochentag-marke.an{background:var(--accent)}.dienst-pausiert>td:not(:last-child){opacity:.5}.radio-row{display:flex;gap:5px;flex-wrap:wrap}.radio-row label{display:inline-flex;align-items:center;gap:4px;margin:0;padding:5px 8px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted);font-weight:500;cursor:pointer}.radio-row label.chosen{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.radio-row label:hover{background:var(--surface-2)}.radio-row label.chosen:hover{background:var(--accent-soft)}.radio-row label input{position:absolute;opacity:0;width:0;height:0;margin:0}.radio-row label:focus-within{outline:2px solid var(--accent-soft);outline-offset:1px}.form-section{margin:18px 0 10px;padding-top:12px;border-top:1px solid var(--border);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.status-led{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--border);flex:0 0 auto}.status-led.an{background:var(--ok);box-shadow:0 0 0 2px var(--ok-soft)}.color-picker{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}.color-picker .color-dot{width:22px;height:22px;padding:0;border-radius:50%;border:1px solid;cursor:pointer}.color-picker .color-dot.chosen{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.color-picker .color-dot:hover{filter:brightness(.95)}.color-picker .color-auto{padding:4px 10px;font-size:12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer}.color-picker .color-auto.chosen{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.einsatz-matrix{width:100%;border-collapse:collapse}.einsatz-matrix th,.einsatz-matrix td{border-bottom:1px solid var(--border);padding:4px 6px}.einsatz-matrix th{background:var(--surface-2);font-size:12px;color:var(--muted);text-align:center}.einsatz-matrix th:first-child,.einsatz-matrix td:first-child{text-align:left}.einsatz-matrix th.weekend,.einsatz-matrix td.weekend{background:#fcfbf7}.einsatz-matrix td.tag-zelle{padding:0;text-align:center}.einsatz-matrix td.tag-zelle label{display:flex;align-items:center;justify-content:center;min-height:34px;margin:0;cursor:pointer}.einsatz-matrix td.tag-zelle label:hover{background:var(--accent-soft)}.einsatz-matrix td.tag-zelle input{width:15px;height:15px;margin:0;cursor:pointer}.einsatz-liste{margin:0;padding-left:18px;font-size:13px}.einsatz-liste li{margin-bottom:2px}.dienst-punkt{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid;flex:0 0 auto}.calendar.in-bearbeitung{outline:2px solid var(--accent);outline-offset:6px;border-radius:4px}.mitlauf{position:fixed;right:16px;bottom:16px;z-index:40;width:min(320px,calc(100vw - 32px));max-height:45vh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 28px #1018282e;padding:10px 12px}.mitlauf.zu{max-height:none;overflow:visible}.mitlauf header{display:flex;align-items:baseline;gap:8px}.mitlauf header strong{flex:1;color:var(--ueberschrift)}.mitlauf ol{margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.5}.mitlauf li{margin:2px 0}.mitlauf li.zurueckgenommen{text-decoration:line-through;color:var(--muted)}.mitlauf-tat{display:flex;gap:6px;margin-top:8px}.mitlauf-tat button{flex:1}.mitlauf p{margin:8px 0 0}@media print{.mitlauf{display:none!important}}.reset-liste{margin:4px 0 12px;padding-left:20px}.bestandteile{display:flex;flex-direction:column;gap:6px;margin:4px 0 12px}.bestandteile .check{align-items:baseline}.reset-liste li{margin:2px 0}.hilfe-verborgen{display:none}.hilfe-suche{display:flex;align-items:center;gap:10px;margin-bottom:12px}.hilfe-suche input{flex:1;min-width:0}.hilfe-treffer{display:flex;flex-direction:column;gap:12px}.hilfe-treffer-kopf{display:flex;align-items:baseline;gap:8px;font-weight:600;color:var(--ueberschrift);margin-bottom:2px}.hilfe-treffer-zeile{display:block;width:100%;text-align:left;border:none;background:none;padding:4px 8px;border-radius:4px;cursor:pointer;font:inherit;color:inherit;line-height:1.45}.hilfe-treffer-zeile:hover{background:var(--surface-2)}mark,mark.treffer{background:#fde68a;color:inherit;border-radius:2px;padding:0 1px}.hilfe-inhalt{display:flex;flex-wrap:wrap;gap:6px 18px}.hilfe-inhalt a{text-decoration:none;font-weight:500;color:var(--ueberschrift)}.hilfe-inhalt a{padding:3px 8px;border-radius:6px}.hilfe-inhalt a:hover{background:var(--surface-2)}.hilfe-inhalt a.active{background:var(--surface-2);font-weight:600;box-shadow:inset 0 -2px 0 currentColor}.hilfe{display:grid;gap:16px;margin-top:16px;max-width:900px}.hilfe p{margin:0 0 10px;line-height:1.65}.hilfe p:last-child{margin-bottom:0}.hilfe ul,.hilfe ol{margin:0 0 10px;padding-left:20px;line-height:1.65}.hilfe li{margin-bottom:6px}.hilfe table{margin:4px 0 10px}.hilfe code{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:13px}.hilfe .warnung{background:var(--warn-soft);color:var(--warn);padding:10px 12px;border-radius:6px}.hilfe [id]{scroll-margin-top:76px}.auslastung{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:3px}.auslastung .bar{min-width:42px;flex:0 1 60px}.filterzeile{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.filterzeile label{margin:0;white-space:nowrap}.filterzeile-gleichauf select,.filterzeile-gleichauf .zeitraum-nav{height:38px}.filterfeld{display:inline-flex;align-items:center;gap:6px}.plan-stand{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}.nur-druck{display:none}@media print{@page{size:A4 landscape;margin:10mm}body{background:#fff}.topbar,.page-head .actions,.actions,.notice,.error,.overlay,.schrittkarte{display:none!important}body.nur-einzelplaene main>*{display:none!important}body.nur-einzelplaene .overlay.benachrichtigen{display:block!important;position:static;background:none;padding:0}body.nur-einzelplaene .overlay.benachrichtigen .dialog{max-width:none;box-shadow:none;border:none;max-height:none}body.nur-einzelplaene .overlay.benachrichtigen header,body.nur-einzelplaene .overlay.benachrichtigen footer,body.nur-einzelplaene .overlay.benachrichtigen .empfaenger-tabelle,body.nur-einzelplaene .overlay.benachrichtigen .dialog-body>p,body.nur-einzelplaene .overlay.benachrichtigen .notice,body.nur-einzelplaene .overlay.benachrichtigen .warning{display:none!important}body.nur-einzelplaene .overlay.benachrichtigen .dialog-body{overflow:visible;max-height:none}body.nur-einzelplaene .einzelplaene{display:block}.einzelplaene section{page-break-after:always}.einzelplaene section:last-child{page-break-after:auto}.einzelplaene h2{font-size:16px;margin:0 0 2px}.einzelplaene .einzelplan-kopf{margin:0 0 8px;font-size:12px;color:#555}.einzelplaene .einzelplan-fuss{margin:8px 0 0;font-size:11px;color:#555}.einzelplaene table{width:100%;border-collapse:collapse;font-size:12px}.einzelplaene td{padding:3px 6px;border-bottom:1px solid #ddd}main{padding:0;max-width:none}.card{border:none;box-shadow:none}.card>h3{display:none}.card-body{padding:0}.nur-druck{display:block}.druck-logo{max-height:36px;max-width:200px;width:auto;object-fit:contain;-webkit-print-color-adjust:exact;print-color-adjust:exact}.overlay.aenderung .druck-logo{margin-bottom:8px}.page-head h2{display:none}.calendar,.calendar *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.calendar{border-color:#999}.calendar .day{min-height:0;break-inside:avoid}.shift{break-inside:avoid}.plan-stand{color:#333;break-inside:avoid}}.shift .fix-marke{font-style:normal;font-size:10px;line-height:1;margin-left:3px;cursor:help}.shift .adhoc-marke{font-style:normal;font-size:9px;font-weight:700;line-height:1;margin-left:3px;padding:1px 3px;border-radius:3px;background:var(--warn-soft);color:var(--warn);cursor:help;white-space:nowrap}.shift.fix.offen{border-style:dashed}.kandidaten-titel{margin:10px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.kandidaten{display:flex;flex-direction:column;gap:3px;max-height:260px;overflow-y:auto}.kandidat{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);font:inherit;text-align:left;cursor:pointer}.kandidat:hover{background:var(--accent-soft);border-color:var(--accent)}.kandidat.warnung{background:var(--warn-soft);border-color:#eddcbb}.kandidat.warnung:hover{background:#fbeacd}.kandidat.gesperrt,.kandidat.gesperrt:hover{background:var(--surface-2);border-color:var(--border);color:var(--muted);cursor:not-allowed}.kandidat-name{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.kandidat-grund{font-size:11px;color:var(--muted);text-align:right}.kandidat.warnung .kandidat-grund{color:var(--warn)}.system-info-raster{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.system-info-raster .form-section{margin-top:0;padding-top:0;border-top:none}.system-info-tabelle{width:100%;border-collapse:collapse}.system-info-tabelle td{padding:4px 0;vertical-align:top}.system-info-tabelle td:first-child{color:var(--muted);padding-right:12px;white-space:nowrap}
