:root{--ad-blue:#3A73BA;--ad-green:#61C22D;--ad-dark:#23364A;--ad-light:#F8F9FA;--ad-orange:#F4A62A;--radius:24px}*{box-sizing:border-box}body{margin:0;background:#f5f7fb;color:#23364A;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.auth-body{min-height:100vh;background:radial-gradient(circle at top left,rgba(58,115,186,.22),transparent 32%),linear-gradient(135deg,#fff,#f3f8ff)}.pin-page{min-height:100vh;display:grid;place-items:center;padding:24px}.pin-card{width:min(440px,100%);background:rgba(255,255,255,.9);border:1px solid rgba(58,115,186,.12);border-radius:32px;padding:36px;box-shadow:0 24px 80px rgba(35,54,74,.12);text-align:center}.login-logo{width:220px;max-width:80%;margin-bottom:24px}.pin-card h1{font-size:42px;font-weight:800;color:var(--ad-dark)}.pin-input{width:100%;border:0;border-bottom:3px solid var(--ad-blue);background:transparent;text-align:center;font-size:42px;letter-spacing:18px;margin:20px 0 24px;outline:0;color:var(--ad-dark)}.pin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pin-grid button{border:1px solid #d9e4f1;background:#fff;border-radius:18px;padding:18px;font-size:22px;font-weight:800;color:var(--ad-dark)}.pin-grid .pin-ok{background:var(--ad-green);border-color:var(--ad-green);color:#fff}.app-shell{display:flex;min-height:100vh}.sidebar{width:104px;background:#fff;border-right:1px solid #e8eef5;padding:20px 14px;position:sticky;top:0;height:100vh}.brand{display:block;margin-bottom:28px}.brand img{width:72px}.sidebar nav{display:flex;flex-direction:column;gap:10px;width:100%}.sidebar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;border-radius:18px;color:var(--ad-dark);text-decoration:none}.sidebar a:hover{background:#edf5ff;color:var(--ad-blue)}.sidebar span{display:none}.main-content{flex:1;padding:26px;min-width:0}.topbar{height:64px;background:#fff;border:1px solid #e8eef5;border-radius:24px;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;box-shadow:0 12px 35px rgba(35,54,74,.05)}.topbar small{display:block;color:#7d8a99}.user-pill{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--ad-orange);color:#fff;font-weight:800}.hero-card{background:linear-gradient(135deg,var(--ad-blue),#285a99);color:#fff;border-radius:32px;padding:34px;display:flex;justify-content:space-between;gap:20px;box-shadow:0 24px 80px rgba(58,115,186,.25);margin-bottom:20px}.hero-card h1{font-size:clamp(44px,10vw,92px);font-weight:900;line-height:1}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:800;color:var(--ad-green)}.timer-box{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);border-radius:24px;padding:20px;min-width:180px}.timer-box strong{display:block;font-size:28px}.action-card,.panel,.stat-card{background:#fff;border:1px solid #e8eef5;border-radius:24px;box-shadow:0 12px 35px rgba(35,54,74,.05)}.action-card{padding:18px;margin-bottom:20px}.clock-actions{display:flex;flex-wrap:wrap;gap:12px}.btn-primary{--bs-btn-bg:var(--ad-blue);--bs-btn-border-color:var(--ad-blue);--bs-btn-hover-bg:#285a99;--bs-btn-hover-border-color:#285a99}.btn-success{--bs-btn-bg:var(--ad-green);--bs-btn-border-color:var(--ad-green)}.btn-warning{--bs-btn-bg:var(--ad-orange);--bs-btn-border-color:var(--ad-orange);color:#fff}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.stat-card{padding:22px}.stat-card span{color:#7d8a99;font-weight:700}.stat-card strong{display:block;font-size:36px;line-height:1.1;color:var(--ad-dark);margin:8px 0}.stat-card small{color:#8a97a5}.panel{padding:24px;margin-bottom:20px}.panel h2{font-size:22px;font-weight:850;margin-bottom:18px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-head h1{font-size:42px;font-weight:900;margin:0}.table{--bs-table-bg:transparent}.badge.text-bg-light{border:1px solid #e4eaf2}@media(max-width:900px){.app-shell{display:block}.sidebar{position:fixed;z-index:30;left:12px;right:12px;bottom:12px;top:auto;width:auto;height:72px;border:1px solid #e8eef5;border-radius:24px;padding:8px;box-shadow:0 18px 60px rgba(35,54,74,.18)}.brand{display:none}.sidebar nav{flex-direction:row;justify-content:space-between;align-items:center;height:100%;gap:0}.sidebar a{flex:1;min-width:0;height:100%;min-height:54px}.main-content{padding:16px 16px 100px}.hero-card{display:block}.timer-box{margin-top:20px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.pin-card{padding:24px}.stats-grid{grid-template-columns:1fr}.clock-actions .btn{width:100%}.topbar{border-radius:18px}.hero-card{border-radius:24px;padding:24px}}
.year-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.month-card{border:1px solid #e8eef5;border-radius:20px;padding:14px;background:#fbfdff}.month-card h3{font-size:18px;font-weight:850;margin:0 0 10px}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-weekdays span{font-size:11px;font-weight:800;text-align:center;color:#7d8a99}.calendar-day{position:relative;aspect-ratio:1/1;border-radius:10px;display:grid;place-items:center;font-size:12px;background:#fff;border:1px solid #edf2f7}.calendar-day.is-empty{background:transparent;border-color:transparent}.calendar-day.has-vacation{background:rgba(97,194,45,.18);border-color:rgba(97,194,45,.55);color:#2f7d13;font-weight:850}.calendar-day small{position:absolute;right:3px;bottom:1px;font-size:9px;background:var(--ad-green);color:#fff;border-radius:999px;min-width:14px;height:14px;display:grid;place-items:center}@media(max-width:1100px){.year-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.year-calendar{grid-template-columns:1fr}.sidebar span{display:none!important}}.pwa-install{position:fixed;left:50%;bottom:18px;z-index:2000;transform:translateX(-50%);width:min(92vw,520px);display:flex;align-items:center;gap:14px;justify-content:space-between;background:#23364a;color:#fff;border-radius:20px;padding:14px 16px;box-shadow:0 18px 50px rgba(35,54,74,.28)}.pwa-install strong{display:block;font-size:.95rem}.pwa-install span{display:block;font-size:.82rem;opacity:.78}.pwa-offline-badge{position:fixed;right:16px;bottom:16px;z-index:1900;background:#f4a62a;color:#23364a;border-radius:999px;padding:9px 14px;font-weight:700;box-shadow:0 12px 30px rgba(35,54,74,.18)}@media(max-width:768px){.pwa-install{bottom:84px;border-radius:18px}.pwa-offline-badge{right:12px;bottom:82px}}
@media(max-width:756px){.sidebar a.brand{display:none!important}.sidebar nav{justify-content:space-evenly}.sidebar a{flex:1}}
.stat-lines{display:grid;grid-template-columns:1fr auto;gap:5px 10px;margin-top:14px;padding-top:12px;border-top:1px solid #eef3f8}.stat-lines span{font-size:12px;color:#7d8a99}.stat-lines b{font-size:12px;color:#23364A}.booking-list{display:flex;flex-direction:column;gap:10px}.booking-item{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid #edf2f7;border-radius:16px;background:#fbfdff}
.booking-item i{display:grid;place-items:center;}.booking-item small{display:block;color:#7d8a99}.status-dot{display:inline-block;width:13px;height:13px;border-radius:50%;background:#b8c1cc;box-shadow:0 0 0 4px rgba(184,193,204,.18)}.status-dot.is-online{background:#61C22D;box-shadow:0 0 0 4px rgba(97,194,45,.18)}.status-dot.is-offline{background:#aab4bf}.calendar-day.has-requested{background:#fff;border-color:#c8d0d8;color:#6f7c89;font-weight:850}.calendar-day.has-requested:after{content:"";position:absolute;left:5px;right:5px;bottom:5px;height:3px;border-radius:999px;background:#9aa5b1}.calendar-day.has-vacation:after{content:"";position:absolute;left:5px;right:5px;bottom:5px;height:3px;border-radius:999px;background:#61C22D}.vacation-matrix-wrap{overflow:auto;margin-bottom:22px;border:1px solid #e8eef5;border-radius:18px;background:#fff}.vacation-matrix-title{position:sticky;left:0;background:#f7fbff;padding:10px 12px;font-weight:850;border-bottom:1px solid #e8eef5}.vacation-matrix{display:grid;grid-template-columns:150px repeat(var(--days),24px);min-width:max-content}.vm-head,.vm-employee,.vm-day{min-height:26px;border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;font-size:11px;display:grid;place-items:center}.vm-head{background:#f7fbff;color:#617181;font-weight:800;position:sticky;top:0;z-index:2}.vm-employee{position:sticky;left:0;z-index:3;background:#fff;justify-content:start;padding-left:10px;font-weight:850;color:#23364A}.vm-day.vm-approved{background:rgba(97,194,45,.32)}.vm-day.vm-requested{background:repeating-linear-gradient(90deg,#d5dbe2 0,#d5dbe2 4px,transparent 4px,transparent 8px)}.sticky-edit-panel{position:sticky;top:20px}.employee-table tr.table-primary td{background:rgba(58,115,186,.12)}@media(max-width:900px){.sticky-edit-panel{position:static}.vacation-matrix{grid-template-columns:100px repeat(var(--days),22px)}.vm-employee{padding-left:6px}.page-head h1{font-size:34px}}

/* v3.4 responsive and calendar refinements */
@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{text-align:center}.stat-card .stat-lines{grid-template-columns:1fr;text-align:center}.stat-card .stat-lines b{margin-bottom:4px}}
@media(max-width:520px){.sidebar .brand,.sidebar a.brand{display:none!important}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{padding:16px 10px;text-align:center}.stat-card strong{font-size:28px}.stat-card small,.stat-card span{display:block;text-align:center}.clock-actions .btn{width:100%}}
.calendar-day.has-vacation,.calendar-day.has-requested{overflow:hidden}
.calendar-day-bars{position:absolute;left:5px;right:5px;bottom:5px;display:flex;flex-direction:column;gap:2px;pointer-events:none}
.calendar-day-bars i{display:block;height:3px;border-radius:999px;background:#61C22D}
.calendar-day.has-requested .calendar-day-bars i{background:#9aa5b1}
.calendar-day.has-vacation:after,.calendar-day.has-requested:after{display:none!important}

.user-pill{text-decoration:none}.auth-tabs{display:flex;justify-content:center;gap:8px;margin:10px 0 18px}.auth-tabs .nav-link{border-radius:999px;font-weight:800}.auth-secret{font-size:24px;font-weight:900;letter-spacing:.12em;background:#f2f6fb;border:1px solid #dfe8f2;border-radius:18px;padding:16px;text-align:center;color:#23364A}.pin-card .tab-content{margin-top:8px}@media(max-width:520px){.auth-secret{font-size:18px;letter-spacing:.06em}.page-head{display:block}.page-head .btn{margin-top:12px}}

/* v3.6.1 refinements */
.fingerprint-login-btn{width:78px;height:78px;border-radius:50%;border:1px solid rgba(58,115,186,.22);background:#fff;color:var(--ad-blue);display:inline-grid;place-items:center;font-size:38px;box-shadow:0 12px 34px rgba(35,54,74,.08);transition:.2s ease}
.fingerprint-login-btn:hover{background:#edf5ff;transform:translateY(-1px);box-shadow:0 16px 42px rgba(35,54,74,.12)}
.fingerprint-modal{border:0;border-radius:28px;box-shadow:0 24px 80px rgba(35,54,74,.24)}
.fingerprint-modal-icon{width:86px;height:86px;border-radius:50%;display:grid;place-items:center;margin:0 auto;background:#edf5ff;color:var(--ad-blue);font-size:48px}
.device-action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}
.device-action-row .btn,.device-action-row form{flex:1}.device-action-row form{display:flex}.device-action-row form .btn{width:100%}
.vacation-range-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;padding:14px;border:1px solid #dfe8f2;border-radius:18px;background:#fbfdff;box-shadow:0 12px 35px rgba(35,54,74,.06)}
.vacation-range-picker .btn{grid-column:1 / -1}.vacation-range-picker.d-none{display:none!important}
.employee-edit-panel{opacity:0;transform:translateY(14px);transition:opacity .3s ease,transform .3s ease}.employee-edit-panel.is-visible{opacity:1;transform:translateY(0)}.employee-edit-empty{display:none}
@media(max-width:520px){.device-action-row{flex-direction:row}.fingerprint-login-btn{width:70px;height:70px;font-size:34px}.pin-input{cursor:default}.sidebar .brand,.sidebar a.brand{display:none!important}}

/* v4.3 */
.hero-status{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);padding:8px 13px;border-radius:999px;font-weight:800}.hero-status i{font-size:20px}.stats-grid-user{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-kpi-grid,.task-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.task-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-kpi,.task-card{text-decoration:none;border-radius:22px;padding:20px;display:flex;align-items:center;gap:15px;border:1px solid transparent;box-shadow:0 12px 35px rgba(35,54,74,.06);transition:.2s}.admin-kpi:hover,.task-card:hover{transform:translateY(-2px)}.admin-kpi i,.task-card i{font-size:30px}.admin-kpi strong,.task-card strong{font-size:34px;line-height:1;display:block}.admin-kpi span,.task-card span{display:block;font-weight:750}.kpi-green{background:#edf9e8;color:#347d17;border-color:#cceabb}.kpi-yellow{background:#fff8e8;color:#9b6a00;border-color:#f7dda1}.kpi-gray{background:#f1f4f7;color:#617181;border-color:#dce3e9}.kpi-red{background:#fff0f0;color:#b13c3c;border-color:#f2caca}.task-orange{background:#fff5e8;color:#a85f00}.task-purple{background:#f5efff;color:#6d44a6}.task-danger{background:#ffebee;color:#b42435}@media(max-width:900px){.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.task-grid{grid-template-columns:1fr}.stats-grid-user{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.stats-grid-user{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-kpi,.task-card{padding:15px}.admin-kpi strong,.task-card strong{font-size:28px}}
/* v4.3.1 */
.login-network-info{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:16px;color:#7d8a99;font-size:12px}.login-network-info i{color:var(--ad-blue)}

.update-dropzone{border:2px dashed #b8c7da;border-radius:18px;background:#f8fafc;cursor:pointer;transition:.2s}.update-dropzone:hover,.update-dropzone.dragover{border-color:#3a73ba;background:#eef5ff}.app-version{font-size:.72rem;opacity:.7;text-align:center;padding:.5rem}

/* v5.0.2 global request spinner */
.global-request-spinner{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(35,54,74,.22);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}
.global-request-spinner.is-visible{opacity:1;visibility:visible;pointer-events:auto}
.global-request-spinner__box{min-width:160px;display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 20px;border-radius:18px;background:#fff;color:#23364a;font-weight:800;box-shadow:0 20px 60px rgba(35,54,74,.24)}
.global-request-spinner__box .spinner-border{width:1.45rem;height:1.45rem;border-width:.2em;color:#3a73ba}
.request-pending{cursor:progress}
@media(max-width:520px){.global-request-spinner__box{min-width:148px;padding:14px 17px;border-radius:16px}}
@media(prefers-reduced-motion:reduce){.global-request-spinner{transition:none}}

/* v5.0.5: Light/Dark mode */
html[data-bs-theme="dark"]{color-scheme:dark;--ad-surface:#172334;--ad-surface-soft:#1d2b3d;--ad-border:#314258;--ad-text:#edf4fb;--ad-muted:#9eafc1}
html[data-bs-theme="dark"] body{background:#0f1927;color:var(--ad-text)}
html[data-bs-theme="dark"] .main-content{background:#0f1927}
html[data-bs-theme="dark"] .topbar,
html[data-bs-theme="dark"] .panel,
html[data-bs-theme="dark"] .stat-card,
html[data-bs-theme="dark"] .month-card,
html[data-bs-theme="dark"] .booking-item,
html[data-bs-theme="dark"] .vacation-matrix-wrap,
html[data-bs-theme="dark"] .calendar-day,
html[data-bs-theme="dark"] .fingerprint-login-btn,
html[data-bs-theme="dark"] .vacation-range-picker{background:var(--ad-surface);border-color:var(--ad-border);color:var(--ad-text);box-shadow:none}
html[data-bs-theme="dark"] .text-muted,
html[data-bs-theme="dark"] .stat-lines span,
html[data-bs-theme="dark"] .booking-item small,
html[data-bs-theme="dark"] .calendar-weekdays span{color:var(--ad-muted)!important}
html[data-bs-theme="dark"] .stat-lines b,
html[data-bs-theme="dark"] .month-card h3,
html[data-bs-theme="dark"] .vm-employee{color:var(--ad-text)}
html[data-bs-theme="dark"] .form-control,
html[data-bs-theme="dark"] .form-select{background-color:#111d2b;border-color:var(--ad-border);color:var(--ad-text)}
html[data-bs-theme="dark"] .form-control:focus,
html[data-bs-theme="dark"] .form-select:focus{background-color:#111d2b;color:var(--ad-text);border-color:#5f91cf;box-shadow:0 0 0 .25rem rgba(58,115,186,.2)}
html[data-bs-theme="dark"] .table{--bs-table-bg:transparent;--bs-table-color:var(--ad-text);--bs-table-border-color:var(--ad-border)}
html[data-bs-theme="dark"] .employee-table tr.table-primary td{background:rgba(58,115,186,.23)}
html[data-bs-theme="dark"] .vm-head,
html[data-bs-theme="dark"] .vacation-matrix-title{background:#172334;color:var(--ad-text);border-color:var(--ad-border)}
html[data-bs-theme="dark"] .vm-employee{background:#172334}
html[data-bs-theme="dark"] .vm-head,
html[data-bs-theme="dark"] .vm-employee,
html[data-bs-theme="dark"] .vm-day{border-color:var(--ad-border)}
html[data-bs-theme="dark"] .auth-secret{background:#111d2b;border-color:var(--ad-border);color:var(--ad-text)}
html[data-bs-theme="dark"] .update-dropzone{background:#142132;border-color:#4b617d;color:var(--ad-text)}
html[data-bs-theme="dark"] .update-dropzone:hover,
html[data-bs-theme="dark"] .update-dropzone.dragover{background:#1b3048;border-color:#5f91cf}
html[data-bs-theme="dark"] .modal-content{background:var(--ad-surface);color:var(--ad-text);border-color:var(--ad-border)}
html[data-bs-theme="dark"] .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}
html[data-bs-theme="dark"] .login-network-info{color:var(--ad-muted)}
@media(prefers-reduced-motion:reduce){html[data-bs-theme="dark"] *,html[data-bs-theme="light"] *{transition:none!important}}

/* v5.0.7: complete theme variable and dark-mode refinements */
:root{
    --theme-bg:#f5f7fb;
    --theme-surface:#ffffff;
    --theme-surface-soft:#f8fbff;
    --theme-border:#e3eaf2;
    --theme-text:#23364a;
    --theme-muted:#7d8a99;
    --theme-nav:#ffffff;
    --theme-shadow:0 12px 35px rgba(35,54,74,.07);
}
html[data-bs-theme="dark"]{
    --theme-bg:#0f1927;
    --theme-surface:#172334;
    --theme-surface-soft:#1d2b3d;
    --theme-border:#314258;
    --theme-text:#edf4fb;
    --theme-muted:#a9b8c8;
    --theme-nav:#172334;
    --theme-shadow:none;
}
body,.main-content{background:var(--theme-bg);color:var(--theme-text)}
.topbar,.sidebar,.action-card,.panel,.stat-card,.month-card,.booking-item,.vacation-matrix-wrap,.calendar-day,.fingerprint-login-btn,.vacation-range-picker,.bottom-nav{
    background:var(--theme-surface);
    color:var(--theme-text);
    border-color:var(--theme-border);
    box-shadow:var(--theme-shadow);
}
.sidebar{background:var(--theme-nav)}
.sidebar a{color:var(--theme-text)}
.sidebar a:hover,.sidebar a.active{background:var(--theme-surface-soft);color:var(--ad-blue)}
.stat-card span,.stat-card small,.topbar small,.booking-item small,.calendar-weekdays span,.login-network-info{color:var(--theme-muted)}
.stat-card strong,.stat-lines b,.panel h2,.page-head h1,.month-card h3,.vm-employee{color:var(--theme-text)}
.stat-lines,.booking-item,.vacation-matrix-wrap,.vacation-matrix-title,.vm-head,.vm-employee,.vm-day{border-color:var(--theme-border)}
.booking-item,.vacation-range-picker,.month-card,.vacation-matrix-title,.vm-head,.vm-employee{background:var(--theme-surface-soft)}
.bottom-nav,.sidebar{background:var(--theme-nav)}
.bottom-nav a,.bottom-nav button{color:var(--theme-muted)}
.bottom-nav a.active,.bottom-nav button.active{color:var(--ad-blue)}
html[data-bs-theme="dark"] .action-card{background:var(--theme-surface)!important;color:var(--theme-text)!important;border-color:var(--theme-border)!important}
html[data-bs-theme="dark"] .stat-card{background:var(--theme-surface)!important;color:var(--theme-text)!important;border-color:var(--theme-border)!important}
html[data-bs-theme="dark"] .stat-card strong{color:#f5f8fc!important}
html[data-bs-theme="dark"] .stat-card span,
html[data-bs-theme="dark"] .stat-card small,
html[data-bs-theme="dark"] .stat-card .label{color:var(--theme-muted)!important}
html[data-bs-theme="dark"] .sidebar,
html[data-bs-theme="dark"] .bottom-nav{background:var(--theme-nav)!important;border-color:var(--theme-border)!important}
html[data-bs-theme="dark"] .sidebar a,
html[data-bs-theme="dark"] .bottom-nav a{color:var(--theme-muted)!important}
html[data-bs-theme="dark"] .sidebar a.active,
html[data-bs-theme="dark"] .sidebar a:hover,
html[data-bs-theme="dark"] .bottom-nav a.active{background:rgba(58,115,186,.18)!important;color:#7fb0ec!important}
html[data-bs-theme="dark"] .bg-white,
html[data-bs-theme="dark"] .bg-light{background-color:var(--theme-surface)!important}
html[data-bs-theme="dark"] .text-dark{color:var(--theme-text)!important}
html[data-bs-theme="dark"] .border,
html[data-bs-theme="dark"] .border-top,
html[data-bs-theme="dark"] .border-bottom,
html[data-bs-theme="dark"] .border-start,
html[data-bs-theme="dark"] .border-end{border-color:var(--theme-border)!important}
html[data-bs-theme="dark"] .card{background:var(--theme-surface);color:var(--theme-text);border-color:var(--theme-border)}
html[data-bs-theme="dark"] .list-group-item{background:var(--theme-surface);color:var(--theme-text);border-color:var(--theme-border)}
html[data-bs-theme="dark"] .dropdown-menu{background:var(--theme-surface);border-color:var(--theme-border)}
html[data-bs-theme="dark"] .dropdown-item{color:var(--theme-text)}
html[data-bs-theme="dark"] .dropdown-item:hover,
html[data-bs-theme="dark"] .dropdown-item:focus{background:var(--theme-surface-soft);color:var(--theme-text)}
html[data-bs-theme="dark"] .global-request-spinner__box{background:var(--theme-surface);color:var(--theme-text);border:1px solid var(--theme-border)}
@media(max-width:900px){
    .sidebar{background:var(--theme-nav);border-color:var(--theme-border)}
}

/* V5.1.1: Admin dashboard status widgets */
.admin-kpi.is-empty,.task-card.is-empty{background:var(--surface-2,#eef2f6)!important;color:var(--text-muted,#7b8794)!important;border-color:var(--border,#dce3e9)!important;box-shadow:none;cursor:default;pointer-events:none;opacity:.82;transform:none!important}
.admin-kpi:not(.is-empty),.task-card:not(.is-empty){animation:kpiActivate .45s ease-out}
@keyframes kpiActivate{0%{transform:scale(.97);opacity:.72}100%{transform:scale(1);opacity:1}}
@media(max-width:520px){.admin-kpi-grid,.task-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.task-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-kpi,.task-card{min-width:0;min-height:68px;padding:10px 8px;justify-content:center;gap:7px;border-radius:16px}.admin-kpi .kpi-label,.task-card .kpi-label{display:none!important}.admin-kpi i,.task-card i{font-size:21px;flex:0 0 auto}.admin-kpi strong,.task-card strong{font-size:20px;line-height:1;margin:0}.task-card>div{display:flex;align-items:center}.admin-kpi,.task-card{text-align:center}}
@media(max-width:380px){.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.task-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* V5.1.2: user and admin time reports */
.report-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.report-head p{margin:6px 0 0;color:var(--theme-muted)}.report-filter-panel{margin-bottom:20px}.report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:end}.report-employee-filter{grid-column:span 2}.report-check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;max-height:150px;overflow:auto;padding:12px;border:1px solid var(--theme-border);border-radius:14px;background:var(--theme-surface-soft)}.report-check-list label{display:flex;align-items:center;gap:8px;font-size:.9rem}.report-filter-submit{display:flex;justify-content:flex-end}.report-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.report-summary-card{padding:20px;border-radius:20px;border:1px solid var(--theme-border);background:var(--theme-surface);box-shadow:var(--theme-shadow)}.report-summary-card span{display:block;color:var(--theme-muted);font-size:.86rem;margin-bottom:8px}.report-summary-card strong{font-size:clamp(1.65rem,3vw,2.4rem);line-height:1;color:var(--theme-text)}.report-summary-card.is-positive strong{color:#2d9d57}.report-summary-card.is-negative strong{color:#d9534f}.report-chart-panel{margin-bottom:20px}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.panel-title-row h2{margin:0}.report-legend{display:flex;gap:18px;color:var(--theme-muted);font-size:.86rem}.report-legend span{display:flex;align-items:center;gap:7px}.report-legend i{width:12px;height:12px;border-radius:4px}.legend-work{background:#3a73ba}.legend-target{background:#61c22d}.report-chart{display:flex;align-items:stretch;gap:14px;min-height:270px;overflow-x:auto;padding:18px 4px 0;border-bottom:1px solid var(--theme-border)}.report-chart-column{flex:1 0 76px;min-width:76px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:10px}.report-bars{height:210px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:7px;border-bottom:1px solid var(--theme-border)}.report-bar{width:20px;min-height:2px;border-radius:8px 8px 2px 2px;transition:height .3s ease}.report-bar-work{background:linear-gradient(180deg,#6e9edb,#3a73ba)}.report-bar-target{background:linear-gradient(180deg,#8bd860,#61c22d)}.report-chart-column small{color:var(--theme-muted);white-space:nowrap}.report-table td strong{display:block}.report-table td small{display:block;color:var(--theme-muted)}.difference-pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-weight:700}.difference-pill.is-positive{color:#237a42;background:rgba(97,194,45,.14)}.difference-pill.is-negative{color:#b53a36;background:rgba(217,83,79,.14)}.empty-state{text-align:center;color:var(--theme-muted);padding:50px 20px}.empty-state i{font-size:2.2rem;display:block;margin-bottom:10px}
@media(max-width:900px){.report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-employee-filter{grid-column:span 2}}
@media(max-width:520px){.report-head{align-items:flex-start;flex-direction:column}.report-head .btn{width:100%}.report-filter-grid{grid-template-columns:1fr}.report-employee-filter{grid-column:auto}.report-check-list{grid-template-columns:1fr}.report-filter-submit .btn{width:100%}.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-summary-card{padding:15px;border-radius:16px;text-align:center}.report-summary-card strong{font-size:1.45rem}.panel-title-row{align-items:flex-start;flex-direction:column}.report-legend{font-size:.78rem}.report-chart{min-height:230px}.report-bars{height:170px}.report-table thead{display:none}.report-table,.report-table tbody,.report-table tr,.report-table td{display:block;width:100%}.report-table tr{padding:12px 0;border-bottom:1px solid var(--theme-border)}.report-table td{display:flex;justify-content:space-between;gap:14px;text-align:right!important;border:0;padding:5px 0}.report-table td:before{content:attr(data-label);color:var(--theme-muted);text-align:left}.report-table tfoot{display:none}}


/* V5.1.3: report employee selectpicker */
.report-employee-filter .bootstrap-select{width:100%!important}
.report-employee-filter .bootstrap-select>.dropdown-toggle{min-height:38px;border-color:var(--theme-border);background:var(--theme-surface);color:var(--theme-text);border-radius:.375rem}
.report-employee-filter .bootstrap-select>.dropdown-toggle:focus{outline:0!important;box-shadow:0 0 0 .25rem rgba(58,115,186,.18)!important}
.report-employee-filter .bootstrap-select .dropdown-menu{background:var(--theme-surface);border-color:var(--theme-border);color:var(--theme-text);max-width:100%}
.report-employee-filter .bootstrap-select .dropdown-item{color:var(--theme-text)}
.report-employee-filter .bootstrap-select .dropdown-item:hover,.report-employee-filter .bootstrap-select .dropdown-item:focus,.report-employee-filter .bootstrap-select .dropdown-item.active,.report-employee-filter .bootstrap-select .dropdown-item.selected{background:var(--theme-surface-soft);color:var(--theme-text)}
.report-employee-filter .bootstrap-select .bs-actionsbox{padding:8px;border-bottom:1px solid var(--theme-border)}
.report-employee-filter .bootstrap-select .bs-actionsbox .btn-group{gap:8px}
.report-employee-filter .bootstrap-select .bs-actionsbox .btn{border:1px solid var(--theme-border);background:var(--theme-surface-soft);color:var(--theme-text);border-radius:8px!important}
.report-employee-filter .bootstrap-select .bs-searchbox input{background:var(--theme-surface);color:var(--theme-text);border-color:var(--theme-border)}
.report-employee-filter .bootstrap-select .filter-option-inner-inner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-bs-theme="dark"] .report-employee-filter .bootstrap-select>.dropdown-toggle{background:var(--theme-surface);color:var(--theme-text);border-color:var(--theme-border)}
@media(max-width:520px){.report-employee-filter .bootstrap-select .dropdown-menu{min-width:100%!important}}

/* V5.4.0 - geordnete Navigation und Dashboard-Karten */
.app-navigation{display:flex;flex-direction:column;gap:.35rem}.profile-menu{min-width:230px;border-radius:1rem;box-shadow:0 1rem 2.5rem rgba(15,23,42,.18);overflow:hidden}.user-pill{cursor:pointer}.admin-module-grid,.developer-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin:0 0 1.5rem}.admin-module-card,.developer-card{appearance:none;text-decoration:none;border:1px solid var(--border,#dbe4f0);background:var(--surface,#fff);color:var(--text,#1b2430);border-radius:1rem;padding:1.15rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;min-height:88px;box-shadow:0 .35rem 1rem rgba(15,23,42,.06);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;text-align:left;width:100%}.developer-card{grid-template-columns:auto 1fr}.developer-card small{grid-column:2;color:var(--text-muted,#6b7280);margin-top:-.55rem}.admin-module-card:hover,.developer-card:not(.is-unavailable):hover{transform:translateY(-2px);box-shadow:0 .8rem 1.8rem rgba(15,23,42,.12);border-color:var(--primary,#3A73BA)}.admin-module-card>i,.developer-card>i{font-size:1.65rem;color:var(--primary,#3A73BA)}.admin-module-card span,.developer-card span{font-weight:700}.admin-module-card strong{font-size:1.15rem}.admin-module-card.has-alert{border-color:#f59e0b}.admin-module-card.has-alert>i{color:#f59e0b}.developer-card.is-unavailable{opacity:.55;cursor:not-allowed;box-shadow:none}.developer-section-toolbar{margin-bottom:1rem}.developer-section.is-active{display:block!important;animation:developerSectionIn .25s ease}.developer-card-grid.is-hidden{display:none}@keyframes developerSectionIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}[data-bs-theme="dark"] .admin-module-card,[data-bs-theme="dark"] .developer-card{background:var(--surface,#1b2433);color:var(--text,#f4f7fb);border-color:var(--border,#334155)}
@media(max-width:756px){.sidebar .brand{display:none!important}.app-navigation{height:100%;justify-content:space-evenly}.sidebar nav a{flex:1;min-height:52px;justify-content:center}.profile-menu{position:fixed!important;right:.75rem!important;left:auto!important;top:4rem!important;transform:none!important}}
@media(max-width:520px){.admin-module-grid,.developer-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.admin-module-card,.developer-card{min-height:82px;padding:.8rem;grid-template-columns:1fr auto}.developer-card small{display:none}.admin-module-card span,.developer-card span{font-size:.84rem}.admin-module-card>i,.developer-card>i{font-size:1.35rem}}

/* v5.4.1 dashboard, settings and navigation refinements */
.page-title-row,.section-head{display:flex;align-items:center;gap:.85rem}.page-title-row>div{min-width:0}.page-back-button{width:42px;height:42px;flex:0 0 42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--theme-border);border-radius:50%;background:var(--theme-surface);color:var(--theme-text);text-decoration:none;transition:.2s}.page-back-button:hover{background:var(--theme-surface-soft);color:var(--primary,#3A73BA);transform:translateX(-2px)}.section-head{margin-bottom:1rem}.section-head h2{margin:0}.admin-module-grid.is-hidden{display:none}.admin-section{scroll-margin-top:1rem}.theme-mode-switch{display:flex;align-items:center;gap:.75rem;font-weight:700}.theme-mode-switch .form-check-input{width:3.4rem;height:1.7rem;cursor:pointer}.date-range-field{position:relative}.date-range-field>i{position:absolute;left:1rem;top:50%;transform:translateY(-50%);z-index:2;color:var(--theme-muted)}.date-range-field .form-control{padding-left:2.7rem;cursor:pointer}.date-range-calendar{position:absolute;z-index:1080;width:min(360px,calc(100vw - 48px));margin-top:.5rem;padding:1rem;border:1px solid var(--theme-border);border-radius:1rem;background:var(--theme-surface);box-shadow:0 1rem 3rem rgba(15,23,42,.2)}.date-range-calendar-head,.date-range-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.date-range-weekdays,.date-range-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.date-range-weekdays{margin:.85rem 0 .35rem;color:var(--theme-muted);font-size:.78rem;text-align:center}.date-range-day{aspect-ratio:1;border:0;border-radius:.65rem;background:transparent;color:var(--theme-text)}.date-range-day:not(.is-empty):hover{background:var(--theme-surface-soft)}.date-range-day.is-today{box-shadow:inset 0 0 0 2px var(--primary,#3A73BA);font-weight:800}.date-range-day.is-today.is-start,.date-range-day.is-today.is-end{box-shadow:inset 0 0 0 2px rgba(255,255,255,.8)}.date-range-day.is-range{background:rgba(58,115,186,.13);border-radius:0}.date-range-day.is-start,.date-range-day.is-end{background:var(--primary,#3A73BA);color:#fff}.date-range-day.is-start{border-radius:.65rem 0 0 .65rem}.date-range-day.is-end{border-radius:0 .65rem .65rem 0}.date-range-day.is-start.is-end{border-radius:.65rem}.date-range-calendar-footer{margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--theme-border)}
@media(max-width:576px){.page-back-button{width:38px;height:38px;flex-basis:38px}.date-range-calendar{left:0}.theme-mode-switch{width:100%;justify-content:flex-end}}


/* V5.4.2 - Live-Zeiten, Hochrechnung und einheitliche Dashboard-Unterseiten */
.hero-card [data-live-timer]{font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.admin-module-grid,.developer-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.admin-module-card,.developer-card{position:relative;overflow:hidden}
.admin-module-card:after,.developer-card:not(.is-unavailable):after{content:'›';position:absolute;right:1rem;top:50%;transform:translate(6px,-50%);font-size:1.7rem;line-height:1;color:var(--primary,#3A73BA);opacity:0;transition:.2s}
.admin-module-card:hover:after,.developer-card:not(.is-unavailable):hover:after{opacity:1;transform:translate(0,-50%)}
.developer-section.is-active,.admin-section:not(.d-none){animation:dashboardSectionIn .25s ease}
@keyframes dashboardSectionIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.admin-module-grid,.developer-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.admin-module-grid,.developer-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-module-card:after,.developer-card:after{display:none}.hero-card [data-live-timer]{font-size:clamp(2.6rem,13vw,4rem)}}

/* V5.5.1 - Heute-Card entfernt; Urlaub und Woche bleiben zweispaltig. */
.stats-grid-user{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:520px){.stats-grid-user{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* V5.5.2: Wochen-Stempelungen im Benutzer-Dashboard */
.weekly-stamps-card{margin-top:1.25rem}
.weekly-stamps-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--theme-muted)}
.weekly-stamps-table td,.weekly-stamps-table th{padding:.9rem 1rem;border-color:var(--theme-border)}
.weekly-difference{display:inline-flex;justify-content:flex-end;min-width:5.5rem;font-weight:800;font-variant-numeric:tabular-nums}
.weekly-difference.is-positive{color:var(--theme-success,#3f8d2e)}
.weekly-difference.is-negative{color:var(--theme-danger,#c33d3d)}
[data-theme=dark] .weekly-stamps-table{color:var(--theme-text)}
@media(max-width:520px){.weekly-stamps-card{padding:1rem}.weekly-stamps-table td,.weekly-stamps-table th{padding:.7rem .55rem;font-size:.86rem}.weekly-difference{min-width:auto}.weekly-stamps-card h2{font-size:1.1rem}}


/* V5.5.3 vacation editor, cumulative live timer and dashboard visual corrections */
.admin-module-grid,.developer-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}
.admin-module-card,.developer-card{min-height:92px;background:var(--theme-surface);border-color:var(--theme-border);color:var(--theme-text)}
.admin-module-card:hover,.developer-card:not(.is-unavailable):hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,23,42,.14)}
.vacation-editor-modal .modal-content{background:var(--theme-surface);color:var(--theme-text);border:1px solid var(--theme-border);border-radius:24px;overflow:hidden}
.vacation-editor-modal .modal-header,.vacation-editor-modal .modal-footer{border-color:var(--theme-border)}
.vacation-editor-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.vacation-editor-summary>div,.vacation-editor-side,.vacation-balance-box{padding:14px;border:1px solid var(--theme-border);border-radius:16px;background:var(--theme-surface-soft)}
.vacation-editor-summary small,.vacation-editor-summary strong,.vacation-balance-box span{display:block}.vacation-editor-summary small{color:var(--theme-muted);margin-bottom:4px}.vacation-editor-summary strong{font-size:1.05rem}.vacation-balance-box{display:grid;gap:5px}.vacation-balance-box.is-ok{border-color:rgba(97,194,45,.45)}.vacation-balance-box.is-warning{border-color:rgba(211,47,47,.55);background:rgba(211,47,47,.08)}
.vacation-legend{display:grid;gap:8px;font-size:.83rem;color:var(--theme-muted)}.vacation-legend span{display:flex;align-items:center;gap:8px}.vacation-legend i,.vacation-calendar-markers i{display:inline-block;width:22px;height:4px;border-radius:999px}.vacation-legend .is-requested,.vacation-calendar-markers .is-requested{background:#9aa5b1}.vacation-legend .is-approved,.vacation-calendar-markers .is-approved{background:#61C22D}.vacation-legend .is-rejected,.vacation-calendar-markers .is-rejected{background:#d32f2f}.vacation-legend .is-current,.vacation-calendar-markers .is-current{background:#3A73BA}
.vacation-department-calendar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.vacation-calendar-month{border:1px solid var(--theme-border);border-radius:16px;padding:12px;background:var(--theme-surface-soft)}.vacation-calendar-month h6{text-transform:capitalize}.vacation-calendar-weekdays,.vacation-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.vacation-calendar-weekdays span{text-align:center;color:var(--theme-muted);font-size:.72rem;font-weight:700}.vacation-calendar-day{min-height:48px;padding:5px;border:1px solid var(--theme-border);border-radius:9px;background:var(--theme-surface);display:flex;flex-direction:column;gap:3px}.vacation-calendar-day.is-empty{visibility:hidden}.vacation-calendar-day b{font-size:.76rem}.vacation-calendar-markers{display:grid;gap:2px}.vacation-calendar-markers i{width:100%;height:3px}
.vacation-overlap-table td,.vacation-overlap-table th{white-space:nowrap}
@media(max-width:1100px){.admin-module-grid,.developer-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vacation-department-calendar{grid-template-columns:1fr}}
@media(max-width:700px){.vacation-editor-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.vacation-editor-modal .modal-dialog{margin:.5rem}.vacation-calendar-day{min-height:42px}.vacation-editor-modal .modal-footer{display:grid;grid-template-columns:1fr 1fr}.vacation-editor-modal .modal-footer .btn:first-child{grid-column:1/-1}}
@media(max-width:520px){.admin-module-grid,.developer-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vacation-editor-summary{grid-template-columns:1fr 1fr}.vacation-editor-summary>div{padding:10px}.vacation-department-calendar{display:block}.vacation-calendar-month+.vacation-calendar-month{margin-top:12px}}

/* V5.5.4 authentication policy and AutoDo colors */
.user-pill{background:#93ca4e}
.hero-card{background:linear-gradient(135deg,#4e7dc9,#8fc631)}
html[data-theme-preference="dark"] .hero-card{background:linear-gradient(135deg,#23395c,#52721b)}
.passkey-login-panel{padding:2rem 1rem;text-align:center}
.auth-tabs{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.auth-tabs .nav-link{display:inline-flex;align-items:center;justify-content:center}

/* V5.6.0 - Terminal / iPad kiosk mode */
.topbar-brand{display:inline-flex;align-items:center;min-width:0}.topbar-logo{display:block;width:auto;height:32px;max-width:180px;object-fit:contain}.sidebar .brand{display:none!important}
.terminal-body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 25%,#fff 0,#f3f6fb 55%,#e9eef7 100%);color:#17243a;}.terminal-shell{min-height:100vh;display:flex}.terminal-login{position:relative;min-height:100vh;width:100%;display:grid;place-items:center;padding:32px}.terminal-login-card{width:min(100%,585px);padding:51px 48px 42px;border:1px solid #e2e8f2;border-radius:36px;background:#fff;box-shadow:0 24px 70px rgba(35,57,92,.13)}.terminal-login-card h1{text-align:center;margin:24px 0 9px;font-size:3rem;font-weight:900}.terminal-login-card>p{text-align:center;color:#718096;font-size:1.35rem}.terminal-logo{display:block;width:auto;height:81px;max-width:345px;margin:0 auto;object-fit:contain}.terminal-pin-input{display:block;width:100%;height:87px;margin:33px 0 24px;border:0;border-bottom:4px solid #4e7dc9;background:transparent;text-align:center;font-size:3rem;font-weight:900;letter-spacing:1.5rem;color:#17243a;outline:0}.terminal-pin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.terminal-pin-grid button{min-height:87px;border:1px solid #d9e2ef;border-radius:21px;background:#fff;color:#17243a;font-size:1.725rem;font-weight:800;transition:.15s}.terminal-pin-grid button:active{transform:scale(.97);background:#edf4ff}.terminal-pin-grid .terminal-pin-ok{border-color:#7cc83e;background:#7cc83e;color:#fff}.terminal-version{position:fixed;right:26px;bottom:18px;color:#8792a3;font-size:.8rem}.terminal-dashboard{width:100%;max-width:1024px;margin:auto;padding:24px;display:flex;flex-direction:column;gap:18px;min-height:100vh}.terminal-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border:1px solid #e2e8f2;border-radius:22px;background:#fff;box-shadow:0 14px 35px rgba(35,57,92,.08)}.terminal-topbar img{height:34px;width:auto;max-width:190px;object-fit:contain}.terminal-user-pill{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#93ca4e;color:#fff;font-weight:900}.terminal-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.75fr);gap:24px;padding:34px;border-radius:32px;background:linear-gradient(135deg,#4e7dc9,#8fc631);color:#fff;box-shadow:0 24px 70px rgba(58,115,186,.2)}.terminal-status{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(255,255,255,.12);font-weight:800}.terminal-hero .eyebrow{color:#aaf13e}.terminal-hero h1{font-size:clamp(4rem,10vw,7.5rem);line-height:.95;font-weight:950;letter-spacing:-.06em;font-variant-numeric:tabular-nums;margin:.35rem 0 .75rem}.terminal-hero p{font-size:1.15rem}.terminal-timer-box{display:flex;flex-direction:column;justify-content:center;padding:22px;border:1px solid rgba(255,255,255,.3);border-radius:24px;background:rgba(255,255,255,.12)}.terminal-timer-box small{margin-top:14px}.terminal-timer-box small:first-child{margin-top:0}.terminal-timer-box strong{font-size:2rem;font-variant-numeric:tabular-nums}.terminal-actions{padding:16px;border:1px solid #e2e8f2;border-radius:22px;background:#fff;box-shadow:0 14px 35px rgba(35,57,92,.08)}.terminal-actions form{display:flex;gap:12px}.terminal-actions .btn{flex:1;min-height:62px;font-size:1.15rem;font-weight:800;display:flex;align-items:center;justify-content:center;gap:9px}.terminal-logout{margin-top:auto;min-height:54px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:#fff}.terminal-success{position:fixed;z-index:20;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:30px;background:rgba(15,23,42,.72);color:#fff;text-align:center;backdrop-filter:blur(7px)}.terminal-success i{font-size:4rem;color:#93ca4e}.terminal-success strong{font-size:1.75rem}.terminal-success span{font-size:1.05rem}.terminal-setting-switches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;border:1px solid var(--theme-border);border-radius:18px;background:var(--theme-surface-soft)}
@media(max-width:760px){.topbar-logo{height:28px;max-width:145px}.terminal-dashboard{padding:14px}.terminal-hero{grid-template-columns:1fr;padding:25px}.terminal-timer-box{display:grid;grid-template-columns:1fr auto;gap:5px 15px}.terminal-timer-box small{margin-top:0}.terminal-timer-box strong{text-align:right;font-size:1.45rem}.terminal-actions form{flex-direction:column}.terminal-setting-switches{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.terminal-login{padding:18px}.terminal-login-card{padding:34px 24px;border-radius:28px}.terminal-login-card h1{font-size:2.35rem}.terminal-login-card>p{font-size:1.05rem}.terminal-logo{height:64px;max-width:270px}.terminal-pin-input{height:72px;margin:25px 0 20px;font-size:2.5rem;letter-spacing:1.2rem}.terminal-pin-grid{gap:11px}.terminal-pin-grid button{min-height:72px;font-size:1.4rem;border-radius:17px}.terminal-dashboard{padding:10px}.terminal-topbar{padding:10px 14px}.terminal-hero h1{font-size:3.4rem}.terminal-setting-switches{grid-template-columns:1fr}}

/* V6.0.0 - Persönliches Arbeitskonto */
.account-page-head{margin-bottom:22px}.account-balance-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:28px;padding:34px;margin-bottom:20px;border-radius:32px;background:linear-gradient(135deg,#4e7dc9,#8fc631);color:#fff;box-shadow:0 24px 70px rgba(58,115,186,.2)}.account-balance-hero.is-negative{background:linear-gradient(135deg,#98443e,#d26b54)}html[data-theme-preference="dark"] .account-balance-hero{background:linear-gradient(135deg,#23395c,#52721b)}html[data-theme-preference="dark"] .account-balance-hero.is-negative{background:linear-gradient(135deg,#4d2327,#7f352f)}.account-balance-hero .eyebrow{color:rgba(255,255,255,.72)}.account-balance-hero>div>strong{display:block;margin:.35rem 0 .65rem;font-size:clamp(3.5rem,8vw,6.6rem);font-weight:950;line-height:.92;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.account-balance-hero p{margin:0;color:rgba(255,255,255,.78)}.account-balance-meta{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-self:center}.account-balance-meta>div{padding:18px;border:1px solid rgba(255,255,255,.28);border-radius:20px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px)}.account-balance-meta span,.account-balance-meta b,.account-balance-meta small{display:block}.account-balance-meta span{font-size:.82rem;color:rgba(255,255,255,.7)}.account-balance-meta b{margin:.35rem 0;font-size:1.65rem}.account-balance-meta small{color:rgba(255,255,255,.75)}.account-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.account-summary-card{display:flex;align-items:center;gap:16px;padding:20px;border:1px solid var(--theme-border);border-radius:20px;background:var(--theme-surface);box-shadow:var(--theme-shadow)}.account-summary-card>i{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:15px;background:var(--theme-surface-soft);color:#4e7dc9;font-size:1.35rem}.account-summary-card span,.account-summary-card strong,.account-summary-card small{display:block}.account-summary-card span{color:var(--theme-muted);font-size:.82rem}.account-summary-card strong{margin:.15rem 0;font-size:1.5rem;color:var(--theme-text)}.account-summary-card small{color:var(--theme-muted);line-height:1.35}.account-layout-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:20px;margin-bottom:20px}.account-panel{margin:0}.account-panel .panel-title-row p{margin:.35rem 0 0;color:var(--theme-muted)}.vacation-progress{padding:16px;margin-bottom:14px;border:1px solid var(--theme-border);border-radius:16px;background:var(--theme-surface-soft)}.vacation-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:10px}.vacation-progress span{color:var(--theme-muted)}.vacation-progress .progress{height:9px;background:var(--theme-border)}.vacation-progress .progress-bar{background:linear-gradient(90deg,#4e7dc9,#8fc631)}.account-vacation-list,.overlap-list,.correction-list{display:grid;gap:10px}.account-vacation-row,.overlap-row,.correction-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--theme-border)}.account-vacation-row:last-child,.overlap-row:last-child,.correction-row:last-child{border-bottom:0}.account-vacation-row strong,.account-vacation-row small,.overlap-row strong,.overlap-row small,.correction-row strong,.correction-row small{display:block}.account-vacation-row small,.overlap-row small,.correction-row small{color:var(--theme-muted);margin-top:2px}.overlap-row>span{flex:0 0 auto;padding:6px 10px;border-radius:999px;background:rgba(244,166,42,.14);color:#ae6d0a;font-weight:800}.account-status-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:800;white-space:nowrap}.account-status-pill.is-requested{background:rgba(154,165,177,.18);color:var(--theme-muted)}.account-status-pill.is-approved{background:rgba(97,194,45,.15);color:#348623}.account-status-pill.is-rejected{background:rgba(211,47,47,.14);color:#b93d36}.account-weeks-panel{margin-bottom:20px}.workweek-list{display:grid;gap:12px}.workweek-item{border:1px solid var(--theme-border);border-radius:18px;background:var(--theme-surface-soft);overflow:hidden}.workweek-item summary{display:grid;grid-template-columns:minmax(170px,1fr) auto 24px;align-items:center;gap:18px;padding:16px 18px;cursor:pointer;list-style:none}.workweek-item summary::-webkit-details-marker{display:none}.workweek-item summary strong,.workweek-item summary small{display:block}.workweek-item summary small{color:var(--theme-muted);margin-top:2px}.workweek-summary{display:flex;align-items:center;gap:16px;color:var(--theme-muted);font-size:.86rem}.workweek-summary b{padding:5px 9px;border-radius:999px}.workweek-summary b.is-positive{color:#2d8c48;background:rgba(97,194,45,.14)}.workweek-summary b.is-negative{color:#bc433d;background:rgba(211,47,47,.12)}.workweek-item summary>i{transition:transform .2s}.workweek-item[open] summary>i{transform:rotate(180deg)}.workweek-item .table-responsive{border-top:1px solid var(--theme-border);background:var(--theme-surface)}.account-week-table{margin:0}.account-week-table th{font-size:.78rem;color:var(--theme-muted);text-transform:uppercase;letter-spacing:.04em}.booking-timeline{display:grid;gap:0;max-height:520px;overflow:auto;padding-right:6px}.booking-event{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0}.booking-event:not(:last-child):after{content:"";position:absolute;left:20px;top:42px;bottom:-8px;width:2px;background:var(--theme-border)}.booking-event>i{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--theme-surface-soft);color:#4e7dc9;font-size:1.1rem;z-index:1}.booking-event strong,.booking-event small{display:block}.booking-event small{color:var(--theme-muted)}.booking-event time{font-weight:850;font-variant-numeric:tabular-nums}.empty-state.compact{padding:28px 12px}@media(max-width:1100px){.account-balance-hero{grid-template-columns:1fr}.account-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-layout-grid{grid-template-columns:1fr}}@media(max-width:700px){.account-balance-hero{padding:25px;border-radius:26px}.account-balance-meta{grid-template-columns:1fr 1fr}.workweek-item summary{grid-template-columns:1fr 24px}.workweek-summary{grid-column:1/-1;grid-row:2;justify-content:space-between}.account-week-table thead{display:none}.account-week-table,.account-week-table tbody,.account-week-table tr,.account-week-table td{display:block;width:100%}.account-week-table tr{padding:12px 15px;border-bottom:1px solid var(--theme-border)}.account-week-table td{display:flex;justify-content:space-between;gap:15px;padding:5px 0!important;border:0;text-align:right!important}.account-week-table td:before{content:attr(data-label);color:var(--theme-muted);text-align:left}.account-week-table td:first-child{padding-bottom:8px!important}.account-week-table td:first-child:before{content:""}}@media(max-width:520px){.account-summary-grid{grid-template-columns:1fr 1fr;gap:10px}.account-summary-card{display:block;padding:15px;text-align:center}.account-summary-card>i{margin:0 auto 10px}.account-summary-card strong{font-size:1.25rem}.account-balance-meta{grid-template-columns:1fr}.account-vacation-row,.overlap-row,.correction-row{align-items:flex-start}.booking-event{grid-template-columns:38px minmax(0,1fr) auto}.booking-event>i{width:38px;height:38px}.booking-event:not(:last-child):after{left:18px}}

/* Per-entry correction forms on the user dashboard */
.icon-action-button{display:inline-grid;place-items:center;width:38px;min-width:38px;height:38px;padding:0}.btn-sm.icon-action-button{width:34px;min-width:34px;height:34px}.booking-entry{display:grid;gap:8px}.booking-correction-form{padding:14px;border:1px solid var(--theme-border);border-radius:14px;background:var(--theme-surface)}.booking-correction-form .form-label{font-size:.82rem;color:var(--theme-muted);font-weight:800}@media(max-width:520px){.booking-item{align-items:flex-start;flex-wrap:wrap}.booking-item .icon-action-button{width:34px;margin-left:auto!important}}
.pin-input {font-weight: 700;font-size: 5rem;line-height: 5rem;}
.ad-brand-type,body,button,input,select,textarea{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif}body{font-weight:500}.pin-card h1,.page-head h1,.hero-card h1,.terminal-hero h1,.account-balance-hero>div>strong{font-family:"Arial Black",Arial,"Helvetica Neue",Helvetica,sans-serif;font-weight:900}.btn,.nav-link,.form-label,.table th,.sidebar a,.app-navigation a,.dropdown-item,.stat-card span,.booking-item strong{font-weight:700}.eyebrow,.hero-status,.terminal-status,.user-pill,.terminal-user-pill{font-weight:800}
.terminal-login {background: #4770b2;}
.terminal-pin-input {
    display: block;
    width: 100%;
    height: 60px;
    margin: 0px 0 16px;
    border: 0;
    border-bottom: 3px solid #4e7dc9;
    background: transparent;
    text-align: center;
    font-size: 4rem;
    font-weight: 700;
    letter-spacing: 1.15rem;
    color: #17243a;
    outline: 0;
    padding-bottom: 10px;
}
/* V1.1.5 - Terminal dashboard and enlarged PIN controls */
.terminal-login-card{width:min(100%,585px);padding:51px 48px 42px;border-radius:36px}.terminal-login-card h1{margin:24px 0 9px;font-size:3rem}.terminal-login-card>p{font-size:1.35rem}.terminal-logo{height:81px;max-width:345px}.terminal-pin-input{height:90px;margin:0 0 24px;border-bottom-width:4px;font-size:6rem;line-height:6rem;letter-spacing:1.7rem;padding-bottom:15px}.terminal-pin-grid{gap:15px}.terminal-pin-grid button{min-height:87px;border-radius:21px;font-size:1.725rem}.terminal-actions .btn{min-height:72px;font-size:1.3rem}.terminal-logout{min-height:62px;font-size:1.15rem}
@media(max-width:520px){.terminal-login-card{padding:34px 24px;border-radius:28px}.terminal-login-card h1{font-size:2.35rem}.terminal-login-card>p{font-size:1.05rem}.terminal-logo{height:64px;max-width:270px}.terminal-pin-input{height:76px;margin:0 0 20px;font-size:4.5rem;line-height:4.5rem;letter-spacing:1.3rem;padding-bottom:12px}.terminal-pin-grid{gap:11px}.terminal-pin-grid button{min-height:72px;font-size:1.4rem;border-radius:17px}}

.authenticator-setup-grid{display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:1.5rem;align-items:start}.authenticator-qr-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1rem;border:1px solid var(--theme-border);border-radius:1rem;background:#fff}.authenticator-qr-code{width:220px;height:220px;display:flex;align-items:center;justify-content:center}.authenticator-qr-code canvas,.authenticator-qr-code img{display:block;max-width:100%;height:auto!important}@media(max-width:767.98px){.authenticator-setup-grid{grid-template-columns:1fr}.authenticator-qr-card{justify-self:center;width:100%;max-width:280px}}

.feedback-attachment img{display:block;max-width:100%;max-height:640px;object-fit:contain;background:var(--theme-surface-soft)}

/* V1.6.0 Profil und Zeitauswertung */
.profile-readonly-value{min-height:48px;padding:.75rem 1rem;border:1px solid var(--bs-border-color);border-radius:14px;background:var(--bs-tertiary-bg);font-weight:700;display:flex;align-items:center}.report-summary-card small{display:block;margin-top:.35rem;font-size:.75rem;font-weight:500;opacity:.72}.report-table td small{display:block;color:var(--bs-secondary-color);margin-top:.2rem}.report-summary-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}

/* V1.6.2 - Scrollbare Modals und Profil-Informationen */
.modal-dialog{max-height:calc(100dvh - 1rem)}
.modal-content{max-height:calc(100dvh - 1rem);overflow:hidden}
.modal-content>form{display:flex;flex-direction:column;min-height:0;max-height:inherit}
.modal-header,.modal-footer{flex:0 0 auto}
.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.profile-info{height:100%;padding:.9rem 1rem;border:1px solid var(--theme-border);border-radius:14px;background:var(--theme-surface-soft)}
.profile-info-label{margin-bottom:.3rem;color:var(--theme-muted);font-size:.82rem;font-weight:700}
.profile-info-value{font-size:1rem;font-weight:700;line-height:1.35;overflow-wrap:anywhere}
@media(min-width:576px){.modal-dialog{max-height:calc(100dvh - 3.5rem)}.modal-content{max-height:calc(100dvh - 3.5rem)}}

/* V1.6.3: Zeitkorrektur-Modal und Entwicklerdokumentation */
.time-correction-bookings{display:grid;gap:.65rem}.time-correction-booking{display:grid;grid-template-columns:32px minmax(130px,1fr) auto minmax(150px,auto);align-items:center;gap:.75rem;width:100%;padding:.8rem 1rem;border:1px solid var(--bs-border-color);border-radius:14px;background:var(--bs-body-bg);min-width:0}.time-correction-booking.is-target{border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.12)}.time-correction-booking-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--bs-tertiary-bg)}.time-correction-booking-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-correction-booking-badge{justify-self:start}.time-correction-booking-time{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.time-correction-requested{white-space:nowrap;padding:.35rem .55rem;border-radius:9px;background:var(--bs-tertiary-bg);font-variant-numeric:tabular-nums}.time-correction-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.time-correction-summary>div,.time-correction-impact>div{padding:.85rem;border:1px solid var(--bs-border-color);border-radius:14px;background:var(--bs-body-bg)}.time-correction-summary small,.time-correction-impact span{display:block;color:var(--bs-secondary-color);margin-bottom:.25rem}.time-correction-impact{display:grid;gap:.7rem}.time-correction-impact strong{font-variant-numeric:tabular-nums}.time-correction-impact .is-positive{color:var(--bs-success)}.time-correction-impact .is-negative{color:var(--bs-danger)}
.documentation-layout{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:24px;align-items:start}.documentation-layout>*{min-width:0}.documentation-nav{position:sticky;top:90px;max-height:calc(100vh - 120px);overflow-y:auto;overflow-x:hidden}.documentation-nav .nav-link{display:flex;gap:10px;align-items:flex-start;text-align:left;border-radius:12px;color:var(--bs-body-color);padding:.75rem;white-space:normal}.documentation-nav .nav-link.active{background:var(--bs-primary);color:#fff}.documentation-section{scroll-margin-top:100px;min-width:0}.documentation-card{border:1px solid var(--bs-border-color);border-radius:18px;background:var(--bs-body-bg);padding:24px;overflow:hidden}.documentation-card pre,.documentation-card code{max-width:100%;overflow-wrap:anywhere;word-break:break-word}.documentation-card pre{overflow:auto;padding:1rem;border-radius:12px;background:var(--bs-tertiary-bg)}.documentation-card .table-responsive{max-width:100%}.documentation-search{position:relative}.documentation-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--bs-secondary-color);z-index:2}.documentation-search input{padding-left:42px}.documentation-stat{border:1px solid var(--bs-border-color);border-radius:16px;padding:16px;height:100%;min-width:0}.documentation-stat strong{font-size:1.6rem;display:block;overflow-wrap:anywhere}.documentation-file{display:grid;grid-template-columns:minmax(190px,280px) minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--bs-border-color);min-width:0}.documentation-file:last-child{border-bottom:0}.documentation-section[data-hidden="1"]{display:none}
@media(max-width:991.98px){.time-correction-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.documentation-layout{grid-template-columns:1fr}.documentation-nav{position:static;max-height:none}.documentation-file{grid-template-columns:1fr}}
@media(max-width:767.98px){#timeCorrectionModal .modal-content{border-radius:0!important}#timeCorrectionModal .modal-body{padding:1rem}.time-correction-summary{grid-template-columns:1fr 1fr}.time-correction-booking{grid-template-columns:28px minmax(95px,1fr) auto;gap:.5rem;padding:.7rem}.time-correction-booking-icon{width:28px;height:28px}.time-correction-booking-badge{display:none}.time-correction-requested{grid-column:2/-1;justify-self:start}.documentation-card{padding:16px}}
@media(max-width:479.98px){.time-correction-summary{grid-template-columns:1fr}.time-correction-booking{grid-template-columns:28px minmax(0,1fr) auto}.time-correction-booking-label{white-space:normal}}
.dashboard-progress-wrap{margin:14px 0 12px}.dashboard-progress{height:12px;background:rgba(58,115,186,.12);border-radius:999px;overflow:hidden}.dashboard-progress .progress-bar{background:linear-gradient(90deg,var(--ad-blue),var(--ad-green));border-radius:999px}.dashboard-progress-wrap>small{display:block;margin-top:6px;font-size:.75rem;color:var(--theme-muted)}.correction-datetime-field{min-width:230px}html[data-bs-theme="dark"] .dashboard-progress{background:rgba(255,255,255,.12)}@media(max-width:520px){.correction-datetime-field{width:100%;min-width:0}}

.employee-calendar-card{width:100%;margin-bottom:1.5rem}.employee-calendar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.employee-calendar-head h2{margin:.15rem 0}.employee-calendar-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.employee-calendar-controls .form-select{min-width:135px}.employee-calendar-legend{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:1rem}.employee-calendar-legend span{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:700}.employee-calendar-legend span:before{content:"";width:.75rem;height:.75rem;border-radius:.2rem;background:#94a3b8}.employee-calendar-legend .is-public-holiday:before{background:#c62828}.employee-calendar-legend .is-vacation-requested:before{background:#f2b632}.employee-calendar-legend .is-vacation-approved:before{background:#4f7bd9}.employee-calendar-legend .is-vacation-rejected:before{background:#d65a5a}.employee-calendar-legend .is-vacation-current:before{background:#6dbb45}.employee-calendar-legend .is-absence-sick:before{background:#8e5bb7}.employee-calendar-legend .is-absence-training:before{background:#00a6a6}.employee-calendar-legend .is-absence-business-trip:before{background:#d97706}.employee-calendar-legend .is-absence-homeoffice:before{background:#64748b}.employee-calendar-legend .is-absence-special-leave:before{background:#db2777}.employee-calendar-scroll{max-height:62vh;overflow:auto;border:1px solid var(--theme-border);border-radius:1rem}.employee-calendar-table{border-collapse:separate;border-spacing:0;min-width:1100px;width:100%;font-size:.82rem;background:var(--theme-surface)}.employee-calendar-table th,.employee-calendar-table td{min-width:34px;height:36px;padding:0;border-right:1px solid var(--theme-border);border-bottom:1px solid var(--theme-border);text-align:center}.employee-calendar-table thead th{position:sticky;top:0;z-index:3;background:var(--theme-surface-soft);font-weight:800}.employee-calendar-table thead th span,.employee-calendar-table thead th small{display:block;line-height:1.1}.employee-calendar-table thead th small{font-size:.66rem;color:var(--theme-muted);margin-top:.15rem}.employee-calendar-table .employee-calendar-name{position:sticky;left:0;z-index:2;min-width:190px;max-width:190px;padding:0 .85rem;text-align:left;white-space:nowrap;background:var(--theme-surface);box-shadow:4px 0 10px rgba(15,23,42,.05)}.employee-calendar-table thead .employee-calendar-name{z-index:5;background:var(--theme-surface-soft)}.employee-calendar-table .is-weekend{background-color:rgba(148,163,184,.10)}.employee-calendar-table .is-holiday{background-color:rgba(198,40,40,.10)}.employee-calendar-table thead .is-holiday{color:#b42318;background:rgba(198,40,40,.14)}.employee-calendar-holiday-icon{display:block;margin:.12rem auto 0;font-size:.55rem;color:#c62828}.employee-calendar-holiday-row th,.employee-calendar-holiday-row td{height:30px;background:var(--theme-surface-soft)}.employee-calendar-holiday-row .employee-calendar-name{font-size:.75rem;font-weight:800;color:#b42318}.employee-calendar-holiday-marker{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#c62828;color:#fff;font-size:.65rem;font-weight:800}.employee-calendar-table .is-today{box-shadow:inset 0 0 0 2px var(--primary,#3A73BA)}.employee-calendar-table td.has-entry{position:relative}.employee-calendar-markers{position:absolute;inset:3px 1px;display:grid;gap:2px;align-content:center}.employee-calendar-markers i{display:block;min-height:4px;border-radius:.2rem;background:#94a3b8}.employee-calendar-markers .is-vacation-requested{background:#f2b632}.employee-calendar-markers .is-vacation-approved{background:#4f7bd9}.employee-calendar-markers .is-vacation-rejected{background:#d65a5a}.employee-calendar-markers .is-vacation-current{background:#6dbb45}.employee-calendar-markers .is-absence-sick{background:#8e5bb7}.employee-calendar-markers .is-absence-training{background:#00a6a6}.employee-calendar-markers .is-absence-business-trip{background:#d97706}.employee-calendar-markers .is-absence-homeoffice{background:#64748b}.employee-calendar-markers .is-absence-special-leave{background:#db2777}@media(max-width:767.98px){.employee-calendar-head{flex-direction:column}.employee-calendar-controls{width:100%}.employee-calendar-controls form{flex:1}.employee-calendar-controls .form-select{min-width:0}.employee-calendar-table .employee-calendar-name{min-width:150px;max-width:150px}.employee-calendar-scroll{max-height:70vh}}

.absence-year-overview{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--bs-border-color)}.absence-year-overview .section-head{align-items:flex-start}.absence-year-summary{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.absence-year-summary>span{min-width:110px;padding:.8rem 1rem;border:1px solid var(--bs-border-color);background:var(--bs-body-bg)}.absence-year-summary strong,.absence-year-summary small{display:block}.absence-year-summary strong{font-size:1.25rem}.absence-year-summary small{color:var(--bs-secondary-color)}.absence-type-badge,.absence-status{display:inline-flex;align-items:center;padding:.28rem .55rem;font-size:.78rem;font-weight:700;border:1px solid var(--bs-border-color)}.absence-status.is-rejected{opacity:.65;text-decoration:line-through}@media(max-width:767.98px){.absence-year-overview .section-head{gap:.75rem}.absence-year-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.absence-year-summary>span{min-width:0}}

/* V1.6.15 */
.admin-module-card:after,.admin-module-card:hover:after{display:none!important;content:none!important}
.employee-calendar-employee{display:inline-flex;align-items:center;gap:.55rem;max-width:100%}.employee-calendar-employee .status-dot{flex:0 0 auto}.employee-calendar-employee>span:last-child{overflow:hidden;text-overflow:ellipsis}
.employee-management-layout .employee-edit-panel{position:static}.employee-list-panel{position:sticky;top:1rem}.employee-management-list{display:flex;flex-direction:column;gap:.65rem;max-height:72vh;overflow:auto;padding-right:.2rem}.employee-management-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem;border:1px solid var(--theme-border);background:var(--theme-surface-soft);border-radius:1rem}.employee-management-item.is-active{border-color:var(--primary,#3A73BA);box-shadow:inset 3px 0 0 var(--primary,#3A73BA)}.employee-management-copy{display:flex;flex-direction:column;min-width:0}.employee-management-copy strong,.employee-management-copy small,.employee-management-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.employee-management-copy small{color:var(--theme-muted)}.employee-management-copy span{font-size:.78rem;margin-top:.2rem}.employee-edit-placeholder{text-align:center;padding:3rem 1.5rem}.employee-edit-placeholder>i{font-size:2.5rem;color:var(--primary,#3A73BA)}
@media(max-width:991.98px){.employee-list-panel{position:static}.employee-management-list{max-height:42vh}}

.account-vacation-actions{display:flex;align-items:center;gap:.6rem}.account-status-pill.is-cancelled{background:#eef1f4;color:#6c757d}.account-vacation-row:has(.is-cancelled){opacity:.72}

/* V1.6.22 dashboard designer and employee calendar */
.dashboard-widget-hidden{display:none!important}.dashboard-config-button{display:inline-flex;align-items:center;gap:.5rem}.dashboard-designer-list{display:flex;flex-direction:column;gap:.55rem}.dashboard-designer-item{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.6rem;padding:.85rem;border:1px solid var(--theme-border);border-radius:.85rem;background:var(--theme-surface-soft);cursor:grab}.dashboard-designer-item.is-dragging{opacity:.45}.dashboard-designer-handle{color:var(--theme-muted)}.dashboard-designer-item label{display:flex;align-items:center;gap:.6rem;font-weight:700;margin:0}.employee-calendar-controls{flex-wrap:wrap}.employee-calendar-controls [data-calendar-department]{min-width:180px}.employee-calendar-filter{display:flex;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin:1rem 0}.employee-calendar-category-actions{display:flex;gap:.15rem}.employee-calendar-category-list{display:flex;flex-wrap:wrap;gap:.55rem 1rem}.employee-calendar-category-list label{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:700}.employee-calendar-category-list label:before{content:'';width:.7rem;height:.7rem;border-radius:.2rem;background:currentColor}.employee-calendar-table th.is-today,.employee-calendar-table td.is-today{border-left:3px solid var(--ad-blue)!important;border-right:3px solid var(--ad-blue)!important}.employee-calendar-table thead th.is-today{border-top:3px solid var(--ad-blue)!important}.employee-calendar-table tbody tr:last-child td.is-today{border-bottom:3px solid var(--ad-blue)!important}.employee-calendar-events{position:absolute;inset:2px;display:flex;gap:2px}.employee-calendar-event{display:flex;align-items:center;justify-content:center;flex:1;min-width:0;border-radius:.25rem;color:#fff;font-size:.9rem}.employee-calendar-table td.has-entry{position:relative;padding:0}.employee-calendar-event-emoji{font-size:1rem;line-height:1;filter:saturate(1.05)}.employee-calendar-event.is-vacation-requested{background:#e4b43e}.employee-calendar-event.is-vacation-approved{background:#5b78d6}.employee-calendar-event.is-vacation-rejected{background:#c86a64}.employee-calendar-event.is-vacation-current{background:#75b64d}.employee-calendar-event.is-absence-sick{background:#7651b8}.employee-calendar-event.is-absence-training{background:#499d9a}.employee-calendar-event.is-absence-business-trip{background:#d17d18}.employee-calendar-event.is-absence-homeoffice{background:#66748a}.employee-calendar-event.is-absence-special-leave{background:#bd3f7c}.employee-calendar-card.is-loading{opacity:.55;pointer-events:none}.employee-calendar-card.is-loading:after{content:'Kalender wird geladen …';position:absolute;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.72);font-weight:800;z-index:5}.employee-calendar-card{position:relative}@media(max-width:767px){.dashboard-config-button span{display:none}.employee-calendar-controls [data-calendar-department]{width:100%}.employee-calendar-category-list{width:100%}}

/* V1.6.22.2 calendar toolbar and dashboard designer polish */
.dashboard-config-button{width:42px;height:42px;padding:0;display:inline-grid;place-items:center;border-radius:.6rem}.dashboard-config-button i{font-size:1.05rem}.dashboard-config-button span{display:none!important}.dashboard-designer-list:empty:before{content:'Keine Dashboard-Karten verfügbar.';display:block;padding:1rem;border:1px dashed var(--theme-border);border-radius:.85rem;color:var(--theme-muted);text-align:center}.employee-calendar-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,700px);align-items:start;gap:1.25rem}.employee-calendar-toolbar{display:flex;justify-content:flex-end}.employee-calendar-controls{display:grid;grid-template-columns:auto minmax(125px,1fr) minmax(110px,.8fr) auto auto;gap:.5rem;width:100%;align-items:center}.employee-calendar-controls>[data-calendar-department]{grid-column:1/-1;width:100%;min-width:0}.employee-calendar-controls form{display:contents}.employee-calendar-filter{display:block;margin:1rem 0}.employee-calendar-filter-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.65rem}.employee-calendar-category-actions{margin-left:auto}.employee-calendar-category-list{display:flex;flex-wrap:wrap;gap:.45rem}.employee-calendar-category-chip{--calendar-chip:#64748b;position:relative;display:inline-flex!important;align-items:center;gap:.4rem;padding:.42rem .68rem;border:1px solid color-mix(in srgb,var(--calendar-chip) 38%,var(--theme-border));border-radius:999px;background:var(--theme-surface);color:var(--theme-text);font-size:.78rem;font-weight:750;cursor:pointer;transition:.15s ease}.employee-calendar-category-chip input{position:absolute;opacity:0;pointer-events:none}.employee-calendar-category-chip i{color:var(--calendar-chip)}.employee-calendar-category-chip.is-active{background:color-mix(in srgb,var(--calendar-chip) 14%,var(--theme-surface));border-color:color-mix(in srgb,var(--calendar-chip) 60%,var(--theme-border));box-shadow:0 2px 8px rgba(15,23,42,.05)}.employee-calendar-category-chip:not(.is-active){opacity:.55}.employee-calendar-category-chip.is-public-holiday{--calendar-chip:#c62828}.employee-calendar-category-chip.is-vacation-requested{--calendar-chip:#e4b43e}.employee-calendar-category-chip.is-vacation-approved{--calendar-chip:#5b78d6}.employee-calendar-category-chip.is-vacation-rejected{--calendar-chip:#c86a64}.employee-calendar-category-chip.is-vacation-current{--calendar-chip:#75b64d}.employee-calendar-category-chip.is-absence-sick{--calendar-chip:#7651b8}.employee-calendar-category-chip.is-absence-training{--calendar-chip:#499d9a}.employee-calendar-category-chip.is-absence-business-trip{--calendar-chip:#d17d18}.employee-calendar-category-chip.is-absence-homeoffice{--calendar-chip:#66748a}.employee-calendar-category-chip.is-absence-special-leave{--calendar-chip:#bd3f7c}.employee-calendar-table th.is-today,.employee-calendar-table td.is-today{border-left:0!important;border-right:0!important;box-shadow:none!important;background-image:linear-gradient(rgba(58,115,186,.06),rgba(58,115,186,.06))}.employee-calendar-table thead th.is-today{border-top:0!important;background:var(--ad-blue)!important;color:#fff!important;box-shadow:inset 0 -3px 0 rgba(255,255,255,.35)!important}.employee-calendar-table thead th.is-today small{color:rgba(255,255,255,.85)}.employee-calendar-table tbody tr:last-child td.is-today{border-bottom:1px solid var(--theme-border)!important}.employee-calendar-event{min-height:28px;border-radius:.35rem}.employee-calendar-event i{font-size:.95rem}.employee-calendar-event-emoji{display:none!important}@media(max-width:1100px){.employee-calendar-head{grid-template-columns:1fr}.employee-calendar-toolbar{justify-content:stretch}.employee-calendar-controls{max-width:none}}@media(max-width:640px){.employee-calendar-controls{grid-template-columns:auto minmax(0,1fr) minmax(0,.8fr) auto}.employee-calendar-controls .btn-primary{grid-column:1/-1}.employee-calendar-category-chip{font-size:.74rem;padding:.38rem .58rem}}

/* V1.6.23: Zeitauswertung und Service-Monatsabrechnung */
.report-filter-grid .report-filter-submit{grid-column:4;justify-self:end;align-self:end}.service-payroll-panel{margin-bottom:20px}.service-payroll-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.service-payroll-actions form{margin:0}.service-payroll-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}.service-payroll-summary span{padding:14px 16px;border:1px solid var(--theme-border);border-radius:14px;background:var(--theme-surface-soft);color:var(--theme-muted)}.service-payroll-summary strong{display:block;margin-top:4px;color:var(--theme-text);font-size:1.15rem}.service-payroll-table td strong{display:block}@media(max-width:900px){.report-filter-grid .report-filter-submit{grid-column:2}.service-payroll-summary{grid-template-columns:1fr}.service-payroll-actions{justify-content:flex-start}}@media(max-width:520px){.report-filter-grid .report-filter-submit{grid-column:auto;justify-self:stretch}.service-payroll-actions,.service-payroll-actions .btn,.service-payroll-actions form{width:100%}.service-payroll-actions form .btn{width:100%}}

/* v1.6.24 Arbeitszeiten und Kalendernavigation */
.employee-calendar-controls{display:grid;grid-template-columns:minmax(220px,1fr) 42px minmax(130px,170px) minmax(100px,130px) 42px auto;gap:8px;align-items:center}.employee-calendar-controls .calendar-nav-button{width:42px;min-width:42px;padding-left:0;padding-right:0}.worktime-navigation{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.worktime-navigation-form{display:flex;gap:8px;align-items:center}.worktime-navigation-form select:nth-of-type(1){width:82px}.worktime-navigation-form select:nth-of-type(2){width:150px}.worktime-navigation-form select:nth-of-type(3){width:110px}@media(max-width:991.98px){.employee-calendar-controls{grid-template-columns:1fr 42px minmax(110px,1fr) minmax(90px,120px) 42px auto}.worktime-navigation{justify-content:flex-start}}@media(max-width:767.98px){.employee-calendar-controls{grid-template-columns:1fr 42px 1fr 100px 42px auto}.employee-calendar-controls select[data-calendar-department]{grid-column:1/-1}.worktime-navigation-form{width:100%}.worktime-navigation-form select{flex:1!important;width:auto!important}}

/* Hotfix 1.6.24.1: stabile Navigation im Mitarbeiterkalender */
.employee-calendar-head{grid-template-columns:minmax(0,1fr) minmax(760px,1.25fr);align-items:start}
.employee-calendar-toolbar{width:100%;min-width:0}
.employee-calendar-controls{display:grid;grid-template-columns:minmax(240px,1fr) 44px minmax(130px,160px) minmax(105px,125px) 44px minmax(88px,max-content);gap:8px;width:100%;align-items:center}
.employee-calendar-controls>[data-calendar-department]{grid-column:auto!important;width:100%;min-width:0}
.employee-calendar-controls .calendar-nav-button{width:44px;min-width:44px;height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0}
.employee-calendar-controls .btn-primary{min-width:88px;height:42px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding-left:16px;padding-right:16px}
.employee-calendar-controls .form-select{height:42px;min-width:0}
@media(max-width:1350px){.employee-calendar-head{grid-template-columns:1fr}.employee-calendar-toolbar{justify-content:stretch}.employee-calendar-controls{max-width:none}}
@media(max-width:767.98px){.employee-calendar-controls{grid-template-columns:44px minmax(0,1fr) minmax(90px,110px) 44px minmax(82px,max-content)}.employee-calendar-controls>[data-calendar-department]{grid-column:1/-1}.employee-calendar-controls .btn-primary{grid-column:auto;min-width:82px}}
@media(max-width:520px){.employee-calendar-controls{grid-template-columns:44px minmax(0,1fr) 44px}.employee-calendar-controls>[data-calendar-department]{grid-column:1/-1}.employee-calendar-controls [data-calendar-year]{grid-column:1/3}.employee-calendar-controls .btn-primary{grid-column:3/4;width:100%;min-width:0;padding-left:10px;padding-right:10px}}
.worktime-active-filter .badge{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .8rem;font-size:.85rem}.worktime-active-filter .badge a{display:inline-flex;align-items:center;justify-content:center;color:inherit;text-decoration:none}.worktime-active-filter .badge a:hover{opacity:.75}

.external-payroll-section .external-payroll-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:20px}.external-payroll-section .external-payroll-toolbar>div:first-child{display:flex;flex-direction:column}.external-payroll-month-nav{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:20px}.external-payroll-month-nav strong{min-width:150px;text-align:center;font-size:1.1rem}.external-payroll-section .service-payroll-summary{margin-bottom:0}@media(max-width:767.98px){.external-payroll-section .external-payroll-toolbar{align-items:stretch}.external-payroll-section .external-payroll-toolbar>div{width:100%}.external-payroll-section .external-payroll-toolbar .btn,.external-payroll-section .external-payroll-toolbar form{flex:1}.external-payroll-section .external-payroll-toolbar form .btn{width:100%}}

/* V1.6.32 personal dashboard for Mein Arbeitskonto */
.account-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.account-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:20px}.account-dashboard-widget{min-width:0}.account-dashboard-widget-full{grid-column:1/-1}.account-dashboard-widget-half{grid-column:auto}.account-dashboard-grid .account-balance-hero,.account-dashboard-grid .account-summary-grid,.account-dashboard-grid .account-weeks-panel{margin-bottom:0}.account-dashboard-grid .account-panel{height:100%}@media(max-width:1100px){.account-dashboard-grid{grid-template-columns:1fr}.account-dashboard-widget-half{grid-column:1/-1}}@media(max-width:600px){.account-page-head{align-items:flex-start}.account-page-head .dashboard-config-button{flex:0 0 42px}}
.report-filter-grid-new{grid-template-columns:repeat(4,minmax(0,1fr))}.report-employee-tabs{gap:4px;border-bottom:0;margin:0 0 14px;overflow-x:auto;flex-wrap:nowrap}.report-employee-tabs .nav-link{white-space:nowrap;border-radius:12px 12px 0 0}.report-employee-tab-content{margin-bottom:24px}.report-employee-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.report-employee-head h2{margin:2px 0}.report-employee-head small{color:var(--theme-muted)}.report-employee-summary{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.report-employee-summary>span{min-width:88px;padding:9px 12px;border:1px solid var(--theme-border);border-radius:12px;background:var(--theme-surface-soft);text-align:right}.report-employee-summary small{display:block;font-size:.72rem}.report-employee-summary strong{font-size:1rem}.report-employee-summary .is-positive strong{color:#237a42}.report-employee-summary .is-negative strong{color:#b53a36}.report-daily-table{margin:0}.report-daily-table td small{display:block;color:var(--theme-muted)}.report-daily-table tfoot th{border-top:2px solid var(--theme-border);background:var(--theme-surface-soft)}.report-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:700;background:var(--theme-surface-soft)}.report-status-work{color:#237a42}.report-status-vacation{color:#2868a9}.report-status-sick{color:#7b45a1}.report-status-holiday{color:#a45b12}.report-status-missing{color:#b53a36}.report-day-weekend{opacity:.62}.report-day-holiday td{background:rgba(244,162,54,.06)}.report-day-vacation td{background:rgba(58,115,186,.05)}.report-day-sick td{background:rgba(123,69,161,.05)}.report-day-warning td{background:rgba(217,83,79,.06)}@media(max-width:900px){.report-filter-grid-new{grid-template-columns:repeat(2,minmax(0,1fr))}.report-employee-head{align-items:flex-start;flex-direction:column}.report-employee-summary{justify-content:flex-start}}@media(max-width:520px){.report-filter-grid-new{grid-template-columns:1fr}.report-employee-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.report-employee-summary>span{text-align:left}.report-daily-table{min-width:980px}}
