*{box-sizing:border-box}body{font-family:Arial,sans-serif;margin:0;background:#f5f7fb;color:#1f2937}.wrap{max-width:1100px;margin:0 auto;padding:24px}.card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 4px 16px rgba(0,0,0,.08);margin:18px 0}.topbar{background:#111827;color:#fff}.topbar .wrap{display:flex;justify-content:space-between;align-items:center;padding:14px 24px}.topbar a{color:#fff;text-decoration:none;margin-left:16px}.btn{display:inline-block;background:#2563eb;color:#fff;border:0;border-radius:8px;padding:10px 14px;text-decoration:none;cursor:pointer}.btn.secondary{background:#6b7280}.btn.danger{background:#dc2626}input,select{width:100%;padding:10px;margin:6px 0 14px;border:1px solid #d1d5db;border-radius:8px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.alert{padding:12px;border-radius:8px;background:#fee2e2;color:#991b1b}.success{background:#dcfce7;color:#166534}.muted{color:#6b7280}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left}@media print{.topbar,.no-print{display:none!important}body{background:#fff}.card{box-shadow:none;border:0}}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.month-nav{display:flex;justify-content:space-between;align-items:center;gap:12px}.calendar-wrap{overflow:auto}.calendar{font-size:12px;min-width:980px}.calendar th,.calendar td{border:1px solid #e5e7eb;padding:4px;text-align:center}.calendar .name{text-align:left;min-width:170px;position:sticky;left:0;background:#fff;z-index:2}.calendar .dept-row td{background:#e5e7eb;font-weight:bold;text-align:left}.calendar .weekend{background:#f3f4f6}.calendar .holiday{background:#fde68a}.cal-entry{display:block;border-radius:4px;padding:3px 2px;color:#111;font-weight:bold;font-size:11px;min-width:22px}.legend{display:flex;gap:10px;flex-wrap:wrap}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:18px;height:18px;border-radius:4px;display:inline-block;border:1px solid #ccc}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.small{font-size:12px}.print-only{display:none}@media(max-width:700px){.topbar .wrap{display:block}.topbar nav{margin-top:10px}.topbar a,.topbar span{display:inline-block;margin:4px 10px 4px 0}.wrap{padding:14px}.card{padding:16px}.calendar{min-width:760px;font-size:11px}.calendar .name{min-width:130px}}@media print{@page{size:A4 landscape;margin:8mm}.no-print,.topbar{display:none!important}.print-only{display:block}.wrap{max-width:none;padding:0}.calendar{min-width:0;width:100%;font-size:9px}.calendar th,.calendar td{padding:2px}.calendar .name{position:static;min-width:90px}.card{margin:0;padding:0}.cal-entry{font-size:8px;padding:1px}.legend{font-size:10px}h1{font-size:16px;margin:0 0 8px}}
.cal-entry.morning,.cal-entry.afternoon{font-size:10px;line-height:1.1}.cal-entry.morning::after{content:' VM';font-weight:normal;font-size:8px}.cal-entry.afternoon::after{content:' NM';font-weight:normal;font-size:8px}
@media print{.cal-entry.morning::after{content:' V'}.cal-entry.afternoon::after{content:' N'}}
.footer{max-width:1100px;margin:18px auto;padding:12px 24px;color:#6b7280;font-size:12px;text-align:center}.note-mark{display:inline-block;margin-left:2px;color:#b45309;font-weight:bold}.quick-table{font-size:12px;min-width:980px}.quick-table th,.quick-table td{border:1px solid #d1d5db;padding:4px;text-align:center}.quick-table .label{text-align:left;position:sticky;left:0;background:#fff;z-index:3;min-width:230px}.quick-table .current td{background:#f3f4f6}.quick-table input[type=radio]{width:auto;margin:0}.quick-table .weekend{background:#e5e7eb}.quick-table .holiday{background:#fde68a}.quick-table .has-note{outline:2px solid #f59e0b;outline-offset:-2px}.note-box{width:100%;min-height:80px;padding:10px;border:1px solid #d1d5db;border-radius:8px}.split-cell{font-size:10px;line-height:1.2}.split-cell span{display:block;border-radius:3px;margin:1px 0;padding:1px}
/* v0.5.0: bessere Kalenderbedienung, Tages-Trennlinien und Icon-Unterstützung */
.calendar-wrap{max-width:100%;overflow-x:auto;overflow-y:visible;scrollbar-gutter:stable;border-radius:12px;-webkit-overflow-scrolling:touch}
.calendar thead th,.quick-table thead th{position:sticky;top:0;z-index:4;background:#fff;border-right:2px solid #cbd5e1;border-bottom:2px solid #94a3b8}
.calendar .name,.quick-table .label{box-shadow:2px 0 0 #94a3b8;border-right:2px solid #94a3b8!important}
.calendar th:not(.name),.calendar td:not(.name),.quick-table th:not(.label),.quick-table td:not(.label){min-width:34px;border-left:1px solid #cbd5e1;border-right:1px solid #cbd5e1}
.calendar th:nth-child(8n),.calendar td:nth-child(8n),.quick-table th:nth-child(8n),.quick-table td:nth-child(8n){border-right:3px solid #64748b}
.calendar .today,.quick-table .today{outline:3px solid #2563eb;outline-offset:-3px}
.absence-icon{width:16px;height:16px;object-fit:contain;vertical-align:middle;display:inline-block}.cal-entry .absence-icon{width:14px;height:14px}.absence-print-code{display:none}.type-sample{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:28px;min-height:22px;border-radius:5px;padding:2px 5px;font-weight:bold}.icon-preview{display:flex;align-items:center;gap:8px}.icon-preview img{width:24px;height:24px;object-fit:contain}.admin-table{min-width:1100px}.admin-table input[type=file]{min-width:170px}.quick-table button{min-width:26px;min-height:24px;border:2px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer}.quick-table button:hover{background:#eff6ff}.calendar .has-note,.quick-table .has-note{background-image:linear-gradient(135deg, rgba(245,158,11,.22), rgba(245,158,11,.04))}
@media(max-width:900px){.calendar .name,.quick-table .label{min-width:150px}.calendar th:not(.name),.calendar td:not(.name),.quick-table th:not(.label),.quick-table td:not(.label){min-width:32px}.quick-table{min-width:920px}.calendar{min-width:920px}}
@media print{.absence-icon{display:none!important}.absence-print-code{display:inline!important}.calendar thead th,.quick-table thead th{position:static}.calendar .name,.quick-table .label{box-shadow:none}.calendar th:not(.name),.calendar td:not(.name){min-width:0;border-left:1px solid #999;border-right:1px solid #999}.calendar th:nth-child(8n),.calendar td:nth-child(8n){border-right:2px solid #333}.calendar .today{outline:none}.calendar-wrap{overflow:visible}}

/* v0.5.2: Feiertage und Sonntage deutlicher, Abwesenheitsarten-Zählfelder */
.calendar .sunday,
.quick-table .sunday{
    background:#9ca3af!important;
    color:#111827;
    font-weight:bold;
}
.calendar .holiday,
.quick-table .holiday{
    background:#f59e0b!important;
    color:#111827;
    font-weight:bold;
}
.calendar .holiday.sunday,
.quick-table .holiday.sunday{
    background:#d97706!important;
    color:#111827;
}
.calendar th.holiday,
.quick-table th.holiday{
    border-top:3px solid #92400e;
    border-bottom:3px solid #92400e;
}
.calendar th.sunday,
.quick-table th.sunday{
    border-top:3px solid #374151;
    border-bottom:3px solid #374151;
}
.admin-table th,
.admin-table td{white-space:nowrap;vertical-align:middle}
.btn.small{padding:4px 8px;font-size:12px;display:inline-block}.btn.secondary{background:#6c757d}small{display:block;color:#666;margin-top:4px}.success{background:#e8f8ed;border:1px solid #a9dfbf;color:#155724;padding:10px;border-radius:6px}


/* v0.5.5: Formular Neue Abwesenheitsart ausgerichtet + Vorschau */
.absence-create-form label{font-weight:600;display:block;margin-bottom:4px}
.absence-form-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(220px,340px);gap:18px;margin:10px 0 18px;align-items:start}
.absence-fieldset{border:1px solid #d1d5db;border-radius:12px;padding:14px 16px;background:#f9fafb}
.absence-fieldset legend{font-weight:700;padding:0 6px;color:#374151}
.check-line{display:flex!important;align-items:center;gap:10px;margin:8px 0;font-weight:400!important;line-height:1.25}
.check-line input[type=checkbox]{width:18px;height:18px;margin:0;flex:0 0 auto}
.check-line span{display:inline-block;padding-top:1px}
.type-sample.large{min-width:58px;min-height:42px;font-size:18px;margin:4px 0 10px;border:1px solid rgba(0,0,0,.18)}
.absence-preview-box{display:flex;flex-direction:column;align-items:flex-start}
@media(max-width:760px){.absence-form-grid{grid-template-columns:1fr}.check-line{align-items:flex-start}}

/* v0.5.6: Notizen als Eckmarkierungen statt Sternchen */
.calendar th,.calendar td,.quick-table th,.quick-table td{position:relative}
.note-mark{display:none!important}
.calendar .has-note,.quick-table .has-note{background-image:none;outline:none}
.calendar .has-personal-note,.quick-table .has-personal-note{outline:none}
.note-corner{position:absolute;top:0;right:0;width:0;height:0;border-top:10px solid #2563eb;border-left:10px solid transparent;line-height:0;font-size:0;z-index:4}
.note-corner.global{border-top-color:#f59e0b}
.note-corner.personal{border-top-color:#2563eb}
.calendar th .note-corner{border-top-width:12px;border-left-width:12px}
.quick-table th .note-corner{border-top-width:12px;border-left-width:12px}
.note-legend{width:14px!important;height:14px!important;border:0!important;border-radius:0!important;background:transparent!important;position:relative;overflow:hidden}
.note-legend::after{content:"";position:absolute;top:0;right:0;width:0;height:0;border-top:12px solid #2563eb;border-left:12px solid transparent}
.note-legend.global::after{border-top-color:#f59e0b}.note-legend.personal::after{border-top-color:#2563eb}
@media print{.note-corner{border-top-width:8px;border-left-width:8px}.calendar th .note-corner{border-top-width:9px;border-left-width:9px}}

/* v0.6.0 Urlaubsanträge */
.account-box{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.account-box span{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:12px 16px;min-width:130px}.account-box strong{display:block;font-size:1.35rem}.list-table{width:100%;border-collapse:collapse}.list-table th,.list-table td{border-bottom:1px solid #e5e7eb;padding:8px;text-align:left;vertical-align:top}.cell-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.cell-actions form{margin:0}.status{display:inline-block;border-radius:999px;padding:3px 9px;font-size:.85rem;font-weight:700}.status-pending{background:#fef3c7;color:#92400e}.status-approved{background:#dcfce7;color:#166534}.status-rejected{background:#fee2e2;color:#991b1b}.status-cancelled{background:#e5e7eb;color:#374151}.cal-entry.status-pending{outline:2px dashed #f59e0b;outline-offset:-2px}.inline-form{display:flex;flex-wrap:wrap;gap:6px}.inline-form input{max-width:160px}.smallbtn{padding:5px 8px;font-size:.85rem}textarea{width:100%;box-sizing:border-box;border:1px solid #d1d5db;border-radius:8px;padding:8px;font:inherit}

/* v0.6.1: Arbeitsplan UI mit Sidebar, Popup-Legende und Einstellungen */
body{margin:0;background:#f3f4f6;color:#111827;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;background:#111827;color:#e5e7eb;position:fixed;inset:0 auto 0 0;padding:18px 14px;box-sizing:border-box;z-index:20}.brand{font-size:1.35rem;font-weight:800;margin:4px 10px 20px;color:#fff}.side-nav{display:flex;flex-direction:column;gap:5px}.side-nav a{display:flex;align-items:center;gap:10px;color:#d1d5db;text-decoration:none;padding:10px 12px;border-radius:10px;border-left:4px solid transparent}.side-nav a:hover{background:#1f2937;color:#fff}.side-nav a.active{background:#2563eb;color:#fff;border-left-color:#93c5fd}.side-nav a.disabled{opacity:.55;cursor:not-allowed}.content-area{margin-left:250px;min-width:0;flex:1}.pagebar{height:58px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:12}.userbox{text-align:right}.userbox span{display:block;color:#6b7280;font-size:.82rem}.mobilebar{display:none}.wrap{max-width:1280px}.footer{max-width:none;margin:0;padding:14px 24px}.legend-modal{border:0;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.28);padding:0;max-width:720px;width:calc(100% - 32px)}.legend-modal::backdrop{background:rgba(15,23,42,.45)}.legend-modal form{padding:18px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.modal-head h2{margin:0}.modal-close{border:0;background:#e5e7eb;border-radius:999px;width:32px;height:32px;font-size:22px;line-height:1;cursor:pointer}.modal-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:12px 0 18px}.cal-entry,.type-sample{cursor:default}.calc-box{margin:12px 0;padding:12px;border:1px solid #dbeafe;background:#eff6ff;border-radius:10px}.settings-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2px 14px}.topbar{display:none!important}@media(max-width:900px){.mobilebar{display:flex;align-items:center;gap:12px;background:#111827;color:#fff;padding:12px 16px;position:sticky;top:0;z-index:30}.menu-toggle{border:0;background:#374151;color:#fff;border-radius:8px;padding:7px 10px;font-size:18px}.sidebar{transform:translateX(-102%);transition:transform .2s ease}.sidebar-open .sidebar{transform:translateX(0)}.content-area{margin-left:0}.pagebar{display:none}.wrap{padding:14px}.app-shell{display:block}}@media print{.sidebar,.pagebar,.mobilebar,.legend-modal{display:none!important}.content-area{margin-left:0}.app-shell{display:block}.legend.print-only{display:flex!important}}


/* v0.6.2: einklappbare Sidebar und Konten/Jahresabschluss */
.brand{display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-collapse{border:0;background:#374151;color:#fff;border-radius:8px;padding:6px 8px;cursor:pointer}.sidebar-collapse:hover{background:#4b5563}.sidebar-collapsed .sidebar{width:74px}.sidebar-collapsed .brand span,.sidebar-collapsed .side-nav a span{display:none}.sidebar-collapsed .brand{justify-content:center;margin-left:0;margin-right:0}.sidebar-collapsed .side-nav a{justify-content:center;padding:11px 8px;font-size:20px}.sidebar-collapsed .content-area{margin-left:74px}.sidebar-collapsed .footer{padding-left:24px}.sidebar-collapsed .calendar-wrap{max-width:calc(100vw - 110px)}
@media(max-width:900px){.sidebar-collapsed .sidebar{width:250px}.sidebar-collapsed .brand span,.sidebar-collapsed .side-nav a span{display:inline}.sidebar-collapsed .side-nav a{justify-content:flex-start;font-size:inherit}.sidebar-collapsed .content-area{margin-left:0}.sidebar-collapse{display:none}}

/* v0.6.3: Benutzer-Popups und Überstundenfrei als Tageskontingent */
.user-modal{border:0;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.28);padding:0;max-width:980px;width:calc(100% - 32px)}
.user-modal::backdrop{background:rgba(15,23,42,.45)}
.user-modal form{padding:18px;max-height:88vh;overflow:auto}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.form-section{border:1px solid #e5e7eb;background:#f9fafb;border-radius:12px;padding:14px;margin:12px 0}
.form-section h3{margin:0 0 10px;font-size:1rem;color:#374151}.tabs-lite{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.tabs-lite span{background:#eef2ff;color:#3730a3;border-radius:999px;padding:5px 10px;font-size:.85rem;font-weight:700}.name-link{border:0;background:transparent;color:#1d4ed8;text-decoration:underline;cursor:pointer;padding:0;font:inherit;font-weight:700}.name-link:hover{color:#1e40af}.user-modal .check-line{margin-top:30px}

.quota-summary{margin-top:14px;padding:12px;border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc;display:grid;gap:6px;font-size:.92rem}.quota-summary strong{display:block;color:#0f172a}.quota-summary span{display:block;color:#334155}

/* v0.6.5: Kalender-Schnellaktionen und ausgeblendete Benutzer */
.quick-action{border:0;background:#eef2ff;color:#1d4ed8;border-radius:7px;min-width:26px;min-height:24px;margin-right:6px;cursor:pointer;font-size:13px;line-height:1}
.quick-action:hover{background:#dbeafe;color:#1e40af}.hidden-calendar-user .name{background:#f8fafc!important;color:#64748b}.hidden-calendar-user td{opacity:.72}.quick-modal{border:0;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.28);padding:0;max-width:760px;width:calc(100% - 32px)}.quick-modal::backdrop{background:rgba(15,23,42,.45)}.quick-modal form{padding:18px}.calendar .name{white-space:nowrap}.calendar .name .name-link{vertical-align:middle}
@media print{.quick-action{display:none!important}.hidden-calendar-user{display:none!important}}


/* v0.6.6: Slide-Over für Benutzer und Schnellaktionen */
.row-actions{display:inline-flex;gap:4px;align-items:center;margin-right:6px;vertical-align:middle}.calendar-user-name{vertical-align:middle;font-weight:700}.user-edit-action{background:#f1f5f9;color:#334155}.user-edit-action:hover{background:#e2e8f0;color:#0f172a}.calendar .name .name-link{text-decoration:none;color:inherit}
.user-modal.slide-over,.quick-modal.slide-over{position:fixed;inset:0 0 0 auto;margin:0;width:min(560px,100vw);max-width:100vw;height:100vh;max-height:100vh;border:0;border-radius:18px 0 0 18px;box-shadow:-18px 0 60px rgba(15,23,42,.28);padding:0;overflow:hidden;background:#fff}
.user-modal.slide-over::backdrop,.quick-modal.slide-over::backdrop{background:rgba(15,23,42,.36)}
.user-modal.slide-over form,.quick-modal.slide-over form{height:100vh;max-height:100vh;overflow:auto;padding:20px 22px 26px;box-sizing:border-box}
.slide-over .modal-head{position:sticky;top:-20px;background:#fff;z-index:2;padding:14px 0 12px;border-bottom:1px solid #e5e7eb;margin:-20px 0 14px}.slide-over .modal-actions{position:sticky;bottom:-26px;background:#fff;border-top:1px solid #e5e7eb;padding:12px 0 0;margin-top:18px}.slide-over .form-row{grid-template-columns:1fr}.slide-over .form-section{background:#fff}.slide-over .tabs-lite{position:sticky;top:52px;background:#fff;z-index:1;padding:8px 0}
@media(max-width:700px){.user-modal.slide-over,.quick-modal.slide-over{width:100vw;border-radius:0}.user-modal.slide-over form,.quick-modal.slide-over form{padding:18px 16px 24px}.slide-over .modal-head{top:-18px;margin:-18px 0 14px}.row-actions{gap:2px;margin-right:4px}.quick-action{min-width:24px;margin-right:2px}}
@media print{.slide-over{display:none!important}}

/* v0.6.7: Drag & Drop Sortierung */
.drag-col{width:38px;text-align:center}.drag-handle{cursor:grab;text-align:center;color:#64748b;font-size:18px;user-select:none}.dragging{opacity:.45}.drag-over{outline:2px dashed #2563eb;outline-offset:-2px}.sortable-body.sorting-saving{opacity:.72}.sort-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:8px 0 14px}.sort-status{color:#166534;font-weight:700;opacity:0;transition:opacity .2s}.sort-status.visible{opacity:1}.admin-table .drag-handle,.list-table .drag-handle{vertical-align:middle}.calendar .row-actions .quick-action[title="Abwesenheit schnell eintragen"]{display:none!important}


/* v0.6.8 Komfort-Update */
.sidebar{height:100vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#4b5563 #111827}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-thumb{background:#4b5563;border-radius:999px}.sidebar::-webkit-scrollbar-track{background:#111827}.calendar-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.calendar-search{min-width:260px;max-width:360px}.calendar-search input{width:100%;padding:9px 11px;border:1px solid #d1d5db;border-radius:10px}.dept-row td{cursor:pointer;user-select:none}.dept-row .dept-toggle{display:inline-block;width:18px;margin-right:6px;color:#334155}.dept-row.collapsed td{background:#d1d5db}.calendar tr.group-hidden{display:none}.calendar tr.search-hidden{display:none}.calendar-user-name{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.calendar-user-name small{display:block;font-weight:500;color:#64748b}.user-quick-menu{position:relative;display:inline-block}.user-quick-menu summary{list-style:none;cursor:pointer}.user-quick-menu summary::-webkit-details-marker{display:none}.user-quick-menu>summary.name-menu-trigger:hover{color:#1d4ed8;text-decoration:underline;text-underline-offset:2px}.user-quick-menu[open] summary{background:#e2e8f0}.user-quick-menu .quick-menu-panel{position:absolute;left:0;top:32px;z-index:15;min-width:210px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 14px 38px rgba(15,23,42,.22);padding:6px}.user-quick-menu .quick-menu-panel button,.user-quick-menu .quick-menu-panel a{display:block;width:100%;box-sizing:border-box;text-align:left;border:0;background:#fff;color:#111827;text-decoration:none;padding:9px 10px;border-radius:9px;font:inherit;cursor:pointer}.user-quick-menu .quick-menu-panel button:hover,.user-quick-menu .quick-menu-panel a:hover{background:#f1f5f9}.user-quick-menu .quick-menu-panel .disabled{color:#94a3b8;cursor:default}.user-quick-menu .quick-menu-panel .disabled:hover{background:#fff}.calendar-no-results{display:none;margin-top:10px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:10px}.calendar-no-results.visible{display:block}.user-quota-tooltip{font-weight:600}
@media(max-width:700px){.calendar-search{min-width:100%;max-width:none}.user-quick-menu .quick-menu-panel{left:auto;right:0}.calendar-user-name{max-width:130px}}
@media print{.calendar-tools,.calendar-no-results{display:none!important}.user-quick-menu,.user-quick-menu>summary{display:inline!important}.user-quick-menu .quick-menu-panel{display:none!important}.calendar tr.group-hidden,.calendar tr.search-hidden{display:table-row!important}}
.backup-summary{display:flex;align-items:baseline;gap:10px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:14px 16px;margin:16px 0}.backup-summary strong{font-size:2rem;color:#1d4ed8}.backup-summary span{color:#475569}

/* v0.6.10 Jahresabschluss */
.status-pill{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.85rem;font-weight:600;background:#eef2f7;color:#334155;white-space:nowrap}
.status-open{background:#fff7ed;color:#9a3412}
.status-checked{background:#eff6ff;color:#1d4ed8}
.status-closed{background:#ecfdf5;color:#047857}
.status-corrected{background:#fef2f2;color:#b91c1c}
.time-table input[type=time], .time-table input[type=number], .time-table input[type=text]{margin:0;min-width:0}.time-table td{vertical-align:middle}.time-table .sunday td{background:#e2e8f0}.time-table .holiday td{background:#fde68a}.time-warning{display:inline-block;margin:0 0 6px;padding:4px 7px;border-radius:999px;background:#fff7ed;color:#9a3412;font-size:.82rem;font-weight:700}.time-table tfoot th{background:#f8fafc;border-top:2px solid #cbd5e1}@media(max-width:760px){.time-table{min-width:820px}.time-table input[type=text]{min-width:180px}}
/* v0.7.2 Zeiterfassung: Wochen-/Monatsansicht */
.time-viewbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0 4px}.segmented{display:inline-flex;border:1px solid #cbd5e1;border-radius:12px;overflow:hidden;background:#fff}.segmented a{display:inline-block;padding:8px 14px;text-decoration:none;color:#334155;font-weight:700}.segmented a.active{background:#1f2937;color:#fff}.week-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.week-nav strong{padding:0 8px}.time-table .today-row td{box-shadow:inset 3px 0 0 #2563eb}.time-filter{align-items:center}@media(max-width:760px){.time-viewbar{align-items:stretch}.week-nav,.segmented{width:100%}.week-nav .btn{flex:1;text-align:center}.segmented a{flex:1;text-align:center}.time-filter select,.time-filter input{width:100%;max-width:none!important}}
.time-summary-box .positive strong, .positive { color: #166534; }
.time-summary-box .negative strong, .negative { color: #991b1b; }
.time-table tfoot th { background: #f8fafc; }


/* v0.7.5: saubere Druckansichten */
.print-report-head{display:none}
@media print{
  @page{size:A4 landscape;margin:10mm}
  html,body{background:#fff!important;color:#111!important;font-family:Arial,sans-serif;font-size:10px;line-height:1.25}
  .sidebar,.pagebar,.mobilebar,.topbar,.footer,.no-print,.calendar-tools,.time-viewbar,.actions,.legend-modal,.slide-over,.calendar-no-results{display:none!important}
  .user-quick-menu .quick-menu-panel{display:none!important}.user-quick-menu>summary{display:inline!important;cursor:default}
  .app-shell,.content-area{display:block!important;margin:0!important;min-height:0!important;width:100%!important}
  .wrap{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
  .card{box-shadow:none!important;border:0!important;border-radius:0!important;margin:0 0 8mm!important;padding:0!important;background:#fff!important;break-inside:auto;page-break-inside:auto}
  h1{font-size:17px;margin:0 0 3mm!important} h2{font-size:14px;margin:0 0 3mm!important}.muted{color:#444!important}
  .print-only{display:block!important}.print-report-head{display:flex!important;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #111;padding-bottom:4mm;margin-bottom:5mm}.print-report-head h1{margin:0 0 1mm!important}.print-report-head p{margin:0 0 1mm}.print-summary{display:grid;grid-template-columns:1fr;gap:1mm;text-align:right;font-size:11px}.print-summary strong{font-size:13px}
  .account-box.time-summary-box{display:none!important}
  .calendar-wrap{overflow:visible!important;width:100%!important}
  table{width:100%!important;border-collapse:collapse!important;background:#fff!important;page-break-inside:auto}
  thead{display:table-header-group} tfoot{display:table-footer-group} tr{page-break-inside:avoid;break-inside:avoid}
  th,td{border:1px solid #777!important;padding:2.5px 3px!important;text-align:left!important;vertical-align:top!important;background:#fff!important;color:#111!important}
  th{background:#e5e7eb!important;font-weight:700!important}
  .list-table,.time-table{font-size:9.5px!important;min-width:0!important}
  .time-table th:nth-child(1){width:15%}.time-table th:nth-child(2),.time-table th:nth-child(3){width:10%}.time-table th:nth-child(4){width:9%}.time-table th:nth-child(5),.time-table th:nth-child(6),.time-table th:nth-child(7){width:10%}.time-table th:nth-child(8){width:26%}
  .time-table input{border:0!important;background:transparent!important;padding:0!important;margin:0!important;width:auto!important;max-width:none!important;font:inherit!important;color:#111!important;appearance:none!important;-webkit-appearance:none!important}
  .time-table input[type=number]{max-width:40px!important;text-align:right}.time-table input::placeholder{color:transparent!important}.time-table .no-print, .time-table td.no-print, .time-table th.no-print{display:none!important}
  .time-warning{display:block!important;border:0!important;background:transparent!important;color:#111!important;padding:0!important;margin:0 0 1mm!important;border-radius:0!important;font-size:9px!important;font-weight:700!important}.positive,.negative{color:#111!important}
  .calendar{font-size:7.2px!important;min-width:0!important;table-layout:fixed!important}.calendar th,.calendar td{text-align:center!important;padding:1.5px 1px!important;min-width:0!important}.calendar .name{position:static!important;width:34mm!important;min-width:34mm!important;max-width:34mm!important;text-align:left!important;background:#fff!important;white-space:nowrap!important;font-size:9.2px!important;line-height:1.1!important;font-weight:700!important}.calendar-user-name{max-width:none!important;white-space:nowrap!important;overflow:visible!important;font-size:9.2px!important}.calendar .dept-row td{background:#d9dde5!important;text-align:left!important;font-weight:700!important}.calendar .weekend,.calendar .sunday{background:#dbe1ea!important}.calendar .holiday{background:#f3d47a!important}.cal-entry{font-size:6.6px!important;line-height:1!important;padding:1px!important;border-radius:2px!important;min-width:0!important;color:#111!important}.absence-icon{display:none!important}.absence-print-code{display:inline!important}.legend.print-only{display:flex!important;gap:3mm!important;flex-wrap:wrap!important;font-size:8.5px!important;border-top:1px solid #999;padding-top:2mm;margin-top:3mm}.legend i{width:10px!important;height:10px!important}.note-corner{border-top-width:7px!important;border-left-width:7px!important}
  a[href]:after{content:''!important}
}
@media print and (orientation:portrait){@page{size:A4 portrait;margin:10mm}.calendar{font-size:6.4px!important}.cal-entry{font-size:6px!important}.calendar .name{width:30mm!important;min-width:30mm!important;max-width:30mm!important;font-size:8.8px!important}.calendar-user-name{font-size:8.8px!important}}


/* v0.7.6: schlankere Kalenderkennzahlen und Berichts-Druck */
.metric-toggle{align-items:center;gap:6px;background:#f8fafc;border:1px solid #dbe3ef;border-radius:10px;padding:8px 10px;white-space:nowrap}
.calendar-user-name small{display:block;font-size:10px;line-height:1.15;margin-top:2px;color:#64748b;font-weight:500}
.hide-calendar-metrics .calendar-user-name small{display:none}
.time-table input{min-width:0}
@media print{
  .time-summary-box,.time-viewbar,.time-filter,.account-box.no-print{display:none!important}
  .time-table input{border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important;font:inherit!important;color:#111!important}
  .time-table input[name="comment"]{width:100%}
  .time-table th,.time-table td{padding:3px 4px;font-size:10px}
}


/* v0.7.8: Kalenderwochen mit echter 7-Tage-Wochentrennung */
.calendar thead .kw-row th{position:sticky;top:0;z-index:5;background:#f8fafc;border-bottom:1px solid #cbd5e1!important;color:#334155;font-size:11px;font-weight:800;text-align:center}
.calendar thead .kw-row .name{z-index:7;background:#fff;text-align:left;vertical-align:middle;border-bottom:2px solid #94a3b8!important}
/* v0.8.58.2: top = tatsächliche Höhe der KW-Zeile (per JS in calendar.php als
   --kw-row-h gesetzt). Der frühere feste Wert 25px schob die Tageszeile bei
   Zoom <75% nach unten und ließ eine weiße Lücke unter der KW-Zeile. */
.calendar thead .day-row th{position:sticky;top:var(--kw-row-h,25px);z-index:4;background:#fff}
.calendar .kw-cell{letter-spacing:.01em;border-right:3px solid #64748b!important}
.calendar .kw-cell:last-child{border-right:1px solid #cbd5e1!important}
.calendar .saturday:not(.holiday):not(.sunday){background:#edf2f7!important;color:#1f2937}
.calendar .sunday:not(.holiday){background:#9ca3af!important;color:#111827;font-weight:800}
.calendar .week-boundary{border-right:3px solid #64748b!important}
.calendar th.saturday:not(.holiday):not(.sunday){border-top:2px solid #cbd5e1;border-bottom:2px solid #cbd5e1}
.calendar th.sunday:not(.holiday){border-top:3px solid #374151;border-bottom:3px solid #374151}
@media print{
  .calendar thead .kw-row th,.calendar thead .day-row th{position:static!important;top:auto!important}
  .calendar .kw-cell{border-right:2px solid #333!important}
  .calendar .kw-cell:last-child{border-right:1px solid #777!important}
  .calendar .week-boundary{border-right:2px solid #333!important}
  .calendar .saturday:not(.holiday):not(.sunday){background:#edf2f7!important}
  .calendar .sunday:not(.holiday){background:#cbd5e1!important}
}


/* v0.7.9: Alte nth-child-Wochentrenner deaktivieren.
   Die kräftige Linie wird nur noch über .week-boundary gesetzt, also am echten Ende der Kalenderwoche. */
.calendar th:nth-child(8n):not(.week-boundary),
.calendar td:nth-child(8n):not(.week-boundary){border-right:1px solid #cbd5e1!important}
@media print{
  .calendar th:nth-child(8n):not(.week-boundary),
  .calendar td:nth-child(8n):not(.week-boundary){border-right:1px solid #999!important}
}

/* v0.8.0: Dashboard-Kennzahlen & Stempeluhr */
.dashboard-hero{display:grid;grid-template-columns:1.4fr .9fr;gap:18px;align-items:stretch}.dashboard-card{background:#fff;border-radius:14px;padding:18px;box-shadow:0 4px 16px rgba(0,0,0,.08)}.dashboard-card h2,.dashboard-card h3{margin-top:0}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:12px}.kpi{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:14px}.kpi span{display:block;color:#64748b;font-size:12px}.kpi strong{display:block;font-size:1.45rem;margin-top:3px}.notification-list{display:grid;gap:8px}.notification-item{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:10px;background:#f8fafc;text-decoration:none;color:#1f2937}.notification-item strong{color:#1d4ed8}.clock-card{display:flex;gap:16px;align-items:center;justify-content:space-between;background:#f8fafc;border:1px solid #dbe3ef;border-radius:14px;padding:14px 16px;margin:14px 0}.clock-card strong{display:block}.clock-card span{color:#64748b}.clock-state{display:flex;gap:12px;flex-wrap:wrap}.clock-state span{background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:6px 10px}.clock-state span strong{display:inline;color:#111827}.clock-actions{display:flex;gap:8px;flex-wrap:wrap}.clock-actions .btn{margin:0}
@media(max-width:900px){.dashboard-hero{grid-template-columns:1fr}.clock-card{align-items:stretch;flex-direction:column}.clock-actions .btn{flex:1;text-align:center}}
@media print{.dashboard-hero,.clock-card{display:block!important;box-shadow:none!important;border:0!important}}
/* v0.8.1 Einstellungen: Tabs und kompaktere Systembereiche */
.settings-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 22px;border-bottom:1px solid #e5e7eb;padding-bottom:10px}.settings-tabs a{display:inline-flex;align-items:center;text-decoration:none;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:8px 14px;font-weight:700}.settings-tabs a:hover{background:#eef2ff;color:#1d4ed8}.settings-tabs a.active{background:#2563eb;color:#fff;border-color:#2563eb}.settings-section h2{margin-top:0}.settings-divider{border:0;border-top:1px solid #e5e7eb;margin:22px 0}.settings-table input{margin:0}.settings-table .check-line.compact{margin:0}.settings-system-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.system-box{border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc;padding:18px}.system-box h3{margin-top:0}.backup-summary{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px;margin:8px 0 14px}.backup-summary strong{font-size:1.6rem}.backup-summary span{color:#64748b}@media(max-width:700px){.settings-tabs a{flex:1;justify-content:center}.settings-table{min-width:760px}}

/* v0.8.2 */
.year-overview-table th,
.year-overview-table td { text-align: center; }
.year-overview-table th:first-child,
.year-overview-table td:first-child { text-align: left; min-width: 180px; }
.year-overview-table .type-sample { display:inline-flex; align-items:center; justify-content:center; min-width:28px; min-height:22px; border-radius:6px; color:#111827; font-weight:700; margin-right:6px; }
@media print {
    .year-overview-table { font-size: 10px; }
}


/* v0.8.5: Schnelleingabe-Linien wie Arbeitsplan + Benutzer-Anlegen als Slide-Over */
.quick-table th:nth-child(8n):not(.week-boundary),
.quick-table td:nth-child(8n):not(.week-boundary){border-right:1px solid #d1d5db!important}
.quick-table .week-boundary{border-right:3px solid #64748b!important}
.quick-table .saturday:not(.holiday):not(.sunday){background:#edf2f7!important}
.quick-table .sunday:not(.holiday){background:#cbd5e1!important}
.users-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.users-toolbar h1{margin:0}.users-toolbar p{margin:.25rem 0 0}
@media print{
  .quick-table th:nth-child(8n):not(.week-boundary),
  .quick-table td:nth-child(8n):not(.week-boundary){border-right:1px solid #999!important}
  .quick-table .week-boundary{border-right:2px solid #333!important}
}


/* v0.8.7: Kalender-Kontextmenü immer über den Zeilen anzeigen */
.calendar tr.user-menu-open{position:relative;z-index:2000;}
.calendar tr.user-menu-open .name{z-index:2001;}
.user-quick-menu .quick-menu-panel{z-index:9999;}
.user-quick-menu[open] .quick-menu-panel{position:fixed!important;left:var(--menu-left, 0px)!important;top:var(--menu-top, 0px)!important;right:auto!important;z-index:9999!important;}
@media(max-width:700px){.user-quick-menu[open] .quick-menu-panel{left:var(--menu-left, 0px)!important;right:auto!important;}}


.badge{display:inline-block;padding:.18rem .45rem;border-radius:999px;font-size:.78rem;font-weight:700;background:#e5e7eb;color:#111827;white-space:nowrap}
.badge.warning{background:#fef3c7;color:#92400e}
.alert.warning{background:#fff7ed;border-color:#fdba74;color:#9a3412}
.alert-card{border-left:4px solid #f59e0b}
.compact-list{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.45rem}.compact-list li{display:flex;align-items:center;gap:.75rem;justify-content:space-between;border-bottom:1px solid #e5e7eb;padding:.35rem 0}

.clock-running{background:#dcfce7!important;color:#166534!important;border-color:#86efac!important;font-weight:700}
.dashboard-card.clock-card{margin:18px 0}

/* v0.8.12 Benutzer-Slide-Over Tabs */
.user-tabs{display:flex;gap:8px;flex-wrap:wrap;position:sticky;top:52px;background:#fff;z-index:2;padding:8px 0;margin:0 0 12px;border-bottom:1px solid #e5e7eb}
.user-tabs button{border:1px solid #cbd5e1;background:#f8fafc;color:#334155;border-radius:999px;padding:7px 12px;font-weight:700;cursor:pointer}
.user-tabs button.active{background:#2563eb;border-color:#2563eb;color:#fff}
.user-tab-section{display:none}
.user-tab-section.active{display:block}
.short-input{max-width:90px;min-width:70px}
.icon-template-select select{margin-bottom:8px}
.absence-create-form small,.admin-table small{display:block;color:#64748b;font-size:.78rem;margin-top:-6px;margin-bottom:8px}

/* v0.8.12.2: Drag & Drop nur über den Griff */
.drag-handle{cursor:grab;touch-action:none}
.drag-handle:active{cursor:grabbing}
.sortable-body tr input,.sortable-body tr textarea,.sortable-body tr select{user-select:text}


/* v0.8.12.3: Icon-Vorlagen als sichtbare Auswahl */
.icon-template-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px;max-width:520px;margin:4px 0 8px}
.admin-table .icon-template-picker{grid-template-columns:repeat(2,minmax(74px,1fr));min-width:170px;max-width:220px}
.icon-template-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid #d1d5db;background:#fff;border-radius:10px;padding:7px 5px;min-height:58px;font-size:12px;line-height:1.15;cursor:pointer;text-align:center;color:#111827}
.icon-template-tile:hover{background:#eff6ff;border-color:#93c5fd}
.icon-template-tile.active{background:#dbeafe;border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.15)}
.icon-template-tile img{width:24px;height:24px;object-fit:contain;display:block}
.template-icon-placeholder{width:24px;height:24px;border-radius:999px;background:#e5e7eb;display:inline-flex;align-items:center;justify-content:center;color:#6b7280;font-weight:700}
.wide-field{grid-column:1/-1}
.type-sample.large img.absence-icon{width:24px;height:24px}

/* v0.8.12.4: Icon-Auswahl als kompaktes Popup statt großer Galerie in der Zeile */
.icon-template-control{display:flex;align-items:center;gap:6px;margin:0 0 6px}
.icon-template-open{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;min-width:132px;max-width:170px;overflow:hidden;text-overflow:ellipsis}
.icon-template-open [data-template-preview]{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.icon-template-open img{width:20px;height:20px;object-fit:contain;flex:0 0 auto}
.template-icon-placeholder.small{width:20px;height:20px;font-size:12px}
.icon-template-modal[hidden]{display:none!important}
.icon-template-modal{position:fixed;inset:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:24px}
.icon-template-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.35)}
.icon-template-dialog{position:relative;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(15,23,42,.25);width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;padding:18px}
.icon-template-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.icon-template-dialog-head h3{margin:0}
.icon-template-close{border:0;background:#f1f5f9;border-radius:10px;width:34px;height:34px;font-size:22px;line-height:1;cursor:pointer}
.icon-template-close:hover{background:#e2e8f0}
.icon-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.icon-template-grid .icon-template-tile{min-height:70px}
.admin-table .icon-template-picker{display:none}
body.template-modal-open{overflow:hidden}
@media(max-width:700px){.icon-template-modal{align-items:flex-end;padding:0}.icon-template-dialog{width:100%;max-height:82vh;border-radius:18px 18px 0 0}.icon-template-grid{grid-template-columns:repeat(3,1fr)}}

/* v0.8.12.5: Abwesenheitstypen aufgeräumt mit Slide-Over */
.absence-admin-layout{display:block}
.absence-headline{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.absence-headline h1{margin-bottom:4px}
.absence-table-wrap{overflow:auto;border:1px solid #e5e7eb;border-radius:16px;background:#fff}
.absence-compact-table{width:100%;border-collapse:collapse;min-width:860px}
.absence-compact-table th,.absence-compact-table td{padding:13px 14px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}
.absence-compact-table th{font-size:.86rem;color:#334155;background:#f8fafc;font-weight:800}
.absence-compact-table tr:last-child td{border-bottom:0}
.absence-compact-table tbody tr:hover{background:#f8fafc}
.absence-compact-table .drag-handle{width:42px;text-align:center}
.absence-admin-icon{width:34px;height:34px;border-radius:9px;object-fit:contain;display:inline-flex;align-items:center;justify-content:center;background:#f1f5f9;box-shadow:0 1px 2px rgba(15,23,42,.08)}
.absence-admin-icon.empty{font-weight:800;font-size:.8rem;color:#334155;border:1px solid #cbd5e1;background:#f8fafc}
.absence-code-mini{display:inline-flex;min-width:34px;justify-content:center;padding:5px 9px;border:1px solid #dbe3ee;background:#f8fafc;border-radius:8px;font-weight:800;color:#0f172a}
.count-badge{display:inline-flex;margin:2px 3px 2px 0;padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:800;white-space:nowrap;background:#f1f5f9;color:#334155}
.count-badge.green{background:#dcfce7;color:#15803d}.count-badge.orange{background:#ffedd5;color:#c2410c}.count-badge.red{background:#fee2e2;color:#b91c1c}.count-badge.blue{background:#dbeafe;color:#1d4ed8}.count-badge.neutral{background:#f1f5f9;color:#64748b}
.row-action-buttons{display:flex;align-items:center;gap:8px}.inline-form{display:inline;margin:0}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #dbe3ee;border-radius:9px;background:#fff;color:#1f2937;cursor:pointer;font-size:16px}.icon-btn:hover{background:#eff6ff;border-color:#93c5fd}.icon-btn.danger{color:#dc2626;border-color:#fecaca}.icon-btn.danger:hover{background:#fef2f2;border-color:#fca5a5}.inactive-row{opacity:.65}
.absence-slide-over{position:fixed;inset:0 0 0 auto;margin:0;width:min(560px,100vw);height:100vh;max-height:100vh;border:0;border-radius:18px 0 0 18px;box-shadow:-18px 0 70px rgba(15,23,42,.28);padding:0;background:#fff;overflow:hidden}
.absence-slide-over::backdrop{background:rgba(15,23,42,.34)}
.absence-editor-form{height:100vh;display:flex;flex-direction:column;overflow:hidden}
.slide-head{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid #e5e7eb;background:#fff;flex:0 0 auto}
.slide-head h2{margin:0;font-size:1.2rem}.slide-head p{margin:4px 0 0;color:#475569}.slide-close{margin-left:auto;border:0;background:#f1f5f9;border-radius:10px;width:36px;height:36px;font-size:24px;line-height:1;cursor:pointer}.slide-close:hover{background:#e2e8f0}.absence-title-icon{width:48px;height:48px;border-radius:12px;background:#eef2ff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:18px;overflow:hidden}.absence-title-icon img{width:42px;height:42px;object-fit:contain}
.absence-tabs{display:flex;border-bottom:1px solid #e5e7eb;background:#fff;padding:0 22px;gap:18px;flex:0 0 auto}.absence-tabs button{border:0;background:transparent;padding:14px 0 12px;cursor:pointer;font-weight:800;color:#334155;border-bottom:3px solid transparent}.absence-tabs button.active{color:#2563eb;border-bottom-color:#2563eb}
.absence-tab-section{display:none;overflow:auto;padding:22px;flex:1 1 auto}.absence-tab-section.active{display:block}.absence-tab-section h3{margin-top:0}.absence-editor-form label{font-weight:700;margin-top:12px}.absence-editor-form textarea{min-height:92px}.two-cols{grid-template-columns:1fr 1fr}.display-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:start}.icon-preview-card{border:1px solid #e5e7eb;background:#f8fafc;border-radius:14px;padding:14px;text-align:center}.icon-preview-card>span{display:block;font-size:.85rem;color:#475569;margin-bottom:10px}.big-icon-preview{width:110px;height:110px;margin:0 auto;border-radius:18px;background:#ecfdf5;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:900;box-shadow:inset 0 0 0 1px rgba(15,23,42,.06)}.big-icon-preview img{width:86px;height:86px;object-fit:contain}.upload-label{display:block;margin-top:12px}.upload-label input{display:block;margin-top:6px}.slide-actions{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #e5e7eb;background:#fff;padding:14px 22px;flex:0 0 auto}.compact-icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.compact-icon-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid #d1d5db;background:#fff;border-radius:12px;padding:10px 8px;min-height:74px;cursor:pointer}.compact-icon-choice:hover{background:#eff6ff;border-color:#93c5fd}.compact-icon-choice img{width:34px;height:34px;object-fit:contain}
@media(max-width:760px){.absence-slide-over{width:100vw;border-radius:0}.absence-compact-table{min-width:760px}.display-grid{grid-template-columns:1fr}.two-cols{grid-template-columns:1fr}.absence-tabs{gap:12px;overflow:auto}.slide-head,.absence-tab-section,.slide-actions{padding-left:16px;padding-right:16px}}

/* v0.8.12.6: Abwesenheitstypen optisch wie kompakte Admin-Ansicht */
.absence-list-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 12px 34px rgba(15,23,42,.06);padding:18px 22px}.absence-headline{align-items:center}.absence-headline h1{font-size:1.65rem;display:flex;align-items:center;gap:8px}.help-bubble{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:999px;background:#dbeafe;color:#2563eb;font-size:.95rem;border:2px solid #bfdbfe}.absence-headline .actions{display:flex;align-items:center;gap:10px}.absence-table-wrap{border-radius:16px;overflow:hidden}.absence-compact-table{min-width:0}.absence-compact-table th,.absence-compact-table td{padding:13px 16px}.absence-compact-table th{background:#fff;border-bottom:1px solid #e2e8f0;color:#1e293b}.absence-compact-table tbody tr{background:#fff}.absence-compact-table tbody tr:hover{background:#f8fbff}.absence-compact-table .drag-col{min-width:120px}.drag-cell{display:flex;align-items:center;gap:14px}.drag-cell .drag-handle{display:inline-flex;width:28px;justify-content:center;color:#475569;font-size:19px;letter-spacing:-4px;cursor:grab}.drag-cell .drag-handle:active{cursor:grabbing}.absence-admin-icon{width:42px;height:42px;border-radius:12px;background:#ecfdf5;box-shadow:0 3px 12px rgba(15,23,42,.08)}.absence-admin-icon.empty{width:42px;height:42px}.absence-code-mini{min-width:38px;border-radius:9px}.row-action-buttons{display:flex;gap:10px;align-items:center}.row-action-buttons .icon-btn{width:38px;height:38px;border-radius:9px;border:1px solid #dbe3ee;background:#fff}.row-action-buttons .icon-btn:hover{background:#eff6ff}.row-action-buttons .icon-btn.danger{color:#dc2626;border-color:#fecaca;background:#fff7f7}.row-action-buttons .icon-btn.danger:hover{background:#fee2e2}.count-badge{border-radius:8px;padding:6px 10px;font-weight:700;font-size:.8rem}.absence-slide-over{top:14px;right:14px;bottom:14px;width:min(560px,calc(100vw - 28px));height:auto;max-height:calc(100vh - 28px);border-radius:18px;box-shadow:0 22px 70px rgba(15,23,42,.22);border:1px solid #e2e8f0}.absence-slide-over::backdrop{background:rgba(248,250,252,.35);backdrop-filter:blur(1px)}.slide-head{padding:22px 24px;border-bottom:1px solid #e5e7eb}.absence-title-icon{width:56px;height:56px;border-radius:14px;background:#ecfdf5}.absence-title-icon img{width:48px;height:48px}.absence-tabs{padding:0 24px;gap:34px}.absence-tabs button{font-size:.98rem}.absence-tab-section{padding:24px}.absence-editor-form input,.absence-editor-form textarea,.absence-editor-form select{border-radius:10px;border:1px solid #cbd5e1}.display-grid{grid-template-columns:1fr 190px}.icon-preview-card{background:#fff;border:0;text-align:left}.big-icon-preview{width:118px;height:118px;border-radius:18px;background:#dcfce7;margin:8px 0 0}.slide-actions{padding:16px 24px}.compact-icon-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}.compact-icon-choice{border-radius:14px;min-height:86px}.compact-icon-choice img{width:42px;height:42px}.icon-template-dialog{border-radius:18px;box-shadow:0 24px 80px rgba(15,23,42,.22)}
@media(max-width:900px){.absence-compact-table{min-width:720px}.absence-table-wrap{overflow:auto}.absence-slide-over{inset:0;width:100vw;height:100vh;max-height:100vh;border-radius:0}.display-grid{grid-template-columns:1fr}}

/* v0.8.13: Abwesenheitstypen als moderne 2-Spalten-Ansicht */
.absence-split-admin{display:grid;grid-template-columns:minmax(560px,1.65fr) minmax(360px,.95fr);gap:18px;align-items:start}
.absence-list-panel,.absence-editor-panel{min-width:0}
.absence-modern-table-wrap{border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;background:#fff}
.absence-modern-table{width:100%;border-collapse:collapse;table-layout:auto}
.absence-modern-table th,.absence-modern-table td{padding:13px 14px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}
.absence-modern-table th{font-size:.84rem;color:#1e293b;background:#fff;font-weight:800}
.absence-modern-table tbody tr{cursor:pointer;background:#fff;transition:background .15s ease, box-shadow .15s ease}
.absence-modern-table tbody tr:hover{background:#f8fbff}
.absence-modern-table tbody tr.selected-row{background:#eff6ff;box-shadow:inset 4px 0 0 #2563eb}
.absence-modern-table tr:last-child td{border-bottom:0}
.absence-modern-table .drag-cell{min-width:112px}
.absence-modern-table .row-action-buttons{justify-content:flex-start}
.absence-editor-panel{position:sticky;top:14px;border-radius:18px;border:1px solid #e2e8f0;box-shadow:0 16px 44px rgba(15,23,42,.08);padding:0;overflow:hidden;background:#fff;max-height:calc(100vh - 28px)}
.absence-editor-slot[hidden]{display:none!important}
.absence-inline-editor{height:auto;max-height:calc(100vh - 28px);display:flex;flex-direction:column;overflow:hidden;background:#fff}
.inline-editor-head{display:flex;align-items:center;gap:14px;padding:20px 22px;border-bottom:1px solid #e5e7eb;background:#fff}
.inline-editor-head h2{margin:0;font-size:1.15rem}.inline-editor-head p{margin:4px 0 0;color:#475569;font-weight:600}
.absence-inline-editor .absence-tabs{padding:0 22px;gap:26px}
.inline-editor-body{overflow:auto;flex:1 1 auto}.absence-inline-editor .absence-tab-section{padding:22px;overflow:visible}.absence-inline-editor .absence-tab-section.active{display:block}
.inline-actions{padding:14px 22px}.inline-actions .btn:only-child{margin-left:auto}
.absence-inline-editor .display-grid{grid-template-columns:1fr 160px}.absence-inline-editor .big-icon-preview{width:112px;height:112px}.absence-inline-editor .big-icon-preview img{width:82px;height:82px}
.icon-template-modal[hidden]{display:none!important}.icon-template-modal{position:fixed;inset:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:20px}.icon-template-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.34);backdrop-filter:blur(2px)}.icon-template-dialog{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 24px 80px rgba(15,23,42,.28);width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:16px}.icon-template-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.icon-template-dialog-head h3{margin:0}.icon-template-close{border:0;background:#f1f5f9;border-radius:10px;width:34px;height:34px;font-size:22px;cursor:pointer}
@media(max-width:1120px){.absence-split-admin{grid-template-columns:1fr}.absence-editor-panel{position:static;max-height:none}.absence-inline-editor{max-height:none}.absence-modern-table{min-width:720px}.absence-modern-table-wrap{overflow:auto}}
@media(max-width:760px){.absence-headline .actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.absence-inline-editor .display-grid,.absence-inline-editor .two-cols{grid-template-columns:1fr}.absence-inline-editor .absence-tabs{overflow:auto;gap:16px}}

/* v0.8.14 approvals modernization */
.approval-page{display:flex;flex-direction:column;gap:16px}.approval-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.eyebrow{margin:0 0 4px;color:#64748b;text-transform:uppercase;font-size:.75rem;font-weight:800;letter-spacing:.08em}.approval-summary{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.approval-summary span{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:10px 14px;min-width:92px;text-align:center;color:#475569}.approval-summary strong{display:block;font-size:1.35rem;color:#0f172a}.approval-layout{display:grid;grid-template-columns:minmax(360px,1.15fr) minmax(330px,.85fr);gap:16px;align-items:start}.approval-list-panel,.approval-detail{margin:0}.approval-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.approval-tab{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;border:1px solid #e5e7eb;background:#fff;color:#334155;text-decoration:none;font-weight:700}.approval-tab span{background:#eef2ff;color:#1d4ed8;border-radius:999px;padding:1px 7px;font-size:.8rem}.approval-tab.active{background:#2563eb;border-color:#2563eb;color:#fff}.approval-tab.active span{background:rgba(255,255,255,.22);color:#fff}.approval-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:12px;padding:12px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc}.approval-filters label{display:flex;flex-direction:column;flex:1 1 160px;min-width:0;font-size:.82rem;color:#64748b;font-weight:700}.approval-filters select,.approval-filters input{margin-top:4px;width:100%;box-sizing:border-box}.approval-filters .btn{flex:0 0 auto}.approval-current{margin:4px 0 10px}.approval-cards{display:flex;flex-direction:column;gap:10px}.approval-card{display:block;border:1px solid #e5e7eb;border-radius:16px;padding:13px 14px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:background .15s,border-color .15s,box-shadow .15s,transform .15s}.approval-card:hover{border-color:#bfdbfe;background:#eff6ff;box-shadow:0 8px 18px rgba(37,99,235,.10);transform:translateY(-1px)}.approval-card.active{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 3px rgba(37,99,235,.14)}.approval-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.approval-card-main{display:flex;gap:8px;align-items:center;margin-top:9px;font-weight:700}.approval-card-meta{margin-top:7px;color:#475569;font-size:.92rem}.approval-comment{margin-top:8px;color:#64748b;font-size:.9rem;line-height:1.35}.approval-detail{position:sticky;top:16px}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #e5e7eb;padding-bottom:14px;margin-bottom:12px}.detail-head h2{margin:0}.detail-tabs{display:flex;gap:8px;border-bottom:1px solid #e5e7eb;margin-bottom:14px}.detail-tabs button{border:0;background:transparent;padding:10px 8px;border-bottom:3px solid transparent;color:#64748b;font-weight:800;cursor:pointer}.detail-tabs button.active{color:#1d4ed8;border-bottom-color:#2563eb}.detail-tab-panel{display:none}.detail-tab-panel.active{display:block}.detail-list{display:grid;grid-template-columns:130px 1fr;gap:10px 14px;margin:0}.detail-list dt{font-weight:800;color:#64748b}.detail-list dd{margin:0;color:#0f172a}.approval-actions{border-top:1px solid #e5e7eb;margin-top:16px;padding-top:16px}.approval-action-form{display:flex;flex-direction:column;gap:10px}.button-row{display:flex;gap:8px;flex-wrap:wrap}.empty-state{border:1px dashed #cbd5e1;background:#f8fafc;color:#64748b;border-radius:14px;padding:18px;text-align:center}.muted{color:#64748b}.type-sample{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:24px;border-radius:8px;color:#fff;font-weight:800;padding:2px 6px}
@media(max-width:1100px){.approval-layout{grid-template-columns:1fr}.approval-detail{position:static}.approval-hero{flex-direction:column}.approval-summary{justify-content:flex-start}}
@media(max-width:720px){.approval-filters label{flex-basis:100%}.approval-filters .btn{width:100%}.detail-list{grid-template-columns:1fr}.approval-card-top{align-items:flex-start;flex-direction:column}.approval-summary span{min-width:unset}}


/* v0.8.17: Praxis-Fix Schnelleingabe + gleichmäßige Abwesenheitstypen-Zeilen */
.calendar-wrap{scroll-behavior:auto}
.quick-table form{margin:0}
.quick-table button{display:inline-flex;align-items:center;justify-content:center}
.absence-modern-table tbody tr{height:78px}
.absence-modern-table td{height:78px;box-sizing:border-box}
.absence-modern-table td:nth-child(5){min-width:190px;max-width:230px}
.absence-modern-table td:nth-child(5) .count-badge{display:inline-flex;align-items:center;margin:2px 4px 2px 0;vertical-align:middle;line-height:1.1;white-space:nowrap}
.absence-modern-table .drag-cell{height:78px;box-sizing:border-box}
.absence-modern-table .row-action-buttons{min-height:42px}
@media(max-width:1120px){.absence-modern-table tbody tr,.absence-modern-table td,.absence-modern-table .drag-cell{height:auto}}

/* v0.8.19 UI polish */
.users-filter-wrap{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.users-filter-wrap .users-search{flex:1 1 200px;min-width:0}.users-filter-wrap .users-department-filter{flex:1 1 190px;min-width:0;margin:0}.users-department-filter{margin:0}.department-list-card .user-avatar{background:#eef2ff}.departments-modern-view .users-detail-panel{min-height:520px}.quick-entry-tools{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:end;margin:12px 0}.quick-entry-tools input{margin-bottom:0}.quick-category-row td{background:#eef2ff!important;border-top:2px solid #c7d2fe!important;border-bottom:1px solid #c7d2fe!important;font-weight:800;text-align:left!important;position:sticky;left:0;z-index:3}.quick-favorites-row td{background:#fff7ed!important;border-top-color:#fed7aa!important;border-bottom-color:#fed7aa!important}.quick-category-toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:24px;margin-right:6px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;cursor:pointer}.quick-type-row.quick-collapsed,.quick-search-hidden{display:none!important}.quick-fav-star{margin-left:6px;font-size:12px}.quick-table .label{min-width:220px}.quick-table .type-sample{margin-right:6px}.quick-table tr.quick-type-row td.label{white-space:normal;line-height:1.25}.absence-modern-table td{vertical-align:middle}.absence-modern-table .ap-badge{white-space:nowrap}.quick-fav-line{margin-top:26px}.absence-editor-form select[name=quick_category]{margin-bottom:14px}
@media(max-width:900px){.quick-entry-tools{grid-template-columns:1fr}.quick-entry-tools .btn{width:100%}}
@media print{@page{size:A4 landscape;margin:8mm}.calendar-print-landscape,.calendar{page-orientation:landscape}}

/* v0.8.20: Filialaccount-Zuweisungen */
.checkbox-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: .35rem .75rem;
    margin-top: .35rem;
}
.branch-group-picker {
    grid-column: 1 / -1;
    padding: .75rem;
    border: 1px solid var(--ap-border, #e5e7eb);
    border-radius: .75rem;
    background: var(--ap-surface-soft, #f8fafc);
}
.branch-group-picker .check-line {
    margin: 0;
}

/* v0.8.20.1: Filialaccount-Zuweisung nur bei entsprechender Rolle anzeigen */
.branch-group-picker.is-hidden { display: none; }


/* v0.8.21 Filialmodus */
.branch-info-note { grid-column: 1 / -1; padding: 12px 14px; border: 1px solid #dbeafe; background: #eff6ff; border-radius: 12px; color: #1e3a8a; }
.branch-info-note.is-hidden { display: none; }
.branch-readonly-banner { margin-bottom: 12px; }

/* v0.8.21.2: Kontoaktionen oben rechts, Lesemodus nicht mehr in der Sidebar */
.user-menu{position:relative;margin:0;display:block}.user-menu>summary{list-style:none;cursor:pointer;border-radius:12px;padding:7px 10px}.user-menu>summary::-webkit-details-marker{display:none}.user-menu>summary:hover{background:#f3f4f6}.user-menu-panel{position:absolute;right:0;top:calc(100% + 8px);min-width:210px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 18px 50px rgba(15,23,42,.18);padding:8px;z-index:80;text-align:left}.user-menu-panel a{display:block;color:#111827;text-decoration:none;padding:9px 10px;border-radius:10px;font-size:.95rem}.user-menu-panel a:hover{background:#f3f4f6}
.user-menu-panel form{margin:0}
.user-menu-panel form button{display:block;width:100%;text-align:left;color:#111827;background:none;border:0;padding:9px 10px;border-radius:10px;font-size:.95rem;font-family:inherit;cursor:pointer}
.user-menu-panel form button:hover{background:#f3f4f6}.readmode-badge{display:inline-flex;align-items:center;gap:6px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:999px;padding:6px 10px;font-weight:700;font-size:.86rem}

/* v0.8.21.3: Lesemodus ohne Sidebar */
.no-sidebar-shell .content-area{margin-left:0;width:100%;}
.no-sidebar-shell .wrap{max-width:none;padding-left:24px;padding-right:24px;}
.no-sidebar-shell .pagebar{left:0;}
.no-sidebar-shell .calendar-wrap{max-width:100%;}
@media(max-width:900px){.no-sidebar-shell .wrap{padding-left:14px;padding-right:14px;}}

/* v0.8.21.4: Druckansicht Arbeitsplan lesbarer */
@media print{
  @page{size:A4 landscape;margin:7mm}
  body{font-size:11.5px!important;color:#111!important}
  h1{font-size:18px!important;line-height:1.15!important;margin:0 0 8px!important}
  h2,h3{font-size:14px!important;line-height:1.2!important}
  .calendar{font-size:11px!important;line-height:1.2!important;width:100%!important}
  .calendar th,.calendar td{padding:3px 4px!important;vertical-align:middle!important}
  .calendar .name{min-width:108px!important;font-size:12px!important;font-weight:700!important;line-height:1.18!important}
  .calendar .dept-row td{font-size:14px!important;font-weight:800!important;padding:4px 6px!important;background:#e5e7eb!important;color:#111!important}
  .cal-entry{font-size:11px!important;font-weight:800!important;line-height:1.12!important;padding:2px 3px!important;min-height:16px!important}
  .cal-entry.morning,.cal-entry.afternoon{font-size:10px!important;line-height:1.08!important}
  .split-cell{font-size:10px!important;line-height:1.12!important}
  .legend{font-size:11px!important;line-height:1.22!important;gap:7px 10px!important;margin-top:6px!important}
  .legend i{width:16px!important;height:16px!important}
  .calendar th:not(.name),.calendar td:not(.name){min-width:22px!important}
}

/* v0.8.21.6: Jahresansicht als kompletter Jahreskalender für Einzelbenutzer */
.year-calendar-table{width:100%;border-collapse:separate;border-spacing:0;font-size:11px;min-width:1120px;background:#fff}
.year-calendar-table th,.year-calendar-table td{border-right:1px solid #d1d5db;border-bottom:1px solid #d1d5db;text-align:center;vertical-align:top;padding:3px;min-width:31px;height:42px}
.year-calendar-table thead th{background:#f8fafc;font-weight:700;position:sticky;top:0;z-index:1}
.year-calendar-table .month-label{position:sticky;left:0;z-index:2;background:#f8fafc;text-align:left;font-weight:800;min-width:110px;width:110px}
.year-calendar-table tbody .month-label{background:#f1f5f9}
.year-calendar-table .empty-day{background:#e5e7eb;color:#94a3b8}
.year-calendar-table .saturday{background:#f1f5f9}
.year-calendar-table .sunday{background:#cbd5e1;border-right:3px solid #64748b}
.year-calendar-table .holiday{background:#fde68a!important}
.year-calendar-table .today{outline:2px solid #2563eb;outline-offset:-2px}
.year-calendar-table .year-weekday{display:block;color:#64748b;font-size:9px;line-height:1;margin-bottom:2px}
.year-entry{display:block;border-radius:4px;padding:2px 1px;margin:1px 0;font-weight:800;color:#111827;font-size:10px;line-height:1.1;min-height:14px}
.year-entry .absence-code{font-weight:800}
.year-print-legend{margin-top:12px;font-size:12px}
@media print{
  @page{size:A4 landscape;margin:7mm}
  .year-calendar-print{box-shadow:none!important;border:0!important;padding:0!important;margin:0!important;overflow:visible!important}
  .year-calendar-table{min-width:0!important;width:100%!important;font-size:7.5px!important;table-layout:fixed;border-spacing:0}
  .year-calendar-table th,.year-calendar-table td{padding:1px!important;min-width:0!important;height:24px!important;border-color:#777!important}
  .year-calendar-table .month-label{position:static!important;width:18mm!important;min-width:18mm!important;font-size:8px!important}
  .year-calendar-table thead th{position:static!important;font-size:7px!important}
  .year-calendar-table .year-weekday{font-size:5.5px!important;margin-bottom:1px!important}
  .year-entry{font-size:6.5px!important;padding:1px!important;margin:0 0 1px!important;border-radius:2px!important}
  .year-print-legend{font-size:8px!important;margin-top:4px!important;gap:5px!important}
}


/* v0.8.21.7: Jahresansicht und Druckansicht lesbarer/konsequenter markieren */
.year-calendar-table .empty-day{background:#cbd5e1!important;color:#64748b!important}
.year-calendar-table .sunday{background:#94a3b8!important;color:#111827!important;border-right:3px solid #475569!important}
.year-calendar-table .holiday{background:#f3c969!important;color:#111827!important}
.year-calendar-table .holiday .year-weekday,
.year-calendar-table .sunday .year-weekday{color:#111827!important;font-weight:800!important}
@media print{
  /* Jahresansicht: Markierungen auch im Ausdruck kräftig übernehmen */
  .year-calendar-table .empty-day{background:#9ca3af!important;color:#111!important}
  .year-calendar-table .sunday{background:#b8c0cc!important;color:#111!important;border-right:2px solid #555!important}
  .year-calendar-table .holiday{background:#cfd4dc!important;color:#111!important;font-weight:800!important}
  .year-calendar-table .holiday .year-weekday,
  .year-calendar-table .sunday .year-weekday{color:#111!important;font-weight:800!important}

  /* Arbeitsplan-Druck: Namen/Gruppen wieder kompakter, aber nie umbrechen */
  .calendar .name{width:31mm!important;min-width:31mm!important;max-width:31mm!important;font-size:6.6px!important;line-height:1.05!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important}
  .calendar-user-name{font-size:6.6px!important;line-height:1.05!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;max-width:30mm!important;display:block!important}
  .calendar .dept-row td{font-size:7px!important;line-height:1.1!important;padding:1.5px 2px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important}
  .calendar .dept-row .name{font-size:7px!important;font-weight:800!important}
}


.calendar-wrap.drag-scroll-enabled{cursor:grab; user-select:auto;}
.calendar-wrap.drag-scroll-enabled.is-dragging{cursor:grabbing; user-select:none;}
.calendar-wrap.drag-scroll-enabled.is-dragging *{cursor:grabbing!important;}

/* v0.8.23: Arbeitsplan-Zoom für Tablet/Handy und große Monatsübersicht */
.calendar-zoom-control{display:inline-flex;align-items:center;gap:6px;border:1px solid #e5e7eb;background:#f8fafc;border-radius:10px;padding:4px 6px}
.calendar-zoom-control .btn{padding:6px 9px;line-height:1;min-width:32px;text-align:center}
.calendar-zoom-control span{min-width:44px;text-align:center;font-weight:700;color:#374151;font-size:13px}
.calendar-wrap[class*="calendar-zoom-"] .calendar{transition:font-size .12s ease}
.calendar-wrap.calendar-zoom-130 .calendar{font-size:14px;min-width:1180px}
.calendar-wrap.calendar-zoom-130 .calendar .name{min-width:210px}
.calendar-wrap.calendar-zoom-130 .calendar th:not(.name),.calendar-wrap.calendar-zoom-130 .calendar td:not(.name){min-width:42px;padding:5px}
.calendar-wrap.calendar-zoom-130 .cal-entry{font-size:12px;min-width:28px;padding:4px 3px}

.calendar-wrap.calendar-zoom-115 .calendar{font-size:13px;min-width:1080px}
.calendar-wrap.calendar-zoom-115 .calendar .name{min-width:190px}
.calendar-wrap.calendar-zoom-115 .calendar th:not(.name),.calendar-wrap.calendar-zoom-115 .calendar td:not(.name){min-width:38px;padding:4px}
.calendar-wrap.calendar-zoom-115 .cal-entry{font-size:11.5px;min-width:25px}

.calendar-wrap.calendar-zoom-100 .calendar{font-size:12px;min-width:980px}
.calendar-wrap.calendar-zoom-100 .calendar .name{min-width:170px}
.calendar-wrap.calendar-zoom-100 .calendar th:not(.name),.calendar-wrap.calendar-zoom-100 .calendar td:not(.name){min-width:34px}
.calendar-wrap.calendar-zoom-100 .cal-entry{font-size:11px}

.calendar-wrap.calendar-zoom-85 .calendar{font-size:11px;min-width:860px}
.calendar-wrap.calendar-zoom-85 .calendar .name{min-width:145px}
.calendar-wrap.calendar-zoom-85 .calendar th:not(.name),.calendar-wrap.calendar-zoom-85 .calendar td:not(.name){min-width:29px;padding:3px}
.calendar-wrap.calendar-zoom-85 .cal-entry{font-size:10px;min-width:21px;padding:2px}
.calendar-wrap.calendar-zoom-85 .small{font-size:10px}

.calendar-wrap.calendar-zoom-70 .calendar{font-size:10px;min-width:740px}
.calendar-wrap.calendar-zoom-70 .calendar .name{min-width:120px}
.calendar-wrap.calendar-zoom-70 .calendar th:not(.name),.calendar-wrap.calendar-zoom-70 .calendar td:not(.name){min-width:24px;padding:2px}
.calendar-wrap.calendar-zoom-70 .cal-entry{font-size:9px;min-width:18px;padding:2px 1px;border-radius:3px}
.calendar-wrap.calendar-zoom-70 .small{font-size:9px}
.calendar-wrap.calendar-zoom-70 .calendar-user-name small{display:none!important}

.calendar-wrap.calendar-zoom-55 .calendar{font-size:9px;min-width:620px}
.calendar-wrap.calendar-zoom-55 .calendar .name{min-width:95px}
.calendar-wrap.calendar-zoom-55 .calendar th:not(.name),.calendar-wrap.calendar-zoom-55 .calendar td:not(.name){min-width:20px;padding:1.5px}
.calendar-wrap.calendar-zoom-55 .cal-entry{font-size:8px;line-height:1.05;min-width:15px;padding:1px;border-radius:3px}
.calendar-wrap.calendar-zoom-55 .small{font-size:8px}
.calendar-wrap.calendar-zoom-55 .calendar-user-name{font-size:9px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:clip;display:block;max-width:88px}
.calendar-wrap.calendar-zoom-55 .calendar-user-name small{display:none!important}
.calendar-wrap.calendar-zoom-55 .kw-cell{font-size:8px}

.calendar-wrap.calendar-zoom-45 .calendar{font-size:8px;min-width:540px}
.calendar-wrap.calendar-zoom-45 .calendar .name{min-width:78px}
.calendar-wrap.calendar-zoom-45 .calendar th:not(.name),.calendar-wrap.calendar-zoom-45 .calendar td:not(.name){min-width:17px;padding:1px}
.calendar-wrap.calendar-zoom-45 .cal-entry{font-size:7px;line-height:1;min-width:12px;padding:1px;border-radius:2px}
.calendar-wrap.calendar-zoom-45 .small{font-size:7px}
.calendar-wrap.calendar-zoom-45 .day-number{font-size:8px}
.calendar-wrap.calendar-zoom-45 .calendar-user-name{font-size:8px;line-height:1.02;white-space:nowrap;overflow:hidden;text-overflow:clip;display:block;max-width:72px}
.calendar-wrap.calendar-zoom-45 .calendar-user-name small{display:none!important}
.calendar-wrap.calendar-zoom-45 .kw-cell{font-size:7px}
.calendar-wrap.calendar-zoom-45 .row-actions{display:none!important}
.calendar-wrap.calendar-zoom-45 .note-corner{border-top-width:7px;border-left-width:7px}

@media(max-width:900px){
  .calendar-zoom-control{order:10;width:100%;justify-content:center}
  .calendar-tools .calendar-search{flex:1 1 100%}
  .calendar-wrap.calendar-zoom-100 .calendar{min-width:900px}
}
@media(max-width:520px){
  .calendar-zoom-control span{min-width:38px}
  .calendar-zoom-control .btn{padding:6px 8px;min-width:30px}
}
@media print{
  .calendar-zoom-control{display:none!important}
  .calendar-wrap[class*="calendar-zoom-"] .calendar{font-size:inherit!important;min-width:0!important}
}

/* v0.8.23.1: Arbeitsplan Mobile/Desktop Toolbar-Optimierung */
.calendar-control-card{padding:14px 16px;margin-bottom:12px}
.calendar-controlbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.calendar-month-compact{display:flex;align-items:center;gap:8px;margin-right:auto;min-width:260px}
.calendar-month-compact h1{font-size:1.45rem;line-height:1.1;margin:0 6px;white-space:nowrap;color:#0f172a}
/* v0.8.55: "Monat Jahr" als Sprung-Picker (natives <input type=month> deckt das Label ab) */
.calendar-month-jump{position:relative;display:inline-flex;align-items:center}
.calendar-month-jump-label{display:inline-flex;align-items:center;gap:5px;cursor:pointer;padding:2px 8px;border-radius:9px;border:1px solid transparent}
.calendar-month-jump-label:hover{background:#f1f5f9;border-color:#dbe3ee}
.calendar-month-jump-caret{font-size:.62em;color:#64748b;position:relative;top:1px}
.calendar-month-jump input[type=month]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;opacity:0;cursor:pointer;font:inherit;color:transparent}
.calendar-month-jump input[type=month]:focus-visible{opacity:1;color:inherit;background:#fff}
.calendar-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;font-size:1.45rem;line-height:1;border-radius:10px;background:#f1f5f9;color:#0f172a;border:1px solid #dbe3ee}
.calendar-today-btn{background:#f8fafc;color:#334155;border:1px solid #dbe3ee;padding:9px 12px}
.calendar-search-compact{min-width:230px;max-width:320px;flex:0 1 280px;margin:0}
.calendar-search-compact input{margin:0;height:38px;padding:8px 11px}
.calendar-search-toggle{display:none;background:#f8fafc;color:#334155;border:1px solid #dbe3ee;padding:9px 11px}
.calendar-actions-menu{position:relative;margin-left:0}
.calendar-actions-menu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;background:#f8fafc!important;color:#334155!important;border:1px solid #dbe3ee!important}
.calendar-actions-menu>summary::-webkit-details-marker{display:none}
.calendar-actions-panel{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 18px 50px rgba(15,23,42,.18);padding:8px;z-index:90;text-align:left}
.calendar-actions-panel a,.calendar-actions-panel button{display:block;width:100%;text-align:left;border:0;background:#fff;color:#111827;text-decoration:none;padding:10px 11px;border-radius:10px;font-size:.95rem;cursor:pointer;font-family:inherit}
.calendar-actions-panel a:hover,.calendar-actions-panel button:hover{background:#f3f4f6}
.calendar-controlbar .metric-toggle{margin:0;background:#f8fafc;border:1px solid #dbe3ee;border-radius:10px;padding:8px 10px;white-space:nowrap}
.calendar-controlbar .calendar-zoom-control{margin-left:0}
.calendar-wrap{scrollbar-gutter:stable;}
.calendar-wrap .calendar .name{white-space:nowrap}

@media(min-width:901px){
  .calendar-control-card{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}
  .calendar-wrap .calendar th:not(.name),.calendar-wrap .calendar td:not(.name){max-width:46px}
}

@media(max-width:900px){
  .mobilebar{min-height:46px;padding:6px 12px;background:rgba(255,255,255,.94);color:#0f172a;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 8px rgba(15,23,42,.08);position:sticky;top:0;z-index:70}
  .mobilebar .menu-toggle{width:38px;height:38px;border-radius:11px;background:#f1f5f9;color:#0f172a;border:1px solid #dbe3ee;font-size:22px}
  .mobilebar strong{font-size:1rem;color:#0f172a;margin-right:auto}
  .mobile-user-menu>summary{width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:11px;background:#f1f5f9;color:#0f172a;border:1px solid #dbe3ee;font-size:19px}
  .mobile-user-menu>summary:hover{background:#e2e8f0}
  .mobile-user-menu[open]>summary{background:#e2e8f0}
  .mobile-user-menu .user-menu-panel{z-index:9999}
  .calendar-control-card{padding:10px 10px;border-radius:12px;margin-top:8px;margin-bottom:8px}
  .calendar-controlbar{gap:7px}
  .calendar-month-compact{order:1;width:100%;min-width:0;justify-content:space-between;margin-right:0}
  .calendar-month-compact h1{font-size:1.2rem;margin:0 4px;flex:1;text-align:center}
  .calendar-nav-btn{width:34px;height:34px;font-size:1.25rem}
  .calendar-today-btn{display:none}
  .calendar-search-toggle{display:inline-flex;align-items:center;justify-content:center;order:2;width:38px;height:36px;padding:0}
  .calendar-search-compact{order:7;display:none;flex:1 1 100%;max-width:none;min-width:0}
  .calendar-search-compact.is-open{display:block}
  .calendar-zoom-control{order:3;width:auto;flex:0 0 auto;padding:3px 4px;gap:4px}
  .calendar-zoom-control .btn{padding:5px 7px;min-width:28px}
  .calendar-zoom-control span{font-size:12px;min-width:36px}
  .calendar-controlbar .metric-toggle{order:4;padding:7px 8px;font-size:.9rem}
  .calendar-actions-menu{order:5;margin-left:auto}
  .calendar-actions-menu>summary{height:36px;padding:8px 10px;font-size:.92rem}
  .calendar-actions-panel{right:0;min-width:230px}
  .calendar-wrap{margin-top:6px;border-radius:12px}
  .calendar-wrap .calendar .name{min-width:126px}
}

@media(max-width:520px){
  .wrap{padding:8px}
  .content-area .wrap{padding-top:8px}
  .card{margin:10px 0}
  .calendar-control-card{margin:6px 0 6px;padding:8px}
  .calendar-month-compact h1{font-size:1.05rem}
  .calendar-nav-btn{width:32px;height:32px}
  .calendar-actions-menu>summary{font-size:.86rem;padding:7px 8px}
  .calendar-controlbar .metric-toggle span{font-size:.85rem}
  .calendar-controlbar .metric-toggle{padding:6px 7px}
  .calendar-zoom-control{transform:scale(.94);transform-origin:left center}
  .calendar-wrap.calendar-zoom-100 .calendar{min-width:840px}
  .calendar-wrap.calendar-zoom-85 .calendar{min-width:740px}
  .calendar-wrap.calendar-zoom-70 .calendar{min-width:640px}
  .calendar-wrap.calendar-zoom-55 .calendar{min-width:560px}
  .calendar-wrap.calendar-zoom-45 .calendar{min-width:500px}
  .branch-readonly-banner{padding:9px 11px;margin:8px 0}
}


/* v0.8.23.2: feinere Zoomstaffelung und dezenteres Mitarbeiter-Aktionsicon */
.calendar-wrap.calendar-zoom-150 .calendar{font-size:15px;min-width:1280px}
.calendar-wrap.calendar-zoom-150 .calendar .name{min-width:220px}
.calendar-wrap.calendar-zoom-150 .calendar th:not(.name),.calendar-wrap.calendar-zoom-150 .calendar td:not(.name){min-width:46px;padding:5px}
.calendar-wrap.calendar-zoom-150 .cal-entry{font-size:13px;min-width:30px;padding:4px 3px}

.calendar-wrap.calendar-zoom-125 .calendar{font-size:13.5px;min-width:1120px}
.calendar-wrap.calendar-zoom-125 .calendar .name{min-width:198px}
.calendar-wrap.calendar-zoom-125 .calendar th:not(.name),.calendar-wrap.calendar-zoom-125 .calendar td:not(.name){min-width:40px;padding:4px}
.calendar-wrap.calendar-zoom-125 .cal-entry{font-size:12px;min-width:26px}

.calendar-wrap.calendar-zoom-75 .calendar{font-size:10.5px;min-width:790px}
.calendar-wrap.calendar-zoom-75 .calendar .name{min-width:130px}
.calendar-wrap.calendar-zoom-75 .calendar th:not(.name),.calendar-wrap.calendar-zoom-75 .calendar td:not(.name){min-width:26px;padding:2px}
.calendar-wrap.calendar-zoom-75 .cal-entry{font-size:9.5px;min-width:19px;padding:2px 1px;border-radius:3px}
.calendar-wrap.calendar-zoom-75 .small{font-size:9.5px}
.calendar-wrap.calendar-zoom-75 .calendar-user-name small{display:none!important}

.calendar-wrap.calendar-zoom-50 .calendar{font-size:8.7px;min-width:590px}
.calendar-wrap.calendar-zoom-50 .calendar .name{min-width:86px}
.calendar-wrap.calendar-zoom-50 .calendar th:not(.name),.calendar-wrap.calendar-zoom-50 .calendar td:not(.name){min-width:19px;padding:1px}
.calendar-wrap.calendar-zoom-50 .cal-entry{font-size:7.5px;line-height:1.05;min-width:14px;padding:1px;border-radius:3px}
.calendar-wrap.calendar-zoom-50 .small{font-size:7.5px}
.calendar-wrap.calendar-zoom-50 .day-number{font-size:8px}
.calendar-wrap.calendar-zoom-50 .calendar-user-name{font-size:8.5px;line-height:1.02;white-space:nowrap;overflow:hidden;text-overflow:clip;display:block;max-width:80px}
.calendar-wrap.calendar-zoom-50 .calendar-user-name small{display:none!important}
.calendar-wrap.calendar-zoom-50 .kw-cell{font-size:7.5px}
.calendar-wrap.calendar-zoom-50 .note-corner{border-top-width:7px;border-left-width:7px}

.calendar-wrap.calendar-zoom-35 .calendar{font-size:7.8px;min-width:470px}
.calendar-wrap.calendar-zoom-35 .calendar .name{min-width:66px}
.calendar-wrap.calendar-zoom-35 .calendar th:not(.name),.calendar-wrap.calendar-zoom-35 .calendar td:not(.name){min-width:14px;padding:.5px}
.calendar-wrap.calendar-zoom-35 .cal-entry{font-size:6.6px;line-height:1;min-width:10px;padding:0 1px;border-radius:2px}
.calendar-wrap.calendar-zoom-35 .small{font-size:6.4px}
.calendar-wrap.calendar-zoom-35 .day-number{font-size:7px}
.calendar-wrap.calendar-zoom-35 .calendar-user-name{font-size:7.4px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:clip;display:block;max-width:61px}
.calendar-wrap.calendar-zoom-35 .calendar-user-name small{display:none!important}
.calendar-wrap.calendar-zoom-35 .kw-cell{font-size:6.6px}
.calendar-wrap.calendar-zoom-35 .row-actions{display:none!important}
.calendar-wrap.calendar-zoom-35 .note-corner{border-top-width:6px;border-left-width:6px}

.calendar-wrap.calendar-zoom-20 .calendar{font-size:6.6px;min-width:360px}
.calendar-wrap.calendar-zoom-20 .calendar .name{min-width:48px}
.calendar-wrap.calendar-zoom-20 .calendar th:not(.name),.calendar-wrap.calendar-zoom-20 .calendar td:not(.name){min-width:10px;padding:0}
.calendar-wrap.calendar-zoom-20 .cal-entry{font-size:5.8px;line-height:1;min-width:8px;padding:0;border-radius:2px}
.calendar-wrap.calendar-zoom-20 .small{font-size:5.5px}
.calendar-wrap.calendar-zoom-20 .day-number{font-size:6.3px}
.calendar-wrap.calendar-zoom-20 .calendar-user-name{font-size:6.4px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:clip;display:block;max-width:44px}
.calendar-wrap.calendar-zoom-20 .calendar-user-name small{display:none!important}
.calendar-wrap.calendar-zoom-20 .kw-cell{font-size:5.8px}
.calendar-wrap.calendar-zoom-20 .row-actions{display:none!important}
.calendar-wrap.calendar-zoom-20 .note-corner{border-top-width:5px;border-left-width:5px}

/* v0.8.56.3: Namensspalte bei kleinem Zoom. Bisher wuchs sie über die
   vorgesehene min-width hinaus, weil die Abteilungszeile (.dept-label-cell)
   keine Breitenbegrenzung hat und der Aufklapp-Pfeil (.dept-toggle) fix 18px
   + 6px Rand belegt - beides skaliert nicht mit. Gleichzeitig war die
   .calendar-user-name-Kappung kleiner als die real gerenderte Spaltenbreite,
   also wurden Namen zu früh abgeschnitten. Fix: harte Spaltenbreite + Clipping
   für alle .name-Zellen (inkl. Abteilungszeile + Kopf), Pfeil und Innen-
   Padding pro Stufe verkleinern, Namens-Kappung an die Spaltenbreite angleichen.
   Nur >900px - Zoom ist eine reine Desktop-Funktion (Steuerung mobil ausgeblendet).
   v0.8.57: Breiten ab 50% wieder großzügiger; ab 50% zusätzlich auf die Kurzform
   "Nachname, V." umschalten (wie Mobil/Druck), damit lange Namen abgekürzt statt
   hart abgeschnitten werden. */
@media(min-width:901px){
  .calendar-wrap.calendar-zoom-75 .calendar .name{width:130px;max-width:130px;padding:2px 4px;overflow:hidden;text-overflow:ellipsis}
  .calendar-wrap.calendar-zoom-75 .calendar .dept-row .dept-toggle{width:12px;margin-right:4px}
  .calendar-wrap.calendar-zoom-75 .calendar-user-name{max-width:122px}
  .calendar-wrap.calendar-zoom-50 .calendar .name{width:108px;max-width:108px;padding:1px 3px;overflow:hidden;text-overflow:ellipsis}
  .calendar-wrap.calendar-zoom-50 .calendar .dept-row .dept-toggle{width:11px;margin-right:3px}
  .calendar-wrap.calendar-zoom-50 .calendar-user-name{max-width:100px}
  .calendar-wrap.calendar-zoom-35 .calendar .name{width:90px;max-width:90px;padding:1px 2px;overflow:hidden;text-overflow:ellipsis}
  .calendar-wrap.calendar-zoom-35 .calendar .dept-row .dept-toggle{width:10px;margin-right:2px}
  .calendar-wrap.calendar-zoom-35 .calendar-user-name{max-width:82px}
  .calendar-wrap.calendar-zoom-20 .calendar .name{width:68px;max-width:68px;padding:0 2px;overflow:hidden;text-overflow:ellipsis}
  .calendar-wrap.calendar-zoom-20 .calendar .dept-row .dept-toggle{width:9px;margin-right:2px}
  .calendar-wrap.calendar-zoom-20 .calendar-user-name{max-width:60px}
  .calendar-wrap.calendar-zoom-50 .calendar-name-full,
  .calendar-wrap.calendar-zoom-35 .calendar-name-full,
  .calendar-wrap.calendar-zoom-20 .calendar-name-full{display:none}
  .calendar-wrap.calendar-zoom-50 .calendar-name-short,
  .calendar-wrap.calendar-zoom-35 .calendar-name-short,
  .calendar-wrap.calendar-zoom-20 .calendar-name-short{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

.calendar .row-actions{margin-right:4px}
.calendar .row-actions .user-edit-action{min-width:20px;min-height:20px;width:20px;height:20px;padding:0;margin-right:3px;font-size:10.5px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;background:#f8fafc;color:#64748b;border:1px solid #e5e7eb;opacity:.76}
.calendar .row-actions .user-edit-action:hover{background:#eef2ff;color:#334155;opacity:1}
.calendar .user-quick-menu[open] .user-edit-action{opacity:1;background:#eef2ff;color:#334155}

@media(max-width:520px){
  .calendar-wrap.calendar-zoom-150 .calendar{min-width:1200px}
  .calendar-wrap.calendar-zoom-125 .calendar{min-width:1040px}
  .calendar-wrap.calendar-zoom-100 .calendar{min-width:840px}
  .calendar-wrap.calendar-zoom-75 .calendar{min-width:680px}
  .calendar-wrap.calendar-zoom-50 .calendar{min-width:520px}
  .calendar-wrap.calendar-zoom-35 .calendar{min-width:430px}
  .calendar-wrap.calendar-zoom-20 .calendar{min-width:350px}
}

/* v0.8.23.4: Arbeitsplan-Menüs beruhigen und Overlay-Reihenfolge korrigieren */
.pagebar{z-index:3000;}
.user-menu{z-index:3010;}
.user-menu-panel{z-index:9999!important;}
.calendar-control-card{z-index:50;}
.calendar-actions-menu{z-index:120;}
.calendar-actions-menu[open]{z-index:150;}
.calendar-actions-panel{z-index:5000!important;}
.calendar-actions-panel .calendar-action-check{
  display:flex;
  align-items:center;
  gap:9px;
  width:100%;
  box-sizing:border-box;
  padding:10px 11px;
  border-radius:10px;
  color:#111827;
  background:#fff;
  font-size:.95rem;
  cursor:pointer;
  user-select:none;
}
.calendar-actions-panel .calendar-action-check:hover{background:#f3f4f6;}
.calendar-actions-panel .calendar-action-check input{margin:0;}
.calendar-controlbar>.metric-toggle{display:none!important;}
@media(max-width:900px){
  .calendar-actions-menu{order:4;margin-left:auto;}
  .calendar-actions-panel{right:0;min-width:235px;}
}


/* v0.8.23.5: Kennzahlen-Menü, alle Zoomstufen und Touch-Zoom */
.calendar-actions-panel .calendar-action-check{gap:10px;}
.calendar-actions-panel .calendar-action-check input{accent-color:#2563eb;}
.calendar-actions-panel .calendar-action-check .calendar-action-icon{width:18px;text-align:center;flex:0 0 18px;}
body:not(.hide-calendar-metrics) .calendar-wrap.calendar-zoom-75 .calendar-user-name small,
body:not(.hide-calendar-metrics) .calendar-wrap.calendar-zoom-50 .calendar-user-name small,
body:not(.hide-calendar-metrics) .calendar-wrap.calendar-zoom-35 .calendar-user-name small,
body:not(.hide-calendar-metrics) .calendar-wrap.calendar-zoom-20 .calendar-user-name small{
  display:block!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:clip;
}
.calendar-wrap{overscroll-behavior-x:contain;overscroll-behavior-y:auto;}
@media(pointer:coarse){
  /* v0.8.54.2: Auf Touch-Geräten bleibt natives horizontales Scrollen aktiv
     (touch-action pan-x). Der Drag-to-Pan-Handler wird dort per JS nicht
     scharf geschaltet, deshalb hier KEIN pan-x-Entzug über .drag-scroll-enabled. */
  .calendar-wrap{overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain;overscroll-behavior-y:auto;touch-action:pan-x pan-y pinch-zoom;}
}


/* v0.8.23.6: ruhige Aktionsmenü-Einträge */
.calendar-actions-panel .calendar-action-button{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  border:0;
  background:#fff;
  color:#111827;
  text-align:left;
  padding:9px 10px;
  border-radius:9px;
  font:inherit;
  cursor:pointer;
}
.calendar-actions-panel .calendar-action-button:hover{background:#f1f5f9}
.calendar-actions-panel .calendar-action-icon{width:20px;text-align:center;display:inline-block;flex:0 0 20px}
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.profile-card .form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.profile-section{margin-top:18px;padding-top:18px;border-top:1px solid #e5e7eb}
@media(max-width:760px){.profile-grid{grid-template-columns:1fr}}

/* v0.8.23.6.3: Mobile-Touch-Fix und ruhigere Kalenderzellen */
/* v0.8.54.2: pan-x-Entzug nur für Maus-Zeiger – der Drag-to-Pan-Handler ist
   ausschließlich dort aktiv. Auf Touch (pointer:coarse) scrollt der Browser
   horizontal nativ. */
@media(pointer:fine){
  .calendar-wrap.drag-scroll-enabled{touch-action:pan-y pinch-zoom;}
}
.calendar td.has-final-entry{padding:0!important;overflow:hidden;}
.calendar td.has-final-entry .cal-entry:not(.status-pending){
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:26px;
  height:100%;
  margin:0;
  border-radius:0;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);
}
.calendar td.has-final-entry .cal-entry:not(.status-pending).morning,
.calendar td.has-final-entry .cal-entry:not(.status-pending).afternoon{
  min-height:13px;
  height:auto;
}
.calendar td .cal-entry.status-pending{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-height:18px;
  margin:1px auto;
  border-radius:5px;
  padding:2px 4px;
  box-shadow:0 1px 2px rgba(15,23,42,.18);
}
.calendar td.has-final-entry.has-pending-entry .cal-entry.status-pending{
  position:relative;
  z-index:1;
}
.year-calendar-table .year-day.has-final-entry{padding:0!important;overflow:hidden;}
.year-calendar-table .year-day.has-final-entry .year-weekday{
  position:absolute;
  top:2px;
  left:2px;
  z-index:1;
  color:rgba(17,24,39,.72)!important;
}
.year-calendar-table .year-day{position:relative;}
.year-calendar-table .year-day.has-final-entry .year-entry{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:100%;
  height:100%;
  margin:0;
  border-radius:0;
  padding:0;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);
}
.year-calendar-table .year-day.has-final-entry .year-entry.morning,
.year-calendar-table .year-day.has-final-entry .year-entry.afternoon{
  min-height:50%;
  height:50%;
}
@media(max-width:900px) and (pointer:fine){
  .calendar-wrap.drag-scroll-enabled{touch-action:pan-y pinch-zoom;}
}
@media print{
  .calendar td.has-final-entry .cal-entry:not(.status-pending),
  .year-calendar-table .year-day.has-final-entry .year-entry{
    box-shadow:none!important;
  }
}


/* v0.8.23.7: Kalenderoptik vereinheitlicht - final = volle Zelle, offen = Sticker */
.calendar td.has-final-entry,
.year-calendar-table .year-day.has-final-entry{
  position:relative;
}
.calendar td.has-final-entry.has-pending-entry .cal-entry.status-pending,
.year-calendar-table .year-day.has-final-entry.has-pending-entry .year-entry.status-pending{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:3;
  max-width:92%;
  white-space:nowrap;
}
.year-calendar-table .year-day .year-entry.status-pending{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-height:18px;
  margin:1px auto;
  border-radius:5px;
  padding:2px 4px;
  box-shadow:0 1px 2px rgba(15,23,42,.18);
}
.year-calendar-table .year-day.has-final-entry .year-entry:not(.status-pending){
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:100%;
  height:100%;
  margin:0;
  border-radius:0;
  padding:0;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);
}
.year-calendar-table .year-day.has-final-entry .year-entry:not(.status-pending).morning,
.year-calendar-table .year-day.has-final-entry .year-entry:not(.status-pending).afternoon{
  min-height:50%;
  height:50%;
}
@media print{
  .calendar td.has-final-entry.has-pending-entry .cal-entry.status-pending,
  .year-calendar-table .year-day.has-final-entry.has-pending-entry .year-entry.status-pending{
    box-shadow:none!important;
  }
}

/* v0.8.24: Jahresstatistik Anwesenheit/Abwesenheit */
.yearly-presence-summary .year-stat-box strong{
  font-size:1.25rem;
}
.year-absence-breakdown{
  margin-top:12px;
}
.year-absence-breakdown span{
  white-space:nowrap;
}
@media(max-width:700px){
  .yearly-presence-summary .year-stat-box{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
}


/* v0.8.24.1: Krankheitstage als eigene Kennzahl */
.year-stat-sick strong{
  color:#b91c1c;
}


/* v0.8.24.3: kompakte Statistik-Blöcke nebeneinander */
.year-stat-cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(130px,1fr));
  gap:10px;
  margin-top:12px;
}
.year-stat-card{
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:9px 12px 9px 14px;
  background:#fff;
  box-shadow:0 2px 8px rgba(15,23,42,.04);
  min-height:72px;
  display:grid;
  grid-template-rows:auto 1fr auto;
  align-items:center;
  position:relative;
  overflow:hidden;
}
.year-stat-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:#64748b;
}
.year-stat-card strong{
  display:block;
  font-size:1.55rem;
  line-height:1;
  letter-spacing:-.03em;
  color:#0f172a;
  margin:4px 0 2px;
}
.year-stat-card small{
  color:#64748b;
  font-size:.76rem;
  line-height:1.2;
}
.year-stat-label{
  color:#334155;
  font-weight:800;
  font-size:.82rem;
  line-height:1.1;
}
.year-stat-presence::before{background:#16a34a;}
.year-stat-absence::before{background:#f59e0b;}
.year-stat-sick::before{background:#dc2626;}
.year-stat-sick strong{color:#b91c1c;}
.year-stat-workdays::before{background:#2563eb;}
.yearly-presence-summary .year-absence-breakdown{
  padding-top:2px;
  margin-top:10px;
}
@media(max-width:900px){
  .year-stat-cards{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:520px){
  .year-stat-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .year-stat-card{min-height:68px;padding:8px 9px 8px 12px;}
  .year-stat-card strong{font-size:1.35rem;}
  .year-stat-card small{font-size:.68rem;}
  .year-stat-label{font-size:.75rem;}
}
@media(max-width:340px){
  .year-stat-cards{grid-template-columns:1fr;}
}
@media print{
  .year-stat-cards{grid-template-columns:repeat(4,1fr);gap:5px;margin-top:6px;}
  .year-stat-card{box-shadow:none!important;border-color:#777!important;padding:6px 7px 6px 10px!important;min-height:54px;}
  .year-stat-card strong{font-size:1.12rem!important;margin:2px 0!important;}
  .year-stat-card small{font-size:6.5px!important;}
  .year-stat-label{font-size:7px!important;}
}


/* v0.8.24.5: größere Namen im Arbeitsplan-Druck */
@media print{
  .calendar .name .calendar-user-name{font-size:9.2px!important;font-weight:800!important;letter-spacing:-.01em!important}
}


/* v0.8.24.6: Kalenderfarben aus Einstellungen */
.calendar .saturday:not(.holiday):not(.sunday),
.quick-table .saturday:not(.holiday):not(.sunday){background:var(--calendar-saturday-bg,#edf2f7)!important}
.calendar .weekend:not(.holiday):not(.sunday),
.quick-table .weekend:not(.holiday):not(.sunday){background:var(--calendar-saturday-bg,#edf2f7)!important}
.calendar .sunday:not(.holiday),
.quick-table .sunday:not(.holiday){background:var(--calendar-sunday-bg,#cbd5e1)!important;color:#111827;font-weight:800}
.calendar .holiday,
.quick-table .holiday{background:var(--calendar-holiday-bg,#fde68a)!important;color:#111827}
.calendar th.holiday,
.quick-table th.holiday{background:var(--calendar-holiday-bg,#fde68a)!important}
.year-calendar-table .saturday{background:var(--year-saturday-bg,#f1f5f9)!important}
.year-calendar-table .sunday{background:var(--year-sunday-bg,#cbd5e1)!important;color:#111827!important;border-right:3px solid #64748b}
.year-calendar-table .holiday{background:var(--year-holiday-bg,#fde68a)!important;color:#111827!important}
.year-calendar-table .holiday .year-weekday,
.year-calendar-table .sunday .year-weekday{color:#111827!important;font-weight:800!important}
.calendar-color-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:8px}
.calendar-color-settings label{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#f8fafc}
.calendar-color-settings input[type=color]{width:44px;height:34px;padding:0;border:1px solid #cbd5e1;border-radius:8px;background:#fff}
.calendar-color-settings code{font-size:11px;color:#475569;background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:2px 5px}
@media print{
  .calendar .saturday:not(.holiday):not(.sunday),.calendar .weekend:not(.holiday):not(.sunday){background:var(--calendar-saturday-bg,#edf2f7)!important}
  .calendar .sunday:not(.holiday){background:var(--calendar-sunday-bg,#cbd5e1)!important}
  .calendar .holiday{background:var(--calendar-holiday-bg,#fde68a)!important}
  .year-calendar-table .saturday{background:var(--year-saturday-bg,#f1f5f9)!important}
  .year-calendar-table .sunday{background:var(--year-sunday-bg,#cbd5e1)!important}
  .year-calendar-table .holiday{background:var(--year-holiday-bg,#fde68a)!important}
}

/* v0.8.24.7: Abwesenheiten füllen Tageszellen auch vertikal vollständig */
.calendar td.has-final-entry,
.year-calendar-table .year-day.has-final-entry{
  position:relative;
  overflow:hidden;
  padding:0!important;
  vertical-align:middle;
}
.calendar td.has-final-entry{height:32px;}
/* v0.8.56.2: Die feste Zellhöhe (32px) bzw. die Mindesthöhe der offenen
   Sticker skaliert nicht mit dem Arbeitsplan-Zoom. Bei <75% schrumpfen alle
   anderen Zeilen, belegte Zeilen bleiben aber auf ~32/18px stehen und wirken
   dadurch unnatürlich langgezogen. Deshalb pro Zoomstufe an die dort
   tatsächliche Zeilenhöhe koppeln. */
.calendar-wrap.calendar-zoom-75 .calendar td.has-final-entry{height:20px;}
.calendar-wrap.calendar-zoom-50 .calendar td.has-final-entry{height:15px;}
.calendar-wrap.calendar-zoom-35 .calendar td.has-final-entry{height:12px;}
.calendar-wrap.calendar-zoom-20 .calendar td.has-final-entry{height:10px;}
.calendar-wrap.calendar-zoom-75 .calendar td .cal-entry.status-pending{min-height:15px;}
.calendar-wrap.calendar-zoom-50 .calendar td .cal-entry.status-pending{min-height:12px;}
.calendar-wrap.calendar-zoom-35 .calendar td .cal-entry.status-pending{min-height:10px;}
.calendar-wrap.calendar-zoom-20 .calendar td .cal-entry.status-pending{min-height:8px;}
.calendar td.has-final-entry .cal-entry:not(.status-pending),
.year-calendar-table .year-day.has-final-entry .year-entry:not(.status-pending){
  position:absolute;
  left:0;
  right:0;
  top:0;
  bottom:0;
  width:auto;
  height:auto;
  min-height:0;
  margin:0!important;
  border-radius:0!important;
  display:flex!important;
  align-items:center;
  justify-content:center;
  padding:0 2px!important;
  z-index:1;
}
.calendar td.has-final-entry .cal-entry:not(.status-pending).morning,
.year-calendar-table .year-day.has-final-entry .year-entry:not(.status-pending).morning{
  top:0;
  bottom:50%;
}
.calendar td.has-final-entry .cal-entry:not(.status-pending).afternoon,
.year-calendar-table .year-day.has-final-entry .year-entry:not(.status-pending).afternoon{
  top:50%;
  bottom:0;
}
.calendar td .cal-entry.status-pending,
.year-calendar-table .year-day .year-entry.status-pending{
  position:relative;
  z-index:4;
}
.calendar td.has-final-entry.has-pending-entry .cal-entry.status-pending,
.year-calendar-table .year-day.has-final-entry.has-pending-entry .year-entry.status-pending{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:5;
}
.year-calendar-table .year-day.has-final-entry .year-weekday{
  z-index:3;
  pointer-events:none;
}
@media print{
  .calendar td.has-final-entry{height:18px!important;}
  .calendar td.has-final-entry .cal-entry:not(.status-pending),
  .year-calendar-table .year-day.has-final-entry .year-entry:not(.status-pending){
    box-shadow:none!important;
  }
}

/* v0.8.24.8: Menüreihenfolge in Einstellungen */
.menu-sort-table input[type="number"]{max-width:90px;margin:0}
.menu-sort-table code{white-space:nowrap}

/* v0.8.24.10: Menüsortierung direkt per Hoch/Runter */
.menu-sort-table .menu-move-actions{display:flex;gap:6px;align-items:center;justify-content:flex-start}
.menu-sort-table .menu-move-actions form{margin:0}
.menu-sort-table .menu-move-actions .btn.small{min-width:34px;padding:6px 9px;line-height:1}
.menu-sort-table .menu-move-actions .btn.small:disabled{opacity:.35;cursor:not-allowed}
.menu-sort-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px}
.menu-sort-footer form{margin:0}
@media (max-width:700px){.menu-sort-table th:nth-child(3),.menu-sort-table td:nth-child(3){display:none}.menu-sort-footer{align-items:flex-start;flex-direction:column}}

/* v0.8.24.13: Gruppen-/Kategoriezeilen wirklich links fixieren
   Wichtig: Tabellenzeilen mit colspan können nicht zuverlässig sticky sein.
   Deshalb haben Gruppen/Kategorien links eine eigene Sticky-Zelle und rechts eine Füllzelle. */
.calendar .dept-row .dept-label-cell,
.quick-table .quick-category-row .quick-category-label{
  position:sticky;
  left:0;
  z-index:5;
  box-shadow:2px 0 0 #94a3b8;
  white-space:nowrap;
}
.calendar .dept-row .dept-label-cell,
.calendar .dept-row .dept-fill-cell{
  background:#e5e7eb!important;
  font-weight:bold;
  text-align:left;
}
.quick-table .quick-category-row .quick-category-label,
.quick-table .quick-category-row .quick-category-fill{
  background:#eef2ff!important;
  font-weight:700;
  text-align:left;
}
.calendar .dept-row .dept-fill-cell,
.quick-table .quick-category-row .quick-category-fill{
  min-width:0!important;
}
.calendar thead .name,
.quick-table thead .label{z-index:6;}
@media print{
  .calendar .dept-row .dept-label-cell,
  .quick-table .quick-category-row .quick-category-label{position:static!important;box-shadow:none!important;}
}

/* v0.8.25.2: Schnelleingabe auf Touchgeräten besser horizontal bedienbar */
.quick-table{touch-action:pan-x pan-y pinch-zoom}
.quick-table td,.quick-table th{touch-action:pan-x pan-y pinch-zoom}
.quick-table form{margin:0}
.calendar-wrap.is-dragging{cursor:grabbing;user-select:none}
@media (pointer:coarse){
  .quick-table .label{
    min-width:136px!important;
    width:136px!important;
    max-width:136px!important;
    white-space:normal;
    line-height:1.2;
  }
  .quick-table .quick-category-row .quick-category-label{
    min-width:136px!important;
    width:136px!important;
    max-width:136px!important;
  }
  .quick-table .type-sample{margin-right:4px}
  .quick-table th:not(.label),
  .quick-table td:not(.label){min-width:34px!important}
}
@media (max-width:420px) and (pointer:coarse){
  .quick-table .label,
  .quick-table .quick-category-row .quick-category-label{
    min-width:124px!important;
    width:124px!important;
    max-width:124px!important;
  }
}

/* v0.8.25.3: Schnelleingabe Mobile-Komfort */
.quick-batch-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding:8px 10px;border:1px solid #dbeafe;border-radius:12px;background:#eff6ff}
.quick-batch-form{display:flex;align-items:center;gap:8px;margin:0;flex-wrap:wrap}
body.quick-batch-active .quick-table td form button{box-shadow:0 0 0 2px rgba(37,99,235,.14)}
.quick-table td.quick-batch-selected{background:#dbeafe!important;outline:2px solid #2563eb;outline-offset:-2px}
.quick-table td.quick-batch-selected button{background:#2563eb!important;color:#fff!important;border-color:#1d4ed8!important}
.quick-table thead th{position:sticky;top:0;z-index:4;background:#f8fafc;box-shadow:0 1px 0 #cbd5e1}
.quick-table thead th.label{left:0;z-index:8;background:#f8fafc}
.quick-table .label{vertical-align:middle}
@media (pointer:coarse){
  .quick-batch-bar{position:sticky;top:54px;z-index:20;margin-left:-2px;margin-right:-2px}
  .quick-table thead th{top:0}
  .quick-table .quick-type-row .label{white-space:nowrap;overflow:hidden;text-overflow:clip}
  .quick-table .quick-type-name{display:inline-block;max-width:78px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}
  .quick-table .type-sample{min-width:34px;height:28px;padding:4px 8px;display:inline-flex;align-items:center;justify-content:center;font-weight:800}
}
@media (max-width:420px) and (pointer:coarse){
  .quick-table .label,
  .quick-table .quick-category-row .quick-category-label{
    min-width:104px!important;
    width:104px!important;
    max-width:104px!important;
  }
  .quick-table .quick-type-name{max-width:50px}
  .quick-table .quick-category-label .small{display:none}
  .quick-batch-bar{font-size:12px;gap:6px;padding:7px}
  .quick-batch-form .btn.small{padding:6px 8px}
}
@media (max-width:360px) and (pointer:coarse){
  .quick-table .quick-type-name{display:none}
  .quick-table .label,
  .quick-table .quick-category-row .quick-category-label{
    min-width:72px!important;
    width:72px!important;
    max-width:72px!important;
  }
}
@media print{.quick-batch-bar{display:none!important}.quick-table thead th{position:static!important}}

/* v0.8.26 Dashboard Heute / Gruppenübersicht */
.dashboard-today-card{margin:18px 0}
.dashboard-today-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.dashboard-today-head h2{margin:0 0 4px}
.today-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-bottom:14px}
.today-kpi{border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc;padding:12px 14px;min-height:76px}
.today-kpi span{display:block;color:#64748b;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.today-kpi strong{display:block;font-size:1.55rem;line-height:1.15;margin-top:4px;color:#0f172a}
.today-kpi small{color:#64748b}
.today-kpi.present{background:#ecfdf5;border-color:#bbf7d0}.today-kpi.present strong{color:#166534}
.today-kpi.absent{background:#fff7ed;border-color:#fed7aa}.today-kpi.absent strong{color:#c2410c}
.today-kpi.vacation{background:#eff6ff;border-color:#bfdbfe}.today-kpi.vacation strong{color:#1d4ed8}
.today-kpi.sick{background:#fef2f2;border-color:#fecaca}.today-kpi.sick strong{color:#b91c1c}
.today-group-list{display:grid;gap:8px}
.today-group-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(140px,1fr) minmax(220px,1.1fr);gap:12px;align-items:center;border:1px solid #e5e7eb;border-radius:12px;padding:10px 12px;background:#fff}
.today-group-main strong{display:block;color:#111827}.today-group-main span{display:block;color:#64748b;font-size:.88rem;margin-top:2px}
.today-group-bar{height:10px;border-radius:999px;background:#e5e7eb;overflow:hidden}.today-group-bar span{display:block;height:100%;border-radius:999px;background:#22c55e}
.today-group-meta{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.today-group-meta span{border:1px solid #e5e7eb;border-radius:999px;background:#f8fafc;padding:4px 8px;font-size:.82rem;color:#475569;font-weight:700}
.dashboard-group-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:10px}
.dashboard-group-choice{display:flex;align-items:center;gap:8px;border:1px solid #e5e7eb;background:#f8fafc;border-radius:12px;padding:10px 12px;font-weight:800;color:#334155}.dashboard-group-choice input{width:auto!important}
@media(max-width:900px){.today-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.today-group-row{grid-template-columns:1fr}.today-group-meta{justify-content:flex-start}.dashboard-today-head{flex-direction:column}.dashboard-today-head .btn{width:100%;text-align:center}}
@media(max-width:420px){.today-kpi-row{grid-template-columns:1fr 1fr}.today-kpi{padding:10px}.today-kpi strong{font-size:1.35rem}}
@media print{.dashboard-today-head .btn{display:none!important}.today-kpi-row{grid-template-columns:repeat(4,1fr)}.today-group-row{break-inside:avoid;grid-template-columns:1.2fr 1fr 1.1fr}.today-group-bar span{border:5px solid #22c55e}}

/* v0.8.26.1 Dashboard Heute: kompakt + Details einklappbar */
.dashboard-today-card-v2{padding:24px!important}
.dashboard-today-card-v2 .dashboard-today-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px!important;margin-bottom:18px!important}
.dashboard-today-card-v2 .dashboard-today-head h2{margin:0 0 4px!important}
.today-kpi-row-v2{display:grid!important;grid-template-columns:repeat(4,minmax(120px,1fr))!important;gap:12px!important;margin:0 0 14px!important}
.dashboard-today-card-v2 .today-kpi{border:1px solid #e5e7eb!important;border-radius:14px!important;background:#f8fafc!important;padding:12px 14px!important;min-height:76px!important;box-sizing:border-box!important}
.dashboard-today-card-v2 .today-kpi span{display:block!important;color:#64748b!important;font-size:.78rem!important;font-weight:800!important;text-transform:uppercase!important;letter-spacing:.03em!important;margin:0!important}
.dashboard-today-card-v2 .today-kpi strong{display:block!important;font-size:1.55rem!important;line-height:1.15!important;margin-top:4px!important;color:#0f172a!important}
.dashboard-today-card-v2 .today-kpi small{display:block!important;color:#64748b!important;margin-top:2px!important}
.dashboard-today-card-v2 .today-kpi.present{background:#ecfdf5!important;border-color:#bbf7d0!important}.dashboard-today-card-v2 .today-kpi.present strong{color:#166534!important}
.dashboard-today-card-v2 .today-kpi.absent{background:#fff7ed!important;border-color:#fed7aa!important}.dashboard-today-card-v2 .today-kpi.absent strong{color:#c2410c!important}
.dashboard-today-card-v2 .today-kpi.vacation{background:#eff6ff!important;border-color:#bfdbfe!important}.dashboard-today-card-v2 .today-kpi.vacation strong{color:#1d4ed8!important}
.dashboard-today-card-v2 .today-kpi.sick{background:#fef2f2!important;border-color:#fecaca!important}.dashboard-today-card-v2 .today-kpi.sick strong{color:#b91c1c!important}
.today-group-details{margin-top:10px!important;border-top:1px solid #eef2f7!important;padding-top:10px!important}
.today-group-details summary{display:inline-flex!important;align-items:center!important;gap:8px!important;cursor:pointer!important;user-select:none!important;border:1px solid #dbeafe!important;background:#eff6ff!important;color:#1d4ed8!important;border-radius:10px!important;padding:9px 12px!important;font-weight:800!important;list-style:none!important}
.today-group-details summary::-webkit-details-marker{display:none!important}
.today-group-details summary::after{content:'›';font-size:1.2rem;line-height:1;transition:transform .15s ease!important}
.today-group-details[open] summary::after{transform:rotate(90deg)!important}
.today-group-details .today-group-list{display:grid!important;gap:8px!important;margin-top:12px!important}
.dashboard-today-card-v2 .today-group-row{display:grid!important;grid-template-columns:minmax(180px,1.2fr) minmax(140px,1fr) minmax(220px,1.1fr)!important;gap:12px!important;align-items:center!important;border:1px solid #e5e7eb!important;border-radius:12px!important;padding:10px 12px!important;background:#fff!important}
.dashboard-today-card-v2 .today-group-main strong{display:block!important;color:#111827!important}.dashboard-today-card-v2 .today-group-main span{display:block!important;color:#64748b!important;font-size:.88rem!important;margin-top:2px!important}
.dashboard-today-card-v2 .today-group-bar{height:10px!important;border-radius:999px!important;background:#e5e7eb!important;overflow:hidden!important}.dashboard-today-card-v2 .today-group-bar span{display:block!important;height:100%!important;border-radius:999px!important;background:#22c55e!important}
.dashboard-today-card-v2 .today-group-meta{display:flex!important;gap:8px!important;flex-wrap:wrap!important;justify-content:flex-end!important}.dashboard-today-card-v2 .today-group-meta span{border:1px solid #e5e7eb!important;border-radius:999px!important;background:#f8fafc!important;padding:4px 8px!important;font-size:.82rem!important;color:#475569!important;font-weight:700!important}
@media(max-width:900px){.today-kpi-row-v2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dashboard-today-card-v2 .today-group-row{grid-template-columns:1fr!important}.dashboard-today-card-v2 .today-group-meta{justify-content:flex-start!important}.dashboard-today-card-v2 .dashboard-today-head{flex-direction:column!important}.dashboard-today-card-v2 .dashboard-today-head .btn{width:100%!important;text-align:center!important}}
@media(max-width:420px){.dashboard-today-card-v2{padding:16px!important}.today-kpi-row-v2{grid-template-columns:1fr 1fr!important}.dashboard-today-card-v2 .today-kpi{padding:10px!important}.dashboard-today-card-v2 .today-kpi strong{font-size:1.35rem!important}}
@media print{.today-group-details{display:block!important}.today-group-details summary{display:none!important}.today-group-details .today-group-list{display:grid!important}.dashboard-today-card-v2 .dashboard-today-head .btn{display:none!important}.today-kpi-row-v2{grid-template-columns:repeat(4,1fr)!important}.dashboard-today-card-v2 .today-group-row{break-inside:avoid!important;grid-template-columns:1.2fr 1fr 1.1fr!important}}

.dashboard-group-picker.compact{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));}
.dashboard-group-picker.compact .dashboard-group-choice{padding:8px 10px;}

/* v0.8.26.4: Dashboard Mitarbeitertypen */
.dashboard-today-card-v2 .today-kpi em{
  display:block;
  margin-top:4px;
  color:#475569;
  font-size:.78rem;
  font-style:normal;
  font-weight:700;
}
.today-group-main small{
  display:block;
  color:#64748b;
  font-size:.82rem;
  margin-top:2px;
}




/* v0.8.29 Rollenrechte & Gruppensichtbarkeit */
.role-rights-card{margin:14px 0;padding:16px}
.role-rights-card h3{margin-top:0}
.rights-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.rights-grid .check-line span{display:flex;flex-direction:column;gap:2px}
.rights-grid .check-line small{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#64748b;font-size:.74rem}

/* v0.8.30 – Schnelleingabe UX */
.quick-entry-head-card .month-nav h1{margin:0}
.quick-entry-head-card .form-row{
  display:grid;
  grid-template-columns:repeat(3,minmax(180px,1fr));
  gap:12px;
  align-items:end;
}
.quick-month-link{
  color:inherit;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
}
.quick-month-link:hover{text-decoration:underline}
.quick-month-link span{font-size:.8em;color:#64748b}

.quick-calendar-wrap{position:relative}
.quick-table thead .quick-kw-row th{
  top:0;
  height:28px;
  padding:3px 4px;
  background:#e2e8f0!important;
  color:#334155;
  font-size:.74rem;
  font-weight:800;
  border-bottom:1px solid #94a3b8!important;
}
.quick-table thead .quick-day-row th{
  top:28px;
  background:#fff;
  z-index:5;
}
.quick-table thead .quick-kw-row .label{
  z-index:8;
  background:#fff!important;
}
.quick-table .quick-kw-cell{
  border-right:3px solid #64748b!important;
}
.quick-table .quick-day-row .week-boundary,
.quick-table tbody .week-boundary{
  border-right:3px solid #475569!important;
}
.quick-table .today{
  outline:none!important;
  box-shadow:inset 0 0 0 3px #2563eb;
}
.quick-table thead .today{
  background:#dbeafe!important;
  color:#1e3a8a;
}
.quick-table td.today:not(.qe-existing-entry):not(.qe-current-entry){
  background:#eff6ff!important;
}

.quick-table td.qe-existing-entry,
.quick-table td.qe-current-entry{
  background:var(--qe-entry-color)!important;
  padding:0!important;
  position:relative;
}
.quick-table td.qe-existing-entry form{
  width:100%;
  height:100%;
  min-height:32px;
}
.quick-table td.qe-existing-entry button{
  width:100%;
  height:100%;
  min-height:32px;
  border:0!important;
  border-radius:0;
  background:transparent!important;
  color:#111827;
  font-weight:800;
}
.quick-table td.qe-current-entry .cal-entry{
  width:100%;
  min-height:30px;
  margin:0;
  border-radius:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.quick-table td.qe-existing-entry.today,
.quick-table td.qe-current-entry.today{
  box-shadow:inset 0 0 0 3px #1d4ed8;
}

.quick-floating-header{
  position:fixed;
  top:0;
  z-index:1200;
  overflow:hidden;
  display:none;
  background:#fff;
  box-shadow:0 4px 14px rgba(15,23,42,.22);
  border-bottom:2px solid #64748b;
}
.quick-floating-header.is-visible{display:block}
.quick-floating-table{
  margin:0;
  table-layout:fixed;
  transform-origin:left top;
}
.quick-floating-table thead th{
  position:static!important;
}
.quick-floating-table .label{
  position:sticky!important;
  left:0!important;
}
.quick-floating-header .note-corner{display:none}

@media(max-width:900px){
  .quick-entry-head-card .form-row{grid-template-columns:1fr}
  .quick-entry-head-card .month-nav{gap:8px}
  .quick-entry-head-card .month-nav h1{font-size:1.12rem;text-align:center}
}

/* v0.8.30.1 – Tages-/KW-Kopf vollständig sichtbar */
.quick-calendar-wrap{
  overflow-x:auto;
  overflow-y:visible;
}
.quick-table thead{
  position:relative;
  z-index:10;
}
.quick-table thead .quick-kw-row{
  height:28px;
}
.quick-table thead .quick-day-row{
  height:46px;
}
.quick-table thead .quick-kw-row th{
  height:28px;
  line-height:20px;
  overflow:visible;
}
.quick-table thead .quick-day-row th{
  height:46px;
  min-height:46px;
  padding-top:5px;
  padding-bottom:5px;
  line-height:1.15;
  overflow:visible;
}
.quick-table thead .quick-day-row .day-number{
  display:inline-block;
  line-height:1.1;
}
.quick-floating-header{
  pointer-events:none;
}

/* v0.8.30.2 – Floating Header unterhalb der festen Hauptleiste */
:root{
  --quick-floating-top-offset: 50px;
}
.quick-floating-header{
  top:var(--quick-floating-top-offset)!important;
}
@media(max-width:900px){
  :root{
    --quick-floating-top-offset: 58px;
  }
}

/* v0.8.31 */
.quick-entry-head-card .form-row{grid-template-columns:repeat(2,minmax(220px,1fr))}
.quick-daypart-head{vertical-align:middle!important;padding:6px 8px!important}
.quick-daypart-form{margin:0}
.quick-daypart-form select{width:100%;min-width:170px;margin:0;padding:7px 30px 7px 9px;font-weight:700;background:#fff;border:1px solid #94a3b8;border-radius:8px}
.quick-floating-header .quick-daypart-form select{pointer-events:none}
@media(max-width:900px){.quick-entry-head-card .form-row{grid-template-columns:1fr}.quick-daypart-form select{min-width:145px}}

/* v0.8.31.2 – Mobile Tagesanteil-Dropdown */
.quick-table .quick-daypart-head{
  position:sticky!important;
  left:0!important;
  z-index:14!important;
  background:#fff!important;
  min-width:220px;
  width:220px;
  max-width:220px;
  box-shadow:2px 0 0 #94a3b8;
}
.quick-daypart-form{
  display:flex;
  align-items:center;
  width:100%;
}
.quick-daypart-form select{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  font-size:.92rem;
  line-height:1.2;
  padding:7px 28px 7px 9px;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.quick-floating-header .quick-daypart-head{
  position:sticky!important;
  left:0!important;
  z-index:30!important;
  background:#fff!important;
}
.quick-floating-header .quick-daypart-form select{
  width:100%;
  max-width:100%;
}

@media(max-width:900px){
  .quick-table .quick-daypart-head{
    min-width:190px;
    width:190px;
    max-width:190px;
    padding:5px 7px!important;
  }
  .quick-daypart-form select{
    font-size:16px;
    padding:8px 26px 8px 8px;
    border-radius:10px;
  }
}

@media(max-width:520px){
  .quick-table .quick-daypart-head{
    min-width:180px;
    width:180px;
    max-width:180px;
  }
  .quick-daypart-form select{
    font-size:15px;
    padding:7px 24px 7px 7px;
  }
}

/* v0.8.31.3 – Floating Header & Seitenmenü */
.quick-floating-header{z-index:900!important}
html.sidebar-open .quick-floating-header,
body.sidebar-open .quick-floating-header,
html.nav-open .quick-floating-header,
body.nav-open .quick-floating-header{display:none!important}


/* v0.8.31.4 */
.quick-floating-header,.quick-floating-table{box-sizing:border-box}

/* v0.8.32 Arbeitsanweisungen */
.instruction-page,.instruction-detail{max-width:1100px}
.instruction-create{margin:16px 0;border:1px solid #dbe2ea;border-radius:12px;padding:12px}
.instruction-create summary{cursor:pointer;font-weight:800}
.instruction-form{display:grid;gap:14px;margin-top:14px}
.instruction-form fieldset{border:1px solid #dbe2ea;border-radius:10px;padding:12px}
.instruction-list{display:grid;gap:10px;margin-top:18px}
.instruction-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;border:1px solid #e2e8f0;border-radius:12px;padding:14px;background:#fff}
.instruction-item.archived{opacity:.72}
.instruction-item h3{margin:0}
.instruction-stats{display:flex;flex-direction:column;align-items:center;min-width:70px}
.instruction-stats strong{font-size:1.3rem}
.instruction-stats span{font-size:.75rem;color:#64748b}
.instruction-body{white-space:normal;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:18px;margin:16px 0}
.instruction-summary{display:flex;gap:14px;margin:12px 0}
.instruction-summary>div{min-width:120px;background:#f8fafc;border-radius:10px;padding:12px;display:flex;flex-direction:column}
.instruction-summary strong{font-size:1.5rem}
.attachment-list{display:flex;flex-wrap:wrap;gap:8px}
.attachment-list a{padding:8px 10px;background:#eef2ff;border-radius:8px;text-decoration:none}
.instruction-confirm{display:flex;gap:10px;margin-top:18px}
.instruction-dashboard-alert{display:flex;align-items:center;justify-content:space-between;gap:16px;border-left:5px solid #f59e0b}
.instruction-dashboard-alert p{margin:.3rem 0 0}
@media(max-width:760px){
 .instruction-item{grid-template-columns:1fr}
 .instruction-item .actions{display:flex;flex-wrap:wrap}
 .instruction-dashboard-alert{align-items:flex-start;flex-direction:column}
}

/* v0.8.33 Arbeitsanweisungen UX */
.instruction-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.instruction-toolbar button{padding:6px 10px}
.instruction-preview{margin-top:10px;border:1px solid #dbe2ea;padding:10px;border-radius:8px;background:#fafafa}
#instruction-preview-box{min-height:60px}
.recipient-summary{background:#eef6ff;padding:8px 12px;border-radius:8px;margin-bottom:10px}
#user-search{margin:10px 0;padding:8px;width:100%;max-width:420px}

/* v0.8.33.1 – Empfängerauswahl Arbeitsanweisungen */
.recipient-picker{
  border:1px solid #d7e0ea;
  border-radius:12px;
  padding:14px;
}
.recipient-summary{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:11px 13px;
  margin-bottom:12px;
  border-radius:10px;
  background:#eef6ff;
  border:1px solid #cfe1f7;
}
.recipient-summary>div:first-child{
  display:flex;
  align-items:baseline;
  gap:6px;
}
.recipient-summary strong{font-size:1.08rem}
.recipient-detail{color:#475569;font-size:.9rem}
.recipient-scope-list{display:grid;gap:8px}
.recipient-scope-option{
  display:flex!important;
  align-items:flex-start;
  gap:10px;
  width:100%;
  padding:11px 12px;
  margin:0!important;
  border:1px solid #d9e1ea;
  border-radius:10px;
  background:#fff;
  cursor:pointer;
}
.recipient-scope-option:hover{background:#f8fafc}
.recipient-scope-option.is-active{
  border-color:#2563eb;
  background:#eff6ff;
  box-shadow:0 0 0 1px #2563eb inset;
}
.recipient-scope-option input[type=radio]{
  flex:0 0 auto;
  margin:3px 0 0!important;
}
.recipient-scope-option>span{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.recipient-scope-option small{color:#64748b;font-weight:400}
.recipient-panel{
  padding:10px 4px 4px 34px;
}
.recipient-panel[hidden]{display:none!important}
.recipient-option-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:8px;
}
.recipient-check-option{
  display:flex!important;
  align-items:flex-start;
  gap:9px;
  margin:0!important;
  padding:9px 10px;
  border:1px solid #e2e8f0;
  border-radius:9px;
  background:#fff;
}
.recipient-check-option:hover{background:#f8fafc}
.recipient-check-option input{
  flex:0 0 auto;
  margin:3px 0 0!important;
}
.recipient-check-option>span{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.recipient-check-option small{color:#64748b}
#user-search{
  width:100%;
  max-width:none;
  margin:0 0 10px;
}
@media(max-width:700px){
  .recipient-picker{padding:10px}
  .recipient-panel{padding-left:0}
  .recipient-option-grid{grid-template-columns:1fr}
  .recipient-scope-option{padding:10px}
}

/* v0.8.34 – Verwaltung und Editor Arbeitsanweisungen */
.instruction-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:14px 0 18px;
  border-bottom:1px solid #dbe2ea;
}
.instruction-tabs a{
  padding:10px 14px;
  border-radius:9px 9px 0 0;
  text-decoration:none;
  color:#334155;
  font-weight:700;
}
.instruction-tabs a.active{
  background:#2563eb;
  color:#fff;
}
.instruction-filter{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(180px,auto) auto;
  gap:10px;
  align-items:end;
  margin:12px 0;
}
.instruction-editor-wrap{
  border:1px solid #cbd5e1;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}
.instruction-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  padding:8px;
  border-bottom:1px solid #dbe2ea;
  background:#f8fafc;
}
.instruction-toolbar button{
  min-width:36px;
  padding:7px 9px;
  border:1px solid #cbd5e1;
  border-radius:6px;
  background:#fff;
  cursor:pointer;
}
.instruction-rich-editor{
  min-height:240px;
  padding:14px;
  outline:none;
  line-height:1.55;
}
.instruction-rich-editor:focus{
  box-shadow:inset 0 0 0 2px #2563eb;
}
.instruction-rich-editor blockquote,
.instruction-body blockquote{
  margin:12px 0;
  padding:12px 14px;
  border-left:4px solid #f59e0b;
  background:#fff7ed;
  border-radius:6px;
}
.instruction-rich-editor h3,
.instruction-body h3{margin:18px 0 8px}
.instruction-preview{display:none!important}
.instruction-create{border:0!important;padding:0!important}
.instruction-item .actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.btn.danger{background:#dc2626;color:#fff;border-color:#dc2626}
@media(max-width:760px){
  .instruction-filter{grid-template-columns:1fr}
  .instruction-tabs{gap:4px}
  .instruction-tabs a{flex:1;text-align:center;padding:9px 8px}
}

/* v0.8.34.1 – globales Mobile-Layout */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
.content-area{width:auto;max-width:100%;overflow-x:hidden}
.content-area>.wrap{width:100%;max-width:1280px}

@media(max-width:900px){
  .app-shell,.content-area{width:100%;max-width:100%}
  .content-area>.wrap{
    width:100%;
    max-width:none;
    margin:0;
    padding:8px!important;
  }
  .content-area>.wrap>.card,
  .content-area>.wrap>.ap-card{
    width:100%;
    max-width:none;
    margin-left:0;
    margin-right:0;
  }
  .card{
    padding:12px;
    border-radius:10px;
  }
  .calendar-control-card{
    width:100%;
    max-width:none;
  }
  .calendar-wrap,
  .quick-calendar-wrap,
  .admin-table-wrap,
  .table-wrap,
  .year-calendar-wrap{
    width:100%;
    max-width:100%;
    margin-left:0!important;
    margin-right:0!important;
    overflow-x:auto;
  }
  .calendar-wrap.card{
    padding:0!important;
  }
  .calendar-wrap .calendar .name{
    min-width:112px!important;
    width:112px;
    max-width:112px;
  }
  .calendar-month-compact{
    width:100%;
  }
}

@media(max-width:520px){
  .content-area>.wrap{padding:4px!important}
  .card{padding:10px;border-radius:8px}
  .calendar-control-card{padding:8px!important}
  .calendar-wrap.card{border-radius:8px}
  .calendar-wrap .calendar .name{
    min-width:104px!important;
    width:104px;
    max-width:104px;
    font-size:10px;
  }
  .calendar th:not(.name),
  .calendar td:not(.name){
    min-width:29px!important;
  }
}

/* Touch-Notizen */
.calendar-note-dialog{
  width:min(92vw,520px);
  border:0;
  border-radius:14px;
  padding:0;
  box-shadow:0 24px 80px rgba(15,23,42,.35);
}
.calendar-note-dialog::backdrop{background:rgba(15,23,42,.48)}
.calendar-note-dialog-content{padding:18px}
.calendar-note-dialog-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.calendar-note-dialog-head h2{margin:0;font-size:1.15rem}
.calendar-note-dialog-close{
  border:0;
  border-radius:999px;
  width:34px;
  height:34px;
  background:#e5e7eb;
  font-size:22px;
  cursor:pointer;
}
.calendar-note-dialog-text{
  white-space:pre-wrap;
  line-height:1.5;
  background:#f8fafc;
  border-radius:10px;
  padding:13px;
}
@media(hover:none),(pointer:coarse){
  .calendar .has-global-note,
  .calendar .has-personal-note,
  .calendar .note-corner{cursor:pointer}
}

/* v0.8.34.2 – Empfängerkarten und mobile Namen */
.recipient-picker,
.recipient-picker *{
  box-sizing:border-box;
}
.recipient-picker input[type="radio"],
.recipient-picker input[type="checkbox"]{
  appearance:auto;
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  margin:2px 0 0!important;
  padding:0!important;
  display:block!important;
  flex:none!important;
}
.recipient-scope-list{
  display:flex!important;
  flex-direction:column;
  gap:9px;
  width:100%;
}
.recipient-scope-option{
  display:grid!important;
  grid-template-columns:18px minmax(0,1fr)!important;
  align-items:start!important;
  column-gap:11px!important;
  width:100%!important;
  min-height:0!important;
  padding:12px 13px!important;
  margin:0!important;
  overflow:hidden;
}
.recipient-scope-option>span{
  grid-column:2;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:3px!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow-wrap:anywhere;
  text-align:left!important;
}
.recipient-scope-option>span>strong,
.recipient-scope-option>span>small{
  display:block!important;
  width:auto!important;
  max-width:100%!important;
  margin:0!important;
  text-align:left!important;
}
.recipient-panel{
  width:100%;
  min-width:0;
  padding:2px 0 5px 29px!important;
  overflow:hidden;
}
.recipient-option-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;
  gap:9px!important;
  width:100%;
  min-width:0;
}
.recipient-check-option{
  display:grid!important;
  grid-template-columns:18px minmax(0,1fr)!important;
  align-items:start!important;
  column-gap:10px!important;
  width:100%!important;
  min-width:0!important;
  min-height:58px;
  padding:11px!important;
  margin:0!important;
  overflow:hidden;
}
.recipient-check-option>span{
  grid-column:2;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:3px!important;
  min-width:0!important;
  width:auto!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow-wrap:anywhere;
  word-break:normal;
  text-align:left!important;
}
.recipient-check-option>span>small{
  display:block!important;
  width:auto!important;
  margin:0!important;
  color:#64748b;
  text-align:left!important;
}
.recipient-summary{
  width:100%;
  overflow:hidden;
}
.recipient-detail{
  overflow-wrap:anywhere;
}
.calendar-name-short{display:none}
.calendar-user-name{
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.calendar-user-name small{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:900px){
  .calendar-name-full{display:none}
  .calendar-name-short{
    display:block;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .calendar .name{
    overflow:hidden!important;
  }
  .calendar .name .calendar-user-name{
    max-width:calc(100% - 28px);
  }
}
@media(max-width:700px){
  .recipient-panel{padding-left:0!important}
  .recipient-option-grid{grid-template-columns:1fr!important}
  .recipient-check-option{min-height:0}
}

/* v0.8.35 – Antragsbenachrichtigungen */
.pagebar-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.notification-bell{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:10px;
  text-decoration:none;
  background:#f1f5f9;
  color:#0f172a;
  font-size:20px;
}
.notification-bell:hover{background:#e2e8f0}
.notification-bell>span{
  position:absolute;
  top:-5px;
  right:-5px;
  min-width:20px;
  height:20px;
  padding:0 5px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#dc2626;
  color:#fff;
  font-size:11px;
  font-weight:800;
  border:2px solid #fff;
}
.notifications-page{max-width:920px}
.notifications-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.notifications-head h1{margin-top:0}
.notifications-list{display:grid;gap:9px;margin-top:16px}
.system-notification{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 12px;
  gap:12px;
  align-items:center;
  padding:13px 14px;
  border:1px solid #e2e8f0;
  border-radius:11px;
  color:#1f2937;
  text-decoration:none;
  background:#fff;
}
.system-notification:hover{background:#f8fafc}
.system-notification.unread{
  border-color:#93c5fd;
  background:#eff6ff;
}
.system-notification-icon{font-size:24px}
.system-notification-content{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.system-notification-content span,
.system-notification-content small{
  color:#64748b;
}
.system-notification-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  background:#2563eb;
}
.request-notification-settings{margin-top:16px}
.notification-settings-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-bottom:14px;
}
.notification-settings-grid fieldset{
  border:1px solid #dbe2ea;
  border-radius:12px;
  padding:13px;
}
.notification-settings-grid legend{font-weight:800}
.notification-user-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:7px;
}
.notification-user-grid .check-line{
  border:1px solid #e2e8f0;
  border-radius:9px;
  padding:9px;
  background:#fff;
}
.notification-user-grid small{
  color:#64748b;
  font-weight:400;
}
@media(max-width:760px){
  .notification-settings-grid{grid-template-columns:1fr}
  .notifications-head{flex-direction:column}
  .system-notification{grid-template-columns:36px minmax(0,1fr) 10px}
}

.mobile-notification-bell{
  display:none;
  margin-left:auto;
  position:relative;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:10px;
  text-decoration:none;
  background:#f1f5f9;
  color:#0f172a;
  font-size:19px;
}
.mobile-notification-bell>span{
  position:absolute;
  top:-4px;
  right:-4px;
  min-width:19px;
  height:19px;
  padding:0 4px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#dc2626;
  color:#fff;
  font-size:10px;
  font-weight:800;
  border:2px solid #fff;
}
@media(max-width:900px){
  .mobile-notification-bell{display:inline-flex}
}
.badge-segments{background:#eef2ff;color:#1d4ed8;border-radius:999px;padding:2px 9px;font-size:.78rem;font-weight:800}.segment-list-title{margin:18px 0 8px;font-size:.95rem;color:#334155}.segment-list{display:flex;flex-direction:column;gap:8px}.segment-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e5e7eb;border-radius:12px;padding:9px 12px;background:#f8fafc}.segment-row-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.9rem}.segment-row-actions{display:flex;gap:6px}
/* v0.8.59: Hinweis für Admins, wenn die Datenbank hinter der App-Version zurückliegt */
.db-update-banner{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;padding:10px 24px;background:#fff7ed;border-bottom:1px solid #fdba74;color:#9a3412;font-size:.92rem}.db-update-banner a{font-weight:700;color:#9a3412;text-decoration:underline}
@media(max-width:900px){.db-update-banner{padding:10px 14px}}
/* v0.8.61: Einstellungs-Tabs brechen nicht mehr mitten im Namen um (zehn Tabs, mobil mehrzeilig) */
.settings-tabs a{white-space:nowrap}
/* v0.8.63: Schnelleingabe - Kalender per "+" um 10 Tage des Folgemonats erweitern */
.quick-table th.quick-extend-cell{min-width:56px;width:56px;vertical-align:middle;text-align:center;background:#f8fafc;padding:4px}
.qe-extend-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;margin:4px auto;width:44px;min-height:44px;border:2px solid #2563eb;border-radius:10px;background:#fff;color:#2563eb;font-size:22px;font-weight:700;line-height:1;text-decoration:none}
.qe-extend-btn small{font-size:10px;font-weight:600;line-height:1}
.qe-extend-btn:hover{background:#eff6ff}
.qe-extend-btn.minus{border-color:#94a3b8;color:#475569}
.quick-table th.qe-month-start,.quick-table td.qe-month-start{border-left:3px solid #2563eb!important}
.qe-month-tag{display:block;font-size:9px;font-weight:700;color:#2563eb;text-transform:uppercase;line-height:1.1}
/* v0.8.64: Schnelleingabe - schwebende Kopfzeile bedienbar (Tagesanteil-Feld, +/-), Zeile "Aktuelle Abwesenheit", Hinweis-Toast */
.quick-floating-header.is-visible{pointer-events:auto}
.quick-floating-header .quick-daypart-form select{pointer-events:auto}
.quick-floating-header tbody td{background:#fff;border-bottom:2px solid #64748b}
.quick-floating-header tbody td.qe-current-entry{background:var(--qe-entry-color)!important}
.quick-floating-header tbody .label{background:#fff!important;z-index:20}
.qe-toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,16px);max-width:90vw;padding:10px 16px;border-radius:10px;background:#0f172a;color:#fff;font-size:.92rem;box-shadow:0 8px 24px rgba(15,23,42,.3);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:2000}
.qe-toast.show{opacity:1;transform:translate(-50%,0)}
.qe-toast.error{background:#991b1b}
/* v0.8.65: Abwesenheitstypen - Farbfelder sichtbar, Textfarbe, Live-Vorschau */
.absence-editor-form input[type=color]{width:72px;height:44px;min-width:72px;padding:3px;margin:0;border:1px solid #94a3b8;border-radius:10px;background:#fff;cursor:pointer}
.absence-editor-form input[type=color]:disabled{opacity:.55;cursor:not-allowed}
.absence-color-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px 28px;margin:6px 0 16px}
.absence-color-row>div>label:first-child{display:block;margin-bottom:6px}
.absence-text-auto{margin-top:8px;font-size:.88rem}
.absence-color-preview{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.absence-color-chip{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:56px;height:44px;padding:0 12px;border-radius:10px;border:1px solid rgba(0,0,0,.3);font-weight:800;font-size:1rem}
.absence-color-chip.half{font-size:.9rem}
.absence-code-mini[style],.absence-admin-icon.empty[style]{border-color:rgba(0,0,0,.25)}
.quick-table td.qe-existing-entry button{color:var(--qe-entry-text,#111827)}
/* v0.8.65: Arbeitsplan - Trennlinien der Zellen schwarz (nur Bildschirm; Feiertags-/Sonntags-Kennzeichnung im Kopf bleibt) */
@media screen{
.calendar-wrap .calendar td,
.calendar-wrap .calendar th:not(.name),
.calendar-wrap .calendar td:not(.name){border-left-color:#000;border-right-color:#000}
.calendar-wrap .calendar td{border-top-color:#000;border-bottom-color:#000}
.calendar-wrap .calendar .name{border-right-color:#000!important;box-shadow:2px 0 0 #000}
.calendar-wrap .calendar .kw-cell,
.calendar-wrap .calendar .week-boundary,
.calendar-wrap .calendar th:nth-child(8n),
.calendar-wrap .calendar td:nth-child(8n){border-right-color:#000!important}
.calendar-wrap .calendar thead .kw-row th{border-bottom-color:#000!important}
.calendar-wrap .calendar thead th:not(.holiday):not(.sunday):not(.saturday){border-bottom-color:#000}
}
/* v0.8.65.1: schwarze Zelllinien auch in Jahresuebersicht, Schnelleingabe und Druck (Arbeitsplan/Jahresansicht) */
@media screen{
.year-calendar-table{border-top:1px solid #000;border-left:1px solid #000}
.year-calendar-table th,.year-calendar-table td{border-right-color:#000;border-bottom-color:#000}
.year-calendar-table .sunday{border-right-color:#000}
.quick-table th:not(.label),.quick-table td:not(.label){border-left-color:#000;border-right-color:#000}
.quick-table td{border-top-color:#000;border-bottom-color:#000}
.quick-table .label{border-right-color:#000!important;box-shadow:2px 0 0 #000}
.quick-table .quick-kw-cell,
.quick-table .week-boundary,
.quick-table th:nth-child(8n),
.quick-table td:nth-child(8n){border-right-color:#000!important}
.quick-table thead .quick-kw-row th{border-bottom-color:#000!important}
.quick-table thead th:not(.holiday):not(.sunday){border-bottom-color:#000}
}
@media print{
.calendar th:not(.name),.calendar td:not(.name){border-left-color:#000;border-right-color:#000}
.calendar td{border-top-color:#000;border-bottom-color:#000}
.calendar .kw-cell,.calendar .week-boundary,.calendar th:nth-child(8n),.calendar td:nth-child(8n){border-right-color:#000!important}
.calendar thead th:not(.holiday):not(.sunday):not(.saturday){border-bottom-color:#000}
.year-calendar-table th,.year-calendar-table td{border-color:#000!important}
.year-calendar-table .sunday{border-right-color:#000!important}
}
/* v0.8.66: Profil - Kalender-Abo */
.calendar-feed-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.calendar-feed-row input{flex:1 1 320px;min-width:0;margin:0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem}
.calendar-feed-help{margin-top:14px}
.calendar-feed-help summary{cursor:pointer;font-weight:700}
.calendar-feed-help ul{margin:10px 0 6px;padding-left:20px}
.calendar-feed-help li{margin-bottom:8px}

/* v0.8.67: mehrere Monate untereinander im Arbeitsplan */
.calendar-actions-panel .calendar-action-select{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:9px;font-size:.95rem;color:#111827;cursor:pointer}
.calendar-actions-panel .calendar-action-select:hover{background:#f1f5f9}
.calendar-actions-panel .calendar-action-select select{margin:0 0 0 auto;width:auto;min-width:56px;padding:4px 6px;border:1px solid #d1d5db;border-radius:8px;font:inherit}
.calendar-wrap .calendar-month-heading{position:sticky;left:0;display:inline-block;margin:18px 0 6px 2px;padding:3px 12px;font-size:1.05rem;font-weight:800;color:#0f172a;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px}
.calendar-wrap .calendar-month-heading:first-child{margin-top:4px}
@media print{
  .calendar-wrap .calendar-month-heading{background:#fff!important;border:0!important;border-bottom:2px solid #111!important;border-radius:0!important;padding:0 0 2px!important;margin:0 0 3mm!important;font-size:12px!important}
  .calendar-wrap .calendar-month-heading:not(:first-child){break-before:page;page-break-before:always;margin-top:0!important}
}

/* v0.8.67.1: Schnelleingabe - während des Tagesanteil-Wechsels (Hintergrund-Abfrage) keine Zellklicks */
.calendar-wrap.qe-switching .quick-table tbody{pointer-events:none}
/* v0.8.68.1: Namen im Arbeitsplan nicht mehr auf wenige Zeichen zusammenschieben. Das Menue um den Namen war ein
   inline-block ohne feste Breite; ohne die Kennzahlen-Zeile schrumpfte es auf den Inhalt und die Prozent-Obergrenze
   des Namens bezog sich auf diese Mini-Breite. Jetzt fuellt es die Zelle; die frueher fuer ein Bearbeiten-Symbol
   reservierten 28 px entfallen (das Symbol gibt es nicht mehr). */
@media screen{
.calendar .name .user-quick-menu{display:block!important;width:100%;max-width:100%}
.calendar .name .user-quick-menu>summary{display:block!important;width:100%}
.calendar .name .calendar-user-name{max-width:100%}
}
