:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#202a34;background:#f6f8fa;font-size:14px;font-synthesis:none}*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7;flex-shrink:0}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1.25px;line-height:1.18;margin:0 0 9px;font-weight:760}h2{letter-spacing:-.6px;font-weight:720}h3{letter-spacing:-.3px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9ce6e8;outline-offset:2px}::selection{background:#c9f4ef}.muted{color:#88919c}.small{font-size:12px}.eyebrow{font-size:11px;letter-spacing:1.65px;color:#19a79d;font-weight:800;margin:0 0 13px}.app-layout{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid #e7ebef;display:flex;flex-direction:column;min-height:100vh;padding:29px 15px;position:relative}.brand{display:flex;gap:13px;align-items:center;padding:1px 13px 52px}.brand>span:last-child{display:flex;flex-direction:column;gap:2px}.brand strong{font-size:17px;letter-spacing:-.6px;font-weight:800;color:#26313e}.brand small{font-size:11px;color:#939da6;letter-spacing:.5px}.brand-icon{width:34px;height:34px;display:inline-grid;grid-template-columns:repeat(2,1fr);gap:3px;transform:rotate(-11deg);flex-shrink:0}.brand-icon i{display:block;border-radius:5px;background:#19b8ae}.brand-icon i:nth-child(2){background:#a6eae1}.brand-icon i:nth-child(3){background:#c5eef2}.brand-icon i:nth-child(4){background:#2d7c9f}.nav-label{font-size:10px;letter-spacing:1.7px;color:#a8b1b9;padding:0 15px 15px;font-weight:750}.main-nav{display:flex;flex-direction:column;gap:5px}.nav-link{height:46px;padding:0 14px;border:0;border-radius:10px;display:flex;gap:13px;align-items:center;color:#737e89;background:transparent;font-weight:610;text-align:left;width:100%;transition:.15s ease}.nav-link:hover{background:#f6f9fa;color:#293a49}.nav-link.active{background:#e8f8f6;color:#0f918c;font-weight:750}.nav-link.active svg{color:#00a99d}.side-bottom{margin-top:auto}.side-tip{border-radius:13px;background:#f2faf8;padding:20px 16px 14px;margin-bottom:17px}.side-tip strong{display:block;font-size:12px;color:#253c3d}.side-tip p{font-size:11px;line-height:1.6;color:#718581;margin:6px 0 0}.tip-dot{width:23px;height:23px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#ddf2ea;margin-bottom:12px}.tip-dot:before{content:'✓';font-size:13px;color:#1eb092}.logout{color:#8b949d}.main-content{min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid #eaedf0;display:flex;align-items:center;justify-content:space-between;padding:0 44px}.breadcrumbs{display:flex;align-items:center;gap:14px;color:#a1aab3;font-size:12px}.breadcrumbs strong{color:#586775;font-weight:700}.crumb-arrow{font-size:19px;color:#bec8d1}.topbar-right{display:flex;align-items:center;gap:23px;color:#88959e;font-size:12px}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#dbf4f1;color:#0d8c83;font-size:14px;font-weight:800}.page-content{padding:43px clamp(22px,3.2vw,56px) 48px;max-width:1820px;margin:0 auto}.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:31px}.intro-subtitle{color:#86919b;margin:0;line-height:1.6;font-size:13px}.header-actions{display:flex;gap:10px;align-items:center}.btn{height:40px;display:inline-flex;gap:9px;align-items:center;justify-content:center;border-radius:9px;border:1px solid transparent;padding:0 16px;white-space:nowrap;font-weight:700;font-size:12px;transition:background-color .15s,box-shadow .15s,transform .15s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:#19b6aa;color:#fff;box-shadow:0 4px 11px rgba(25,182,170,.13)}.btn.primary:hover{background:#11988f}.btn.outline{border-color:#e3e8ec;background:#fff;color:#64727f}.btn.outline:hover{background:#f4f8f9;color:#344452}.btn.danger{background:#fff0ef;color:#bb4848;border-color:#f8dbdb}.plus{font-size:20px;font-weight:400;line-height:0}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:26px}.stat-card{position:relative;background:#fff;border:1px solid #e9eef1;border-radius:13px;min-height:157px;padding:20px 21px;box-shadow:0 2px 13px rgba(26,45,62,.025)}.stat-icon{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;font-size:19px;margin-bottom:12px}.stat-icon.teal{background:#e7f8f5;color:#1cafab}.stat-icon.blue{background:#eaf1ff;color:#6594de}.stat-icon.violet{background:#f0edff;color:#9d8bd8}.stat-icon.green{background:#e6f8ef;color:#3cbe89}.stat-icon.amber{background:#fff0df;color:#d39235}.stat-top{position:absolute;top:29px;left:68px;color:#7d8994;font-size:12px;font-weight:650}.stat-count{font-size:30px;color:#263541;line-height:1.05;font-weight:790;letter-spacing:-.9px;margin:11px 0 9px}.stat-count span{font-size:12px;font-weight:500;color:#97a2aa;letter-spacing:0;margin-left:7px}.stat-count.textual{font-size:23px;letter-spacing:-.8px}.stat-card p{font-size:11px;color:#9aa4ad;margin:0}.warn-stat{border-color:#f6dbb4}.workspace-card{background:#fff;border:1px solid #e9eef1;border-radius:14px;box-shadow:0 4px 19px rgba(26,45,62,.025);overflow:hidden}.workspace-top{padding:24px 26px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.workspace-heading h2{font-size:19px;margin:0 0 4px}.workspace-heading p{font-size:12px;margin:0}.workspace-controls{display:flex;gap:14px;align-items:center}.segmented{background:#f4f6f8;padding:4px;display:flex;gap:3px;border-radius:9px}.segmented button{border:0;border-radius:7px;padding:8px 13px;background:transparent;color:#929da7;font-size:12px;font-weight:750}.segmented button.selected{background:white;color:#1c958e;box-shadow:0 1px 4px rgba(0,0,0,.06)}.year-controls{height:38px;display:flex;align-items:center;justify-content:space-between;border:1px solid #e8edf1;border-radius:9px;min-width:163px}.year-controls span{font-size:12px;color:#4f5d68;font-weight:780;white-space:nowrap;padding:0 5px}.square-btn{border:0;background:transparent;color:#6c7a83;font-size:24px;width:31px;height:34px;line-height:1}.square-btn:hover{background:#edf8f6}.filters-row{display:flex;align-items:center;justify-content:space-between;padding:0 25px 23px;gap:16px;flex-wrap:wrap}.filter-pills{display:flex;gap:6px;align-items:center}.filter-pills button{border:1px solid transparent;color:#84919b;border-radius:8px;background:transparent;padding:9px 12px;font-size:12px;font-weight:650}.filter-pills button.selected{background:#eaf8f5;color:#159d94}.filter-pills span{opacity:.55;padding-left:3px}.legend{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.legend>span{display:flex;align-items:center;gap:6px;color:#97a0a9;font-size:11px}.legend-color{width:11px;height:11px;border-radius:3px;background:#27beb3}.legend-color.special{background:#9b88e4}.legend-color.absence{background:#eca968}.legend-color.holiday{background:#d4e2f9}.calendar-scroll{width:100%;overflow:auto;overscroll-behavior-inline:contain}.calendar-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf0f3;padding:15px 25px;color:#9ba6ae;font-size:11px}.bottom-note{display:flex;align-items:center;gap:10px;color:#939fab;font-size:11px;margin-top:19px}.small-badge{width:19px;height:19px;border:1px solid #c4d1d4;display:grid;place-items:center;flex-shrink:0;border-radius:50%;font-family:Georgia,serif;color:#9eafb5}.year-grid,.month-grid{min-width:1000px}.year-grid-header,.year-grid-row,.month-head,.month-grid-row{display:grid;grid-template-columns:220px minmax(0,1fr) 78px;align-items:stretch}.year-grid-header,.month-head{background:#f8fafb;min-height:46px;border-block:1px solid #eef1f3}.name-header,.balance-header{display:flex;align-items:center;font-size:10px;letter-spacing:1px;color:#a6b0b7;font-weight:790;padding:0 24px}.balance-header{justify-content:center;padding:0 5px}.year-heading-months,.year-months{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));min-width:0}.year-month-heading{display:grid;place-items:center;background:transparent;border:0;border-right:1px solid #e9eef1;color:#99a6af;font-size:10px;letter-spacing:.5px;font-weight:750;min-width:0}.year-month-heading:hover{background:#eaf8f6;color:#148f87}.team-divider{height:42px;background:#fafbfc;display:flex;gap:9px;align-items:center;padding:0 24px;font-size:11px;color:#778691;font-weight:780;border-bottom:1px solid #edf0f2}.team-count{font-weight:500;color:#b0b9bf;margin-left:3px}.team-dot{height:9px;width:9px;border-radius:3px}.team-dot.kita{background:#36b8a9}.team-dot.hort{background:#7a92d9}.year-grid-row,.month-grid-row{height:52px;border-bottom:1px solid #edf0f3}.year-grid-row:hover,.month-grid-row:hover{background:#fbfdfd}.employee-name{height:100%;display:flex;gap:11px;align-items:center;border:0;background:transparent;padding:0 16px 0 22px;min-width:0;text-align:left;font-weight:650;color:#4a5965;font-size:11px}.employee-name:hover .name-text{color:#0c9b94}.name-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.person-avatar{height:29px;width:29px;flex-shrink:0;border-radius:8px;display:grid;place-items:center;font-size:10px;font-weight:800;background:#ddf5f0;color:#1a9b8e}.person-avatar.hort{background:#e8edff;color:#7c8ac8}.year-month{border-right:1px solid #e9eef1;position:relative;display:flex;align-items:center;cursor:pointer}.year-month:hover{background:#f0fbf9}.year-month:nth-child(odd){background-color:rgba(245,248,250,.4)}.month-band-track{height:16px;width:100%;position:relative;background:repeating-linear-gradient(to right,transparent,transparent calc(100% / 4 - 1px),rgba(186,204,211,.18) calc(100% / 4 - 1px),rgba(186,204,211,.18) 25%);border-radius:2px}.annual-band{position:absolute;top:1px;height:14px;border:0;z-index:1;border-radius:4px;min-width:2px;background:#2abcb1;padding:0}.annual-band:hover{background:#098d87;box-shadow:0 0 0 2px #a6e9e3;z-index:2}.annual-band.sonderurlaub{background:#9b88e4}.annual-band.abwesend{background:#efa96b}.balance{background:transparent;border:0;font-size:14px;font-weight:800;color:#2c9d90;white-space:nowrap}.balance:hover{text-decoration:underline}.balance span{font-size:10px;color:#a3acb5;font-weight:500}.balance.negative{color:#cf635b}.days-header,.day-cells{display:grid;grid-template-columns:repeat(var(--days),minmax(34px,1fr));min-width:0}.day-header{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:2px;border-right:1px solid #edf0f2;font-size:11px;color:#687780}.day-header small{font-size:9px;color:#a0aab4}.day-header.weekend,.day-cell.weekend{background:#f6f8fa}.day-header.holiday,.day-cell.holiday{background:#eef4ff}.day-header.holiday strong{color:#6093ca}.day-cell{padding:0;border:0;border-right:1px solid #edf0f2;background:transparent;position:relative;display:grid;place-items:center;min-width:0;touch-action:pan-x}.day-cell:hover{background:#e9faf6}.day-cell.notworking:not(.is-absence):not(.holiday){background:linear-gradient(135deg,transparent 48%,#edf1f4 48%,#edf1f4 51%,transparent 51%)}.day-cell.closure-day:not(.is-absence){box-shadow:inset 0 -3px 0 #d0b2ee}.day-cell.is-absence span{width:100%;height:22px;border-radius:3px;background:#2abcb1}.day-cell.is-absence.urlaub span{background:#25b9ae}.day-cell.is-absence.sonderurlaub span{background:#a091e5}.day-cell.is-absence.abwesend span{background:#efa96b}.day-cell.selected-range{box-shadow:inset 0 0 0 2px #219f92;background:#edfcfa}.day-cell.selected-range span{width:90%;height:21px;background:#b9eae5;border-radius:3px}.empty-state{padding:36px;text-align:center;color:#a2adb6;font-size:13px}.empty-state.compact{text-align:left;padding:21px 12px}.people-table,.management-section,.settings-layout{padding:0 25px 22px}.people-header,.people-row{display:grid;grid-template-columns:minmax(195px,2fr) 1fr 1.6fr .8fr .7fr .8fr;align-items:center;gap:12px}.people-header{height:40px;border-block:1px solid #edf0f3;color:#a2adb6;font-size:10px;font-weight:780;letter-spacing:.6px}.people-row{min-height:65px;border-bottom:1px solid #edf0f3;color:#677681;font-size:12px}.people-row.inactive{opacity:.5}.people-name{display:flex;align-items:center;gap:12px}.people-name strong{color:#44535f;font-size:12px}.people-name small{display:block;color:#bd8c4b;margin-top:2px}.team-chip{display:inline-block;padding:6px 9px;border-radius:7px;font-size:11px;background:#e9f9f5;color:#15988c}.team-chip.hort{background:#edf0ff;color:#7189cc}.table-link,.table-edit{background:transparent;border:0;color:#1ca69c;font-size:11px;font-weight:740;padding:7px 2px}.table-link:hover,.table-edit:hover{text-decoration:underline}.inline-hint{margin:0 25px 26px;color:#9aa4ae;font-size:11px}.management-section+.management-section{border-top:1px solid #edf0f3;padding-top:28px}.section-subhead{padding:2px 0 14px}.section-subhead h3{font-size:15px;margin:0 0 5px}.section-subhead p{font-size:12px;color:#919ca5;margin:0;line-height:1.6}.management-row{display:flex;align-items:center;gap:15px;min-height:62px;border-bottom:1px solid #edf0f3}.management-row strong{display:block;color:#3f5360;font-size:12px}.management-row small{display:block;margin-top:6px;color:#97a2ac;font-size:11px}.mg-grow{flex:1}.list-icon{height:35px;width:35px;display:grid;place-items:center;border-radius:9px}.list-icon.blue{background:#e9f7f6;color:#1bafa4}.list-icon.violet{background:#eeeafb;color:#9689dc}.settings-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.9fr);gap:19px}.settings-panel{border:1px solid #e8eef1;border-radius:12px;padding:25px;margin-bottom:16px}.settings-panel h3{font-size:15px;margin:0 0 8px}.settings-panel p{font-size:12px;line-height:1.6}.settings-panel>.btn{margin-top:13px}.settings-panel label,.form-stack label{display:flex;flex-direction:column;gap:7px;font-weight:690;color:#4c5c68;font-size:12px;margin-top:15px}.settings-panel input:not([type=checkbox]),.settings-panel select,.form-stack input:not([type=checkbox]),.form-stack select,.form-stack textarea{width:100%;height:42px;border:1px solid #e0e7eb;border-radius:9px;background:#fff;color:#4b5b66;padding:0 12px;outline:none;transition:border .15s,box-shadow .15s}.form-stack textarea{height:auto!important;min-height:60px;resize:vertical;padding:12px!important}.settings-panel input:focus,.form-stack input:focus,.settings-panel select:focus,.form-stack select:focus,.form-stack textarea:focus{border-color:#18b3a8;box-shadow:0 0 0 3px #dff7f3}.settings-panel .checkbox-card,.form-stack .checkbox-card{margin:20px 0 5px!important}.checkbox-card{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:11px!important;padding:13px 14px;background:#f7fafb;border:1px solid #e9eff0;border-radius:9px;cursor:pointer}.checkbox-card input{accent-color:#1bb4a9;width:16px;height:16px;margin:2px 0 0}.checkbox-card>span{flex:1}.checkbox-card small{display:block;color:#98a3ad;font-weight:450;line-height:1.55;margin-top:4px}.two-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.app-modal{position:fixed;border:1px solid #e9eef1;border-radius:16px;width:min(520px,calc(100vw - 26px));max-height:min(92vh,860px);padding:0;box-shadow:0 30px 100px rgba(16,33,42,.2);color:#273542;overflow:auto}.app-modal::backdrop{background:rgba(22,43,53,.36);backdrop-filter:blur(3px)}.modal-head{padding:25px 28px 18px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #edf0f3}.modal-head .eyebrow{font-size:10px;margin-bottom:7px}.modal-head h2{font-size:21px;margin:0}.close-modal{width:33px;height:33px;border:0;border-radius:8px;background:#f4f7f8;color:#778691;font-size:26px;line-height:1}.modal-body{padding:6px 28px 22px}.modal-footer{border-top:1px solid #edf0f3;padding:16px 28px;display:flex;justify-content:flex-end;gap:10px}.modal-footer .ghost-left{margin-right:auto}.form-stack{display:flex;flex-direction:column}.form-stack .wide-label{margin:10px 0 0}.weekday-fieldset{border:0;margin:18px 0 0;padding:0}.weekday-fieldset legend{font-size:12px;color:#4c5c68;font-weight:700;margin-bottom:10px}.weekday-picker{display:flex;gap:6px;flex-wrap:wrap}.weekday-item{margin:0!important;cursor:pointer;display:inline-flex!important}.weekday-item input{position:absolute;opacity:0;width:1px;height:1px}.weekday-item span{display:grid;place-items:center;height:35px;width:43px;border:1px solid #e1e8ed;border-radius:7px;font-size:11px;color:#88949f}.weekday-item input:checked+span{background:#e4f7f4;border-color:#a9e2db;color:#0f988e;font-weight:800}.weekday-item input:focus-visible+span{outline:3px solid #a5e2de}.callout{background:#f0f8f7;border-radius:9px;border:1px solid #e1f1ee;padding:13px 15px;font-size:11px;color:#738e8b;line-height:1.6;margin-top:20px}.callout.warning{background:#fff7ec;color:#a17a46;border-color:#f4e5d1}.balance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}.balance-summary>div{background:#f7fafb;border-radius:9px;padding:14px 10px}.balance-summary small{display:block;font-size:10px;color:#8d9ca4}.balance-summary strong{font-size:17px;color:#149e92;display:block;margin-top:7px}.field-error{color:#c7554c;line-height:1.5;font-size:12px;margin-top:10px;min-height:0}.toast{position:fixed;bottom:26px;right:28px;transform:translateY(110px);opacity:0;pointer-events:none;z-index:1000;background:#244b4e;color:#fff;border-radius:10px;padding:15px 21px;font-size:12px;max-width:360px;box-shadow:0 12px 35px rgba(0,0,0,.13);transition:transform .2s,opacity .2s}.toast.show{opacity:1;transform:translateY(0)}.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(330px,1fr) minmax(390px,1fr);background:#fff}.login-aside{background:#e7f7f5;position:relative;padding:8vw;display:flex;align-items:flex-end;overflow:hidden}.login-aside:before{content:'';position:absolute;inset:12% -10% auto auto;width:75%;aspect-ratio:1;border:70px solid #d4f0eb;border-radius:50%}.login-aside:after{content:'';position:absolute;left:-12%;top:13%;width:40%;aspect-ratio:1;background:#c9ece6;border-radius:50%}.aside-symbol{position:absolute;top:25%;left:35%;width:180px;height:180px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;transform:rotate(-12deg);z-index:1}.aside-symbol span{border-radius:25px;background:#27beb3;box-shadow:0 14px 26px rgba(33,149,137,.12)}.aside-symbol span:nth-child(2){background:#81d6cc}.aside-symbol span:nth-child(3){background:#b5e8de}.aside-symbol span:nth-child(4){background:#468baf}.aside-copy{position:relative;z-index:1;max-width:450px}.aside-copy h2{font-size:clamp(30px,3.4vw,55px);color:#204c4e;letter-spacing:-2px;line-height:1.1;margin:0 0 19px}.aside-copy p{font-size:14px;color:#679895;line-height:1.7}.login-card{align-self:center;width:min(420px,calc(100% - 50px));margin:auto}.login-heading{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:800;margin-bottom:80px}.login-card h1{font-size:33px}.login-card>.muted{line-height:1.6;margin-bottom:30px}.login-card .form-stack label{margin-top:15px}.login-card .btn{margin-top:14px;height:46px;font-size:13px}.login-card .wide{width:100%;justify-content:space-between}.login-foot{font-size:11px;color:#b4bec6;margin-top:55px}.installer{display:grid;place-items:center;background:#eff8f6;padding:24px}.install-card{max-width:520px;width:100%;background:#fff;border:1px solid #dbe9e7;border-radius:17px;padding:37px;box-shadow:0 18px 50px rgba(30,75,72,.07)}.install-mark{font-size:29px;font-weight:850;color:#1db5a5;letter-spacing:-3px}.install-mark span{color:#5fa3bc}.install-card h1{margin-top:7px}.install-card .form-stack{margin:25px 0}.notice{border-radius:8px;background:#f3f6f8;padding:12px;color:#596976;margin-top:16px}.install-card .checkline{display:flex;flex-direction:row;gap:10px;align-items:flex-start}.install-card .checkline input{width:auto}.install-card .checkline{line-height:1.5}
@media(max-width:1320px){.app-layout{grid-template-columns:214px minmax(0,1fr)}.sidebar{padding-inline:10px}.topbar{padding-inline:26px}.page-content{padding:34px 23px}.stat-card{padding:18px 14px}.stat-top{left:60px;top:27px}.legend{gap:9px}.year-grid,.month-grid{min-width:960px}}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters-row{align-items:flex-start}.legend{width:100%}.page-intro{align-items:flex-start}.year-grid,.month-grid{min-width:1000px}.people-table{min-width:790px}}
@media(max-width:900px){.app-layout{display:block}.sidebar{min-height:auto;padding:10px 14px;flex-direction:row;align-items:center;position:sticky;top:0;z-index:10;box-shadow:0 3px 12px rgba(25,45,55,.05)}.brand{padding:0;margin-right:auto}.brand small,.sidebar .nav-label,.side-bottom{display:none}.brand-icon{width:29px;height:29px}.brand strong{font-size:13px}.main-nav{flex-direction:row;gap:3px}.nav-link{width:39px;height:40px;padding:0;justify-content:center;flex-shrink:0;font-size:0}.nav-link svg{width:21px;height:21px}.topbar{display:none}.page-content{padding:27px 13px 30px}.page-intro{display:block;margin-bottom:22px;padding:0 4px}.page-intro h1{font-size:27px}.header-actions{margin-top:21px}.header-actions .btn{flex:1;padding:0 10px}.stats-grid{gap:10px;margin-bottom:18px}.stat-card{min-height:142px;padding:17px 12px}.stat-top{position:static;margin-top:7px}.stat-icon{margin:0}.stat-count{font-size:24px;margin:8px 0}.stat-count.textual{font-size:19px}.stat-card p{font-size:10px;line-height:1.35}.workspace-top{padding:21px 14px 17px;align-items:flex-start;flex-direction:column}.workspace-controls{width:100%;justify-content:space-between}.filters-row{padding:0 10px 16px}.filter-pills{overflow-x:auto;max-width:100%;gap:3px}.filter-pills button{white-space:nowrap;font-size:11px;padding:8px 10px}.legend{padding-left:5px}.calendar-footer{padding:13px 14px}.bottom-note{padding:0 4px;line-height:1.5}.people-table,.settings-layout,.management-section{padding-inline:15px}.settings-layout{grid-template-columns:1fr}.settings-panel{padding:18px}.management-row{gap:9px}.login-layout{display:block}.login-aside{display:none}.login-card{padding-top:65px}.login-heading{margin-bottom:72px}.modal-head{padding:22px 19px 16px}.modal-body{padding:3px 19px 18px}.modal-footer{padding:14px 19px}.year-grid-header,.year-grid-row,.month-head,.month-grid-row{grid-template-columns:168px minmax(0,1fr) 63px}.employee-name{padding-left:10px;padding-right:7px;gap:6px}.name-header{padding-left:11px}.balance{font-size:12px}.balance span{display:none}.team-divider{padding-left:11px}.year-grid,.month-grid{min-width:900px}.people-table{min-width:750px}.app-modal{margin:auto}.two-cols{gap:9px}}
@media print{@page{size:A3 landscape;margin:10mm}body{background:#fff!important;color:#000!important}.sidebar,.topbar,.header-actions,.workspace-top,.filters-row,.calendar-footer,.bottom-note,.toast,.app-modal{display:none!important}.app-layout{display:block}.main-content{display:block}.page-content{padding:0!important;max-width:none}.page-intro{margin-bottom:13px!important}.page-intro .eyebrow{display:none}.page-intro h1{font-size:20px!important}.page-intro .intro-subtitle{display:none}.stats-grid{display:none!important}.workspace-card{border:0!important;box-shadow:none!important;overflow:visible!important}.calendar-scroll{overflow:visible!important}.year-grid{min-width:0!important;width:100%;font-size:8px}.month-grid{min-width:0!important;width:100%}.year-grid-header,.year-grid-row,.month-head,.month-grid-row{grid-template-columns:130px minmax(0,1fr) 45px!important}.year-grid-row,.month-grid-row{height:25px!important;break-inside:avoid}.team-divider{height:26px!important;background:#eee!important;print-color-adjust:exact}.employee-name{font-size:8px!important;padding-left:2px!important;gap:3px!important}.person-avatar{display:none!important}.balance{font-size:9px!important}.balance span{display:none}.year-heading-months,.year-months,.day-cells,.days-header{print-color-adjust:exact;-webkit-print-color-adjust:exact}.annual-band,.day-cell.is-absence span{print-color-adjust:exact;-webkit-print-color-adjust:exact}.day-header{font-size:8px!important}.day-header small{font-size:6px!important}}

/* Version 1.2: taggenauer Belegungskalender für Kita und Hort. */
.legend-color.planned{background:#c5eee4;border:1px solid #96d9c7}
.legend-color.nonwork{background:#e6eaed}
.legend-color.closure{background:linear-gradient(to bottom,#fbf5ff 0 65%,#ab80d8 66%)}
.month-jump-row{display:flex;align-items:center;gap:5px;padding:10px 19px 15px;border-top:1px solid #eef1f3;overflow-x:auto;scrollbar-width:thin}
.month-jump-row[hidden]{display:none!important}
.jump-caption{font-size:11px;font-weight:700;white-space:nowrap;color:#9aa5ad;margin-right:8px}
.month-jump{flex-shrink:0;min-width:46px;border:1px solid #e7edf0;color:#788894;background:#fff;border-radius:7px;padding:7px 9px;font-size:11px;font-weight:700}
.month-jump:hover,.month-jump.active{background:#e6f8f5;border-color:#c6eae3;color:#159b90}
.calendar-scroll{scrollbar-color:#b8cfd1 #f4f7f9;scrollbar-width:auto;position:relative}
.timeline-calendar{--person-width:210px;--rest-width:75px;position:relative;width:max-content;min-width:100%;isolation:isolate}
.timeline-row{display:grid;grid-template-columns:var(--person-width) calc(var(--total-days)*var(--day-width)) var(--rest-width);width:max-content;min-width:100%;align-items:stretch}
.timeline-month-head{height:38px;background:#edf6f5;border-top:1px solid #e1edec}
.timeline-days-head{height:53px;background:#f8fafb;border-top:1px solid #eaf0f1;border-bottom:1px solid #e5edf0}
.timeline-month-head .name-header,.timeline-days-head .name-header,.timeline-month-head .balance-header,.timeline-days-head .balance-header{position:sticky;z-index:5;background:inherit}
.timeline-month-head .name-header,.timeline-days-head .name-header{left:0;border-right:1px solid #e7edef}
.timeline-month-head .balance-header,.timeline-days-head .balance-header{right:0;border-left:1px solid #e7edef}
.timeline-months{display:flex;min-width:0}
.timeline-month-caption{display:flex;gap:8px;align-items:center;justify-content:center;background:#eaf5f3;border:0;border-right:1px solid #d1e2df;color:#33847c;font-size:12px;font-weight:800;letter-spacing:.15px;white-space:nowrap}
button.timeline-month-caption:hover{background:#d9eee9}
.timeline-month-caption span{font-weight:500;color:#83aaa4;font-size:10px}
.timeline-month-caption.solo{width:100%;justify-content:flex-start;padding-left:16px}
.timeline-day-grid{display:grid;grid-template-columns:repeat(var(--total-days),var(--day-width));min-width:0}
.timeline-calendar .day-header{border:0;border-right:1px solid #e6edef;border-radius:0;padding:4px 0 3px;min-width:0;background:#fff;color:#536c78;line-height:1.1;font-size:11px;font-weight:750}
.timeline-calendar .day-header small{font-size:9px;color:#98a7b0;font-weight:550}
.timeline-calendar .day-header.weekend{background:#f0f3f6;color:#aab6c0}
.timeline-calendar .day-header.holiday{background:#e3eeff;color:#4b79b6}
.timeline-calendar .day-header.holiday small{color:#658ab8}
.timeline-calendar .day-header.first-of-month{border-left:2px solid #bccfd3}
.timeline-calendar .day-header.date-focused{background:#c9f3e9;color:#086c65;box-shadow:inset 0 -3px 0 #0d9f92}
.timeline-calendar .employee-row{height:45px;border-bottom:1px solid #edf0f2}
.timeline-calendar .employee-name{position:sticky;left:0;z-index:3;width:var(--person-width);background:#fff;border-right:1px solid #e8edef;padding-left:16px;font-size:11px}
.timeline-calendar .employee-name:hover{background:#f4fcfa}
.timeline-calendar .employee-row .balance{position:sticky;right:0;z-index:3;background:#fff;border-left:1px solid #e7eef0}
.timeline-calendar .employee-row:hover .employee-name,.timeline-calendar .employee-row:hover .balance{background:#f7fcfa}
.timeline-calendar .day-cell{border:0;border-right:1px solid #e6ecef;border-radius:0;background:#fff;min-width:0;display:grid;place-items:center;position:relative;touch-action:pan-x;user-select:none;-webkit-user-select:none;padding:0;line-height:1}
.timeline-calendar .day-cell.scheduled-day{background:#f1fbf7}
.timeline-calendar .day-cell.scheduled-day .day-status{height:6px;width:6px;border-radius:3px;background:#b5dfd0;display:block;color:transparent;overflow:hidden}
.timeline-calendar .day-cell.weekend,.timeline-calendar .day-cell.notworking:not(.is-absence),.timeline-calendar .day-cell.holiday.notworking:not(.is-absence){background:#f2f4f6;color:#a6b0bc}
.timeline-calendar .day-cell.holiday:not(.is-absence){background:#e8f1ff;color:#6d95c3}
.timeline-calendar .day-cell.closure-day:not(.is-absence){box-shadow:inset 0 -4px 0 #c2a6de;background:#f7f2fa;color:#9575b0}
.timeline-calendar .day-cell .day-status{font-size:9px;color:#9ba9b2;font-weight:600}
.timeline-calendar .day-cell.holiday .day-status{color:#6f9bc2}
.timeline-calendar .day-cell.is-absence .day-status{width:100%;height:27px;border-radius:0;background:#22b8aa;color:transparent;display:block}
.timeline-calendar .day-cell.is-absence.sonderurlaub .day-status{background:#9680d9}
.timeline-calendar .day-cell.is-absence.abwesend .day-status{background:#e2a365}
.timeline-calendar .day-cell.is-absence.segment-start .day-status{border-radius:7px 0 0 7px;margin-left:2px;width:calc(100% - 2px)}
.timeline-calendar .day-cell.is-absence.segment-end .day-status{border-radius:0 7px 7px 0;margin-right:2px;width:calc(100% - 2px)}
.timeline-calendar .day-cell.is-absence.segment-start.segment-end .day-status{border-radius:7px;width:calc(100% - 4px);margin-inline:2px}
.timeline-calendar .day-cell.first-of-month{border-left:2px solid #cfdbdf}
.timeline-calendar .day-cell.date-focused:not(.is-absence){box-shadow:inset 2px 0 #8ad1c7,inset -2px 0 #8ad1c7}
.timeline-calendar .day-cell.date-focused.is-absence{background:#d7f4ec}
.timeline-calendar .day-cell:hover{background:#ddf3eb!important;box-shadow:inset 0 0 0 2px #35ad9f!important;z-index:1}
.timeline-calendar .team-divider{height:39px;position:sticky;left:0;width:calc(var(--person-width) + 480px);max-width:calc(100vw - 320px);background:#f2f6f8;z-index:4;color:#455d67;border-bottom:1px solid #e6edf0}
.timeline-calendar .team-minimum{margin-left:auto;color:#8da0a7;font-weight:550;font-size:10px}
.timeline-calendar .coverage-row{height:39px;border-bottom:2px solid #e0e9ec}
.timeline-calendar .coverage-label{display:flex;align-items:center;gap:8px;padding:0 14px;position:sticky;left:0;background:#f7fafb;border-right:1px solid #e8edef;z-index:3;font-size:11px;font-weight:750;color:#4a6472}
.timeline-calendar .coverage-label small{font-size:10px;font-weight:450;color:#9daab2;padding-left:4px}
.coverage-badge{height:8px;width:8px;border-radius:3px;background:#38b7a6}
.coverage-badge.hort{background:#788fd8}
.timeline-calendar .coverage-cell{font-size:10px;font-weight:790;padding:0;border:0;border-right:1px solid #e8eef0;background:#e5f6ed;color:#2b8d69;border-radius:0;min-width:0}
.timeline-calendar .coverage-cell.coverage-closed{background:#f1f3f5;color:#aeb8be;font-weight:500}
.timeline-calendar .coverage-cell.coverage-closed.holiday{background:#e6f0ff;color:#7fa2c6}
.timeline-calendar .coverage-cell.coverage-low{background:#ffded7;color:#a64137;box-shadow:inset 0 -3px 0 #e79a8c}
.timeline-calendar .coverage-cell.date-focused{outline:2px solid #20aa9c;outline-offset:-2px}
.timeline-calendar .coverage-cell.first-of-month{border-left:2px solid #c9d8de}
.timeline-calendar .coverage-cell:hover{filter:brightness(.94)}
.timeline-calendar .coverage-tail{position:sticky;right:0;display:flex;align-items:center;justify-content:center;z-index:3;border-left:1px solid #e7edef;background:#f7fafb;color:#81959b;font-size:10px;font-weight:750}
@media(max-width:900px){.timeline-calendar{--person-width:142px;--rest-width:49px}.timeline-calendar .employee-name{padding-left:7px;padding-right:3px;gap:5px;font-size:10px}.timeline-calendar .person-avatar{width:24px;height:24px;border-radius:6px;font-size:8px}.timeline-calendar .name-header{padding-left:9px}.timeline-calendar .coverage-label{padding-left:6px;gap:4px;font-size:10px}.timeline-calendar .coverage-label small{display:none}.timeline-calendar .team-divider{width:calc(var(--person-width) + 220px);max-width:100vw;padding-left:10px}.timeline-calendar .team-minimum{font-size:9px}.month-jump-row{padding:9px 10px 13px}.month-jump{padding:7px 8px;min-width:41px}.jump-caption{display:none}.timeline-calendar .employee-row{height:41px}}
@media print{
  .month-jump-row{display:none!important}
  .timeline-calendar{--person-width:125px!important;--rest-width:45px!important;--day-width:25px!important;width:100%!important;min-width:0!important}
  .timeline-row{grid-template-columns:var(--person-width) calc(var(--total-days)*var(--day-width)) var(--rest-width)!important}
  .timeline-calendar .employee-row{height:26px!important;break-inside:avoid}
  .timeline-calendar .coverage-row{height:25px!important}
  .timeline-calendar .team-divider{position:static;width:100%!important;max-width:100%!important;height:25px!important}
  .timeline-calendar .day-cell.is-absence .day-status{height:17px!important}
  .timeline-calendar .day-cell.scheduled-day .day-status{height:4px;width:4px}
  .timeline-calendar .employee-name{font-size:8px!important;padding-left:4px}
  .timeline-calendar .name-header,.timeline-calendar .balance-header{font-size:7px;padding-left:4px}
  .timeline-calendar .day-header{font-size:9px!important}
  .timeline-calendar .timeline-month-head{height:25px!important}
  .timeline-calendar .timeline-days-head{height:32px!important}
  .timeline-calendar .coverage-label{font-size:8px;padding-left:4px}
  .timeline-calendar .coverage-cell{font-size:8px}
  .timeline-calendar .balance{font-size:8px!important}
}
.timeline-calendar .day-cell.drag-preview:not(.is-absence){background:#cbf0e7!important;box-shadow:inset 0 0 0 1px #33a89b}
.timeline-calendar .day-cell.drag-preview:not(.is-absence) .day-status{height:25px;width:100%;background:#82cfc1;border-radius:2px;color:transparent}

/* Version 1.3: Leitung, weitere Abwesenheitsarten, Zweimonatsansicht und Druck */
.page-content{max-width:none;padding-left:clamp(16px,2vw,34px);padding-right:clamp(16px,2vw,34px)}
.legend-color.leadership{background:#285887}
.legend-color.conversion{background:#e6bd4f}
.legend-color.regeneration{background:#b780cb}
.legend-color.overtime{background:#de8055}
.timeline-calendar .day-cell.is-absence.lead-vacation .day-status{background:#285887}
.timeline-calendar .day-cell.is-absence.umwandlungstag .day-status{background:#e6bd4f}
.timeline-calendar .day-cell.is-absence.regenerationstag .day-status{background:#b780cb}
.timeline-calendar .day-cell.is-absence.mehrstundenabbau .day-status{background:#de8055}
.timeline-calendar .coverage-cell.coverage-zero{background:#c8283c!important;color:white!important;font-weight:900!important;box-shadow:inset 0 0 0 1px #a61b2d}
.timeline-calendar .coverage-cell.coverage-zero.date-focused{outline:2px solid #ffbe8a;outline-offset:-3px}
.stat-card.zero-stat{border-color:#e8a5ae;background:#fff3f3}
.stat-card.zero-stat .stat-count{color:#c8283c}
.person-avatar.leitung{background:#dbe8f7;color:#285887}
.team-dot.leitung,.coverage-badge.leitung{background:#285887}
.team-chip.leitung{background:#e3edf8;color:#285887}
.timeline-calendar .team-divider:has(.team-dot.leitung){background:#eaf2fb;color:#285887}
.special-quota{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.special-quota span{border:1px solid #e1eaf0;border-radius:9px;padding:9px 12px;font-size:12px;background:#f8fbfd;color:#516776}
.special-quota strong{color:#273f5b;margin-left:3px}
.print-choices{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}
#printArea{display:none}
@media print{
 @page{size:A3 landscape;margin:10mm}
 body{background:#fff!important}
 body>#app,body>#loginPage,body>.toast,body>.app-modal{display:none!important}
 #printArea{display:block!important;width:100%;font-family:Arial,sans-serif;font-size:9pt;color:#132b39}
 #printArea *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
 #printArea .print-sheet{page-break-after:always;break-after:page;page-break-inside:avoid;break-inside:avoid;min-height:0}
 #printArea .print-sheet:last-child{page-break-after:auto;break-after:auto}
 #printArea .print-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4mm}
 #printArea .print-header h1{font-size:18pt;line-height:1.2;margin:0 0 2mm}
 #printArea .print-header p{font-size:10pt;color:#607684;margin:0}
 #printArea .print-table{width:100%;border-spacing:0;border-collapse:collapse;table-layout:fixed;border:1px solid #cedbe2;font-size:6.8pt}
 #printArea .print-table th,#printArea .print-table td{border:1px solid #d9e2e9;text-align:center;overflow:hidden;height:5.6mm;padding:0;white-space:nowrap}
 #printArea .print-table thead th{background:#e8f2f4;font-size:7pt;color:#365563;font-weight:750}
 #printArea .print-table thead tr:first-child th{height:6mm}
 #printArea .print-table th.print-person-head{width:17%;text-align:left;padding-left:2mm}
 #printArea .print-table thead tr:first-child th:last-child{width:5%}
 #printArea .print-table tbody th.print-person{text-align:left;padding-left:2mm;background:#fff;font-weight:600;text-overflow:ellipsis}
 #printArea .print-table tbody tr.print-team td{background:#dcebf3;text-align:left;padding-left:2mm;font-weight:750;height:6mm;color:#25425d}
 #printArea .print-table tbody tr.print-coverage th{background:#eef6f6;text-align:left;padding-left:2mm;font-weight:750}
 #printArea .print-table .print-coverage td{font-weight:800;font-size:6pt}
 #printArea .print-table .print-coverage td.ok{background:#d3f3df;color:#196345}
 #printArea .print-table .print-coverage td.low{background:#f9d4cd;color:#9b342a}
 #printArea .print-table .print-coverage td.zero{background:#c8283c;color:white}
 #printArea .print-table .print-coverage td.closed{background:#f1f3f6;color:#8e9da6}
 #printArea .print-table .print-day.workday{background:#ebfaf2}
 #printArea .print-table .print-day.offday{background:#e6eaed}
 #printArea .print-table .print-day.holiday{background:#cfe4fa}
 #printArea .print-table .print-day.closed{background:#ece0f5}
 #printArea .print-table .print-day.absence.urlaub{background:#22b8aa}
 #printArea .print-table .print-day.absence.lead-vacation{background:#285887}
 #printArea .print-table .print-day.absence.sonderurlaub{background:#9680d9}
 #printArea .print-table .print-day.absence.umwandlungstag{background:#e6bd4f}
 #printArea .print-table .print-day.absence.regenerationstag{background:#b780cb}
 #printArea .print-table .print-day.absence.mehrstundenabbau{background:#de8055}
 #printArea .print-table .print-day.absence.abwesend{background:#e2a365}
 #printArea .print-table .print-rest{font-weight:800;background:#f7fafb}
 #printArea .print-legend{font-size:7pt;color:#50677a;line-height:1.4;margin-top:3mm}
 /* Kompakte Jahresausgabe: zwei Zweimonatstabellen übereinander je A3-Seite. */
 #printArea .print-sheet.compact .print-header{margin-bottom:3mm}
 #printArea .print-sheet.compact .print-header h1{font-size:14pt;margin-bottom:1mm}
 #printArea .print-sheet.compact .print-header p{font-size:8pt}
 #printArea .print-sheet.compact .print-periods{display:flex;flex-direction:column;gap:5mm}
 #printArea .print-sheet.compact .print-period{break-inside:avoid;page-break-inside:avoid}
 #printArea .print-sheet.compact .print-table{font-size:5.8pt}
 #printArea .print-sheet.compact .print-table th,#printArea .print-sheet.compact .print-table td{height:3.45mm;font-size:5.8pt;line-height:1.05}
 #printArea .print-sheet.compact .print-table thead th{height:3.4mm;font-size:5.5pt}
 #printArea .print-sheet.compact .print-table thead tr:first-child th{height:4mm;font-size:6.2pt}
 #printArea .print-sheet.compact .print-table tbody tr.print-team td{height:3.5mm;font-size:6pt}
 #printArea .print-sheet.compact .print-table .print-coverage td{font-size:5.1pt}
 #printArea .print-sheet.compact .print-table th.print-person-head{width:17%}
 #printArea .print-sheet.compact .print-table tbody th.print-person{padding-left:1.5mm}
 #printArea .print-sheet.compact .print-legend{font-size:6pt;line-height:1.2;margin-top:3mm}
 /* Sehr kompakte DIN A3-Jahresausgabe: drei Zweimonatsblöcke untereinander je Blatt. */
 #printArea .print-sheet.ultra .print-header{margin-bottom:2mm}
 #printArea .print-sheet.ultra .print-header h1{font-size:12pt;margin-bottom:.5mm}
 #printArea .print-sheet.ultra .print-header p{font-size:7.3pt}
 #printArea .print-sheet.ultra .print-periods{gap:2.8mm}
 #printArea .print-sheet.ultra .print-table{font-size:5.1pt}
 #printArea .print-sheet.ultra .print-table th,#printArea .print-sheet.ultra .print-table td{height:2.37mm;font-size:5.1pt;line-height:1}
 #printArea .print-sheet.ultra .print-table thead th{height:2.55mm;font-size:4.9pt}
 #printArea .print-sheet.ultra .print-table thead tr:first-child th{height:3.0mm;font-size:5.6pt}
 #printArea .print-sheet.ultra .print-table tbody tr.print-team td{height:2.55mm;font-size:5.3pt}
 #printArea .print-sheet.ultra .print-table .print-coverage td{font-size:4.7pt}
 #printArea .print-sheet.ultra .print-legend{font-size:5.4pt;line-height:1.1;margin-top:2mm}

}

/* 1.4: mobile-first Tagesplanung mit Wochenkalender und komfortabler Bedienung */
.mobile-week-option,.mobile-week-bar,.mobile-focus,.mobile-logout{display:none}
@media (max-width:900px){
  html,body{max-width:100%;overflow-x:hidden}
  body{background:#f3f7f8}
  .app-layout{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px));}
  .sidebar{height:61px;min-height:61px;padding:0 17px;position:sticky;top:0;z-index:25;border:0;border-bottom:1px solid #e2ebed;box-shadow:0 6px 20px rgba(24,55,65,.045);background:rgba(255,255,255,.97);backdrop-filter:blur(14px)}
  .sidebar .brand{padding:0;margin:0;gap:11px}
  .sidebar .brand-icon{width:32px;height:32px}
  .sidebar .brand strong{font-size:15px;line-height:1.25}
  .sidebar .brand small{display:block;font-size:10px}
  .mobile-logout{display:grid;place-items:center;width:39px;height:39px;margin-left:auto;border:1px solid #e5ecef;border-radius:12px;background:#f8fafb;color:#687f88}
  .main-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;height:calc(67px + env(safe-area-inset-bottom,0px));padding:7px 8px calc(7px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#fff;border-top:1px solid #e5ecee;box-shadow:0 -8px 25px rgba(24,55,70,.065)}
  .main-nav .nav-link{width:100%;height:53px;display:flex;flex-direction:column;gap:4px;justify-content:center;align-items:center;padding:6px 2px;border-radius:12px;font-size:10px;line-height:1.1;font-weight:650;white-space:nowrap}
  .main-nav .nav-link svg{height:20px;width:20px;stroke-width:1.9}
  .main-nav .nav-link.active{color:#0a9b8f;background:#e8f8f5}
  .nav-text{font-size:10px}
  .page-content{padding:20px 12px 24px}
  .page-intro{padding:0 3px;margin-bottom:16px}
  .page-intro .eyebrow{font-size:10px;letter-spacing:1.3px;margin-bottom:7px}
  .page-intro h1{font-size:26px;letter-spacing:-1px;line-height:1.18;margin-bottom:6px}
  .intro-subtitle{font-size:12px;line-height:1.45;max-width:460px}
  .header-actions{margin-top:15px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px}
  .header-actions:has(> :only-child){grid-template-columns:1fr}
  .header-actions .btn{height:44px;border-radius:11px;padding:0 12px;font-size:12px;min-width:0}
  .header-actions #printBtn{padding:0 11px}
  .header-actions #printBtn svg{width:17px;height:17px}
  .stats-grid{display:none!important}
  .mobile-focus{display:flex;align-items:center;justify-content:space-between;gap:11px;padding:14px 13px;background:linear-gradient(112deg,#f0faf8,#fff 75%);border:1px solid #dceeea;border-radius:15px;margin-bottom:15px;box-shadow:0 3px 13px rgba(15,100,92,.035)}
  .mobile-focus[hidden]{display:none!important}
  .focus-date{min-width:0;display:flex;flex-direction:column;gap:5px;flex:1}
  .focus-date>span{color:#68a59d;letter-spacing:.9px;font-size:9px;font-weight:800}
  .focus-date>strong{font-size:14px;line-height:1.25;letter-spacing:-.3px;color:#273e46;text-transform:capitalize}
  .focus-counters{display:flex;gap:7px;flex-shrink:0}
  .focus-counter{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:5px;align-items:baseline;background:#e5f8ef;border:1px solid #d3efdf;border-radius:11px;padding:8px 9px;min-width:62px;color:#1a8062}
  .focus-counter small{font-size:10px;grid-column:1 / -1;font-weight:700;margin-bottom:1px}
  .focus-counter b{font-size:19px;line-height:1;font-weight:800}
  .focus-counter em{font-size:10px;font-style:normal;opacity:.75}
  .focus-counter.critical{background:#c8283c;color:#fff;border-color:#ab2235}
  .workspace-card{border-radius:16px;overflow:hidden}
  .workspace-top{padding:17px 14px 13px;gap:12px}
  .workspace-heading h2{font-size:17px;margin:0 0 3px}
  .workspace-heading p{font-size:11px;line-height:1.4}
  .workspace-controls{gap:8px;display:flex;flex-wrap:wrap}
  .segmented{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:4px;background:#f0f5f6;border-radius:12px;gap:3px}
  .segmented button{font-size:12px;min-width:0;padding:10px 5px;border-radius:9px;white-space:nowrap}
  .segmented .mobile-week-option{display:block}
  .year-controls{width:100%;height:41px;min-width:0;background:#fff;border-radius:11px}
  .year-controls span{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
  .square-btn{width:42px;height:39px;flex-shrink:0;font-size:25px}
  .filters-row{padding:0 12px 11px;gap:9px;display:block}
  .filter-pills{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:5px;max-width:none;overflow:visible}
  .filter-pills button{font-size:11px;padding:11px 4px;border:1px solid #e8eff1;border-radius:10px;background:#fafcfc;text-align:center;white-space:nowrap}
  .filter-pills button.selected{border-color:#b4e8df;background:#e6f9f4;color:#0b9185}
  .legend{max-height:58px;overflow-y:auto;column-gap:13px;row-gap:8px;margin-top:11px;padding:0 2px}
  .legend>span{font-size:10px;white-space:nowrap}
  .legend-color{width:10px;height:10px;flex-shrink:0}
  .mobile-week-bar{display:flex;gap:7px;align-items:center;margin:0 11px 12px;padding:8px;border-radius:12px;background:#f6f9fa;border:1px solid #eaf0f2}
  .mobile-week-bar[hidden]{display:none!important}
  .mobile-week-arrow{height:42px;width:39px;flex-shrink:0;border:1px solid #deeaec;border-radius:9px;color:#288e85;background:#fff;font-size:25px;line-height:1}
  .mobile-week-middle{min-width:0;flex:1}
  .mobile-week-label{display:block;color:#7f999e;font-size:9px;letter-spacing:.35px;margin-bottom:2px}
  .mobile-week-middle input{background:transparent;border:0;padding:0;color:#314b53;font-size:12px;font-weight:750;width:100%;max-width:180px;min-width:0;min-height:24px;outline-offset:1px}
  .mobile-today{border:0;border-radius:9px;background:#dcf5f0;color:#118e81;padding:0 9px;height:42px;font-size:11px;font-weight:750}
  .calendar-scroll{max-height:min(66dvh,720px);min-height:240px;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain;touch-action:pan-x pan-y;background:#fff}
  .timeline-calendar{--person-width:138px;--rest-width:46px}
  .timeline-calendar .timeline-month-head{height:33px}
  .timeline-calendar .timeline-days-head{height:47px}
  .timeline-calendar .timeline-month-head,.timeline-calendar .timeline-days-head{position:sticky;z-index:7}
  .timeline-calendar .timeline-month-head{top:0}
  .timeline-calendar .timeline-days-head{top:33px}
  .timeline-calendar .day-header{font-size:12px}
  .timeline-calendar .day-header small{font-size:9px}
  .timeline-calendar .name-header{padding-left:9px;font-size:9px}
  .timeline-calendar .employee-row{height:45px}
  .timeline-calendar .employee-name{font-size:10px;padding:0 5px 0 7px;gap:7px}
  .timeline-calendar .person-avatar{width:24px;height:24px;font-size:8px}
  .timeline-calendar .coverage-label{padding:0 6px;font-size:10px}
  .timeline-calendar .coverage-cell{font-size:12px}
  .timeline-calendar .day-cell.is-absence .day-status{height:27px}
  .timeline-calendar .team-divider{height:37px;max-width:calc(100vw - 24px);padding-left:9px;font-size:10px;white-space:nowrap}
  .timeline-calendar .team-count{font-size:9px}
  .timeline-calendar .team-minimum{display:none}
  .timeline-calendar .week-timeline{width:100%}
  .timeline-calendar.week-timeline{--person-width:122px;--rest-width:0px;width:max-content;min-width:100%}
  .timeline-calendar.week-timeline .timeline-row{width:max-content;min-width:100%}
  .timeline-calendar.week-timeline .balance,.timeline-calendar.week-timeline .balance-header,.timeline-calendar.week-timeline .coverage-tail{display:none}
  .timeline-calendar.week-timeline .name-header{font-size:8px}
  .timeline-calendar.week-timeline .team-divider{min-width:min(100%,calc(100vw - 24px));width:calc(var(--person-width) + 7*var(--day-width));max-width:100%}
  .timeline-calendar.week-timeline .day-cell{touch-action:pan-y}
  .timeline-calendar.week-timeline .day-header{font-size:12px}
  .timeline-calendar.week-timeline .timeline-month-caption{font-size:10px;gap:4px}
  .timeline-calendar.week-timeline .timeline-month-caption span{font-size:9px}
  .timeline-calendar.week-timeline .employee-name{font-size:10px}
  .timeline-calendar.week-timeline .coverage-row{height:39px}
  .calendar-footer{padding:10px 12px;font-size:10px;gap:12px;line-height:1.5}
  .calendar-footer span:last-child{display:none}
  .bottom-note{font-size:10px;line-height:1.45;align-items:flex-start;margin-top:12px}
  .people-table{min-width:0!important;padding:11px!important}
  .people-header{display:none!important}
  .people-row{grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;padding:13px 12px!important;border:1px solid #e7edef;margin-bottom:9px;border-radius:12px;min-height:0;background:#fff}
  .people-row>div{min-width:0}
  .people-row>div:nth-child(1){grid-column:1;grid-row:1}
  .people-row>div:nth-child(2){grid-column:2;grid-row:1;align-self:center}
  .people-row>div:nth-child(3){grid-column:1 / -1;grid-row:2;color:#83939d;font-size:11px}
  .people-row>div:nth-child(3)::before{content:'Arbeitstage: ';font-weight:700}
  .people-row>div:nth-child(4){grid-column:1;grid-row:3;font-size:11px}
  .people-row>div:nth-child(4)::before{content:'Jahresurlaub: ';font-weight:700}
  .people-row>div:nth-child(5){grid-column:2;grid-row:3;text-align:right}
  .people-row>div:nth-child(6){grid-column:1 / -1;grid-row:4}
  .people-row>div:nth-child(6) button{width:100%;min-height:39px;border-radius:8px;background:#f4f9f9}
  .management-section{padding-inline:12px}
  .management-row{gap:8px;flex-wrap:wrap;padding:12px 0}
  .management-row .mg-grow{flex:1 1 calc(100% - 55px)}
  .management-row>.table-edit{margin-left:42px}
  .settings-layout{grid-template-columns:1fr;padding:10px}
  .settings-panel{padding:15px}
  .settings-panel .two-cols{grid-template-columns:1fr;gap:0}
  .app-modal{width:100vw;max-width:100vw;max-height:min(92dvh,1000px);height:auto;margin:auto 0 0!important;border-radius:20px 20px 0 0;border:0;box-shadow:0 -18px 60px rgba(18,42,51,.24);overflow-y:auto;overscroll-behavior:contain}
  .app-modal::backdrop{background:rgba(12,37,46,.45)}
  .modal-head{padding:21px 20px 15px;position:sticky;top:0;background:#fff;z-index:2}
  .modal-head::before{content:'';position:absolute;top:7px;left:calc(50% - 20px);width:40px;height:4px;background:#dbe4e7;border-radius:3px}
  .modal-head h2{font-size:20px}
  .modal-body{padding:4px 20px 18px}
  .modal-footer{position:sticky;bottom:0;z-index:2;padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;box-shadow:0 -6px 20px rgba(22,45,53,.045)}
  .modal-footer .btn{min-height:45px;flex:1;white-space:normal;padding:8px}
  .modal-footer .ghost-left{flex:0 0 auto}
  .form-stack input:not([type=checkbox]),.form-stack select,.form-stack textarea{font-size:16px;min-height:46px}
  .form-stack .two-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .weekday-picker{gap:5px}
  .weekday-item span{width:39px;height:39px}
  .login-layout{min-height:100dvh;display:grid;place-items:center;padding:25px 16px}
  .login-card{padding:28px 0 45px;width:min(400px,100%)}
  .login-heading{margin-bottom:48px}
  .login-card h1{font-size:30px}
  .login-card .form-stack input{font-size:16px}
  .toast{left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom,0px));max-width:none;text-align:center;font-size:12px}
}
@media(max-width:375px){
  .page-content{padding-inline:9px}
  .focus-counter{min-width:56px;padding:7px}
  .focus-date>strong{font-size:12px}
  .timeline-calendar.week-timeline{--person-width:116px}
  .timeline-calendar.week-timeline .employee-name{font-size:9px;gap:4px;padding-left:5px}
  .timeline-calendar.week-timeline .person-avatar{height:21px;width:21px;font-size:7px}
  .timeline-calendar.week-timeline .coverage-label{font-size:9px}
  .mobile-week-bar{margin-inline:8px;gap:4px;padding:6px}
  .mobile-week-arrow{width:33px}
  .mobile-today{padding:0 6px}
  .header-actions .btn{font-size:11px}
}
@media print{
  .mobile-logout,.mobile-week-bar,.mobile-focus,.main-nav{display:none!important}
  .calendar-scroll{max-height:none!important;overflow:visible!important}
  .app-layout{padding-bottom:0!important}
}
.legend-details{flex:1;min-width:0}
.legend-details summary{display:none}
@media(max-width:900px){
 .sidebar{backdrop-filter:none;-webkit-backdrop-filter:none}
 .legend-details{margin:9px 0 0;border:1px solid #e7eef0;border-radius:10px;background:#fafcfc}
 .legend-details summary{display:block;cursor:pointer;list-style:none;font-size:11px;font-weight:700;color:#668189;padding:11px 13px;min-height:40px}
 .legend-details summary::-webkit-details-marker{display:none}
 .legend-details summary:after{content:'⌄';float:right;font-size:15px;line-height:10px;color:#83aaa5;transition:transform .15s}
 .legend-details[open] summary:after{transform:rotate(180deg)}
 .legend-details .legend{max-height:none;overflow:visible;margin:0;padding:2px 13px 13px;gap:10px}
 .timeline-calendar.week-timeline .person-avatar{display:none}
 .timeline-calendar.week-timeline .employee-name{padding:4px 6px 4px 10px;align-items:center}
 .timeline-calendar.week-timeline .name-text{white-space:normal;line-height:1.28;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
 .timeline-calendar.week-timeline .employee-row{height:51px}
}

/* Eigenständige öffentliche Demo. Sichtbare Kennzeichnung in allen Ansichten. */
.demo-banner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:15px 24px 0;padding:13px 17px;border-radius:12px;background:#e5faf7;border:1px solid #b6e9df;color:#235d56;font-size:12px;line-height:1.5}
.demo-banner strong{font-weight:700}.demo-badge{padding:4px 9px;background:#139f91;color:#fff;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:.09em}
.demo-visitor{margin-left:auto;font-weight:700;color:#177c70}
@media(max-width:900px){.demo-banner{margin:12px 14px 0;padding:12px}.demo-visitor{margin-left:0}}
@media print{.demo-banner{display:none!important}}

/* Transparenter Hinweis vor Start der Demo. */
.demo-notify-disclosure{margin:4px 0 10px;color:#647680;font-size:12px;line-height:1.6}

/* Vigitals Branding | Demo 1.2.0 */
.vigitals-credit{display:inline-block;font-size:11px;line-height:1.6;letter-spacing:.01em;color:#8d9ca5;text-decoration:none;border-radius:4px;transition:color .18s ease}
.vigitals-credit span{color:#188f84;font-weight:650}
.vigitals-credit:hover,.vigitals-credit:focus-visible{color:#177f75;text-decoration:underline;text-underline-offset:3px}
.vigitals-credit:focus-visible{outline:2px solid #14a899;outline-offset:4px}
.vigitals-credit-sidebar{text-align:center;border-top:1px solid #edf1f2;margin:16px 8px 0;padding:16px 0 0}
.vigitals-credit-login{text-align:center;margin-top:25px}
.vigitals-credit-mobile{display:none}
@media(max-width:900px){
 .vigitals-credit-mobile{display:block;text-align:center;padding:5px 14px calc(22px + env(safe-area-inset-bottom,0px));margin:0 auto}
 .vigitals-credit-login{margin-top:28px}
}
@media print{.vigitals-credit-sidebar,.vigitals-credit-mobile,.vigitals-credit-login{display:none!important}}

/* Demo 1.2.1: Abwesenheitsbalken ohne weisse Hinterlegungsrechtecke.
   Der Zellhintergrund entspricht wieder dem jeweiligen Kalendertag. */
.timeline-calendar .day-cell.is-absence{background:#f1fbf7}
.timeline-calendar .day-cell.is-absence.weekend,
.timeline-calendar .day-cell.is-absence.notworking{background:#f2f4f6}
.timeline-calendar .day-cell.is-absence.holiday{background:#e8f1ff}
.timeline-calendar .day-cell.is-absence.closure-day{background:#f7f2fa}
.timeline-calendar .day-cell.is-absence.date-focused{background:#d7f4ec}

/* Demo 1.3.0: individuelles Testprofil und Namensfelder */
.demo-name-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.demo-name-fields label{min-width:0}
.demo-name-fields input{min-width:0;width:100%}
.demo-own-vacation{margin-left:auto;border:1px solid #0c9c8c;background:#fff;color:#087a71;padding:9px 13px;border-radius:8px;font-size:12px;font-weight:750;white-space:nowrap;cursor:pointer}
.demo-own-vacation:hover{background:#d2f5ee}
.employee-row.my-entry .employee-name{background:#e9faf4;color:#087d72;box-shadow:inset 3px 0 #15b2a7}
.employee-row.my-entry .person-avatar,.people-row.my-entry .person-avatar{background:#d0f5ee;color:#087d72}
.my-label{font-size:9px;font-weight:800;padding:3px 6px;border-radius:5px;background:#c8f1e8;color:#067b72;margin-left:auto;margin-right:7px;flex-shrink:0}
.people-row.my-entry{background:#f1fbf8}
@media(max-width:720px){.demo-name-fields{grid-template-columns:1fr;gap:0}.demo-own-vacation{margin-left:0;width:100%}}
