.quick-menu{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 30px #0006;font-size:.8rem;min-width:180px;padding:4px;position:fixed;z-index:200}.quick-menu-item{align-items:center;background:none;border:none;border-radius:5px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:8px;padding:7px 10px;text-align:left;transition:background .1s;width:100%}.quick-menu-item:hover{background:var(--bg-input);color:var(--text-primary)}.quick-menu-item.quick-menu-active{background:var(--tint-purple);color:var(--color-accent);font-weight:600}.quick-menu-item.quick-menu-danger{color:var(--color-danger-light)}.quick-menu-item.quick-menu-danger:hover{background:var(--tint-danger)}.quick-menu-item.quick-menu-warning{color:var(--color-warning)}.quick-menu-item.quick-menu-warning:hover{background:#f59e0b1a}.quick-menu-icon{align-items:center;display:flex;flex-shrink:0;justify-content:center;width:16px}.quick-menu-arrow{color:var(--text-faint);font-size:1rem;margin-left:auto}.quick-menu-divider{background:var(--border);height:1px;margin:4px 6px}.quick-menu-item-wrap{position:relative}.quick-sub-menu{left:100%;margin-left:0;padding-left:4px;position:absolute;top:0;z-index:210}.quick-sub-menu.quick-sub-menu-flip{left:auto;padding-left:0;padding-right:4px;right:100%}.quick-sub-menu-inner{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 30px #0006;min-width:160px;padding:4px}.task-dots-wrap{flex-shrink:0;height:20px;min-width:0;overflow:visible;position:relative;width:0}.task-card:hover .task-dots-wrap,.task-dots-btn,.task-dots-wrap.menu-open{min-width:20px;width:20px}.task-dots-btn{align-items:center;border:none;border-radius:4px;cursor:pointer;display:flex;flex-shrink:0;font-size:.9rem;height:20px;justify-content:center;line-height:1;padding:0;transition:background .1s;visibility:hidden}.task-dots-btn,.task-dots-btn:hover{background:none;color:var(--text-muted)}.task-card:hover .task-dots-btn{visibility:visible}.task-card:hover .task-avatar{display:none}.task-dots-wrap.menu-open .task-dots-btn{background:none;visibility:visible}.task-dots-wrap.menu-open~.task-avatar{display:none}@media (max-width:768px){.quick-menu{font-size:.8rem;min-width:200px}.quick-menu-item{font-size:.8rem;min-height:40px;padding:10px 12px}.quick-menu-back{font-size:.78rem;padding:8px 12px}.quick-sub-menu{bottom:8px;left:8px;margin-left:0;padding-left:0;position:fixed;right:8px;top:auto;transform:none;z-index:1100}.quick-sub-menu-inner{-webkit-overflow-scrolling:touch;max-height:60vh;max-height:60dvh;overflow-y:auto;width:100%}.quick-sub-menu-inner .quick-menu-item{padding:10px 12px}}@media (max-width:480px){.quick-menu{-webkit-overflow-scrolling:touch;border-radius:12px;bottom:8px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;left:8px!important;max-height:70vh;max-height:70dvh;overflow-y:auto;position:fixed!important;right:8px!important;top:auto!important;width:auto!important}.quick-menu-item{font-size:.82rem;min-height:44px;padding:12px 14px}.quick-menu-divider{margin:4px 8px}}.confirm-overlay{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:2000}.confirm-dialog{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 20px 60px #00000080;max-width:90vw;min-width:320px;padding:24px}.confirm-message{color:var(--text-primary);font-size:.95rem;line-height:1.5;margin-bottom:20px}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.confirm-actions-col{align-items:stretch;flex-direction:column}.confirm-actions-col .btn{text-align:center}.btn-warning{background:#f59e0b26;border:1px solid #f59e0b40;color:var(--color-warning)}.btn-warning:hover{background:#f59e0b40}@media (max-width:480px){.confirm-dialog{min-width:auto;padding:20px;width:calc(100vw - 32px)}.confirm-actions{flex-direction:column;gap:6px}.confirm-actions .btn{min-height:44px;text-align:center;width:100%}}.filter-bar{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 12px 40px #00000080;display:flex;flex-direction:column;gap:14px;min-width:220px;padding:16px 18px;white-space:nowrap}.filter-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding-bottom:10px}.filter-title{color:var(--text-primary);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.filter-reset{background:none;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:.7rem;font-weight:600;padding:4px 8px;transition:all .15s}.filter-reset:hover{background:#ef44441a;color:var(--color-danger-light)}.filter-fields{gap:10px}.filter-fields,.filter-item{display:flex;flex-direction:column}.filter-item{gap:4px}.filter-item label{color:var(--text-faint);font-size:.65rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.filter-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.filter-chip{background:#0000;border:1px solid #3f4150;border-radius:12px;color:var(--text-secondary);cursor:pointer;font-size:.66rem;font-weight:600;padding:3px 8px;transition:all .15s}.filter-chip:hover{border-color:var(--text-muted);color:var(--text-primary)}.filter-chip-active{background:var(--color-primary);border-color:#0000;color:#fff}.filter-chip-prio{align-items:center;display:flex;gap:4px}@media (max-width:768px){.filter-bar{-webkit-overflow-scrolling:touch;border-radius:12px 12px 0 0;gap:12px;max-height:70vh;max-height:70dvh;min-width:0;min-width:auto;overflow-y:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom));width:100%}.filter-chips{gap:6px}.filter-chip{align-items:center;display:flex;padding:6px 12px}.filter-chip,.filter-reset{font-size:.75rem;min-height:32px}.filter-reset{padding:6px 10px}}@media (max-width:480px){.filter-bar{gap:10px;padding:14px 14px calc(14px + env(safe-area-inset-bottom))}.filter-chip{font-size:.72rem;padding:5px 10px}.filter-item label{font-size:.62rem}}.mini-cal{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 30px #0006;color:var(--text-primary);left:50%;margin-top:8px;padding:14px;position:absolute;top:100%;transform:translateX(-50%);width:300px;z-index:100}.mini-cal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.mini-cal-title{font-size:.9rem;font-weight:700;text-transform:uppercase}.mini-cal-title-btn{background:none;border:none;border-radius:4px;color:var(--text-primary);cursor:pointer;font-size:.9rem;font-weight:700;padding:2px 8px}.mini-cal-title-btn:hover{background:var(--tint-purple);color:var(--color-accent)}.mini-cal-nav{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px 8px}.mini-cal-nav:hover{background:var(--bg-input);color:var(--text-primary)}.mini-cal-weekdays{color:var(--text-faint);font-size:.7rem;font-weight:700;margin-bottom:4px;text-align:center}.mini-cal-grid,.mini-cal-weekdays{display:grid;grid-template-columns:24px repeat(7,1fr)}.mini-cal-grid{grid-gap:2px;gap:2px}.mini-cal-week{align-items:center;color:var(--text-faint);display:flex;font-size:.65rem;font-weight:600;justify-content:center}.mini-cal-grid-4{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(4,1fr)}.mini-cal-day,.mini-cal-empty{aspect-ratio:1}.mini-cal-day{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.8rem;font-weight:500;justify-content:center}.mini-cal-day:hover{background:var(--tint-purple);color:var(--color-accent)}.mini-cal-cell{align-items:center;background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.82rem;font-weight:500;justify-content:center;padding:10px 4px}.mini-cal-cell:hover{background:var(--tint-purple);color:var(--color-accent)}.mini-cal-today{background:var(--color-primary);color:#fff;font-weight:700}.mini-cal-today:hover{background:var(--color-primary-hover);color:#fff}.mini-cal-off{background:var(--bg-input);color:var(--text-muted)}.mini-cal-day.mini-cal-in-range{background:var(--tint-purple);border-radius:6px;color:var(--color-accent)}.mini-cal-day.mini-cal-range-end,.mini-cal-day.mini-cal-range-single,.mini-cal-day.mini-cal-range-start{background:var(--color-primary);color:#fff;font-weight:700}.mini-cal-day.mini-cal-range-end:hover,.mini-cal-day.mini-cal-range-single:hover,.mini-cal-day.mini-cal-range-start:hover{background:var(--color-primary-hover);color:#fff}@media (max-width:768px){.mini-cal{border-radius:12px 12px 0 0;bottom:0;box-shadow:0 -4px 30px #00000080;left:0;margin-top:0;max-width:100%;padding:16px 16px calc(16px + env(safe-area-inset-bottom));position:fixed;right:0;top:auto;transform:none;width:100%;z-index:1000}.mini-cal-day{font-size:.85rem;min-height:32px;min-width:32px}.mini-cal-cell{font-size:.85rem;padding:12px 4px}.mini-cal-nav{min-height:36px;min-width:36px}}@media (max-width:480px){.mini-cal{padding:14px 14px calc(14px + env(safe-area-inset-bottom))}.mini-cal-day{font-size:.8rem}}.calendar{display:flex;flex:1 1;flex-direction:column;gap:8px;min-height:0;overflow:hidden}.calendar-scroll-body{-ms-overflow-style:none;flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.calendar-scroll-body::-webkit-scrollbar{display:none}.calendar-nav{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.calendar-nav-left{align-items:center;background:var(--bg-card);border:none;border-radius:6px;display:flex;gap:8px;padding:8px 12px}.cal-nav-btn{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px 6px;transition:all .15s}.cal-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.cal-nav-today{color:var(--text-secondary);cursor:pointer;font-size:.9rem;font-weight:600}.month-label-wrap{align-items:center;display:flex;gap:6px;position:relative}.month-label{color:var(--text-secondary);font-size:.9rem;font-weight:600;min-width:100px;text-align:center}.appointment-time{font-weight:700;margin-right:3px}.filter-wrap{align-items:center;display:flex;gap:4px}.calendar-header-row{grid-gap:8px;display:grid;gap:8px;grid-template-columns:48px repeat(5,1fr)}.week-header{align-items:center;color:var(--text-muted);display:flex;font-size:.85rem;font-weight:700;justify-content:center}.day-col-header{background:#0000;border:none;border-radius:6px;color:var(--text-primary);font-size:.9rem;font-weight:700;padding:8px 0;text-align:center;text-transform:uppercase}.calendar-week-row{grid-gap:8px;display:grid;gap:8px;grid-template-columns:48px repeat(5,1fr);grid-template-rows:auto minmax(120px,auto);margin-bottom:12px}.week-cell{align-items:flex-start;display:flex;grid-row:1/-1;justify-content:center;padding-top:40px}.week-number{background:#ffffff0f;border-radius:6px;color:var(--text-secondary);font-size:.8rem;font-weight:700;padding:4px 6px;white-space:nowrap}.calendar-day{background:var(--bg-card);border:2px solid #0000;border-radius:6px;cursor:pointer;display:grid;grid-row:1/-1;grid-template-rows:subgrid;min-width:0;transition:border-color .2s,background .2s}.calendar-day.today{border-color:var(--color-primary)}.calendar-day.other-month{background:#16161d;opacity:.4}.calendar-day.holiday{background:#1e2236}.calendar-day.holiday .day-header{background:#24283d}.calendar-day.holiday .day-header:hover:not(:has(.appointment-tag-wrap:hover,.appointment-card:hover,.outlook-card:hover,.outlook-tag:hover)){background:var(--tint-purple)}.calendar-day.drag-over{background:var(--tint-purple);border-color:var(--color-primary);opacity:1}.day-header{background:var(--bg-input);border-bottom:1px solid var(--border);border-radius:6px 6px 0 0;cursor:pointer;display:flex;flex-direction:column;gap:6px;min-height:28px;min-width:0;overflow:hidden;padding:4px 8px}.day-header:hover:not(:has(.appointment-tag-wrap:hover,.appointment-card:hover,.outlook-card:hover,.outlook-tag:hover)){background:var(--tint-purple)}.day-header-top{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:4px;justify-content:flex-end}.day-header-top .day-date{margin-right:auto}.day-date{color:var(--text-secondary);flex-shrink:0;font-size:.8rem;font-weight:600}.holiday-name{color:#60a5fa;font-size:.6rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-tag-wrap{align-items:center;background:var(--bg-card);border-radius:3px;cursor:pointer;display:inline-flex;max-width:120px;position:relative}.appointment-tag-wrap:hover{cursor:grab}.appointment-tag-wrap.dragging{cursor:grabbing;opacity:.4;transform:rotate(2deg)}.appointment-tag{color:var(--text-muted);cursor:default;font-size:.56rem;font-weight:600;overflow:hidden;padding:1px 5px;text-overflow:ellipsis;white-space:nowrap}.roadmap-tag{color:#8a86c9}.roadmap-tag.is-pending{opacity:.5}.roadmap-event-card{background:#46408a!important;border:1px solid #8a86c966!important;cursor:default!important}.roadmap-event-card .appointment-card-text{color:#fff}.roadmap-event-card .appointment-card-dots-btn{display:none}.appointment-card{align-items:center;background:var(--color-primary);border:1px solid #5ba3d933;border-radius:6px;cursor:default;display:flex;gap:6px;min-width:0;opacity:1;padding:4px 8px;position:relative}.appointment-card-dots-btn{background:none;border:none;color:#fff;cursor:pointer;flex-shrink:0;font-size:.85rem;line-height:1;margin-left:auto;padding:0 2px;visibility:hidden}.appointment-card-dots-btn:hover{color:#c4dff0}.appointment-card:hover .appointment-card-dots-btn{visibility:visible}.current-week .appointment-card{opacity:1}.appointment-card:hover{cursor:grab}.appointment-card.dragging{cursor:grabbing;opacity:.4;transform:rotate(2deg)}.appointment-card.vacation-card{background:#4a4366;border-color:#4a436680;cursor:pointer}.appointment-card.vacation-card:hover{background:#564e76;cursor:grab}.appointment-card.vacation-card.dragging{cursor:grabbing}.appointment-card.vacation-card .appointment-card-text{letter-spacing:.02em}.appointment-card.vacation-card.is-pending{cursor:default;opacity:.5}.appointment-card.vacation-card.is-pending:hover{background:#4a4366;cursor:default}.appointment-card-time{color:#fff;flex-shrink:0;font-size:.85rem;font-weight:700;letter-spacing:.05em;width:40px}.appointment-card-text{color:#fff;font-size:.85rem;font-weight:400;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-tasks{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0;overflow:hidden;padding:4px 4px 24px}.task-card{background:#2e3240;border:1px solid var(--border);border-left:6px solid var(--border-input);border-radius:6px;cursor:pointer;font-size:.78rem;opacity:1;padding:3px 6px;transition:box-shadow .2s,transform .15s,opacity .2s}.current-week .task-card{opacity:1}.task-card:hover{box-shadow:0 4px 12px #0000004d}.task-card:hover .task-prio-icon{display:none}.task-card.dragging{cursor:grabbing;opacity:.4;transform:rotate(2deg)}.task-card.drag-over-task{border-top:3px solid var(--color-primary)}.task-card.done{opacity:.45}.task-card.done .task-name{text-decoration:line-through}.task-main-row{align-items:flex-start;display:flex;gap:6px;min-width:0}.task-check{align-items:center;background:#0000;border:2px solid var(--text-muted);border-radius:50%;cursor:pointer;display:flex;height:12px;justify-content:center;margin-top:4px;min-width:12px;opacity:0;padding:0;transition:all .2s;width:12px}.task-card:hover .task-check,.task-check.checked{opacity:1}.task-check:hover{background:var(--tint-purple);border-color:var(--color-accent)}.task-check.checked{background:var(--color-success);border-color:var(--color-success)}.checkmark{color:#fff;font-size:.65rem;font-weight:700;line-height:1}.task-content{flex:1 1;min-width:0}.task-name-row{align-items:center;display:flex;gap:4px;min-width:0}.task-name{color:#fff;flex:1 1;font-size:.7rem;font-weight:600;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-avatar{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:.45rem;font-weight:500;height:14px;justify-content:center;line-height:1;min-width:14px;width:14px}.task-avatar-empty{visibility:hidden}.task-info-row{align-items:center;display:flex;gap:4px;justify-content:space-between;margin-top:0}.task-deadline{color:#8890a0;font-size:.62rem;font-weight:700}.task-prio-icon{align-items:center;display:flex;flex-shrink:0;line-height:1}.outlook-card{background:#286e8a!important;border:1px solid #286e8a66!important;cursor:default!important}.outlook-card .appointment-card-text,.outlook-card .appointment-card-time{color:#fff}.outlook-card .appointment-card-dots-btn{display:none}.appointment-elapsed{filter:saturate(.3);opacity:.45!important}.outlook-persons{font-size:.65rem;margin-left:4px;opacity:.7}.mobile-month-view{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.mobile-month-weekdays{color:var(--text-faint);font-size:.7rem;font-weight:700;padding:4px 0;text-align:center;text-transform:uppercase}.mobile-month-grid,.mobile-month-weekdays{display:grid;grid-template-columns:repeat(5,1fr)}.mobile-month-grid{grid-gap:2px;flex:1 1;gap:2px}.mobile-month-cell{align-items:stretch;background:var(--bg-card);border-radius:4px;cursor:pointer;display:flex;flex-direction:column;gap:1px;justify-content:flex-start;overflow:hidden;padding:4px}.mobile-month-cell:active{background:var(--bg-hover)}.mobile-month-cell.empty{background:#0000;cursor:default}.mobile-month-cell.today{border:2px solid var(--color-primary)}.mobile-month-cell.holiday{background:#1e2236}.mobile-month-day-num{color:var(--text-primary);font-size:.72rem;font-weight:700;line-height:1}.mobile-month-holiday{color:#60a5fa;font-size:.48rem}.mobile-month-appt,.mobile-month-holiday{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-month-appt{border-radius:2px;flex:0 0 auto;font-size:.65rem;line-height:1.2;padding:1px 3px}.mobile-month-appt.tag{background:#5083b91f;color:#5083b9}.mobile-month-appt.normal{background:#28588a33;color:var(--color-accent);white-space:normal;word-break:break-word}.mobile-month-appt.outlook{background:#286e8a1f;color:#4db8a4;white-space:normal;word-break:break-word}.mobile-month-appt.roadmap{background:#5083b91f;color:#5083b9;height:auto;max-height:1.2em}.mobile-day-scroller{-webkit-overflow-scrolling:touch;display:flex;flex:1 1;gap:8px;min-height:0;overflow-x:auto;overflow-y:hidden;padding:0 9%;scroll-snap-type:x mandatory;scrollbar-width:none}.mobile-day-scroller::-webkit-scrollbar{display:none}.mobile-day-card{background:var(--bg-card);border:2px solid #0000;border-radius:8px;display:flex;flex:0 0 82%;flex-direction:column;height:100%;max-height:100%;min-width:0;overflow:hidden;scroll-snap-align:center}.mobile-day-card .day-tasks{-webkit-overflow-scrolling:touch;flex:1 1;min-height:0;overflow-y:auto}.mobile-day-card.today{border-color:var(--color-primary)}.mobile-day-card.past{opacity:1}.mobile-day-card.holiday{background:#1e2236}.mobile-day-label{align-items:center;display:flex;gap:8px;padding:10px 12px 6px}.mobile-day-weekday{color:var(--text-primary);font-size:.9rem;font-weight:700;text-transform:uppercase}.mobile-day-date{color:var(--text-secondary);font-size:.85rem;font-weight:600}.mobile-day-card .day-header{border-radius:0;gap:8px;padding:6px 12px 10px}.mobile-day-card .day-header-top{flex-wrap:wrap;gap:6px}.mobile-day-card .day-tasks{gap:8px;padding:6px 10px 16px}.mobile-day-card .task-card{font-size:.82rem;opacity:1;padding:10px}.mobile-day-card .task-name{font-size:.78rem}.mobile-day-card .task-dots-wrap{display:none}.mobile-day-card .task-check{height:16px;min-width:16px;opacity:1;width:16px}.mobile-day-card .task-info-row{display:flex}.mobile-day-card .task-deadline{font-size:.68rem}.mobile-day-card .appointment-tag{font-size:.7rem;padding:2px 6px}.mobile-day-card .appointment-tag-wrap{max-width:none}.mobile-day-card .appointment-card{opacity:1;padding:5px 8px}.mobile-day-card .appointment-card-time{font-size:.8rem;width:auto}.mobile-day-card .appointment-card-text{font-size:.8rem}.mobile-day-card .holiday-name{font-size:.7rem}@media (max-width:768px){.calendar-nav{flex-wrap:nowrap;gap:6px;margin-bottom:8px;margin-top:10px}.calendar-nav-left{flex:1 1;justify-content:center;min-width:0;padding:6px 8px;width:100%}.calendar .filter-wrap{bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom));flex-direction:column;gap:16px;position:fixed;right:16px;right:calc(16px + env(safe-area-inset-right));z-index:90}.calendar .filter-wrap .btn-filter-toggle{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px #00000080;display:flex;justify-content:center;min-height:36px;min-width:36px;padding:8px 12px}.month-label{font-size:.8rem;min-width:80px}.cal-nav-btn{min-height:36px;min-width:36px}.cal-nav-today{font-size:.8rem;padding:4px 8px}.calendar-header-row,.calendar-week-row{gap:4px;grid-template-columns:32px repeat(5,1fr)}.week-cell{padding-top:20px}.week-number{font-size:.65rem;padding:2px 4px}.day-col-header{font-size:.7rem;padding:4px 0}.calendar-day{min-height:80px}.day-header{gap:3px;padding:3px 4px}.day-date,.task-card{font-size:.68rem}.task-card{border-left-width:4px;padding:3px 5px}.task-name{font-size:.62rem}.task-avatar{font-size:.4rem;height:12px;min-width:12px;width:12px}.task-check{height:14px;margin-top:2px;min-width:14px;width:14px}.task-deadline{font-size:.55rem}.appointment-tag{font-size:.52rem;padding:2px 4px}.appointment-tag-wrap{max-width:90px}.appointment-card{gap:4px;padding:3px 5px}.appointment-card-time{font-size:.7rem;width:30px}.appointment-card-text{font-size:.7rem}.outlook-wrap{margin-right:0}.btn-outlook{font-size:.7rem;padding:4px 8px}.btn-filter-toggle{align-items:center;display:flex;justify-content:center;min-height:36px;min-width:36px}.filter-overlay{bottom:0;left:0;margin-top:0;position:fixed;right:0;top:auto;z-index:1000}}@media (max-width:480px){.calendar-nav{gap:4px;margin-bottom:6px}.calendar-nav-left{padding:4px 6px}.calendar-header-row,.calendar-week-row{gap:3px;grid-template-columns:repeat(5,1fr)}.week-cell,.week-header{display:none}.day-col-header{font-size:.6rem;padding:3px 0}.calendar-day{min-height:56px}.day-header{gap:2px;padding:2px 3px}.day-date{font-size:.62rem}.day-tasks{gap:2px;padding:2px 2px 8px}.task-card{border-left-width:3px;padding:2px 3px}.task-name{font-size:.58rem}.task-name-row{gap:3px}.task-check{height:12px;min-width:12px;width:12px}.task-dots-btn,.task-dots-wrap{height:18px;min-width:18px;width:18px}.task-info-row{display:none}.appointment-tag{font-size:.48rem;padding:1px 3px}.appointment-tag-wrap{max-width:70px}.appointment-card{gap:2px;padding:2px 3px}.appointment-card-time{font-size:.6rem;width:26px}.appointment-card-text{font-size:.6rem}.holiday-name{font-size:.5rem}.month-label{font-size:.8rem;min-width:70px}.filter-wrap{gap:2px}}.areas-page{display:flex;flex:1 1;flex-direction:column;gap:8px;min-height:0;overflow:hidden}.list-toolbar{align-items:center;display:flex;height:38px;justify-content:flex-end;margin-bottom:12px}.cat-layout{display:flex;flex:1 1;gap:14px;min-height:0;overflow:hidden}.cat-sidebar{background:var(--bg-card);border-radius:6px;flex-shrink:0;overflow-y:auto;padding:16px 12px;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin;width:240px}.cat-sidebar::-webkit-scrollbar{width:6px}.cat-sidebar::-webkit-scrollbar-track{background:#0000}.cat-sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.cat-sidebar::-webkit-scrollbar-thumb:hover{background:#3f4150}.cat-sidebar-divider{background:var(--border);height:1px;margin:6px 8px}.cat-sidebar-divider-blue{background:var(--border);border-radius:1px;cursor:grab;height:2px;margin:6px 8px}.cat-item{align-items:center;background:#0000;border:2px solid #0000;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:8px;margin-bottom:3px;padding:8px 10px;text-align:left;transition:all .15s;width:100%}.cat-item[draggable=true]{cursor:grab}.cat-item[draggable=true]>*{pointer-events:none}.cat-item:hover{background:var(--bg-input);color:var(--text-primary)}.cat-item-active{color:var(--text-primary);font-weight:600}.cat-item-label{align-items:center;display:flex;flex:1 1;gap:5px}.cat-admin-icon{flex-shrink:0;opacity:.5}.cat-item-count{background:var(--border);border-radius:6px;color:var(--text-secondary);font-size:.7rem;font-weight:700;min-width:22px;padding:2px 7px;text-align:center}.cat-add-area{color:var(--text-faint);font-style:normal;font-weight:500}.cat-add-area:hover{color:var(--text-secondary)}.cat-main{background:var(--bg-card);border-radius:6px;display:flex;flex:1 1;flex-direction:column;overflow-x:auto;overflow-y:auto;padding:20px;position:relative;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin}.cat-main::-webkit-scrollbar{width:6px}.cat-main::-webkit-scrollbar-track{background:#0000}.cat-main::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.cat-main::-webkit-scrollbar-thumb:hover{background:#3f4150}.cat-main-header{align-items:center;border-bottom:3px solid var(--border);display:flex;gap:12px;margin-bottom:16px;padding-bottom:14px}.cat-main-header h2{color:var(--text-primary);flex:1 1;font-size:1.2rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.cat-main-header-title{cursor:pointer;transition:opacity .15s}.cat-main-header-title:hover{opacity:.7;text-decoration:underline;text-underline-offset:3px}.cat-main-header-subtitle{color:var(--text-muted);font-size:.8rem;font-weight:400}.cat-header-add{background:none;border:none;border-radius:4px;color:var(--text-faint);cursor:pointer;font-size:1.1rem;font-weight:500;line-height:1;margin-left:8px;padding:2px 6px;transition:all .15s}.cat-header-add:hover{background:var(--bg-hover);color:var(--text-primary)}.area-popup{width:360px}.area-edit-row{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.area-edit-row label{color:var(--text-faint);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.area-edit-row-inline{align-items:center;display:flex;gap:8px}.area-edit-row-pair{align-items:flex-end;display:flex;gap:12px;margin-bottom:12px}.area-edit-cell{display:flex;flex-direction:column;gap:4px}.area-edit-cell-grow{flex:1 1;min-width:0}.area-edit-cell label{color:var(--text-faint);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.area-edit-input{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);flex:1 1;font-size:.85rem;height:32px;padding:0 10px}.area-edit-input:focus{border-color:var(--color-primary);outline:none}.area-color-picker-wrap{align-items:center;display:flex;gap:8px;position:relative}.area-color-btn{border:2px solid var(--border-input);border-radius:6px;cursor:pointer;flex-shrink:0;height:32px;padding:0;transition:border-color .15s;width:32px}.area-color-btn:hover{border-color:var(--text-muted)}.area-color-popover{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0006;display:flex;flex-direction:column;padding:12px;position:fixed;z-index:2100}.area-color-popover .react-colorful{height:160px;width:200px}.area-color-popover .react-colorful__saturation{border-radius:6px 6px 0 0}.area-color-popover .react-colorful__hue{border-radius:0 0 6px 6px;height:14px}.area-color-popover .react-colorful__hue-pointer,.area-color-popover .react-colorful__saturation-pointer{height:18px;width:18px}.area-color-hex-input{background:var(--bg-input);border:1px solid var(--border-input);border-radius:6px;color:var(--text-primary);font-family:monospace;font-size:.82rem;letter-spacing:.05em;margin-top:8px;padding:6px 8px;text-align:center;width:200px}.area-color-hex-input:focus{border-color:var(--color-primary);outline:none}.area-lock-icon{align-items:center;background:#0000;border:none;border-radius:4px;color:var(--text-faint);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:6px;transition:all .15s}.area-lock-icon:hover{background:var(--bg-hover);color:var(--text-secondary)}.area-lock-icon.locked{color:var(--text-primary)}.area-edit-actions{display:flex;gap:8px;justify-content:space-between;margin-top:32px}.area-form-error{background:var(--tint-danger);border-radius:6px;color:var(--color-danger-light);font-size:.85rem;margin-top:14px;padding:8px 12px}.bulk-action-bar{align-items:center;background:var(--bg-card);border:1px solid var(--border-input);border-radius:8px;bottom:12px;box-shadow:0 -4px 12px #00000040;display:flex;gap:12px;margin-top:auto;padding:12px 16px 8px;position:sticky;z-index:50}.bulk-count{color:var(--text-primary);font-size:.85rem;font-weight:600;white-space:nowrap}.bulk-actions{display:flex;flex:1 1;gap:6px}.bulk-btn{align-items:center;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.8rem;gap:6px;padding:5px 12px;transition:all .15s}.bulk-btn:hover{background:var(--bg-hover)}.bulk-btn-delete:hover{background:#ef444426;border-color:var(--color-danger);color:var(--color-danger)}.bulk-btn-duplicate:hover{background:#5ba3d926;border-color:var(--color-accent);color:var(--color-accent)}.bulk-btn-close{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;display:flex;margin-left:auto;padding:4px;transition:all .15s}.bulk-btn-close:hover{background:var(--bg-hover);color:var(--text-primary)}.bulk-move-wrap{position:relative}.bulk-btn-move:hover{background:#5ba3d926;border-color:var(--color-accent);color:var(--color-accent)}.bulk-move-dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;bottom:calc(100% + 4px);box-shadow:0 8px 30px #0006;left:0;max-height:200px;min-width:180px;overflow-y:auto;padding:4px;position:absolute;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin;z-index:2000}.bulk-move-dropdown::-webkit-scrollbar{width:6px}.bulk-move-dropdown::-webkit-scrollbar-track{background:#0000}.bulk-move-dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.bulk-move-option{background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:block;font-size:.82rem;font-weight:500;padding:7px 10px;text-align:left;transition:all .1s;width:100%}.bulk-move-option:hover{background:var(--tint-primary);color:var(--text-primary)}.bulk-cat-input-wrap{border-bottom:1px solid var(--border);margin-bottom:2px;padding:4px 4px 2px}.bulk-cat-input{background:var(--bg-input);border:1px solid var(--border-input);border-radius:4px;box-sizing:border-box;color:var(--text-primary);font-size:.82rem;font-weight:500;outline:none;padding:7px 10px;width:100%}.bulk-cat-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring)}.bulk-cat-none{border-top:1px solid var(--border);color:var(--text-faint);font-style:italic;margin-top:2px}.custom-checkbox{cursor:pointer}.checkbox-box,.custom-checkbox{align-items:center;display:flex;justify-content:center}.checkbox-box{border:1.5px solid var(--border-input);border-radius:3px;flex-shrink:0;height:14px;transition:all .15s;width:14px}.checkbox-box:hover{border-color:var(--color-accent)}.checkbox-box.checked,.checkbox-box.partial{background:var(--color-primary);border-color:var(--color-primary)}.cat-empty{align-items:center;color:var(--text-faint);display:flex;flex-direction:column;height:300px;justify-content:center}.cat-empty p{font-size:1rem}.list-category-row td{border-bottom:none!important;padding:0!important}.list-category-check{margin-left:12px;margin-right:2px}.list-category-row:hover{background:#0000!important}.list-category-header{align-items:center;border-bottom:2px solid var(--border);color:var(--text-secondary);display:flex;font-size:.85rem;font-weight:700;gap:8px;letter-spacing:.03em;margin-bottom:0;padding:40px 0 12px;text-transform:uppercase}.list-category-toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.list-category-toggle:hover{color:var(--color-accent)}.list-category-chevron{align-items:center;color:var(--text-muted);display:inline-flex;transition:transform .15s}.list-category-chevron.collapsed{transform:rotate(-90deg)}.list-category-count{background:var(--border);border-radius:6px;color:var(--text-secondary);font-size:.7rem;font-weight:700;padding:1px 7px}.list-category-add{background:none;border:none;border-radius:4px;color:var(--text-faint);cursor:pointer;font-size:1rem;font-weight:500;line-height:1;opacity:0;padding:0 4px;transition:all .15s}.list-category-toggle:hover .list-category-add{opacity:1}.list-category-add:hover{background:var(--bg-hover);color:var(--text-primary)}.list-table{border-collapse:collapse;font-size:.85rem;margin-bottom:36px;min-width:600px;table-layout:fixed;width:100%}.list-table thead th{border-bottom:1px solid var(--border);color:var(--text-faint);font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:6px 10px;text-align:left;text-transform:uppercase}.list-sort-btn{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:4px;letter-spacing:inherit;padding:0;text-transform:inherit;transition:color .12s}.list-sort-btn.is-active,.list-sort-btn:hover{color:var(--text)}.list-sort-icon{flex-shrink:0;opacity:0;transition:opacity .12s,transform .15s}.list-sort-btn:hover .list-sort-icon{opacity:.45}.list-sort-btn.is-active .list-sort-icon{opacity:1}.list-sort-icon.is-desc{transform:rotate(180deg)}.list-table tbody tr{cursor:pointer;transition:background .1s}.list-table tbody tr:hover{background:var(--bg-input)}.list-table td{border-bottom:1px solid var(--border);padding:8px 10px;vertical-align:middle}.col-check{width:38px}.list-table tbody .col-check .custom-checkbox,.list-table tbody .list-category-check{opacity:0;transition:opacity .12s}.list-table tbody .col-check:has(.checkbox-box.checked) .custom-checkbox,.list-table tbody .col-check:has(.checkbox-box.partial) .custom-checkbox,.list-table tbody .list-category-check:has(.checkbox-box.checked),.list-table tbody .list-category-check:has(.checkbox-box.partial),.list-table tbody .list-category-row:hover .list-category-check,.list-table tbody tr:hover .col-check .custom-checkbox{opacity:1}.col-name{color:var(--text-primary);font-weight:600}.col-person{color:var(--text-muted);width:140px}.col-person,.col-person-text{overflow:hidden;white-space:nowrap}.col-person-text{display:block;max-width:100%;text-overflow:ellipsis}.list-table-with-area .col-person-text{max-width:100%}.col-area{white-space:nowrap;width:120px}.area-badge{border:1.5px solid;border-radius:4px;display:inline-block;font-size:.75rem;font-weight:600;max-width:110px;overflow:hidden;padding:1px 6px;text-overflow:ellipsis;white-space:nowrap}.col-prio{width:50px}.col-calendar,.col-deadline{color:var(--text-muted);font-size:.82rem;white-space:nowrap;width:80px}.col-calendar,.col-deadline{width:100px}.col-date{color:var(--text-secondary);width:74px}.col-date,.col-time{font-size:.82rem;white-space:nowrap}.col-time{color:var(--text-muted);width:120px}.list-row:hover .row-actions{opacity:1}.list-row-done{opacity:.5}.list-row-selected{background:#ffffff0d!important}.text-done{text-decoration:line-through}.btn-filter-toggle{align-items:center;background:var(--bg-card);border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;padding:8px 12px;position:relative;transition:all .15s}.btn-filter-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-filter-toggle.has-filters{color:var(--color-accent)}.filter-dot{background:var(--color-danger);border-radius:50%;height:6px;position:absolute;right:6px;top:6px;width:6px}.filter-wrap{position:relative}.filter-overlay{margin-top:8px;position:absolute;right:0;top:100%;z-index:100}.cat-mobile-chevron{display:none}.cat-mobile-dropdown-list{-webkit-overflow-scrolling:touch;background:var(--bg-card);border:1px solid var(--border);border-bottom:none;border-radius:12px 12px 0 0;bottom:0;box-shadow:0 -4px 30px #00000080;left:0;max-height:60vh;max-height:60dvh;overflow-y:auto;padding:8px 8px calc(8px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:1000}.cat-mobile-dropdown-item{align-items:center;background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:8px;padding:12px;text-align:left;width:100%}.cat-mobile-dropdown-item:hover{background:var(--bg-input)}.cat-mobile-dropdown-item.active{background:var(--tint-primary);color:var(--text-primary);font-weight:700}.cat-mobile-dropdown-item .cat-item-count{margin-left:auto}.cat-mobile-dropdown-divider{background:var(--border);height:1px;margin:4px 8px}@media (max-width:768px){.list-toolbar{height:0;margin-bottom:0;overflow:visible}.areas-page>.list-toolbar>.filter-wrap{bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom));position:fixed;right:16px;right:calc(16px + env(safe-area-inset-right));z-index:90}.areas-page>.list-toolbar>.filter-wrap>.btn-filter-toggle{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px #00000080;min-height:36px;min-width:36px;padding:8px 12px}.cat-layout{flex-direction:column;gap:8px}.cat-main{min-height:0;padding:12px}.cat-main-header{cursor:pointer;flex-wrap:wrap;gap:8px;margin-bottom:10px;padding:0}.cat-main-header h2{align-items:center;display:flex;font-size:1.1rem;gap:6px;padding:4px 0}.cat-mobile-chevron{display:inline-block;opacity:.5}.cat-header-add{align-items:center;display:flex;font-size:1.4rem;justify-content:center;margin-left:12px;min-height:36px;min-width:36px;padding:6px 10px}.list-table{font-size:.78rem;table-layout:auto}.col-calendar,.col-deadline{font-size:.72rem;width:auto}.col-person-text{max-width:120px}.col-actions{width:50px}.row-actions{opacity:1}.bulk-action-bar{border-radius:8px 8px 0 0;bottom:0;flex-wrap:wrap;gap:8px;left:0;padding:10px 10px calc(10px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:100}.bulk-actions{flex-wrap:wrap;gap:4px}.bulk-btn{font-size:.75rem;padding:6px 10px}.area-popup{max-width:360px;width:calc(100vw - 32px)}.filter-overlay{bottom:0;left:0;margin-top:0;position:fixed;right:0;top:auto;z-index:1000}}@media (max-width:480px){.cat-main{padding:8px}.cat-main-header h2{font-size:.9rem}.col-date,.col-person,.col-time{display:none}.col-prio{width:30px}.col-check{width:28px}.list-category-header{font-size:.75rem;padding:20px 0 8px}.list-table{font-size:.75rem}.list-table td{padding:8px 6px}.list-table thead th{font-size:.62rem;padding:4px 6px}.area-badge{font-size:.68rem;max-width:80px}}.date-picker-wrap{position:relative}.date-picker-trigger{align-items:center;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:8px;justify-content:space-between;padding:8px 12px;text-align:left;transition:border-color .15s;width:100%}.date-picker-trigger .placeholder{color:var(--border-input)}.date-picker-trigger svg{color:var(--text-faint);flex-shrink:0}.date-picker-trigger:hover{border-color:var(--border-input)}.date-picker-trigger.icon-only{background:#0000;border-color:#0000;padding:6px 8px;width:auto}.date-picker-trigger.icon-only:hover{background:var(--bg-input);border-color:var(--border-input)}.date-picker-trigger.icon-only svg{color:var(--text-muted)}.date-picker-trigger.icon-only:hover svg{color:var(--text-primary)}.date-picker-trigger:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.date-picker-clear{border-radius:4px;color:var(--text-faint);cursor:pointer;flex-shrink:0;font-size:16px;line-height:1;padding:0 2px}.date-picker-clear:hover{color:var(--text-primary)}.date-picker-dropdown{z-index:2000}.date-picker-dropdown .mini-cal{left:auto;margin-top:0;position:relative;top:auto;transform:none}@media (max-width:768px){.date-picker-trigger{min-height:40px;padding:10px 12px}}.custom-select{position:relative}.custom-select.disabled{opacity:.35;pointer-events:none}.custom-select-trigger{align-items:center;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:8px;justify-content:space-between;padding:8px 12px;text-align:left;transition:border-color .15s;width:100%}.custom-select-trigger.placeholder{color:var(--text-faint)}.custom-select-trigger svg{color:var(--text-faint);flex-shrink:0;transition:transform .15s}.custom-select-trigger.open svg{transform:rotate(180deg)}.custom-select-trigger:hover{border-color:var(--border-input)}.custom-select-trigger:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.custom-select-dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 30px #0006;max-height:200px;overflow-y:auto;padding:4px;z-index:2000}.custom-select-dropdown::-webkit-scrollbar{width:6px}.custom-select-dropdown::-webkit-scrollbar-track{background:#0000}.custom-select-dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.custom-select-option{background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:block;font-size:.82rem;font-weight:500;padding:7px 10px;text-align:left;transition:all .1s;width:100%}.custom-select-option:hover{background:var(--tint-primary);color:var(--text-primary)}.custom-select-option.active{background:var(--color-primary);color:#fff}.multi-check{align-items:center;border:1.5px solid var(--border-input);border-radius:3px;display:inline-flex;flex-shrink:0;height:14px;justify-content:center;margin-right:8px;vertical-align:middle;width:14px}.multi-check.checked{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.custom-select-option.active .multi-check{background:#ffffff40;border-color:#fff}@media (max-width:768px){.custom-select-option,.custom-select-trigger{min-height:40px;padding:10px 12px}.custom-select-option{align-items:center;display:flex;font-size:.85rem}.custom-select-dropdown{-webkit-overflow-scrolling:touch;max-height:240px}}.btn-sm{font-size:.75rem;padding:4px 10px}.task-form-label{color:var(--text-faint);display:flex;flex-direction:column;font-size:.68rem;font-weight:700;gap:4px;letter-spacing:.05em;text-transform:uppercase}.form-error{background:var(--tint-danger);border-radius:6px;color:var(--color-danger-light);font-size:.875rem;margin-bottom:12px;padding:8px 12px}.form-row{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.form-row label{color:var(--text-faint);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.form-row input{background:var(--bg-input);border:1px solid var(--border-input);border-radius:6px;color:var(--text-primary);font-size:.9rem;padding:8px 12px;transition:border-color .2s}.form-row input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--tint-purple);outline:none}.form-row-half{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.task-cat-wrap{position:relative;width:100%}.task-cat-wrap input{box-sizing:border-box;width:100%}.form-advanced-toggle{align-items:center;background:none;border:none;border-top:1px solid var(--border);color:var(--text-muted);cursor:pointer;display:flex;font-size:.78rem;font-weight:400;gap:6px;margin:4px 0 8px;padding:8px 0;transition:color .15s;width:100%}.form-advanced-toggle:hover{color:var(--text-secondary)}.form-advanced-chevron{flex-shrink:0;transition:transform .15s}.form-advanced-chevron.collapsed{transform:rotate(-90deg)}.task-person-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.task-person-chip{background:#0000;border:1.5px solid var(--border-input);border-radius:20px;color:var(--text-secondary);cursor:pointer;font-size:.68rem;font-weight:600;line-height:1.4;padding:2px 8px;transition:all .15s}.task-person-chip:hover{border-color:var(--text-faint)}.task-person-chip-active{border-color:#0000;color:#fff}.prio-option-label{align-items:center;display:inline-flex;gap:6px}.form-notes{background:var(--bg-input);border:1px solid var(--border-input);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:.9rem;min-height:150px;padding:8px 12px;resize:vertical;scrollbar-color:var(--border) #0000;scrollbar-width:thin;width:100%}.form-notes::-webkit-scrollbar{width:6px}.form-notes::-webkit-scrollbar-track{background:#0000}.form-notes::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.form-notes::-webkit-scrollbar-thumb:hover{background:#3f4150}.form-notes:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--tint-purple);outline:none}.form-actions{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:16px}.form-actions-right{display:flex;gap:8px;margin-left:auto}.cat-suggestions{background:#1e1e2e;background:var(--bg-secondary,#1e1e2e);border:1px solid #333;border:1px solid var(--border-color,#333);border-radius:6px;left:0;margin-top:2px;max-height:160px;overflow-y:auto;position:absolute;right:0;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin;top:100%;z-index:100}.cat-suggestion-item{cursor:pointer;font-size:.8rem;padding:6px 10px}.cat-suggestion-item:hover{background:#2a2a3e;background:var(--bg-hover,#2a2a3e)}@media (max-width:768px){.form-row-half{gap:8px;grid-template-columns:1fr}.form-actions{flex-wrap:wrap;gap:6px}.task-person-chips{gap:6px}.task-person-chip{align-items:center;display:flex;font-size:.75rem;min-height:32px;padding:5px 12px}.form-notes,.form-row input{font-size:16px;padding:10px 12px}.form-notes{min-height:100px}.form-row label{font-size:.72rem}}@media (max-width:480px){.form-row input{padding:9px 10px}.form-notes{min-height:60px}.task-person-chip{font-size:.72rem;min-height:28px;padding:4px 10px}}.appointment-form-wrap{display:flex;flex-direction:column;height:100%}.appointment-form-wrap .appointment-form{display:flex;flex:1 1;flex-direction:column}.appointment-form-wrap .form-actions{margin-top:auto;padding-top:16px}.appointment-form-tabs{border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:4px;margin:0 0 18px}.appointment-form-tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;padding:8px 14px;transition:color .15s,border-color .15s}.appointment-form-tab:hover{color:var(--text-primary)}.appointment-form-tab.active{border-bottom-color:#6a9eff;border-bottom-color:var(--color-primary,#6a9eff);color:var(--text-primary)}.appointment-form-body{display:flex;flex:1 1;flex-direction:column;min-height:200px}.appointment-form-body--stacked{display:grid;grid-template-columns:1fr}.appointment-form-body--stacked>.appointment-form{grid-area:1/1;min-width:0}.appointment-form-body--stacked>.appointment-form.is-inactive{pointer-events:none;visibility:hidden}.appointment-form .form-row{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.appointment-form .form-row label{color:var(--text-faint);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.appointment-form .form-row input{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.85rem;font-weight:500;padding:8px 12px;transition:border-color .15s}.appointment-form .form-row input:hover{border-color:var(--border-input)}.appointment-form .form-row input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.appointment-form .form-row input::placeholder{color:var(--border-input)}.appointment-form .form-row-half{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.appointment-form .form-error{background:#ef444414;border:1px solid #ef444426;border-radius:6px;color:var(--color-danger-light);font-size:.8rem;font-weight:500;margin-bottom:14px;padding:8px 12px}.appointment-form .form-actions{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:auto;padding-top:16px}.appointment-form .form-actions-right{display:flex;gap:8px;margin-left:auto}.form-duplicate-hint{color:var(--color-warning);font-size:.72rem;font-weight:500;margin-top:4px}.time-input-wrap{position:relative}.time-input-wrap .time-input{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;box-sizing:border-box;color:var(--text-primary);font-size:.85rem;font-weight:500;padding:8px 12px;transition:border-color .15s;width:100%}.time-input-wrap .time-input:hover{border-color:var(--border-input)}.time-input-wrap .time-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.time-input-wrap .time-input::placeholder{color:var(--border-input)}.time-dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 30px #0006;max-height:160px;overflow-y:auto;padding:4px;z-index:2000}.time-dropdown::-webkit-scrollbar{width:6px}.time-dropdown::-webkit-scrollbar-track{background:#0000}.time-dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.time-option{background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:block;font-size:.82rem;font-weight:500;padding:7px 10px;text-align:left;transition:all .1s;width:100%}.time-option:hover{background:var(--tint-primary);color:var(--text-primary)}.time-option.active{background:var(--color-primary);color:#fff}.custom-select-dropdown::-webkit-scrollbar,.time-dropdown::-webkit-scrollbar{width:6px}.custom-select-dropdown::-webkit-scrollbar-track,.time-dropdown::-webkit-scrollbar-track{background:#0000}.custom-select-dropdown::-webkit-scrollbar-thumb,.time-dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}@media (max-width:768px){.appointment-form .form-row-half{gap:8px;grid-template-columns:1fr}.appointment-form-tabs{margin-bottom:12px}.appointment-form-tab{font-size:.82rem;min-height:36px;padding:8px 12px}.appointment-form-body{min-height:160px}.appointment-form .form-row input,.time-input-wrap .time-input{font-size:16px;padding:10px 12px}.time-dropdown{max-height:200px}.time-option{font-size:.85rem;padding:10px 12px}}@media (max-width:480px){.appointment-form-tab{font-size:.78rem;padding:8px 10px}}.week-picker{position:relative}.week-picker-trigger{background:#1e2028;border:1px solid var(--border);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:.85rem;font-weight:400;padding:8px 10px;text-align:left;transition:border-color .15s;width:100%}.week-picker-trigger:hover{border-color:var(--text-muted)}.week-picker-trigger:focus{border-color:var(--color-accent);outline:none}.week-picker-dropdown{background:#1e2028;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0006;min-width:220px;padding:10px;z-index:10000}.week-picker-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.week-picker-year{color:var(--text-primary);font-size:.85rem;font-weight:700}.week-picker-nav{align-items:center;background:#0000;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;padding:4px 6px;transition:all .15s}.week-picker-nav:hover{background:#ffffff0d;color:var(--text-primary)}.week-picker-grid{flex-direction:column}.week-picker-grid,.week-picker-row{display:flex;gap:2px}.week-picker-cell{align-items:center;background:#0000;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.72rem;font-weight:600;height:28px;justify-content:center;transition:all .12s;width:34px}.week-picker-cell:hover{background:#5ba3d926;color:var(--text-primary)}.week-picker-cell-current{color:var(--color-accent);font-weight:700}.week-picker-cell-selected{background:var(--color-accent);color:#fff}.week-picker-cell-selected:hover{background:var(--color-accent);filter:brightness(1.15)}.roadmap{background:var(--bg-body);display:flex;flex:1 1;flex-direction:column;min-height:0;overflow-x:auto;overflow-y:auto;position:relative;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin}.roadmap::-webkit-scrollbar{height:6px;width:6px}.roadmap::-webkit-scrollbar-track{background:#0000}.roadmap::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.roadmap::-webkit-scrollbar-thumb:hover{background:#3f4150}.roadmap-header-sticky{position:sticky;top:0;z-index:20}.roadmap-groups-container{display:flex;flex:1 1;flex-direction:column}.roadmap-month-row{background:#1f2023;display:flex}.roadmap-month-cell{border-right:1px solid var(--border);color:var(--text-primary);font-size:.85rem;font-weight:700;letter-spacing:.05em;padding:10px 0;text-align:center;text-transform:uppercase}.roadmap-week-row{background:#18191b;display:flex}.roadmap-week-cell{border-right:1px solid #1e2028;color:var(--text-muted);font-size:.7rem;font-weight:600;padding:6px 0;text-align:center}.roadmap-week-current{background:#ffffff0d;color:var(--text-primary)}.roadmap-label-cell{background:inherit;left:0;min-width:140px;position:sticky;width:140px;z-index:15}.roadmap-header-label{background:inherit}.roadmap-group{border-bottom:1px solid #1e2028;display:flex;flex-direction:column;min-height:0}.roadmap-group-inner{display:flex;flex:1 1;position:relative}.roadmap-group-label{align-items:center;background:#171717;border-left:none;color:var(--text-primary);display:flex;font-size:.9rem;font-weight:700;justify-content:center;line-height:1.3;padding:12px 10px;text-align:center;text-transform:uppercase}.roadmap-lanes{min-height:80px;position:relative}.roadmap-grid-line{border-right:1px solid #1a1d26;bottom:0;cursor:pointer;position:absolute;top:0}.roadmap-grid-line:hover{background:#5ba3d90a}.roadmap-grid-line.drag-over{background:#5ba3d926}.roadmap-grid-current{background:#ffffff0a}.roadmap-bar{align-items:stretch;border:2px solid;border-radius:6px;cursor:grab;display:flex;font-size:.7rem;font-weight:600;height:40px;overflow:hidden;padding:0;position:absolute;transition:filter .15s;-webkit-user-select:none;user-select:none;z-index:2}.roadmap-bar:active{cursor:grabbing}.roadmap-bar:hover{filter:brightness(1.3)}.roadmap-bar.roadmap-bar-synthetic,.roadmap-bar.roadmap-bar-synthetic:active{cursor:default}.roadmap-bar.roadmap-bar-synthetic:hover{filter:brightness(1.15)}.roadmap-bar.roadmap-bar-pending{opacity:.5}.roadmap-bar-content{display:flex;flex:1 1;flex-direction:column;gap:1px;justify-content:center;min-width:0;padding:2px 8px}.roadmap-bar-text{flex-shrink:0;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roadmap-bar-text-wrap{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;white-space:normal;word-break:break-word}.roadmap-bar-meta{align-items:center;display:flex;gap:4px;justify-content:space-between;min-height:14px}.roadmap-bar-date{font-size:.58rem;font-weight:600;opacity:.75;white-space:nowrap}.roadmap-bar-persons{align-items:center;display:flex;gap:3px;margin-left:auto}.roadmap-bar-person{border-radius:3px;color:#fff;font-size:.55rem;font-weight:700;letter-spacing:.03em;line-height:1.2;padding:1px 4px}.roadmap-bar-events{height:auto;min-height:60px}.roadmap-bar-employee{border-width:1px;font-size:.6rem;height:22px}.roadmap-bar-done{opacity:.45}.roadmap-bar-handle{border-radius:2px;bottom:0;cursor:col-resize;position:absolute;top:0;transition:background .15s;width:6px;z-index:3}.roadmap-bar-handle:active,.roadmap-bar-handle:hover{background:#ffffff40}.roadmap-bar-handle-left{left:0}.roadmap-bar-handle-right{right:0}.roadmap-form{display:flex;flex-direction:column;gap:12px;max-width:420px;width:100%}.roadmap-form .modal-header{margin-bottom:12px}.roadmap-form-group-badge{font-size:.9rem;margin-bottom:8px}.roadmap-form-group-badge,.roadmap-form-label{font-weight:700;letter-spacing:.05em;text-transform:uppercase}.roadmap-form-label{color:var(--text-faint);display:flex;flex-direction:column;font-size:.68rem;gap:4px}.roadmap-form-input{background:#1e2028;border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.85rem;padding:8px 10px}.roadmap-form-input:focus{border-color:var(--color-accent);outline:none}.roadmap-form-title-with-presets{display:flex;flex-direction:column;gap:6px}.roadmap-form-presets{display:flex;flex-wrap:wrap;gap:6px}.roadmap-form-preset{background:#0000;border:1px solid var(--border);border-radius:14px;color:var(--text-secondary);cursor:pointer;font-size:.7rem;font-weight:600;padding:3px 10px;transition:all .15s}.roadmap-form-preset:hover{border-color:var(--text-muted);color:var(--text-primary)}.roadmap-form-preset-active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.roadmap-form-row{display:flex;gap:12px}.roadmap-form-row .roadmap-form-label{flex:1 1}.roadmap-wrap{display:flex;flex:1 1;flex-direction:column;height:calc(100vh - 120px);min-height:0}.roadmap-body{display:flex;flex:1 1;min-height:0;position:relative}.roadmap-nav{align-items:center;display:flex;gap:12px;margin-bottom:12px}.roadmap-nav-inner{align-items:center;background:var(--bg-card);border-radius:6px;display:flex;gap:8px;padding:8px 12px}.roadmap-person-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.roadmap-person-chip{background:#0000;border:1px solid #3f4150;border-radius:14px;color:var(--text-secondary);cursor:pointer;font-size:.75rem;font-weight:600;padding:4px 10px;transition:all .15s}.roadmap-person-chip:hover{border-color:var(--text-muted);color:var(--text-primary)}.roadmap-person-chip-active{border-color:#0000;color:#fff}.roadmap-form-actions{align-items:center;display:flex;gap:8px;margin-top:8px}.roadmap-backlog{background:var(--bg-card);border-left:1px solid var(--border);bottom:0;display:flex;flex-direction:column;overflow:visible;position:fixed;right:0;top:120px;transition:width .25s ease;width:0;z-index:30}.roadmap-backlog-open{width:280px}.roadmap-backlog-toggle{background:var(--bg-input);border:1px solid var(--border);border-radius:6px 0 0 6px;border-right:none;color:var(--text-secondary);cursor:pointer;font-size:.75rem;font-weight:600;left:-32px;letter-spacing:.05em;padding:12px 6px;position:absolute;top:50%;transform:translateY(-50%);transition:right .25s ease;white-space:nowrap;writing-mode:vertical-rl;z-index:31}.roadmap-backlog-toggle:hover{background:var(--border);color:var(--text-primary)}.roadmap-backlog-content{display:flex;flex:1 1;flex-direction:column;gap:4px;overflow-x:hidden;overflow-y:auto;padding:12px;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin}.roadmap-backlog-add{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.roadmap-backlog-item{border:2px solid;border-radius:6px;cursor:pointer;font-size:.7rem;font-weight:600;padding:6px 10px;transition:filter .15s;-webkit-user-select:none;user-select:none}.roadmap-backlog-item:hover{filter:brightness(1.3)}.roadmap-backlog-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roadmap-backlog-empty{border-radius:6px;cursor:pointer;flex:1 1;min-height:60px;transition:background .15s}.roadmap-backlog-empty:hover{background:#ffffff0a}.roadmap-wrap .filter-wrap{align-items:center;display:flex;gap:4px;position:relative}.roadmap-wrap .btn-filter-toggle{align-items:center;background:var(--bg-card);border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;padding:8px 12px;position:relative;transition:all .15s}.roadmap-wrap .btn-filter-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.roadmap-wrap .btn-filter-toggle.has-filters{color:var(--color-accent)}.roadmap-wrap .filter-dot{background:var(--color-danger);border-radius:50%;height:6px;position:absolute;right:6px;top:6px;width:6px}.roadmap-wrap .filter-overlay{margin-top:8px;position:absolute;right:0;top:100%;z-index:100}@media (max-width:768px){.roadmap-wrap{height:calc(100vh - 90px);height:calc(100dvh - 90px)}.roadmap-nav{flex-wrap:wrap;gap:6px;margin-bottom:8px;margin-top:10px}.roadmap-nav-inner{flex:1 1;justify-content:center;padding:8px 12px}.roadmap-nav .cal-nav-btn{min-height:36px;min-width:36px}.roadmap-nav .cal-nav-today{font-size:.8rem;padding:4px 8px}.roadmap-nav>div[style]{display:none}.roadmap-nav>.filter-wrap{bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom));position:fixed;right:16px;right:calc(16px + env(safe-area-inset-right));z-index:90}.roadmap-nav>.filter-wrap>.btn-filter-toggle{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px #00000080;min-height:36px;min-width:36px;padding:8px 12px}.roadmap{-webkit-overflow-scrolling:touch}.roadmap-label-cell{min-width:70px;width:70px}.roadmap-group-label{font-size:.7rem;-webkit-hyphens:auto;hyphens:auto;line-height:1.25;overflow-wrap:break-word;padding:6px 4px;word-break:break-word}.roadmap-group{border-bottom:1px solid #1e2028}.roadmap-lanes{min-height:44px}.roadmap-month-cell{font-size:.75rem;padding:8px 0}.roadmap-week-cell{font-size:.65rem;padding:5px 0}.roadmap-bar{font-size:.65rem;height:32px}.roadmap-bar-content{gap:1px;padding:2px 5px}.roadmap-bar-text{font-size:.65rem}.roadmap-bar-meta{gap:3px;min-height:12px}.roadmap-bar-date{font-size:.55rem}.roadmap-bar-person{font-size:.55rem;padding:1px 3px}.roadmap-bar-events{height:auto;min-height:48px}.roadmap-bar-employee{font-size:.58rem;height:20px}.roadmap-backlog{top:80px}.roadmap-backlog-open{width:220px}.roadmap-form{max-width:100%}.roadmap-form-row{flex-direction:column;gap:8px}.roadmap-person-chip{font-size:.72rem;padding:5px 10px}.roadmap-wrap .filter-overlay{bottom:0;left:0;margin-top:0;position:fixed;right:0;top:auto;z-index:1000}}@media (max-width:480px){.roadmap-wrap{height:calc(100vh - 76px);height:calc(100dvh - 76px)}.roadmap-nav{gap:4px;margin-bottom:6px}.roadmap-nav-inner{padding:4px 6px}.roadmap-label-cell{min-width:70px;width:70px}.roadmap-group-label{font-size:.65rem;-webkit-hyphens:auto;hyphens:auto;line-height:1.2;overflow-wrap:break-word;padding:4px 3px;word-break:break-word}.roadmap-lanes{min-height:40px}.roadmap-bar-date{display:none}.roadmap-bar-events{min-height:44px}.roadmap-bar-employee{font-size:.55rem;height:18px}.roadmap-month-cell{font-size:.7rem;padding:4px 0}.roadmap-week-cell{font-size:.5rem;padding:3px 0}.roadmap-backlog{top:70px}.roadmap-backlog-open{width:160px}.roadmap-backlog-toggle{font-size:.6rem;left:-24px;padding:8px 4px}.roadmap-backlog-item{font-size:.65rem;padding:5px 8px}}.time-view{display:flex;flex:1 1;flex-direction:column;gap:14px;min-height:0;overflow:hidden;scrollbar-color:var(--border) #0000;scrollbar-width:thin}.wf-timer-card{align-items:center;display:flex;flex-shrink:0;flex-wrap:wrap;gap:16px;justify-content:space-between}.wf-accounts{align-items:stretch;display:flex;gap:12px}.wf-account{background:var(--bg-input);border:none;border-radius:8px;display:flex;flex-direction:column;gap:5px;min-width:130px;padding:12px 18px}.wf-account-btn{cursor:pointer;font-family:inherit;text-align:left;transition:background .15s}.wf-account-btn:hover{background:var(--bg-hover)}.wf-account-add{align-items:center;align-self:center;background:var(--bg-card);border-radius:6px;color:var(--text-secondary);flex:0 0 40px;justify-content:center;min-height:40px;min-width:40px;padding:0;width:40px}.wf-account-add:hover{background:var(--bg-input);color:var(--text-primary)}.wf-account-label{color:var(--text-muted);font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.wf-account-value{font-feature-settings:"tnum";font-size:1.35rem;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.wf-account-value.is-zero{color:var(--text-secondary)}.wf-account-value.is-pos{color:#7da87d}.wf-account-value.is-neg{color:#c99f63}.wf-account-value.is-vacation{color:#8a6fd4}.wf-account-sep{color:inherit;font-size:.5em;font-weight:800;margin:0 1px;opacity:.7}.wf-account-sep-slash{font-size:.6em;margin:0 3px}.wf-account-carry{cursor:help;font-size:.55em;font-weight:700;margin-left:4px;opacity:.6}.wf-account-unit{color:inherit;font-size:.62rem;font-weight:600;letter-spacing:.05em;margin-left:6px;text-transform:uppercase}.wf-timer-side{align-items:center;display:flex;flex:1 1;flex-wrap:nowrap;gap:10px;justify-content:flex-end;min-width:0}.wf-timer-clock-col{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:6px;margin-left:8px}.wf-timer-clock-col-placeholder{pointer-events:none;visibility:hidden}.wf-timer-clock-running{font-feature-settings:"tnum";color:var(--text-primary);flex-shrink:0;font-size:1.25rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.02em;line-height:1}.wf-timer-tags{align-content:center;align-items:center;display:flex;flex:0 1 auto;flex-wrap:wrap;gap:9px 10px;justify-content:flex-end;min-height:90px;min-width:0}.wf-proj-tag{align-items:center;background:#0000;border:1.5px solid;border-radius:3px;cursor:pointer;display:inline-flex;flex:0 0 130px;font-family:inherit;font-size:.66rem;font-weight:600;gap:5px;line-height:1.3;opacity:.72;padding:3px 9px;transition:all .15s;width:130px}.wf-proj-tag .wf-proj-tag-ico{display:block;flex:0 0 auto}.wf-proj-tag .wf-proj-tag-label{flex:1 1 auto;min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.wf-proj-tag:hover{opacity:1}.wf-proj-tag.is-on{box-shadow:0 1px 4px #0000002e;opacity:1}.wf-timer-btn{align-items:center;border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;flex-shrink:0;height:64px;justify-content:center;padding:0;transition:opacity .15s,transform .05s;width:64px}.wf-timer-btn:hover{opacity:.88}.wf-timer-btn:active{transform:scale(.96)}.wf-timer-btn-start{background:var(--color-success)}.wf-timer-btn-stop{background:var(--color-danger)}.wf-timer-btn-discard{align-items:center;background:#0000;border:1px solid var(--border-input);border-radius:50%;color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font-family:inherit;height:20px;justify-content:center;line-height:1;transition:all .15s;width:20px}.wf-timer-btn-discard:hover{border-color:var(--color-danger);color:var(--color-danger-light)}.wf-chart-card{background:var(--bg-card);border-radius:6px;flex-shrink:0;padding:14px 18px 12px}.wf-week-label-wrap{align-items:center;display:inline-flex;gap:4px;position:relative}.wf-chart-total{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;margin-bottom:14px;padding-bottom:12px}.wf-chart-total-main{align-items:baseline;display:flex;gap:10px}.wf-chart-legend{align-items:center;display:flex;flex-wrap:wrap;gap:14px}.wf-chart-legend-inline{flex:1 1;justify-content:center}.wf-chart-nav{gap:8px}.wf-chart-nav,.wf-legend-item{align-items:center;display:flex}.wf-legend-item{color:var(--text-secondary);font-size:.74rem;gap:5px}.wf-legend-dot{border-radius:3px;flex-shrink:0;height:10px;width:10px}.wf-chart-total-label{color:var(--text-secondary);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.wf-chart-total-value{font-feature-settings:"tnum";color:var(--text-primary);font-size:1.3rem;font-variant-numeric:tabular-nums;font-weight:700}.wf-chart{padding-left:42px;position:relative}.wf-chart-grid{height:120px;left:42px;pointer-events:none;position:absolute;right:0;top:0}.wf-chart-gridline{border-top:1px dashed var(--border);left:0;position:absolute;right:0}.wf-chart-tick-label{font-feature-settings:"tnum";color:var(--text-faint);font-size:.68rem;font-variant-numeric:tabular-nums;left:-42px;position:absolute;text-align:right;transform:translateY(-50%);width:34px}.wf-chart-cols{align-items:flex-end;display:flex;gap:8px}.wf-chart-col{flex:1 1;gap:8px;min-width:0}.wf-chart-bar-zone,.wf-chart-col{align-items:center;display:flex;flex-direction:column}.wf-chart-bar-zone{height:120px;justify-content:flex-end;position:relative;width:100%}.wf-chart-val{font-feature-settings:"tnum";color:var(--text-secondary);font-size:.72rem;font-variant-numeric:tabular-nums;margin-bottom:5px;white-space:nowrap}.wf-chart-bar{border-radius:4px 4px 0 0;display:flex;flex-direction:column-reverse;max-width:130px;overflow:hidden;transition:height .3s ease;width:74%}.wf-chart-seg{width:100%}.wf-chart-day{color:var(--text-muted);font-size:.74rem;white-space:nowrap}.wf-chart-day.is-today{color:var(--text-primary);font-weight:700}.wf-input{background:var(--bg-input);border:1px solid var(--border-input);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:.875rem;padding:7px 10px}.wf-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.wf-input:disabled{cursor:not-allowed;opacity:.55}.wf-nav-btn{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px 6px;transition:all .15s}.wf-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.wf-nav-today{color:var(--text-secondary);cursor:pointer;font-size:.9rem;font-weight:600}.wf-nav-today:hover{color:var(--text-primary)}.wf-week-label{color:var(--text-secondary);font-size:.9rem;font-weight:600;min-width:56px;text-align:center}.stunden-modal{width:480px!important}.hours-account-list{display:flex;flex:1 1;flex-direction:column;min-height:264px}.hours-account-month-nav{align-items:center;border-bottom:1px solid var(--border);box-sizing:border-box;display:flex;gap:10px;margin-bottom:8px;min-height:46px;padding:6px 4px 12px}.hours-account-month-nav .wf-nav-btn:disabled{cursor:not-allowed;opacity:.35}.hours-account-month-label{font-feature-settings:"tnum";color:var(--text-primary);font-size:1rem;font-variant-numeric:tabular-nums;font-weight:700;min-width:140px;text-align:center}.hours-account-month-total{font-feature-settings:"tnum";font-size:1.05rem;font-variant-numeric:tabular-nums;font-weight:700;margin-left:auto}.hours-account-month-total.is-zero{color:var(--text-secondary)}.hours-account-month-total.is-pos{color:#7da87d}.hours-account-month-total.is-neg{color:#c99f63}.hours-account-total-unit{color:inherit;font-size:.6rem;font-weight:600;letter-spacing:.05em;margin-left:6px;opacity:.85;text-transform:uppercase}.hours-account-row{grid-gap:16px;align-items:center;display:grid;font-size:.78rem;gap:16px;grid-template-columns:60px 100px 100px 100px;padding:10px 4px}.hours-account-list.no-target .hours-account-row{grid-template-columns:60px 78px 100px}.hours-account-row>span{text-align:left}.hours-account-row>span:last-child{text-align:right}.hours-account-row-head{border-bottom:1px solid var(--border);color:var(--text-muted);font-size:.7rem;font-weight:700;letter-spacing:.04em;padding:6px 4px 12px;text-transform:uppercase}.hours-account-week{color:var(--text-primary);font-weight:600}.hours-account-val{font-feature-settings:"tnum";color:var(--text-secondary);font-variant-numeric:tabular-nums;text-transform:uppercase}.hours-account-split{border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:4px;margin-bottom:6px;padding:10px 8px}.hours-account-split-row{grid-gap:12px;align-items:baseline;display:grid;font-size:.85rem;gap:12px;grid-template-columns:1fr auto 52px}.hours-account-split-label{color:var(--text-secondary)}.hours-account-split-row.is-project .hours-account-split-label{color:#4f8fd0;font-weight:600}.hours-account-split-val{color:var(--text-primary)}.hours-account-split-pct,.hours-account-split-val{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.hours-account-split-pct{color:var(--text-muted);font-size:.8rem}.hours-account-val.is-zero{color:var(--text-secondary)}.hours-account-val.is-pos{color:#7da87d;font-weight:600}.hours-account-val.is-neg{color:#c99f63;font-weight:600}.hours-account-untracked{color:#c99f63;font-size:.62rem;letter-spacing:.04em;opacity:.85;text-transform:uppercase}.hours-account-target-btn{font-feature-settings:"tnum";background:none;border:none;border-radius:3px;color:inherit;cursor:pointer;font:inherit;font-variant-numeric:tabular-nums;padding:2px 6px;transition:background .12s}.hours-account-target-btn:hover{background:#ffffff0d;background:var(--bg-hover,#ffffff0d)}.hours-account-target-input{font-feature-settings:"tnum";background:var(--bg-card);border:1px solid #6a9eff;border:1px solid var(--accent,#6a9eff);border-radius:3px;color:var(--text-primary);font:inherit;font-variant-numeric:tabular-nums;padding:2px 6px;text-align:right;width:56px}.ha-head-wrap{overflow-y:scroll;scrollbar-color:#0000 #0000;scrollbar-width:thin}.ha-head-wrap::-webkit-scrollbar{width:6px}.ha-head-wrap::-webkit-scrollbar-thumb{background:#0000}.ha-table-wrap{flex:1 1;min-height:0;overflow-y:scroll;scrollbar-color:var(--border) #0000;scrollbar-width:thin}.ha-table-wrap::-webkit-scrollbar{width:6px}.ha-table-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.ha-table{border-collapse:initial;border-spacing:0;font-size:.78rem;table-layout:fixed;width:100%}.ha-fill{padding:0;width:auto}.ha-table th{background:var(--bg-card);border-bottom:1px solid var(--border);color:var(--text-muted);font-size:.7rem;font-weight:700;letter-spacing:.04em;padding:6px 8px 12px;text-transform:uppercase}.ha-th-center{text-align:center}.ha-th-right{text-align:right}.ha-th-month{padding:0;width:30px}.ha-table th:not(.ha-th-month):not(.ha-fill):not(.ha-th-week){width:118px}.ha-table th.ha-th-week{width:42px}.ha-table td{padding:7px 8px}.ha-week{color:var(--text-muted);font-weight:500;text-align:center;width:64px}.ha-num,.ha-week{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ha-num{color:var(--text-secondary);font-weight:500;text-align:right;white-space:nowrap;width:130px}.ha-diff-inner{align-items:baseline;display:inline-flex;gap:4px}.ha-diff-mag{text-align:right}.ha-month-cell{border-right:1px solid var(--border);padding:0;text-align:center;vertical-align:middle;width:30px}.ha-month-label{color:var(--text-muted);display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;transform:rotate(180deg);white-space:nowrap;writing-mode:vertical-rl}.ha-total{font-weight:600}.ha-target,.ha-total{color:var(--text-primary)}.ha-target{font-weight:700}.ha-target.is-override{color:var(--text-primary)}.ha-target .hours-account-target-btn,.ha-target .hours-account-target-input{border:1px solid #0000;box-sizing:border-box;color:var(--text-primary);font-weight:700;text-align:right;width:62px}.ha-target .hours-account-target-input{border-color:#6a9eff;border-color:var(--accent,#6a9eff)}.ha-target.is-over-ws .hours-account-target-btn,.ha-target.is-over-ws .hours-account-target-input{color:#f5a623}.ha-row-monthend>td:not(.ha-month-cell){border-bottom:1px solid var(--border)}.ha-row-split>td:not(.ha-month-cell){background:#ffffff05}.ha-row-break>td:not(.ha-month-cell){background:rgba(91,163,217,.055)}.ha-row-break.ha-row-split>td:not(.ha-month-cell){background:#7896e60f}.ha-empty{color:var(--text-muted);padding:20px 8px;text-align:center}.ha-future-dash,.ha-row-future .ha-num{color:var(--text-faint)}.wf-days{background:var(--bg-card);border-radius:6px;flex:1 1;margin-top:8px;min-height:0;overflow-y:auto;padding:4px 0;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin}.wf-days::-webkit-scrollbar{width:6px}.wf-days::-webkit-scrollbar-track{background:#0000}.wf-days::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.wf-empty-week{color:var(--text-muted);font-size:.85rem;font-style:italic;padding:22px 16px;text-align:center}.wf-day{background:#0000}.wf-day+.wf-day{margin-top:12px}.wf-day-header{align-items:baseline;background:hsla(0,0%,100%,.025);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;margin-bottom:2px;padding:12px 14px 6px}.wf-day-name{color:var(--text-primary);font-size:.9rem;font-weight:600}.wf-day-date{color:var(--text-muted);font-size:.82rem;font-weight:500;margin-left:14px}.wf-day-sum{font-feature-settings:"tnum";color:var(--text-secondary);font-size:.88rem;font-variant-numeric:tabular-nums;font-weight:700}.wf-entry{align-items:center;border-bottom:1px solid var(--border);display:flex;font-size:.875rem;gap:10px;padding:8px 14px}.wf-entry:last-child{border-bottom:none}.wf-entry:hover{background:var(--bg-hover)}.wf-entry-running{background:#22c55e0f}.wf-entry.wf-entry-has-sub{border-bottom:none}.wf-entry-projects{border-bottom:1px solid var(--border);padding:2px 14px 6px 30px}.wf-entry-projects:last-child{border-bottom:none}.wf-entry-proj-row{align-items:center;display:flex;font-size:.78rem;gap:10px;padding:2px 0 2px 16px;position:relative}.wf-entry-proj-connector{border-bottom:1px solid var(--text-faint);border-bottom-left-radius:3px;border-left:1px solid var(--text-faint);bottom:50%;left:4px;pointer-events:none;position:absolute;top:0;width:8px}.wf-entry-proj-name{color:var(--text-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-entry-proj-input{width:56px}.wf-entry-proj-time{font-feature-settings:"tnum";color:var(--text-secondary);font-variant-numeric:tabular-nums;font-weight:500}.wf-entry-expand{align-items:center;background:none;border:none;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:16px;justify-content:center;padding:0;transition:transform .15s,color .12s;width:16px}.wf-entry-expand:hover{color:var(--text-primary)}.wf-entry-expand.is-open{transform:rotate(90deg)}.wf-entry-expand-placeholder{flex-shrink:0;width:16px}.wf-entry-times{align-items:center;display:flex;flex-shrink:0;gap:9px}.wf-time-input{font-feature-settings:"tnum";background:#0000;border:1px solid #0000;border-radius:4px;color:var(--text-muted);font-family:inherit;font-size:.84rem;font-variant-numeric:tabular-nums;padding:3px 6px;text-align:center;transition:background .12s,border-color .12s,color .12s;width:64px}.wf-time-input:hover{border-color:var(--border-input)}.wf-time-input:focus,.wf-time-input:hover{background:var(--bg-input);color:var(--text-primary)}.wf-time-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.wf-time-sep{color:var(--text-muted)}.wf-entry-date{align-items:center;display:flex;flex-shrink:0;margin-right:4px}.wf-entry-date-placeholder{display:inline-block;flex-shrink:0;width:30px}.wf-entry-date .date-picker-trigger{background:#0000;border-color:#0000;border-radius:4px;color:var(--text-muted);font-size:.82rem;padding:4px 8px;transition:background .12s,border-color .12s}.wf-entry-date .date-picker-trigger:hover{background:var(--bg-input);border-color:var(--border-input);color:var(--text-primary)}.wf-time-running{color:var(--text-muted);text-align:center;width:64px}.wf-time-input:disabled{cursor:not-allowed;opacity:.55}.wf-entry-title{color:var(--text-muted);flex-shrink:0;font-weight:400;margin-right:32px;min-width:124px;white-space:nowrap}.wf-entry-fill{flex:1 1;min-width:0}.wf-entry-dur{font-feature-settings:"tnum";color:var(--text-primary);flex-shrink:0;font-variant-numeric:tabular-nums;font-weight:700;min-width:64px;text-align:right;white-space:nowrap}.wf-running-tag{color:var(--color-success);font-size:.8rem;font-weight:600}.wf-icon-btn{background:none;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:4px 6px;transition:all .15s}.wf-icon-btn:hover{background:var(--border);color:var(--text-primary)}.wf-icon-danger:hover{background:var(--tint-danger);color:var(--color-danger-light)}.wf-form{gap:14px}.wf-field,.wf-form{display:flex;flex-direction:column}.wf-field{gap:5px}.wf-field>span{color:var(--text-faint);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.wf-field-row{display:flex;gap:12px}.wf-field-row .wf-field{flex:1 1}.wf-field .wf-input{box-sizing:border-box;width:100%}.wf-field-row-date{align-items:flex-end}.wf-field-date{flex:1 1}.wf-form-hours-display{font-feature-settings:"tnum";align-items:center;color:var(--text-muted);display:flex;flex:1 1;font-size:.92rem;font-variant-numeric:tabular-nums;font-weight:500;height:38px;justify-content:center}.wf-form-pt-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.wf-form-pt-row{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:1fr 80px auto}.wf-form-pt-name{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-form-projects{display:block}.wf-form-projects-label{color:var(--text-secondary);display:block;font-size:.78rem;font-weight:600;margin-bottom:8px}.wf-form-pt-tags{display:flex;flex-wrap:wrap;gap:7px}.wf-form-pt-tags .wf-proj-tag{flex:0 0 auto;max-width:220px;width:auto}.wf-form-pt-time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.wf-form-error{background:var(--tint-danger);border:1px solid #ef44444d;border-radius:6px;color:var(--color-danger-light);font-size:.82rem;padding:8px 12px}.wf-form-actions{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-top:4px}.wf-form-actions-right{display:flex;gap:8px;margin-left:auto}.wf-vac-modal{display:flex;flex-direction:column;height:700px;max-height:92vh;overflow:hidden;width:540px!important}.wf-vac-modal>.modal-header,.wf-vac-modal>.wf-vac-new-card,.wf-vac-modal>.wf-vac-year-nav{flex:0 0 auto}.wf-vac-new-card{background:var(--bg-input);border-bottom:1px solid var(--border);border-top:1px solid var(--border);margin:0 -24px 10px;padding:16px 24px}.wf-vac-new-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:260px 168px;justify-content:center}.wf-vac-new-cal{display:flex;justify-content:center}.wf-vac-new-cal .mini-cal{border:none;box-shadow:none;margin-top:0;min-height:258px;padding:0;position:static;transform:none;width:260px}.wf-vac-new-cal .mini-cal-day{font-size:.72rem}.wf-vac-new-side{display:flex;flex-direction:column;gap:10px;justify-content:center;min-width:0}.wf-vac-new-actions{display:flex;flex-direction:column;gap:8px}.wf-vac-new-actions .emp-halfday-toggle{align-self:stretch;font-size:.72rem;justify-content:center;padding:7px 8px}.wf-vac-new-btn{white-space:nowrap;width:100%}.wf-vac-year-nav{align-items:center;border-bottom:1px solid var(--border);box-sizing:border-box;display:flex;gap:10px;margin-bottom:8px;min-height:46px;padding:6px 4px 12px}.wf-vac-year-nav .wf-nav-btn:disabled{cursor:not-allowed;opacity:.35}.wf-vac-year-label{font-feature-settings:"tnum";color:var(--text-primary);font-size:1rem;font-variant-numeric:tabular-nums;font-weight:700;min-width:140px;text-align:center}.wf-vac-list{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow-y:auto;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin}.wf-vac-modal .wf-vac-list>*{flex:0 0 auto}.wf-vac-list::-webkit-scrollbar{width:6px}.wf-vac-list::-webkit-scrollbar-track{background:#0000}.wf-vac-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.wf-vac-list .wf-vac-row-head{background:var(--bg-card);position:sticky;top:0;z-index:2}.wf-vac-row{grid-gap:6px;align-items:center;display:grid;font-size:.78rem;gap:6px;grid-template-columns:96px 96px 44px 1fr;padding:6px 4px}.wf-vac-list .wf-vac-row-head>span:nth-child(3),.wf-vac-row .wf-vac-cell-days{text-align:center}.wf-vac-row.wf-vac-row-admin{gap:12px;grid-template-columns:110px 110px 50px 100px 96px auto}.wf-vac-row.wf-vac-row-admin.wf-vac-row-clickable{height:40px}.wf-vac-row.wf-vac-row-admin .wf-vac-acts,.wf-vac-row.wf-vac-row-admin .wf-vac-status{justify-self:start}.wf-vac-row-head.wf-vac-row-admin>:nth-child(3),.wf-vac-row.wf-vac-row-admin>:nth-child(3){text-align:center}.wf-vac-row-head.wf-vac-row-admin>:nth-child(4),.wf-vac-row.wf-vac-row-admin>:nth-child(4){padding-left:18px}.wf-vac-row-head{border-bottom:1px solid var(--border);color:var(--text-muted);font-size:.7rem;font-weight:700;letter-spacing:.04em;padding:6px 4px 12px;text-transform:uppercase}.wf-vac-row-head>span{text-align:left}.wf-vac-row-head .wf-vac-status-col{padding-right:6px;text-align:right}.wf-vac-cell{font-feature-settings:"tnum";color:var(--text-primary);font-variant-numeric:tabular-nums}.wf-vac-cell-muted{color:var(--text-muted);font-weight:500}.wf-vac-cell-faint{color:var(--text-faint);font-weight:500}.wf-vac-row-end{gap:12px;justify-content:space-between;justify-self:stretch;width:100%}.wf-vac-acts,.wf-vac-row-end{align-items:center;display:flex}.wf-vac-acts{gap:6px}.wf-vac-tiles{grid-gap:8px;align-content:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr)}.wf-vac-tile{align-items:center;background:var(--bg-card);border-radius:6px;display:flex;flex-direction:column;gap:8px;padding:12px 10px}.wf-vac-tile-label{font-size:.58rem;letter-spacing:.05em;text-transform:uppercase}.wf-vac-tile-label,.wf-vac-tile-val{color:var(--text-muted);font-weight:700}.wf-vac-tile-val{font-feature-settings:"tnum";font-size:1.2rem;font-variant-numeric:tabular-nums;line-height:1}.wf-vac-tile-sub{color:#f5a623;font-size:.62rem;font-weight:600;margin-top:3px;white-space:nowrap}.wf-vac-tile-sep{color:#6b7280;color:var(--text-faint,#6b7280);font-weight:600;margin:0 1px}.wf-vac-tile-val.is-carry-expired{color:var(--text-muted);text-decoration:line-through;text-decoration-thickness:1px}.wf-vac-status{border-radius:3px;flex-shrink:0;font-size:.6rem;font-weight:700;letter-spacing:.03em;padding:2px 6px;text-transform:uppercase;white-space:nowrap}.wf-vac-status.is-requested{background:#8a6fd429;color:#b3a0e0}.wf-vac-status.is-approved{background:#22c55e1f;color:#7da87d}.wf-vac-status.is-cancelled,.wf-vac-status.is-rejected{background:#ffffff0f;color:var(--text-muted)}.wf-vac-act{align-items:center;background:none;border:none;border-radius:3px;cursor:pointer;display:inline-flex;justify-content:center;line-height:1;padding:3px;transition:background .15s,color .15s}.wf-vac-approve{color:#6bbf6b}.wf-vac-reject{color:#d98080}.wf-vac-act:hover:not(:disabled){background:#ffffff12}.wf-vac-act:disabled{color:var(--text-faint);cursor:not-allowed}.ha-scroll-x{display:contents}@media (max-width:768px){.time-view{-webkit-overflow-scrolling:touch;gap:10px;max-width:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;padding-bottom:env(safe-area-inset-bottom)}.wf-timer-card{align-items:stretch;flex-direction:column;gap:12px;min-height:0}.wf-accounts{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr 52px}.wf-account{justify-content:center;min-width:0;padding:10px 12px}.wf-account-add{flex:none;min-width:0;width:auto}.wf-account-label{font-size:.62rem;letter-spacing:.04em}.wf-account-value{font-size:1.15rem}.wf-account-unit{font-size:.56rem;margin-left:4px}.wf-timer-side{grid-gap:8px 10px;align-items:center;display:grid;gap:8px 10px;grid-template-columns:minmax(0,1fr) auto}.wf-timer-tags{gap:6px;grid-column:1;grid-row:1/span 2;justify-content:flex-start;min-height:0}.wf-proj-tag{flex:0 0 auto;font-size:.66rem;max-width:240px;min-height:30px;min-width:0;padding:4px 9px;width:48vw}.wf-timer-btn{grid-column:2;grid-row:1;justify-self:center}.wf-timer-clock-col{align-items:center;flex-direction:row;gap:8px;grid-column:2;grid-row:2;justify-self:center;margin:0}.wf-timer-clock-running{font-size:1.35rem}.wf-timer-btn{height:88px;padding:0;width:88px}.wf-timer-btn svg{height:30px;width:30px}.wf-timer-btn-discard{flex-shrink:0;height:40px;width:40px}.wf-chart-card{margin-top:0;padding:12px 10px 10px}.wf-chart-total{gap:8px 10px;margin-bottom:12px;padding-bottom:10px}.wf-chart-nav{gap:4px}.wf-chart-total-label{font-size:.68rem}.wf-chart-total-value{font-size:1.15rem}.wf-chart-legend-inline{flex:1 1 100%;gap:10px;order:3}.wf-legend-item{font-size:.68rem}.wf-chart{padding-left:30px}.wf-chart-grid{height:120px;left:30px}.wf-chart-tick-label{font-size:.6rem;left:-30px;width:26px}.wf-chart-bar-zone{height:120px}.wf-chart-cols{gap:3px}.wf-chart-col{gap:5px}.wf-chart-val{font-size:.54rem;margin-bottom:3px}.wf-chart-bar{width:86%}.wf-chart-day{font-size:.58rem;line-height:1.25;text-align:center}.wf-chart-day-date,.wf-chart-day-wd{display:block}.wf-chart-day-sep{display:none}.wf-days{flex:none;margin-top:0;overflow-y:visible}.wf-day-header{padding:10px 12px 6px}.wf-day-name{font-size:.85rem}.wf-day-date{font-size:.76rem;margin-left:8px}.wf-entry{flex-wrap:wrap;gap:6px 8px;padding:10px 12px}.wf-entry>.wf-entry-expand,.wf-entry>.wf-entry-expand-placeholder{height:30px;order:1;width:30px}.wf-entry>.wf-entry-title{flex:1 1 auto;margin-right:0;min-width:0;order:2;overflow:hidden;text-overflow:ellipsis}.wf-entry>.wf-entry-dur{min-width:0;order:3}.wf-entry>.wf-entry-fill{flex:0 0 100%;height:0;order:4}.wf-entry>.wf-entry-date,.wf-entry>.wf-entry-date-placeholder{order:5}.wf-entry>.wf-entry-times{margin-right:auto;order:6}.wf-entry>.wf-icon-btn{order:8}.wf-time-input,.wf-time-running{font-size:16px;padding:6px 4px;width:62px}.wf-entry-date .date-picker-trigger{font-size:.82rem;min-height:40px;padding:6px 8px}.wf-entry-projects{padding:2px 12px 8px 24px}.wf-entry-proj-input{width:62px}.wf-nav-btn{min-height:40px;min-width:40px;padding:6px}.wf-nav-today{padding:8px 2px}.wf-week-label{min-width:0}.wf-icon-btn{align-items:center;display:inline-flex;justify-content:center}.wf-icon-btn,.wf-vac-act{min-height:40px;min-width:40px}.stunden-modal,.wf-vac-modal{max-width:none;width:100%!important}.wf-vac-modal{height:auto;max-height:calc(100dvh - 16px);overflow-y:auto}.hours-account-list{min-height:0}.hours-account-month-nav{gap:6px;min-height:44px;padding:4px 0 10px}.hours-account-month-label{flex:1 1;font-size:.92rem;min-width:0}.hours-account-month-total{font-size:1rem}.hours-account-row{font-size:.8rem;gap:6px;grid-template-columns:40px repeat(3,minmax(0,1fr));padding:12px 2px}.hours-account-list.no-target .hours-account-row{grid-template-columns:40px repeat(2,minmax(0,1fr))}.hours-account-row-head{font-size:.62rem;padding:4px 2px 10px}.hours-account-split-row{font-size:.8rem;grid-template-columns:minmax(0,1fr) auto 46px}.hours-account-target-btn{min-height:36px}.hours-account-target-input{font-size:16px}.ha-scroll-x{-webkit-overflow-scrolling:touch;display:block;flex:none;overflow-x:auto;overflow-y:hidden}.ha-scroll-x .ha-head-wrap,.ha-scroll-x .ha-table-wrap{flex:none;min-height:0;overflow:visible}.ha-table{font-size:.74rem}.ha-table th{font-size:.62rem;padding:6px 6px 10px}.ha-table td{padding:9px 6px}.ha-scroll-x .ha-table td.ha-month-cell,.ha-scroll-x .ha-table th.ha-th-month{background:var(--bg-card);left:0;position:sticky;z-index:2}.ha-scroll-x .ha-table td.ha-week,.ha-scroll-x .ha-table th.ha-th-week{background:var(--bg-card);left:30px;position:sticky;z-index:2}.wf-vac-new-card{margin:0 -16px 10px;padding:12px 16px}.wf-vac-new-grid{gap:12px;grid-template-columns:minmax(0,1fr)}.wf-vac-new-cal .mini-cal{max-width:100%;min-height:0;width:100%}.wf-vac-new-cal .mini-cal-day{font-size:.85rem}.wf-vac-new-side{gap:12px}.wf-vac-new-actions{gap:10px}.wf-vac-new-actions .emp-halfday-toggle{font-size:.85rem;min-height:44px;padding:8px 12px}.wf-vac-new-btn{min-height:44px;width:100%}.wf-vac-year-nav{gap:6px;min-height:44px;padding:4px 0 10px}.wf-vac-year-label{flex:1 1;min-width:0}.wf-vac-list{flex:none;overflow-y:visible}.wf-vac-row{font-size:.74rem;gap:4px;grid-template-columns:82px 82px 38px minmax(0,1fr);min-height:44px;padding:8px 2px}.wf-vac-row-head{font-size:.62rem;min-height:0;padding:4px 2px 10px}.wf-vac-row-end{gap:4px}.wf-vac-status{font-size:.56rem;padding:4px 6px}.wf-vac-tiles{align-content:stretch;gap:6px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column}.wf-vac-tile{gap:6px;padding:10px 6px}.wf-vac-tile-label{font-size:.54rem}.wf-vac-tile-val{font-size:1.05rem}.wf-vac-tile-sub{font-size:.56rem;white-space:normal}.wf-field-row{flex-direction:column;gap:14px}.wf-field-row.wf-field-row-date{align-items:flex-end;flex-direction:row}.wf-form .time-input-wrap .time-input,.wf-form .wf-input{font-size:16px}.wf-form .time-input-wrap .time-input{padding:10px 12px}.wf-form .date-picker-trigger{font-size:.9rem;min-height:42px}.wf-form-pt-row{grid-template-columns:minmax(0,1fr) 92px 40px}.wf-form-pt-tags .wf-proj-tag{flex-basis:calc(50% - 4px);flex-grow:1;flex-shrink:1;max-width:none;min-height:40px}.wf-form-actions .btn{min-height:44px}}@media (max-width:480px){.wf-accounts{gap:6px;grid-template-columns:1fr 1fr 46px}.wf-account{padding:9px 10px}.wf-account-label{font-size:.58rem}.wf-account-value{font-size:1.02rem}.wf-timer-btn{height:52px;width:52px}.wf-timer-clock-running{font-size:1.2rem}.wf-chart-card{padding:10px 8px 8px}.wf-chart{padding-left:26px}.wf-chart-grid{height:104px;left:26px}.wf-chart-tick-label{font-size:.56rem;left:-26px;width:22px}.wf-chart-bar-zone{height:104px}.wf-chart-cols{gap:2px}.wf-chart-val{font-size:.5rem}.wf-chart-day{font-size:.56rem}.wf-chart-day-mon{display:none}.wf-day-header{padding:9px 10px 6px}.wf-entry{padding:9px 10px}.wf-entry>.wf-entry-title{font-size:.82rem}.wf-vac-new-card{margin:0 -14px 14px;padding:12px 14px}.wf-vac-row{font-size:.7rem;grid-template-columns:74px 74px 34px minmax(0,1fr)}.wf-vac-tile-val{font-size:.95rem}.hours-account-row{font-size:.75rem;gap:4px;padding:11px 2px}}.ha-week-btn{background:none;border:none;border-radius:3px;color:inherit;cursor:pointer;font:inherit;padding:0;transition:color .12s}.ha-week-btn:hover{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.ha-week-modal{display:flex;flex-direction:column;max-width:94vw;overflow:hidden;width:520px}.ha-week-modal>.ha-week-chart,.ha-week-modal>.ha-week-total,.ha-week-modal>.modal-header{flex-shrink:0}.ha-week-modal-title{align-items:center;display:flex;gap:6px}.ha-week-modal-kw{min-width:66px;text-align:center}.ha-week-modal-range{color:var(--text-muted);font-size:.78rem;font-weight:500;letter-spacing:0;margin-left:10px;text-transform:none}.ha-week-chart{align-items:flex-end;display:flex;gap:6px;height:74px;margin-bottom:12px}.ha-week-chart-col{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:4px;height:100%;min-width:0}.ha-week-chart-col.is-empty .ha-week-chart-day{opacity:.4}.ha-week-chart-zone{align-items:flex-end;border-bottom:1px solid var(--border);display:flex;flex:1 1;justify-content:center;min-height:0;width:100%}.ha-week-chart-day{color:var(--text-muted);font-size:.68rem}.ha-week-empty{color:var(--text-muted);font-size:.82rem;padding:14px 4px;text-align:center}.ha-week-days{display:flex;flex:1 1;flex-direction:column;gap:2px;max-height:180px;min-height:0;overflow-y:auto;padding-right:10px;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin}.ha-week-days::-webkit-scrollbar{width:6px}.ha-week-days::-webkit-scrollbar-track{background:#0000}.ha-week-days::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.ha-week-day{border-bottom:1px solid var(--border);padding:6px 2px}.ha-week-day:last-child{border-bottom:none}.ha-week-day-head{align-items:baseline;display:flex;gap:10px;justify-content:space-between}.ha-week-day-name{color:var(--text-primary);font-size:.82rem;font-weight:600}.ha-week-day-date{color:var(--text-muted);font-size:.74rem;font-weight:400;margin-left:7px}.ha-week-day-sum{font-feature-settings:"tnum";color:var(--text-primary);font-size:.82rem;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}.ha-week-kinds{display:flex;gap:5px;margin-top:5px}.ha-week-kind{border:1px solid;border-radius:4px;font-size:.68rem;font-weight:600;padding:1px 6px}.ha-week-projects{display:flex;flex-direction:column;gap:2px;list-style:none;margin:5px 0 0;padding:0}.ha-week-projects li{color:var(--text-secondary);display:flex;font-size:.78rem;gap:10px;justify-content:space-between}.ha-week-proj-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ha-week-proj-val{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.ha-week-total{border-top:2px solid var(--border);display:flex;flex-direction:column;gap:3px;margin-top:12px;padding-right:16px;padding-top:10px}.ha-week-total-row{font-feature-settings:"tnum";color:var(--text-secondary);display:flex;font-size:.8rem;font-variant-numeric:tabular-nums;gap:12px;justify-content:space-between}.ha-week-total-row.is-head{color:var(--text-primary);font-size:.9rem;font-weight:700;margin-bottom:4px}.ha-week-total-row.is-rest{color:var(--text-faint)}.emp-admin-page{display:flex;flex:1 1;flex-direction:column;gap:10px;min-height:0}.emp-error-bar{align-items:center;display:flex;gap:10px;justify-content:space-between}.emp-error-bar button{background:none;border:none;color:inherit;cursor:pointer;font-size:1.1rem}.emp-layout{display:flex;flex:1 1;gap:14px;min-height:0;overflow:hidden}.emp-sidebar{background:var(--bg-card);border-radius:6px;display:flex;flex-direction:column;flex-shrink:0;gap:3px;overflow-y:auto;padding:14px 10px;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin;width:240px}.emp-sidebar::-webkit-scrollbar{width:6px}.emp-sidebar::-webkit-scrollbar-track{background:#0000}.emp-sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.emp-sidebar::-webkit-scrollbar-thumb:hover{background:#3f4150}.emp-side-item{align-items:center;background:#0000;border:2px solid #0000;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-family:inherit;font-size:.85rem;font-weight:500;gap:8px;padding:7px 10px;text-align:left;transition:all .15s;width:100%}.emp-side-item.is-active,.emp-side-item:hover{background:var(--bg-input);color:var(--text-primary)}.emp-side-item.is-active{border-color:var(--border-input);font-weight:600}.emp-side-name-wrap{align-items:center;display:flex;flex:1 1;min-width:0;position:relative}.emp-side-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emp-side-item.is-archived .emp-side-name{color:var(--text-faint);font-weight:700;opacity:.55}.emp-side-pending-badge{align-items:center;background:#8a6fd4;border-radius:50%;color:#fff;display:inline-flex;font-size:.62rem;font-weight:700;height:14px;justify-content:center;line-height:1;pointer-events:none;position:absolute;right:-8px;top:-7px;width:14px}.emp-workday-chips{display:flex;flex-wrap:wrap;gap:6px}.emp-workday-chip{background:var(--bg-card);border:1px solid var(--border-input);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:.82rem;font-weight:600;padding:6px 12px;transition:all .15s}.emp-workday-chip:hover{border-color:var(--color-primary);color:var(--text-primary)}.emp-workday-chip.is-on.is-full{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.emp-workday-chip.is-on.is-half{background:linear-gradient(135deg,var(--color-primary) 0 50%,var(--bg-card) 50% 100%);border-color:var(--color-primary);color:#fff}.emp-side-divider{background:var(--border);height:1px;margin:6px 8px}.emp-side-add{color:var(--text-faint)}.emp-side-add:hover{color:var(--text-secondary)}.emp-side-add .emp-side-name{font-style:normal}.emp-main{background:var(--bg-card);border-radius:6px;display:flex;flex:1 1;flex-direction:column;min-width:0;overflow:hidden;padding:20px 24px}.emp-empty{color:var(--text-muted);font-style:italic;margin:auto}.emp-main-header{align-items:center;display:flex;gap:14px;margin-bottom:22px;margin-top:10px;padding-bottom:4px}.emp-main-name{color:var(--text-primary);flex:0 0 auto;font-size:1.2rem;font-weight:700;letter-spacing:.03em;margin:0;text-transform:uppercase}.emp-main-name-btn{background:none;border:none;cursor:pointer;font-family:inherit;padding:0;transition:color .15s}.emp-main-name-btn:hover{color:var(--text-primary);color:var(--emp-name-color,var(--text-primary))}.emp-tab-tiles{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);margin-bottom:18px}.emp-tab-tile{background:#232325;border:none;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:6px;padding:12px 16px;text-align:left;transition:background .15s}.emp-tab-tile:hover{background:var(--bg-hover)}.emp-tab-tile.is-active{background:#313134}.emp-tab-tile-label{color:var(--text-muted);font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.emp-tab-tile-value{font-feature-settings:"tnum";color:var(--text-primary);font-size:1.3rem;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.emp-tab-tile-value.is-vacation{color:#8a6fd4}.emp-tab-tile-value.is-sick{color:#2bb3a3}.emp-tab-tile-value.is-pos{color:#7da87d}.emp-tab-tile-value.is-neg{color:#c99f63}.emp-tab-tile-value.is-zero{color:var(--text-secondary)}.emp-tab-tile-sep{color:inherit;font-size:.6em;font-weight:800;margin:0 3px;opacity:.7}.emp-tab-tile-carry{cursor:help;font-size:.55em;font-weight:700;margin-left:4px;opacity:.6}.emp-tab-tile-unit{color:inherit;font-size:.6rem;font-weight:600;letter-spacing:.05em;margin-left:6px;opacity:.85;text-transform:uppercase}.emp-tab-tile-stunden{align-items:flex-end;flex-direction:row;gap:12px;justify-content:space-between}.emp-tab-tile-main{min-width:0}.emp-tab-tile-main,.emp-tab-tile-split{display:flex;flex-direction:column;gap:6px}.emp-tab-tile-split{color:var(--text-muted);font-size:.6rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.emp-tab-split-row{display:flex;gap:12px;justify-content:space-between}.emp-tab-split-pct{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:40px;text-align:right}.emp-tab-tile-avg{color:inherit;font-size:.6rem;font-weight:600;letter-spacing:.05em;margin-right:6px;opacity:.85}.emp-tab-content{flex:1 1;min-height:0}.emp-form,.emp-tab-content{display:flex;flex-direction:column}.emp-form{gap:18px}.emp-form-field .custom-select,.emp-form-field .date-picker-trigger,.emp-form-field .date-picker-wrap,.emp-form-field .wf-input{box-sizing:border-box;width:100%}.emp-form-archive-btn{margin:0}.emp-form-field-email{border-top:1px solid var(--border);margin-top:12px;padding-top:18px}.emp-form-field-password{margin-bottom:18px}.emp-form-actions-centered{align-items:center}.emp-form-actions-centered .wf-form-actions-left{display:flex;flex:1 1;gap:8px}.emp-form-actions-centered .wf-form-actions-right{flex:1 1;justify-content:flex-end;margin-left:0}.emp-form-row{display:flex;flex-wrap:wrap;gap:12px}.emp-entry-modal>.emp-form-field,.emp-entry-modal>.emp-form-row{margin-bottom:14px}.emp-range-cal{display:flex;flex:0 0 auto;justify-content:center}.emp-range-cal-solo{margin-bottom:4px;margin-top:16px}.emp-sick-actions{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:1fr auto 1fr}.emp-sick-actions .wf-form-actions-left{justify-self:start}.emp-sick-actions .wf-form-actions-right{justify-self:end;margin-left:0}.emp-halfday-center{justify-self:center}.emp-range-cal .mini-cal{border:none;box-shadow:none;margin-top:0;min-height:244px;padding:0;position:static;transform:none;width:240px}.emp-range-cal .mini-cal-day{font-size:.72rem}.emp-halfday-toggle{align-items:center;align-self:flex-start;border:1px solid var(--border-input);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:.8rem;gap:8px;padding:8px 12px;transition:background .15s,border-color .15s,color .15s;-webkit-user-select:none;user-select:none}.emp-halfday-toggle:hover{border-color:var(--color-primary);color:var(--text-primary)}.emp-halfday-toggle input{appearance:none;-webkit-appearance:none;background:var(--bg-input);border:1px solid var(--border-input);border-radius:4px;cursor:pointer;flex-shrink:0;height:16px;margin:0;position:relative;transition:background .15s,border-color .15s;width:16px}.emp-halfday-toggle input:checked{background:var(--color-primary);border-color:var(--color-primary)}.emp-halfday-toggle input:checked:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:8px;left:4px;position:absolute;top:1px;transform:rotate(45deg);width:4px}.emp-halfday-toggle:has(input:checked){background:var(--tint-purple);border-color:var(--color-primary);color:var(--text-primary)}.emp-form-field{display:flex;flex:1 1;flex-direction:column;gap:5px;min-width:120px}.emp-form-field-color{flex:0 0 auto;min-width:0}.emp-form-field-abbr{flex:0 0 90px;min-width:80px}.emp-form-field-name{flex:1 1;min-width:150px}.emp-form-row-identity{align-items:flex-end}.emp-form input[type=number]::-webkit-inner-spin-button,.emp-form input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.emp-form input[type=number]{appearance:textfield}.emp-form-label{color:var(--text-faint);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.emp-color-btn{border:1px solid var(--border-input);border-radius:6px;cursor:pointer;height:34px;padding:0;transition:border-color .15s,transform .05s;width:34px}.emp-color-btn:hover{border-color:var(--color-primary)}.emp-color-btn:active{transform:scale(.96)}.emp-vacation{display:flex;flex:1 1;flex-direction:column;gap:0;min-height:0}.emp-vac-list{display:flex;flex-direction:column;gap:8px}.emp-sick-list{cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:8px;min-height:0;overflow-y:auto;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin}.emp-sick-list>*{cursor:default}.emp-sick-row{grid-gap:12px;align-items:center;border-radius:4px;display:grid;font-size:.78rem;gap:12px;grid-template-columns:110px 110px 50px;padding:6px 4px}.emp-sick-row>:nth-child(3){text-align:center}.emp-sick-row-head{border-bottom:1px solid var(--border);color:var(--text-muted);font-size:.7rem;font-weight:700;letter-spacing:.04em;padding:6px 4px 12px;text-transform:uppercase}.emp-sick-row-clickable{cursor:pointer;height:40px;transition:background .12s}.emp-sick-row-clickable:hover{background:#ffffff0a;background:var(--bg-hover,#ffffff0a)}.emp-sick-empty{border-radius:6px;cursor:pointer;padding:14px 8px;transition:background .12s,color .12s}.emp-sick-empty:hover{background:#ffffff0a;background:var(--bg-hover,#ffffff0a);color:var(--text-primary)}.emp-add-after-year{margin-left:10px}.emp-nav-right{align-items:center;display:flex;gap:18px;margin-left:auto}.emp-sick-total{font-feature-settings:"tnum";color:#2bb3a3;font-size:1.05rem;font-variant-numeric:tabular-nums;font-weight:700}.emp-sick-total-right{margin-left:auto}.emp-sick-total-unit{color:inherit;font-size:.6rem;font-weight:600;letter-spacing:.05em;margin-left:3px;opacity:.85;text-transform:uppercase}.emp-sick-head-days{text-align:center}.emp-vac-total{font-feature-settings:"tnum";color:#8a6fd4;font-size:1.05rem;font-variant-numeric:tabular-nums;font-weight:700}.emp-vac-total-sep{margin:0 4px;opacity:.5}.emp-vac-total .emp-sick-total-unit{margin-left:6px}.emp-vac-carry-fig{color:#b3a0e0}.wf-vac-row-clickable{border-radius:4px;cursor:pointer;transition:background .12s}.wf-vac-row-clickable:hover{background:var(--bg-input)}.emp-sick-add{color:var(--text-secondary)}.emp-sick-add:hover{color:var(--text-primary)}.emp-archive-dialog{max-width:380px}.emp-archive-text{color:var(--text-secondary);font-size:.88rem;line-height:1.45;margin:4px 0 16px}.emp-archive-dialog .emp-form-field{margin-bottom:18px}.emp-loading-inline{align-items:center;color:var(--text-muted);display:flex;flex:1 1;font-size:.9rem;justify-content:center}.emp-phase-picker{align-items:center;display:flex;margin-left:auto}.emp-phase-trigger{font-size:.78rem;font-weight:600;padding:5px 10px;white-space:nowrap;width:auto}.emp-phase-dropdown{display:flex;flex-direction:column;gap:2px}.emp-phase-option{align-items:center;border-radius:4px;display:flex;transition:background .1s}.emp-phase-option:hover{background:var(--tint-primary)}.emp-phase-option.is-active{background:var(--color-primary)}.emp-phase-option-main{background:none;border:none;color:var(--text-secondary);cursor:pointer;flex:1 1;font-family:inherit;font-size:.82rem;font-weight:500;min-width:0;padding:7px 10px;text-align:left;white-space:nowrap}.emp-phase-option:hover .emp-phase-option-main{color:var(--text-primary)}.emp-phase-option.is-active .emp-phase-option-main{color:#fff}.emp-phase-option-edit{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-faint);cursor:pointer;display:inline-flex;height:24px;justify-content:center;margin-right:4px;padding:0;transition:color .15s,background .15s;width:24px}.emp-phase-option-edit:hover{background:var(--border);color:var(--text-primary)}.emp-phase-option.is-active .emp-phase-option-edit{color:#fffc}.emp-phase-option.is-active .emp-phase-option-edit:hover{background:#fff3;color:#fff}.emp-phase-option-new{white-space:nowrap}.emp-phase-new-btn{font-size:.78rem;margin-left:auto;padding:5px 12px}.emp-phase-form{display:flex;flex-direction:column;gap:14px}.emp-phase-toggle{align-self:flex-start}.emp-field-hint{font-weight:500;letter-spacing:.02em;opacity:.65}.emp-phase-hours-row{align-items:flex-end}.emp-phase-hours-row .emp-phase-toggle{align-self:auto}@media (min-width:769px) and (max-width:1200px){.emp-sidebar{padding:12px 8px;width:172px}.emp-main{padding:16px}.emp-main .ha-table col:nth-child(3){width:68px!important}.emp-main .ha-table col:nth-child(4),.emp-main .ha-table col:nth-child(5),.emp-main .ha-table col:nth-child(6),.emp-main .ha-table col:nth-child(7){width:92px!important}.emp-main .ha-table{font-size:.72rem}}@media (max-width:768px){.emp-admin-page{gap:8px}.emp-layout{flex-direction:column;gap:10px}.emp-sidebar{-webkit-overflow-scrolling:touch;align-items:center;flex-direction:row;flex-shrink:0;gap:6px;max-height:none;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;padding:10px calc(8px + env(safe-area-inset-right)) 10px calc(8px + env(safe-area-inset-left));scrollbar-width:none;width:auto}.emp-sidebar::-webkit-scrollbar{display:none}.emp-side-item{background:var(--bg-input);border-radius:999px;flex:0 0 auto;font-size:.85rem;min-height:40px;padding:8px 14px;width:auto}.emp-side-item.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.emp-side-item.is-active .emp-side-name{color:#fff}.emp-side-name-wrap{flex:0 0 auto}.emp-side-name{flex:0 0 auto;max-width:55vw;overflow:hidden;text-overflow:ellipsis}.emp-side-add{background:#0000;border-color:var(--border-input);border-style:dashed}.emp-side-divider{align-self:center;flex:0 0 auto;height:22px;margin:0 2px;width:1px}.emp-side-pending-badge{right:-9px;top:-6px}.emp-main{-webkit-overflow-scrolling:touch;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;padding:14px 12px}.emp-main-header{flex-wrap:wrap;gap:10px;margin-bottom:14px;margin-top:0}.emp-main-name{flex:1 1 auto;font-size:1.05rem;line-height:1.3;min-width:0;overflow-wrap:anywhere}.emp-main-name-btn{align-items:center;display:inline-flex;min-height:40px;text-align:left}.emp-phase-trigger{padding:8px 12px}.emp-phase-new-btn,.emp-phase-trigger{font-size:.85rem;min-height:40px}.emp-phase-dropdown{max-height:60vh;max-width:calc(100vw - 20px);overflow-y:auto}.emp-phase-option-main{align-items:center;display:flex;font-size:.9rem;min-height:44px}.emp-phase-option-edit{height:40px;width:40px}.emp-phase-option-new{min-height:44px}.emp-tab-tiles{gap:8px;grid-template-columns:repeat(2,1fr);margin-bottom:14px}.emp-tab-tile{justify-content:center;min-height:56px;padding:10px 12px}.emp-tab-tile-stunden{grid-column:1/-1;justify-content:space-between}.emp-tab-tile.is-active{box-shadow:inset 0 0 0 1px var(--color-primary)}.emp-tab-tile-value{font-size:1.15rem}.emp-tab-content{-webkit-overflow-scrolling:touch;flex:0 0 auto;min-width:0;overflow-x:auto}.emp-admin-page .wf-vac-year-nav{flex-wrap:wrap;gap:4px;padding:4px 0 10px}.emp-admin-page .wf-vac-year-label{flex:0 1 auto;font-size:.95rem;min-width:0;padding:0 6px}.emp-admin-page .wf-nav-btn{min-height:40px;min-width:40px}.emp-nav-right{flex-wrap:wrap;gap:12px;justify-content:flex-end}.emp-admin-page .wf-vac-row.wf-vac-row-admin.wf-vac-row-clickable,.emp-sick-row-clickable{height:44px}.emp-admin-page .wf-vac-row-head.wf-vac-row-admin,.emp-admin-page .wf-vac-row.wf-vac-row-admin{gap:8px;grid-template-columns:minmax(0,110px) minmax(0,110px) 44px auto auto}.emp-admin-page .wf-vac-row-admin>:nth-child(4){display:none}.emp-admin-page .wf-vac-row-head .wf-vac-status-col{padding-right:0;text-align:left}.emp-admin-page .wf-vac-act{border-radius:6px;min-height:40px;min-width:40px;padding:6px}.emp-admin-page .wf-vac-acts{gap:4px}.modal-content.emp-archive-dialog,.modal-content.emp-entry-modal,.modal-content.emp-person-modal,.modal-content.emp-phase-modal{max-height:92vh;max-height:92dvh;max-width:none;overflow-y:auto;overscroll-behavior:contain;width:100%}.emp-admin-page .emp-form-field .custom-select-trigger,.emp-admin-page .emp-form-field .date-picker-trigger,.emp-admin-page .emp-form-field .wf-input,.emp-form .custom-select-trigger,.emp-form .date-picker-trigger,.emp-form .wf-input,.emp-phase-form .custom-select-trigger,.emp-phase-form .date-picker-trigger,.emp-phase-form .wf-input{font-size:16px;min-height:44px}.emp-form{gap:14px}.emp-form-row{gap:10px}.emp-color-btn{height:44px;width:44px}.emp-form-field-abbr{flex:0 0 100px}.emp-form-actions-centered{flex-wrap:wrap;row-gap:10px}.emp-phase-form .wf-field-row{flex-direction:column;gap:14px}.emp-phase-form .emp-phase-hours-row{align-items:stretch}.emp-phase-form .emp-phase-hours-row .emp-phase-toggle{align-self:flex-start}.emp-workday-chip{font-size:.88rem;min-height:44px;min-width:44px;padding:10px 14px}.emp-halfday-toggle{font-size:.85rem;min-height:44px}.emp-range-cal{width:100%}.emp-range-cal .mini-cal{border-radius:0;max-width:380px;width:100%}.emp-range-cal .mini-cal-day{font-size:.88rem}.emp-sick-actions{grid-template-columns:1fr 1fr;row-gap:12px}.emp-sick-actions>:first-child{grid-column:1;grid-row:2;justify-self:start}.emp-sick-actions>:nth-child(2){grid-column:1/-1;grid-row:1;justify-self:stretch}.emp-sick-actions>:nth-child(3){grid-column:2;grid-row:2;justify-self:end}.emp-halfday-center{justify-content:center}.emp-error-bar button{min-height:40px;min-width:40px}}@media (max-width:480px){.emp-main{padding:12px 10px}.emp-sidebar{gap:5px;padding:8px 6px}.emp-side-item{font-size:.82rem;padding:8px 12px}.emp-main-name{font-size:.98rem}.emp-tab-tile{padding:9px 10px}.emp-tab-tile-value{font-size:1.05rem}.emp-tab-tile-label{font-size:.62rem}.emp-admin-page .wf-vac-row-head.wf-vac-row-admin,.emp-admin-page .wf-vac-row.wf-vac-row-admin{font-size:.72rem;gap:6px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px auto auto}.emp-sick-row{font-size:.74rem;gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 60px}.emp-form-actions-centered,.emp-phase-form .wf-form-actions{align-items:stretch;flex-direction:column;gap:8px}.emp-form-actions-centered .wf-form-actions-left,.emp-form-actions-centered .wf-form-actions-right,.emp-phase-form .wf-form-actions .wf-form-actions-right{flex:none;margin-left:0}.emp-form-actions-centered .wf-form-actions-left:empty{display:none}.emp-form-actions-centered .emp-form-archive-btn,.emp-form-actions-centered .wf-form-actions-left .btn,.emp-form-actions-centered .wf-form-actions-right .btn,.emp-phase-form .wf-form-actions .wf-form-actions-right .btn,.emp-phase-form .wf-form-actions>.btn{width:100%}.emp-archive-text{font-size:.85rem}}.projects-page{display:flex;flex:1 1;flex-direction:column;gap:14px;min-height:0;overflow:hidden}.proj-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.proj-card{background:var(--bg-card);border-radius:6px;flex:1 1;min-height:0;overflow-y:auto;padding:16px 24px;scrollbar-color:var(--border) #0000;scrollbar-gutter:stable;scrollbar-width:thin}.proj-card::-webkit-scrollbar{width:6px}.proj-card::-webkit-scrollbar-button{display:none;height:0;width:0}.proj-card::-webkit-scrollbar-track{background:#0000}.proj-card::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.proj-card::-webkit-scrollbar-thumb:hover{background:#3f4150}.proj-group+.proj-group{margin-top:18px}.proj-group-header{align-items:center;border-bottom:2px solid var(--border);color:var(--text-secondary);display:flex;font-size:.85rem;font-weight:700;gap:8px;letter-spacing:.03em;margin-bottom:0;padding:24px 8px 12px;text-transform:uppercase}.proj-group:first-child .proj-group-header{padding-top:8px}.proj-group-toggle{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;display:inline-flex;padding:4px}.proj-group-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.proj-group-chevron{transition:transform .15s}.proj-group-chevron.collapsed{transform:rotate(-90deg)}.proj-group-name{background:none;border:none;color:inherit;font:inherit;letter-spacing:inherit;padding:0;text-transform:inherit;transition:color .15s}.proj-group-name-btn{cursor:pointer}.proj-group-name-btn:hover{color:var(--text-primary);color:var(--client-color,var(--text-primary))}.proj-group-empty{color:var(--text-muted);font-size:.8rem;font-style:italic;padding:12px 8px}.proj-row{align-items:center;border-bottom:1px solid var(--border);border-radius:4px;cursor:pointer;display:flex;gap:14px;padding:10px 8px;transition:background .12s}.proj-row:hover{background:var(--bg-hover)}.proj-group .proj-row:last-child{border-bottom:none}.proj-row-archived{opacity:.7}.proj-row-archived .proj-name{color:var(--text-muted);color:var(--text-faint,var(--text-muted))}.proj-abbr{font-feature-settings:"tnum";background:var(--bg-input);border-radius:4px;color:var(--text-secondary);flex-shrink:0;font-size:.78rem;font-variant-numeric:tabular-nums;font-weight:500;overflow:hidden;padding:3px 8px;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100px}.proj-name-wrap{align-items:center;display:flex;flex:1 1;flex-direction:row;gap:8px;min-width:0}.proj-name{color:var(--text-primary);font-size:.85rem;font-weight:600;min-width:0}.proj-client,.proj-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-client{color:var(--text-muted);font-size:.78rem}.proj-time{display:flex;flex-direction:column;flex-shrink:0;gap:4px;min-width:220px}.proj-time-row{align-items:baseline;display:flex;gap:8px;justify-content:space-between}.proj-time-value{font-feature-settings:"tnum";font-size:.82rem;font-variant-numeric:tabular-nums}.proj-time-sep,.proj-time-unit,.proj-time-value{color:var(--text-muted);font-weight:500}.proj-time-sep{margin-left:6px;margin-right:4px}.proj-time-percent{font-feature-settings:"tnum";color:var(--text-muted);font-size:.78rem;font-variant-numeric:tabular-nums;font-weight:500}.proj-progress{background:var(--bg-input);border-radius:2px;height:4px;overflow:hidden;position:relative;width:100%}.proj-progress-bar{background:var(--color-accent);border-radius:2px;inset:0 auto 0 0;position:absolute;transition:width .2s}.proj-progress-bar.is-over{background:var(--color-danger)}.proj-progress-bar.is-unset{background:#0000}.proj-persons{display:flex;flex-shrink:0;flex-wrap:wrap;gap:3px;margin-left:8px}.proj-person-chip{background:var(--bg-input);border-radius:3px;color:var(--text-muted);font-size:.62rem;font-weight:600;letter-spacing:.02em;padding:1px 6px;text-transform:uppercase;white-space:nowrap}.proj-form{display:flex;flex-direction:column;gap:14px}.proj-form-grid{display:flex;flex-wrap:wrap;gap:12px}.proj-form-field{display:flex;flex:1 1;flex-direction:column;gap:5px;min-width:120px}.wf-input-warn{border-color:#c99f63!important}.proj-chart-legend{align-content:center;min-height:44px;row-gap:6px}.proj-pick-cell-wide{width:62px}.proj-pick-pop .week-picker-cell:disabled,.proj-pick-pop .week-picker-nav:disabled{cursor:not-allowed;opacity:.3}.proj-pick-pop .week-picker-cell:disabled:hover,.proj-pick-pop .week-picker-nav:disabled:hover{background:#0000;color:var(--text-secondary)}.proj-client-row{align-items:flex-start;display:flex;gap:12px;margin-bottom:12px}.proj-client-row .form-row{margin-bottom:0}.proj-client-color{flex:0 0 auto}.proj-client-code{flex:1 1 auto;min-width:0}.proj-client-code input{box-sizing:border-box;width:100%}.wf-input-no-spin{appearance:textfield}.wf-input-no-spin::-webkit-inner-spin-button,.wf-input-no-spin::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.proj-abbr-warn{color:#c99f63;font-size:.78rem;margin-top:-6px}.proj-form-field-wide{flex:2 1}.proj-form-field-abbr{flex:0 0 100px;min-width:80px}.proj-range-toggle{align-items:stretch;background:var(--bg-card);border-radius:6px;box-sizing:border-box;display:inline-flex;gap:2px;margin-right:8px;min-height:40px;padding:4px}.proj-range-btn{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.82rem;font-weight:600;padding:0 14px;transition:background .12s,color .12s}.proj-range-btn:hover{color:var(--text-primary)}.proj-range-btn.is-active{background:var(--bg-input);box-shadow:0 1px 2px #00000040;color:var(--text-primary)}.proj-form-field-persons{margin-bottom:14px}.proj-toolbar-right{align-items:center;display:flex;gap:10px}.proj-add-btn{align-items:center;background:var(--bg-card);border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:inline-flex;justify-content:center;min-height:40px;min-width:40px;padding:0;transition:background .12s,color .12s}.proj-add-btn:hover{background:var(--bg-input);color:var(--text-primary)}.proj-focus-btn{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;display:inline-flex;flex-shrink:0;padding:5px;transition:all .12s}.proj-focus-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.proj-focus-btn.is-active{background:var(--color-primary);background:var(--color-accent,var(--color-primary));color:#fff}.proj-focus-legend{align-items:center;color:var(--text-secondary);display:inline-flex;font-size:.8rem;gap:10px;min-width:0}.proj-focus-legend-text{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-group-add{background:none;border:none;border-radius:4px;color:var(--text-faint);cursor:pointer;font-size:1rem;font-weight:500;line-height:1;padding:0 4px;transition:all .15s}.proj-group-add:hover{background:var(--bg-hover);color:var(--text-primary)}.proj-group-focus{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;display:inline-flex;flex-shrink:0;margin-left:auto;padding:5px;transition:all .12s}.proj-group-focus:hover{background:var(--bg-hover);color:var(--text-primary)}.proj-group-focus.is-active{background:var(--color-primary);background:var(--client-color,var(--color-accent,var(--color-primary)));color:#fff}.proj-client-new .wf-input{flex:1 1}.wf-total-min{font-size:.62em;font-weight:inherit}.proj-form-actions{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:1fr auto 1fr;margin-top:16px}.proj-actions-left{justify-self:start}.proj-actions-center{justify-self:center}.proj-actions-right{justify-self:end}.proj-time-clickable{border-radius:4px;cursor:pointer;transition:background .12s}.proj-time-clickable:hover{background:var(--bg-hover)}.proj-info-list{display:flex;flex-direction:column;gap:2px;margin-top:4px}.proj-info-row{grid-gap:16px;align-items:center;color:var(--text-primary);display:grid;font-size:.85rem;gap:16px;grid-template-columns:1fr auto 52px;padding:7px 4px}.proj-info-row+.proj-info-row{border-top:1px solid var(--border)}.proj-info-person{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-info-hours{color:var(--text-secondary)}.proj-info-hours,.proj-info-pct{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.proj-info-pct{color:var(--text-muted);font-size:.8rem}.proj-info-total{border-top:2px solid var(--border);font-weight:600;margin-top:4px;padding-top:10px}.proj-info-total .proj-info-hours{color:var(--text-primary)}.proj-add-tabs{border-bottom:1px solid var(--border);display:flex;gap:4px;margin:0 0 18px}.proj-add-tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;padding:8px 14px;transition:color .15s,border-color .15s}.proj-add-tab.is-active,.proj-add-tab:hover{color:var(--text-primary)}.proj-add-tab.is-active{border-bottom-color:#6a9eff;border-bottom-color:var(--color-primary,#6a9eff)}.modal-content.proj-add-tabbed{display:flex;flex-direction:column;min-height:472px}.modal-content.proj-add-tabbed .proj-form{display:flex;flex:1 1 auto;flex-direction:column}.modal-content.proj-add-tabbed .form-actions,.modal-content.proj-add-tabbed .proj-form-actions{margin-top:auto}.projects-page>.proj-filter-wrap{display:none}@media (max-width:768px){.projects-page{gap:10px;max-width:100%;min-width:0}.projects-page .proj-toolbar{align-items:stretch;gap:8px}.projects-page .proj-toolbar>.proj-range-toggle{flex:1 1 auto;margin-right:0}.projects-page .proj-toolbar-right{flex:0 0 auto;gap:8px}.projects-page .proj-toolbar-right>.proj-range-toggle{display:none}.projects-page .proj-range-btn{flex:1 1;justify-content:center;min-height:36px;padding:0 10px;text-align:center}.projects-page .proj-add-btn{flex:0 0 44px;min-height:44px;min-width:44px}.projects-page>.proj-filter-wrap{bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom));display:block;position:fixed;right:16px;right:calc(16px + env(safe-area-inset-right));z-index:90}.projects-page>.proj-filter-wrap>.btn-filter-toggle{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px #00000080;justify-content:center;min-height:44px;min-width:44px;padding:8px 12px}.projects-page>.proj-filter-wrap>.filter-overlay{bottom:0;left:0;margin-top:0;position:fixed;right:0;top:auto;z-index:1000}.projects-page>.proj-filter-wrap .filter-chip{font-size:.8rem;min-height:40px;padding:8px 18px}.projects-page>.proj-filter-wrap .filter-reset{min-height:40px}.projects-page .wf-chart-card{margin-top:0;padding:12px 10px 10px}.projects-page .wf-chart-total{gap:8px 10px;margin-bottom:12px;padding-bottom:10px}.projects-page .wf-chart-nav{flex:0 0 auto;order:1}.projects-page .wf-chart-total-main{flex:0 0 auto;order:2}.projects-page .wf-chart-legend-inline{flex:1 1 100%;justify-content:flex-start;order:3}.projects-page .wf-nav-btn{min-height:40px;min-width:40px;padding:4px}.proj-pick-pop .week-picker-cell{height:36px}.proj-pick-pop .proj-pick-cell-wide{width:64px}.proj-pick-pop .week-picker-nav{padding:8px 10px}.projects-page .wf-nav-today{font-size:.85rem;padding:8px 4px}.projects-page .wf-week-label{font-size:.85rem;min-width:0}.projects-page .wf-chart-total-value{font-size:1.15rem}.projects-page .proj-chart-legend{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:12px;justify-content:flex-start;min-height:0;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:2px;scrollbar-width:none}.projects-page .proj-chart-legend::-webkit-scrollbar{display:none}.projects-page .wf-legend-item{flex:0 0 auto;font-size:.72rem}.projects-page .proj-focus-legend{flex:1 1 auto;min-width:0}.projects-page .proj-focus-legend-text{max-width:100%}.projects-page .wf-chart-cols{-webkit-overflow-scrolling:touch;gap:4px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;padding-top:8px;scrollbar-width:none}.projects-page .wf-chart-cols::-webkit-scrollbar{display:none}.projects-page .wf-chart-grid{top:8px}.projects-page .wf-chart-col{flex:1 0 auto;min-width:30px}.projects-page .wf-chart-val{font-size:.62rem;margin-bottom:3px}.projects-page .wf-chart-day{font-size:.66rem}.projects-page .wf-chart-bar{width:78%}.projects-page .proj-card{overscroll-behavior-y:contain;padding:8px 10px calc(72px + env(safe-area-inset-bottom));scrollbar-gutter:auto}.projects-page .proj-group-header{background:var(--bg-card);gap:4px;padding:14px 2px 8px;position:sticky;top:0;z-index:2}.projects-page .proj-group:first-child .proj-group-header{padding-top:6px}.projects-page .proj-group+.proj-group{margin-top:10px}.projects-page .proj-group-focus,.projects-page .proj-group-toggle{justify-content:center;min-height:40px;min-width:40px;padding:0}.projects-page .proj-group-add{font-size:1.25rem;min-height:40px;min-width:40px;padding:0}.projects-page .proj-group-name{padding:6px 0}.projects-page .proj-group-empty{padding:10px 4px}.projects-page .proj-row{grid-column-gap:8px;grid-row-gap:6px;align-items:center;column-gap:8px;display:grid;grid-template-areas:"abbr name focus" "pers pers pers" "time time time";grid-template-columns:auto minmax(0,1fr) auto;padding:8px 4px;row-gap:6px}.projects-page .proj-abbr{grid-area:abbr;max-width:108px;min-width:54px;padding:4px 7px;width:auto}.projects-page .proj-name-wrap{grid-area:name;min-width:0}.projects-page .proj-name{font-size:.88rem}.projects-page .proj-focus-btn{grid-area:focus;justify-content:center;min-height:40px;min-width:40px;padding:0}.projects-page .proj-persons{gap:4px;grid-area:pers;margin-left:0;max-width:100%}.projects-page .proj-person-chip{font-size:.66rem;padding:2px 7px}.projects-page .proj-time{grid-area:time;min-width:0;padding:2px 2px 4px}.projects-page .proj-time-value{font-size:.85rem}.projects-page .proj-time-percent{font-size:.8rem}.projects-page .proj-progress{height:5px}.projects-page .wf-empty-week{padding:18px 12px}.projects-page .modal-content{max-height:92vh;max-height:92dvh;max-width:none;width:100%}.projects-page .modal-content.proj-add-tabbed{min-height:0}.projects-page .modal-header{margin-bottom:14px}.projects-page .modal-close-btn{align-items:center;display:inline-flex;justify-content:center;min-height:40px;min-width:40px;padding:0}.projects-page .proj-add-tabs{margin-bottom:14px}.projects-page .proj-add-tab{flex:1 1;font-size:.88rem;min-height:44px;padding:10px 6px}.projects-page .proj-form{gap:12px}.projects-page .proj-form-grid{flex-direction:column;gap:12px}.projects-page .proj-form-field,.projects-page .proj-form-field-abbr,.projects-page .proj-form-field-color,.projects-page .proj-form-field-wide{flex:1 1 auto;min-width:0;width:100%}.projects-page .area-color-hex-input,.projects-page .form-row input,.projects-page .wf-input{box-sizing:border-box;font-size:16px;min-height:40px}.projects-page .wf-input{padding:8px 12px}.projects-page .form-row input{padding:9px 12px}.projects-page .custom-select-trigger{font-size:16px}.projects-page .proj-form-label,.projects-page .task-form-label{font-size:.75rem}.projects-page .task-person-chips{gap:8px}.projects-page .task-person-chip{font-size:.78rem;min-height:36px;padding:6px 14px}.projects-page .proj-client-row{gap:10px}.projects-page .area-color-btn{height:40px;width:40px}.projects-page .area-color-popover{bottom:calc(12px + env(safe-area-inset-bottom))!important;box-sizing:border-box;left:50%!important;right:auto!important;top:auto!important;transform:translateX(-50%);width:min(288px,calc(100vw - 24px))}.projects-page .area-color-popover .react-colorful{height:180px;width:100%}.projects-page .area-color-hex-input{margin-top:10px;width:100%}.projects-page .modal-content .form-actions,.projects-page .modal-content .proj-form-actions{background:var(--bg-card);border-top:1px solid var(--border);bottom:0;margin-top:16px;padding-top:12px;position:sticky;z-index:3}.projects-page .proj-form-actions{align-items:stretch;gap:8px;grid-template-columns:1fr 1fr}.projects-page .proj-actions-left{grid-column:1;justify-self:stretch}.projects-page .proj-actions-center{grid-column:2;justify-self:stretch}.projects-page .proj-actions-right{grid-column:1/-1;justify-self:stretch}.projects-page .proj-form-actions .btn{width:100%}.projects-page .proj-archive-btn{margin:0}.projects-page .form-actions{gap:8px}.projects-page .form-actions-right,.projects-page .form-actions>.btn{flex:1 1}.projects-page .form-actions-right .btn{width:100%}.projects-page .proj-info-row{font-size:.88rem;gap:10px;grid-template-columns:minmax(0,1fr) auto 46px;padding:9px 2px}.projects-page .proj-info-pct{font-size:.78rem}}@media (max-width:480px){.projects-page .wf-chart-bar-zone,.projects-page .wf-chart-grid{height:100px}.projects-page .wf-chart-card{padding:10px 8px 8px}.projects-page .wf-chart-total-value{font-size:1.05rem}.projects-page .wf-chart-total-label{font-size:.7rem}.projects-page .wf-chart-cols{gap:3px}.projects-page .wf-chart-col{min-width:28px}.projects-page .wf-chart-val{font-size:.58rem}.projects-page .wf-chart-day{font-size:.62rem}.projects-page .proj-range-btn{font-size:.78rem;padding:0 8px}.projects-page .proj-card{padding:6px 8px calc(68px + env(safe-area-inset-bottom))}.projects-page .proj-group-header{font-size:.8rem}.projects-page .proj-abbr{font-size:.72rem;max-width:96px;min-width:48px}.projects-page .proj-name{font-size:.85rem}.projects-page .proj-info-row{font-size:.84rem;gap:8px;grid-template-columns:minmax(0,1fr) auto 42px}}.login-page{align-items:center;background:var(--bg-body);display:flex;justify-content:center;min-height:100vh}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 30px #0006;display:flex;flex-direction:column;gap:18px;max-width:95vw;padding:40px 36px;width:380px}.login-logo{margin-bottom:8px;text-align:center}.login-logo-img{height:64px;margin-bottom:12px;width:64px}.login-logo h1{color:var(--text-primary);font-size:1.6rem;font-weight:700}.login-error{background:var(--tint-danger);border:1px solid #ef44444d;border-radius:6px;color:var(--color-danger-light);font-size:.85rem;font-weight:500;padding:10px 14px}.login-label{color:var(--text-secondary);display:flex;flex-direction:column;font-size:.82rem;font-weight:600;gap:5px}.login-input{background:var(--bg-input);border:1px solid var(--border-input);border-radius:6px;color:var(--text-primary);font-size:.9rem;outline:none;padding:10px 12px;transition:border-color .15s}.login-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--tint-purple)}.login-btn{background:var(--color-primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;margin-top:6px;padding:12px;transition:background .15s}.login-btn:hover{background:var(--color-primary-hover)}.login-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:480px){.login-page{align-items:flex-start;min-height:100dvh;padding:15vh 16px 16px}.login-card{border-radius:10px;gap:14px;max-width:100%;padding:28px 20px;width:100%}.login-logo h1{font-size:1.4rem}.login-input{font-size:16px;padding:12px}.login-btn{font-size:1rem;min-height:48px;padding:14px}}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;src:url(/static/media/Montserrat-Regular.24785cc015b27a3e964b.ttf) format("truetype")}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;src:url(/static/media/Montserrat-Medium.b8c6753baa964ccac1ba.ttf) format("truetype")}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;src:url(/static/media/Montserrat-SemiBold.93b37a465fc4ec0d0415.ttf) format("truetype")}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;src:url(/static/media/Montserrat-Bold.50f0257aa1e905f4bfaf.ttf) format("truetype")}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;src:url(/static/media/Montserrat-ExtraBold.6c8b198832c88c649faa.ttf) format("truetype")}:root{--bg-body:#121212;--bg-card:#1c1c1c;--bg-input:#252528;--bg-hover:#27272a;--border:#2d2e3a;--border-input:#3f3f46;--text-primary:#e4e4e7;--text-secondary:#a1a1aa;--text-muted:#71717a;--text-faint:#52525b;--color-primary:#28588a;--color-primary-hover:#1e4a6e;--color-accent:#5ba3d9;--color-danger:#ef4444;--color-danger-light:#f87171;--color-success:#22c55e;--color-warning:#f59e0b;--focus-ring:#28588a26;--tint-purple:#5d6ed026;--tint-primary:#28588a33;--tint-danger:#ef44441a}*{box-sizing:border-box;margin:0;padding:0;-webkit-user-select:none;user-select:none}button,input,optgroup,select,textarea{font-family:inherit}[contenteditable=true],input,textarea{-webkit-user-select:text;user-select:text}body{background:#121212;background:var(--bg-body);color:#e4e4e7;color:var(--text-primary);font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;margin:0 auto;max-width:1920px;overflow:hidden;padding:20px}.app-header{align-items:center;background:#1c1c1c;background:var(--bg-card);border:none;border-radius:6px;color:#fff;display:flex;justify-content:space-between;margin-bottom:14px;padding:calc(16px + env(safe-area-inset-top)) 24px 16px}.app-header h1{font-size:1.5rem;font-weight:700}.header-brand{align-items:baseline;display:flex;gap:10px;letter-spacing:.08em}.header-menu-btn{align-items:center;background:none;border:none;border-radius:6px;color:#a1a1aa;color:var(--text-secondary);cursor:pointer;display:none;flex-shrink:0;height:40px;justify-content:center;margin-left:-8px;margin-right:2px;padding:0;width:40px}.header-menu-btn:active{background:#27272a;background:var(--bg-hover)}.header-logo{align-self:center;height:28px;width:auto}.header-nav-wrap{align-items:center;display:flex;flex-wrap:wrap;gap:28px}.header-nav{background:#ffffff14;border-radius:6px;display:flex;gap:4px;padding:3px}.nav-link{border-radius:4px;color:#ffffff80;font-size:.85rem;font-weight:600;padding:6px 16px;text-decoration:none;transition:all .15s}.nav-link:hover{background:#ffffff1a;color:#fff}.nav-active{background:#28588a;background:var(--color-primary);color:#fff}.nav-link{position:relative}.nav-badge{align-items:center;background:#8a6fd4;border-radius:50%;color:#fff;display:inline-flex;font-size:.62rem;font-weight:700;height:14px;justify-content:center;line-height:1;pointer-events:none;position:absolute;right:-4px;top:-4px;width:14px}.header-right{align-items:center;display:flex;gap:10px}.header-logout-btn{align-items:center;background:#0000;border:1px solid #0000;border-radius:6px;color:#ffffff80;cursor:pointer;display:flex;padding:6px 8px;transition:all .15s}.header-logout-btn:hover{background:#ef44440f;color:#ef4444;color:var(--color-danger)}.btn{border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;padding:8px 16px;transition:opacity .2s}.btn:hover{opacity:.85}.btn-primary{background:#28588a;background:var(--color-primary);color:#fff}.btn-danger{background:#ef4444;background:var(--color-danger);color:#fff}.btn-secondary{background:#3f3f46;background:var(--border-input);color:#e4e4e7;color:var(--text-primary)}.modal-overlay{align-items:center;background:#000000b3;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.modal-content{background:#1c1c1c;background:var(--bg-card);border:1px solid #2d2e3a;border:1px solid var(--border);border-radius:6px;box-shadow:0 20px 60px #00000080;max-height:90vh;max-width:95vw;overflow-y:auto;padding:24px;scrollbar-gutter:stable;width:480px}.modal-content.modal-no-clip{overflow:visible}.modal-content.modal-wide{width:620px}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.modal-title{color:#e4e4e7;color:var(--text-primary);font-size:1.2rem;font-weight:700;letter-spacing:.05em;margin:0;text-transform:uppercase}.modal-close-btn{background:none;border:none;border-radius:4px;color:#71717a;color:var(--text-muted);cursor:pointer;font-size:1.5rem;line-height:1;padding:4px 8px;transition:all .15s}.modal-close-btn:hover{background:#2d2e3a;background:var(--border);color:#e4e4e7;color:var(--text-primary)}.app-loading{align-items:center;background:#121212;background:var(--bg-body);display:flex;justify-content:center;min-height:100vh}.app-spinner{animation:spin .6s linear infinite;border:3px solid #2d2e3a;border-top-color:#28588a;border:3px solid var(--border);border-radius:50%;border-top-color:var(--color-primary);height:36px;width:36px}@keyframes spin{to{transform:rotate(1turn)}}.app-loading-bar{color:#71717a;color:var(--text-muted);font-size:.82rem;padding:8px;text-align:center}.app-error-bar{align-items:center;background:#ef44441a;border:1px solid #ef44444d;border-radius:6px;display:flex;font-size:.85rem;font-weight:500;justify-content:space-between;margin-bottom:16px;padding:10px 14px}.app-error-bar,.app-error-bar button{color:#f87171;color:var(--color-danger-light)}.app-error-bar button{background:none;border:none;cursor:pointer;font-size:1.2rem;padding:0 4px}.mobile-backdrop{display:none}@media (hover:none) and (pointer:coarse){.task-check{opacity:1}.task-dots-wrap{min-width:20px;width:20px}.task-dots-btn{visibility:visible}.list-category-add,.row-actions{opacity:1}.appointment-card-dots-btn{visibility:visible}}@media (min-width:769px) and (max-width:960px){.header-nav-wrap{gap:10px}.nav-link{padding:6px 8px}}@media (max-width:768px){.app{height:100dvh;overflow-x:hidden;overflow-y:auto;padding:8px calc(8px + env(safe-area-inset-right)) 8px calc(8px + env(safe-area-inset-left))}.mobile-backdrop{background:#00000080;display:block;inset:0;position:fixed;z-index:999}.app-header{border-radius:6px 6px 0 0;gap:8px;margin-bottom:0;padding:calc(10px + env(safe-area-inset-top)) 14px 10px}.app-header h1{font-size:1.5rem}.header-brand{gap:10px;margin-right:auto;min-width:0}.header-logo{height:30px}.header-right{gap:14px;margin-left:auto;order:2}.app-header{flex-wrap:nowrap}.header-menu-btn{display:inline-flex}.header-nav-wrap{align-items:stretch;background:#1c1c1c;background:var(--bg-card);border-right:1px solid #2d2e3a;border-right:1px solid var(--border);bottom:0;box-shadow:4px 0 24px #00000073;flex-direction:column;gap:6px;left:0;overflow-y:auto;overscroll-behavior:contain;padding:calc(14px + env(safe-area-inset-top)) 12px calc(14px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));position:fixed;top:0;transform:translateX(-100%);transition:transform .22s ease,visibility 0s .22s;visibility:hidden;width:min(78vw,300px);z-index:1000}.header-nav-wrap.is-open{transform:translateX(0);transition:transform .22s ease,visibility 0s 0s;visibility:visible}.header-nav{align-items:stretch;flex-direction:column;gap:4px;padding:4px;width:100%}.header-nav-admin{border-top:1px solid #2d2e3a;border-top:1px solid var(--border);margin-top:8px;padding-top:10px}.nav-link{border-radius:6px;font-size:.95rem;padding:13px 14px;text-align:left;width:100%}.modal-overlay{align-items:flex-end}.modal-content{border-radius:12px 12px 0 0;margin:0;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.modal-content,.modal-content.modal-wide{max-width:100vw;width:100%}.modal-title{font-size:1rem}.btn{min-height:40px;padding:10px 16px}.header-logout-btn,.header-settings-btn{align-items:center;display:flex;justify-content:center;min-height:40px;min-width:40px}}@media (max-width:480px){.app{padding:4px calc(4px + env(safe-area-inset-right)) 4px calc(4px + env(safe-area-inset-left))}.app-header{gap:6px;padding:calc(8px + env(safe-area-inset-top)) 10px 8px}.app-header h1{font-size:1.15rem}.header-brand{gap:6px}.header-logo{height:22px}.header-right{gap:4px}.header-nav{padding:3px}.header-logout-btn,.header-settings-btn{padding:5px 6px}.modal-content{border-radius:12px 12px 0 0;padding:14px 14px calc(14px + env(safe-area-inset-bottom))}}
/*# sourceMappingURL=main.be23f708.css.map*/