:root{--color-primary: #0d6efd;--color-primary-hover: #0b5ed7;--color-secondary: #6c757d;--color-danger: #dc3545;--color-danger-subtle: #f8d7da;--color-warning: #ffc107;--color-warning-soft: rgba(255, 193, 7, 0.05);--color-warning-subtle: #fff3cd;--color-secondary-subtle: #e2e3e5;--color-bg: #f8f9fa;--color-surface: #ffffff;--color-text: #212529;--color-muted: #6c757d;--color-border: #dee2e6;--color-row-alt: #f7f8fb;--color-row-base: #ffffff;--color-row-hover: #edf2f9;--color-weekend-bg: #e4ecf7;--color-weekend-hover: #dbe6f4;--color-weekend-text: #2b3b54;--color-grid-border: #cfd7e3;--shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.05);--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.05);--shadow-card: 0 2px 4px rgba(0, 0, 0, 0.08);--shadow-card-hover: 0 4px 8px rgba(0, 0, 0, 0.12);--shadow-focus: 0 0 0 0.25rem rgba(13, 110, 253, 0.15);--shadow-primary-hover: 0 4px 8px rgba(13, 110, 253, 0.3);--shadow-note-hover: 0 8px 24px rgba(0, 0, 0, 0.12)}.page{display:flex;flex-direction:column;height:100vh;overflow:hidden}main{flex-grow:1;overflow:hidden;display:flex;flex-direction:column}.content{padding:0 !important;flex-grow:1;display:flex;flex-direction:column;overflow:hidden}html,body{font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background-color:var(--color-bg);color:var(--color-text);font-size:16px;height:100%;overflow:hidden}@media(max-width: 991.98px){html,body{font-size:17px}}#blazor-error-ui{color-scheme:light only;background:#ffffe0;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);box-sizing:border-box;display:none;left:0;padding:.6rem 1.25rem .7rem 1.25rem;position:fixed;width:100%;z-index:2000}#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:.75rem;top:.5rem}.btn{border-radius:8px;padding:.4rem .85rem;font-weight:500;font-size:.95rem;min-height:2.25rem;transition:all .2s ease-in-out;box-shadow:var(--shadow-sm)}.btn-sm{padding:.2rem .5rem;font-size:.8125rem;min-height:1.85rem}.btn:active{transform:scale(0.98)}.btn-lg{padding:.65rem 1.25rem;font-size:1.05rem;min-height:2.65rem}@media(max-width: 991.98px){.btn:not(.btn-sm){padding:.55rem 1rem;font-size:1.05rem;min-height:2.75rem}.btn-sm{padding:.35rem .65rem;font-size:.9rem;min-height:2.25rem}.btn-lg{padding:.75rem 1.35rem;font-size:1.125rem;min-height:3.1rem}}.btn-primary{background-color:var(--color-primary);border:none}.btn-primary:hover{background-color:var(--color-primary-hover);box-shadow:var(--shadow-primary-hover)}.btn-secondary{background-color:var(--color-secondary);border:none}.form-control,.form-select{border-radius:8px;padding:.4rem .75rem;border:1px solid var(--color-border);font-size:.95rem;min-height:2.25rem;line-height:1.4}.form-label{font-size:.875rem;font-weight:600;margin-bottom:.3rem}.form-control-sm,.form-select-sm{padding:.2rem .5rem;font-size:.8125rem;border-radius:6px;min-height:1.85rem}.form-control-lg,.form-select-lg{padding:.55rem .9rem;font-size:1.05rem;border-radius:10px;min-height:2.65rem}.form-control-color{width:2.75rem;max-width:100%;padding:.2rem;min-height:2.25rem}.form-control-color.form-control-sm{width:2.25rem;min-height:1.85rem;padding:.15rem}.form-control:focus,.form-select:focus{box-shadow:var(--shadow-focus)}@media(max-width: 991.98px){.form-control,.form-select{padding:.65rem .95rem;font-size:1.05rem;min-height:2.75rem;border-radius:10px}.form-label{font-size:1rem}.form-control-lg,.form-select-lg{padding:.8rem 1.1rem;font-size:1.125rem;min-height:3.1rem}.form-control-color{width:100%;min-height:2.75rem;padding:.3rem}}.card{border-radius:12px;border:none;box-shadow:var(--shadow-md)}.navbar{z-index:1030 !important;min-height:40px !important;overflow:visible}.navbar>.container-fluid{flex-wrap:wrap;row-gap:.25rem;overflow:visible}.navbar-right-container{justify-content:flex-end;overflow:visible}.nav-actions-area{overflow:visible}.nav-actions-toolbar{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:.4rem .55rem;max-width:100%}.nav-filter-group,.nav-view-controls{display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0}@media(max-width: 991.98px){.navbar>.container-fluid{flex-wrap:wrap;align-items:center}.navbar-brand-container{order:1;flex:0 0 auto}.navbar-brand-container .navbar-brand{margin-left:.25rem !important}.nav-center-area{order:1;flex:1 1 0;min-width:0;justify-content:center}.nav-center-area .fs-5{font-size:1rem !important}.nav-center-area .mx-3{margin-left:.35rem !important;margin-right:.35rem !important}.date-pager-label{min-width:0 !important}.navbar-toggler{order:1;flex:0 0 auto;margin-left:.15rem;margin-right:.15rem !important;padding:.25rem .4rem}.navbar-right-container{order:2;flex:1 1 100%;max-width:100%;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;padding:.15rem .25rem .35rem;box-sizing:border-box}.nav-actions-area{flex:1 1 auto;min-width:0;max-width:100%;margin-right:0 !important;display:flex;justify-content:center;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav-actions-area::-webkit-scrollbar{display:none}.nav-actions-toolbar{width:max-content;max-width:none;flex-wrap:nowrap;justify-content:center;gap:.3rem .4rem}}.navbar .nav-link{padding-top:.15rem !important;padding-bottom:.15rem !important}.navbar .nav-link i{font-size:1.2rem}.navbar .btn-sm{padding:.15rem .4rem !important;min-height:0;font-size:.875rem}.navbar .btn-sm i{font-size:.95rem !important}.navbar .dropdown-menu{z-index:2000 !important}.calendar-filter-dropdown .dropdown-menu{min-width:min(250px,100vw - 1rem);max-width:calc(100vw - 1rem);max-height:min(70vh,24rem);overflow-y:auto;z-index:2000 !important}.month-view-toggle,.month-view-actions{display:inline-flex;align-items:center;gap:0;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.08);padding:2px}.month-view-actions{margin-right:0}.month-view-actions .month-view-toggle-btn{color:rgba(255,255,255,.9)}.month-view-actions .month-view-toggle-btn:hover{color:#fff}.month-view-toggle{margin-right:0}.month-view-toggle-btn{display:inline-flex;align-items:center;justify-content:center;border:0;background:rgba(0,0,0,0);color:rgba(255,255,255,.55);border-radius:999px;padding:.2rem .55rem;line-height:1;transition:color .15s ease,background-color .15s ease}.month-view-toggle-btn i{font-size:1.15rem}.month-view-toggle-btn:hover{color:rgba(255,255,255,.85);background:rgba(255,255,255,.08)}.month-view-toggle-btn.active{color:#fff;background:rgba(255,255,255,.22)}.month-view-swap-icon{display:inline-block;transform:rotate(45deg)}.month-view-toggle-divider{display:inline-block;align-self:center;width:1px;height:24px;margin:0;background:rgba(255,255,255,.5);opacity:.5}@media(max-width: 991.98px){.offcanvas-end{top:10px !important;right:10px !important;bottom:10px !important;border-radius:15px !important;box-shadow:0 10px 30px rgba(0,0,0,.3) !important;height:calc(100% - 20px) !important;border:none !important}.navbar-toggler:focus{box-shadow:none !important}.offcanvas-body .nav-link:hover{background-color:rgba(255,255,255,.1)}.offcanvas-body .nav-link.active{background-color:rgba(255,255,255,.2);font-weight:bold}}.appointment-search-overlay{z-index:1046}.appointment-search-overlay__year{color:var(--color-primary, #0d6efd);font-weight:700;font-size:1.05rem;border-bottom:1px solid var(--color-border, #dee2e6);padding-bottom:.35rem}.appointment-search-overlay__icon-search{left:1rem;top:50%;transform:translateY(-50%);pointer-events:none;font-size:1.05rem}.appointment-search-overlay__busy{right:.75rem;top:50%;transform:translateY(-50%)}.appointment-search-overlay__hint{line-height:1.35}.appointment-search-overlay__help-toggle{display:flex;align-items:center;justify-content:center;width:100%;line-height:1;min-height:1.75rem}.appointment-search-overlay__toolbar select{max-width:100%}@media(min-width: 992px){.appointment-search-overlay__toolbar .form-select{max-width:18rem}}.note-card:hover{transform:translateY(-5px);transition:transform .2s ease;box-shadow:var(--shadow-note-hover) !important}.notification-center{position:relative;display:inline-flex;align-items:center}.notification-center__bell{position:relative;line-height:1;color:rgba(255,255,255,.55)}.notification-center__bell:hover,.notification-center__bell:focus-visible{color:rgba(255,255,255,.75)}.notification-center__bell.active,.notification-center__bell[aria-expanded=true]{color:#fff}.notification-center__badge{position:absolute;top:0;right:0;transform:translate(35%, -25%);min-width:1.1rem;height:1.1rem;padding:0 .3rem;border-radius:999px;background:#dc3545;color:#fff;font-size:.65rem;font-weight:700;line-height:1.1rem;text-align:center;pointer-events:none}.notification-center__panel{position:absolute;top:calc(100% + .35rem);right:0;width:min(22rem,100vw - 1.5rem);max-height:min(70vh,28rem);display:flex;flex-direction:column;background:#fff;color:#212529;border-radius:12px;border:1px solid rgba(0,0,0,.08);z-index:1080;overflow:hidden}.notification-center__panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid rgba(0,0,0,.08);background:#f8f9fa}.notification-center__list{overflow-y:auto;flex:1 1 auto}.notification-center__card{padding:.75rem 1rem;border-bottom:1px solid rgba(0,0,0,.06)}.notification-center__card:last-child{border-bottom:none}.notification-center__card-top{display:flex;gap:.5rem;align-items:flex-start}.notification-center__card-main{flex:1 1 auto;min-width:0}.notification-center__card-header{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline;margin-bottom:.25rem}.notification-center__title{font-weight:600;font-size:.9rem;line-height:1.3}.notification-center__time{flex-shrink:0;font-size:.75rem;color:#6c757d;white-space:nowrap}.notification-center__body{font-size:.85rem;color:#495057;line-height:1.35;word-break:break-word}.notification-center__actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.notification-center__dismiss{flex-shrink:0;line-height:1;opacity:.75}.notification-center__dismiss:hover{opacity:1}.notification-center__footer{padding:.75rem 1rem;border-top:1px solid rgba(0,0,0,.08);background:#f8f9fa}.offcanvas .notification-center__panel{position:fixed;top:.75rem;left:.75rem;right:.75rem;width:auto;max-height:min(80vh,32rem)}.appt-modal-date-input{width:150px}.appt-modal-count-input{width:80px}.appt-modal-weekday-col{width:80px}.appt-modal-due-badge{font-size:.7rem}.appt-modal-gear-badge{font-size:.6rem;padding:.25em .4em}.appt-modal-dropdown{min-width:240px}.appt-modal-clickable{cursor:pointer}.appt-modal-subtask-list{max-height:400px;overflow-y:visible}.appt-modal-reorder-btn{line-height:1}.appt-modal-subtask-due{font-size:.75rem}:root{--today-bg-color: var(--color-warning-soft)}.btn-icon-only{padding:2px 6px !important;line-height:1;display:inline-flex;align-items:center;justify-content:center}.mobile-zoom-controls{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:12px;z-index:2000}.mobile-zoom-controls .btn{padding:0 !important;border-radius:50% !important;width:42px;height:42px;background-color:rgba(255,255,255,.95);border:none !important;box-shadow:0 4px 12px rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;color:#0d6efd;font-size:1.25rem;transition:transform .1s ease,background-color .2s ease;opacity:.9}.mobile-zoom-controls .btn:active{transform:scale(0.9);background-color:#0d6efd;color:#fff;opacity:1}.appointment-card.virtual-subtask{filter:saturate(0.85) brightness(1.02);border-style:dashed !important;border-width:1.5px !important;border-left-style:dashed !important}.calendar-container{display:flex;flex-direction:column;height:100%}.box-view-container,.classic-day-box-host{background:radial-gradient(circle at 0 0, rgba(13, 110, 253, 0.08), transparent 35%),linear-gradient(180deg, #eef3fa 0%, #e8edf5 100%)}@media(max-width: 768px){.box-view-container,.classic-day-box-host{zoom:var(--zoom-level, 1)}@supports not (zoom: 1){.box-view-container,.classic-day-box-host{transform:scale(var(--zoom-level, 1));transform-origin:top left;width:calc(100%/var(--zoom-level, 1)) !important}}}.box-view-container .calendar-day-box,.classic-day-box-host .calendar-day-box{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;display:flex;flex-direction:column;border:1px solid #d6deea !important;border-radius:14px !important;background-color:rgba(255,255,255,.95);box-shadow:0 1px 2px rgba(12,24,40,.08),0 8px 20px rgba(12,24,40,.06) !important}.box-view-container .calendar-day-box:hover,.classic-day-box-host .calendar-day-box:hover{transform:translateY(-3px);border-color:#b9c7dd !important;box-shadow:0 2px 6px rgba(12,24,40,.1),0 14px 28px rgba(12,24,40,.1) !important}.box-view-container .calendar-day-box .day-box-header,.classic-day-box-host .calendar-day-box .day-box-header{border-top-left-radius:inherit;border-top-right-radius:inherit;background:linear-gradient(180deg, #f7f9fd 0%, #eef3fb 100%) !important;border-bottom:1px solid #dfe6f2 !important;min-height:44px}.box-view-container .calendar-day-box .day-box-header .fw-bold,.classic-day-box-host .calendar-day-box .day-box-header .fw-bold{letter-spacing:.02em;font-size:.98rem}.box-view-container .calendar-day-box.border-primary,.classic-day-box-host .calendar-day-box.border-primary{border-color:#2d7dff !important;box-shadow:0 0 0 2px rgba(45,125,255,.18),0 10px 26px rgba(45,125,255,.2) !important}.box-view-container .calendar-day-box.border-primary .day-box-header,.classic-day-box-host .calendar-day-box.border-primary .day-box-header{background:linear-gradient(180deg, #2f86ff 0%, #1564e0 100%) !important;border-bottom-color:rgba(255,255,255,.25) !important}.box-view-container .calendar-day-box.border-primary .day-box-header .fw-bold,.box-view-container .calendar-day-box.border-primary .day-box-header .btn,.classic-day-box-host .calendar-day-box.border-primary .day-box-header .fw-bold,.classic-day-box-host .calendar-day-box.border-primary .day-box-header .btn{color:#fff !important}.box-view-container .calendar-day-box.border-primary .day-box-header .btn.btn-light,.classic-day-box-host .calendar-day-box.border-primary .day-box-header .btn.btn-light{background-color:#fff !important;border-color:rgba(21,100,224,.25) !important;color:#1564e0 !important}.box-view-container .calendar-day-box.border-primary .day-box-header .btn.btn-light i,.classic-day-box-host .calendar-day-box.border-primary .day-box-header .btn.btn-light i{color:#1564e0 !important}.box-view-container .calendar-day-box .day-box-body,.classic-day-box-host .calendar-day-box .day-box-body{background:linear-gradient(180deg, rgba(255, 255, 255, 0.78) 0%, rgba(248, 251, 255, 0.88) 100%);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.box-view-container .calendar-day-box .appointment-item,.classic-day-box-host .calendar-day-box .appointment-item{transition:background-color .2s ease}.box-view-container .calendar-day-box .appointment-item:hover,.classic-day-box-host .calendar-day-box .appointment-item:hover{filter:brightness(0.95)}.box-view-container .calendar-day-box .multi-day-item,.classic-day-box-host .calendar-day-box .multi-day-item{cursor:pointer;display:flex;align-items:center;position:relative;margin:1px 0;z-index:1;min-height:24px;padding-top:2px;padding-bottom:2px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.box-view-container .calendar-day-box .multi-day-item.multi-day-item-placeholder,.classic-day-box-host .calendar-day-box .multi-day-item.multi-day-item-placeholder{background-color:rgba(0,0,0,0) !important;visibility:hidden;pointer-events:none}.box-view-container .calendar-day-box .multi-day-item.start,.classic-day-box-host .calendar-day-box .multi-day-item.start{border-top-left-radius:12px;border-bottom-left-radius:12px;margin-left:4px}.box-view-container .calendar-day-box .multi-day-item.start::before,.classic-day-box-host .calendar-day-box .multi-day-item.start::before{content:"";position:absolute;left:4px;width:6px;height:6px;background-color:#fff;border-radius:50%;opacity:.8}.box-view-container .calendar-day-box .multi-day-item.start .appt-title,.classic-day-box-host .calendar-day-box .multi-day-item.start .appt-title{padding-left:14px}.box-view-container .calendar-day-box .multi-day-item.end,.classic-day-box-host .calendar-day-box .multi-day-item.end{border-top-right-radius:12px;border-bottom-right-radius:12px;margin-right:4px}.box-view-container .calendar-day-box .multi-day-item.end::after,.classic-day-box-host .calendar-day-box .multi-day-item.end::after{content:"";position:absolute;right:4px;width:6px;height:6px;background-color:#fff;border-radius:50%;opacity:.8}.box-view-container .calendar-day-box .multi-day-item.middle,.classic-day-box-host .calendar-day-box .multi-day-item.middle{border-radius:0;margin-left:-12px;margin-right:-12px;padding:0 12px}.box-view-container .calendar-day-box .multi-day-item .appt-title,.classic-day-box-host .calendar-day-box .multi-day-item .appt-title{font-size:.75rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width: 768px){.calendar-container{height:100%;display:flex;flex-direction:column}.month-view-wrapper{flex:1;overflow:auto;background-color:#fff}.month-view-wrapper .calendar-table{zoom:var(--zoom-level, 1);width:100%}@supports not (zoom: 1){.month-view-wrapper .calendar-table{transform:scale(var(--zoom-level, 1));transform-origin:top left;width:calc(100%/var(--zoom-level, 1)) !important}}}.appointment-card{transition:transform .1s ease;border:1px solid rgba(0,0,0,.1);box-shadow:var(--shadow-card);cursor:pointer;margin-bottom:2px;padding:2px 4px !important;font-size:.9rem;font-weight:500;word-break:normal;border-left:4px solid rgba(0,0,0,.15) !important}.multi-day-label{height:16px;line-height:16px;font-size:.75rem;padding:0 4px;border-radius:3px}.appointment-card .delete-btn-container{background-color:var(--color-surface);color:var(--color-danger);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px rgba(0,0,0,.1);flex-shrink:0}.appointment-card .delete-btn-container:hover{background-color:var(--color-bg);transform:scale(1.1);box-shadow:0 2px 5px rgba(0,0,0,.15)}.appointment-card .warning-indicator{background-color:var(--color-danger);color:var(--color-surface);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:1.5rem;flex-shrink:0;box-shadow:0 2px 4px rgba(0,0,0,.2)}.appointment-card .time-label{white-space:nowrap;font-size:.9rem;margin-right:4px;font-weight:bold}.appointment-card .title-label{word-break:normal;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);border-color:#adb5bd !important}.participants-container{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.participant-dot{width:15px;height:15px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:bold;color:#fff;background-color:var(--person-color, #6c757d);border:1px solid rgba(255,255,255,.5);line-height:1}.participant-name{font-size:.75rem;opacity:.9;white-space:nowrap}.appointment-card.start-from-middle{margin-left:50%;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important;border-left:4px solid rgba(0,0,0,.15) !important}.multi-day-labels .multi-day-time{font-size:.75rem}.calendar-header-cell .day-number{font-size:.95rem}.calendar-header-cell .day-name{font-size:.75rem}@media(max-width: 768px){.appointment-card{padding:6px 8px !important;font-size:1rem;flex-direction:column;align-items:flex-start !important}.appointment-card .d-flex.align-items-baseline{flex-wrap:wrap}}.calendar-header{z-index:1020;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);box-shadow:0 2px 15px rgba(0,0,0,.05);border-bottom:1px solid var(--color-border);padding-bottom:1rem;margin-left:-1rem;margin-right:-1rem}.calendar-header-cell{background-color:var(--color-bg) !important;font-weight:700 !important;color:var(--color-muted) !important;text-transform:uppercase;font-size:.9rem !important;height:50px;padding:0 !important;border-bottom:1px solid var(--color-border) !important;vertical-align:middle}.calendar-header-content{display:flex;justify-content:center;align-items:center;gap:10px;height:100%;width:100%;padding:0 10px}th.calendar-header-cell{padding:0 !important;vertical-align:middle}.calendar-table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1010;background-color:var(--color-bg) !important;border-bottom:1px solid var(--color-border) !important;box-shadow:0 1px 2px rgba(0,0,0,.05);border-color:var(--color-grid-border) !important}.add-btn-header{width:24px;height:24px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-primary);font-size:.75rem;transition:all .2s ease;box-shadow:0 1px 3px rgba(0,0,0,.1);cursor:pointer}.calendar-header-cell:hover .add-btn-header{background-color:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary);transform:scale(1.1)}.sticky-left{position:sticky;left:0;z-index:20;background-color:var(--color-row-base) !important}.table-warning .sticky-left{background-color:var(--color-warning-subtle) !important}.table-secondary .sticky-left{background-color:var(--color-weekend-bg) !important}.calendar-table tbody tr:not(.table-secondary):not(.table-warning) .sticky-left{background-color:var(--color-row-base) !important}.person-column .column-header.sticky-top{top:0;z-index:15}@media(max-width: 767.98px){.calendar-table thead th{top:0}}.calendar-table tbody tr:not(.table-secondary):not(.table-warning) td{background-color:var(--color-row-base) !important}.calendar-table tr.table-secondary td{background-color:var(--color-weekend-bg) !important}.calendar-table tr.table-warning td{background-color:var(--bs-warning-bg-subtle) !important}.calendar-table tr{scroll-margin-top:0}.today-row{outline:2px solid var(--color-warning);z-index:5;background-color:var(--today-bg-color) !important}.today-cell{background-color:var(--today-bg-color) !important}.today-row td{border-top:2px solid var(--color-warning) !important;border-bottom:2px solid var(--color-warning) !important}.table-responsive{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.calendar-table{min-width:800px;border-collapse:separate;border-spacing:0}.calendar-table td{min-width:100px;background-color:var(--color-surface);border-color:var(--color-grid-border) !important}.calendar-table th{border-color:var(--color-grid-border) !important}.calendar-table td,.calendar-table th{border-width:1px}.calendar-table td .day-number{font-size:1rem;font-weight:bold;display:inline-block}.calendar-table td .day-name{font-size:.9rem;color:var(--color-muted);display:inline-block;margin-left:4px}.calendar-table tbody tr:hover td{background-color:var(--color-row-hover) !important}.calendar-table tr.table-secondary:hover td{background-color:var(--color-weekend-hover) !important}.calendar-table tr.table-secondary .day-number,.calendar-table tr.table-secondary .day-name{color:var(--color-weekend-text)}.calendar-table tr.table-secondary .sticky-left{box-shadow:inset 4px 0 0 var(--color-weekend-text)}@media(max-width: 576px){.calendar-table{min-width:600px}}.multi-day-lines-container{position:absolute;top:0;right:0;bottom:0;width:35px;pointer-events:none;z-index:5}.multi-day-lines-container.horizontal{height:35px;width:auto;left:0;bottom:0;top:auto}.multi-day-line{position:absolute;width:4px;top:0;bottom:0;right:var(--track-offset, 4px);background-color:var(--event-color, #ccc);opacity:.8;z-index:5}.multi-day-line.horizontal{height:4px;width:auto;left:var(--line-start, 0);right:0;top:auto;bottom:var(--track-offset, 4px);background-color:var(--event-color, #ccc)}.multi-day-line.horizontal.line-actual-start{left:5px;top:auto;border-top-left-radius:2px;border-bottom-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0}.multi-day-line.horizontal.line-actual-start::before{content:none}.multi-day-line.horizontal .multi-day-item-content{display:flex;align-items:center;flex-wrap:wrap;gap:0 6px;line-height:1.2;min-width:0}.multi-day-line.horizontal .appt-title{font-size:.75rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.multi-day-line.horizontal .multi-day-item-participants{display:inline-flex;align-items:center;flex-wrap:wrap;gap:0 6px;margin-left:10px;margin-top:0;font-size:.62rem;opacity:.95;white-space:normal}.multi-day-line.horizontal .multi-day-inline-dot{width:13px;height:13px;font-size:9px;flex-shrink:0}.multi-day-line.horizontal .multi-day-inline-name{white-space:nowrap;font-size:.7em;font-weight:bold}.multi-day-line.horizontal.line-actual-end{right:5px;bottom:auto;border-top-right-radius:2px;border-bottom-right-radius:2px;border-top-left-radius:0;border-bottom-left-radius:0}.multi-day-line.horizontal.line-actual-end::after{content:"";position:absolute;bottom:100%;right:0;width:4px;height:4px;background-color:inherit;border-radius:2px 2px 0 0;z-index:-1}.multi-day-line.line-actual-start{top:15px;border-top-left-radius:2px;border-top-right-radius:2px}.multi-day-line.line-actual-start::before{content:"";position:absolute;top:0;right:0;width:12px;height:4px;background-color:inherit;border-radius:2px 0 0 2px}.multi-day-line.line-actual-end{bottom:15px;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.multi-day-line.line-actual-end::after{content:"";position:absolute;bottom:0;right:0;width:12px;height:4px;background-color:inherit;border-radius:2px 0 0 2px}.appointment-cards-container.has-multi-day{margin-right:30px}.appointment-cards-container.has-multi-day.horizontal{margin-right:0;margin-bottom:30px}.multi-day-labels{display:flex;flex-direction:column;gap:2px;position:absolute;align-items:flex-end;z-index:10}.multi-day-labels.horizontal{flex-direction:column;align-items:flex-start;width:auto;gap:1px}.multi-day-labels-start{top:4px}.multi-day-labels-start.horizontal{left:4px;top:auto}.multi-day-labels-start.horizontal .multi-day-label{position:relative}.multi-day-labels-start.horizontal .multi-day-label::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);width:4px;height:4px;background-color:inherit;border-radius:0 0 2px 2px;pointer-events:none}.multi-day-labels-end{bottom:4px}.multi-day-labels-end.horizontal{right:4px;bottom:auto;align-items:flex-end}.multi-day-label{padding:0px 6px;border-radius:4px;font-size:.7rem;font-weight:600;color:var(--color-surface);background-color:var(--event-color, #ccc);z-index:10;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.2);height:16px;line-height:16px;white-space:nowrap;display:inline-flex;align-items:baseline;gap:4px}.multi-day-time{font-weight:700}.classic-month-view{display:flex;flex-direction:column;background:#fff;border:1px solid var(--color-border, #dee2e6);border-radius:8px;min-height:0}@media(max-width: 768px){.classic-month-view{zoom:var(--zoom-level, 1)}@supports not (zoom: 1){.classic-month-view{transform:scale(var(--zoom-level, 1));transform-origin:top left;width:calc(100%/var(--zoom-level, 1)) !important}}}.classic-weekdays{display:grid;grid-template-columns:28px repeat(7, minmax(0, 1fr));position:sticky;top:0;z-index:5;background:#f8f9fa;border-bottom:1px solid #dee2e6}.classic-week-number-header,.classic-week-number{display:flex;align-items:flex-start;justify-content:center;padding-top:.45rem;font-size:.7rem;color:#adb5bd;font-weight:600}.classic-weekday{text-align:center;padding:.4rem .15rem;font-size:.75rem;font-weight:600;text-transform:uppercase;color:#6c757d}.classic-week{display:grid;grid-template-columns:28px minmax(0, 1fr);flex:1 1 auto;min-height:96px;border-bottom:1px solid #e9ecef}.classic-week:last-child{border-bottom:none}.classic-week-days{display:grid;grid-template-columns:repeat(7, minmax(0, 1fr));min-height:100%}.classic-day-cell{min-height:96px;border-left:1px solid #e9ecef;padding:.2rem .15rem .35rem;cursor:pointer;display:flex;flex-direction:column;gap:.15rem;background:#fff;transition:background-color .15s ease}.classic-day-cell:first-child{border-left:none}.classic-day-cell:hover{background:#f8f9fa}.classic-day-cell.other-month{background:#fafbfc}.classic-day-cell.other-month .classic-day-number{color:#adb5bd}.classic-day-cell.other-month .classic-event-bar{opacity:.7}.classic-day-cell.is-today{background:#fffdf5}.classic-day-header{display:flex;align-items:center;justify-content:space-between;gap:.15rem;min-height:1.5rem}.classic-day-number{border:0;background:rgba(0,0,0,0);width:1.6rem;height:1.6rem;border-radius:50%;font-size:.8rem;font-weight:600;color:#212529;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0}.classic-day-number.today{background:#212529;color:#fff}.classic-day-add{opacity:0;border:0 !important;background:rgba(0,0,0,0) !important;color:#0d6efd !important;padding:0 .15rem !important;line-height:1;box-shadow:none !important}.classic-day-cell:hover .classic-day-add{opacity:1}.classic-day-events{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.classic-event-bar{display:flex;align-items:center;gap:.2rem;min-height:1.15rem;padding:.1rem .25rem;border-radius:4px;color:#fff;font-size:.68rem;font-weight:600;line-height:1.1;overflow:hidden;cursor:pointer;background-color:var(--event-color, #ccc);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.classic-event-bar.placeholder{visibility:hidden;pointer-events:none;background:rgba(0,0,0,0) !important;box-shadow:none}.classic-event-bar.multi-day.start{border-top-left-radius:10px;border-bottom-left-radius:10px;margin-left:2px}.classic-event-bar.multi-day.end{border-top-right-radius:10px;border-bottom-right-radius:10px;margin-right:2px}.classic-event-bar.multi-day.middle{border-radius:0;margin-left:-1px;margin-right:-1px}.classic-event-bar.single{border-radius:6px}.classic-event-time{flex-shrink:0;margin-right:4px}.classic-event-title{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.classic-event-participants{display:inline-flex;align-items:center;gap:1px;flex-shrink:0;margin-left:auto}.classic-participant-dot{width:12px;height:12px;font-size:8px;border:1px solid rgba(255,255,255,.55)}.classic-overflow{border:0;background:rgba(0,0,0,0);color:#0d6efd;font-size:.68rem;font-weight:600;text-align:left;padding:.1rem .2rem;line-height:1.2}.classic-day-modal-dialog{max-width:480px}.classic-day-modal-header{align-items:center}.classic-day-box-host{background:rgba(0,0,0,0) !important;zoom:1 !important;transform:none !important;width:100% !important;border-radius:14px;overflow:hidden}.classic-day-box-host .calendar-day-box:hover{transform:none}.modal:has(>.modal-dialog.modal-fullscreen){z-index:1065 !important}.modal-backdrop.show~.modal-backdrop.show{z-index:1060 !important}@media(max-width: 768px){.classic-month-view .classic-event-time,.classic-month-view .classic-event-participants{display:none}.classic-month-view .classic-event-bar,.classic-month-view .classic-overflow{pointer-events:none;cursor:inherit}}@media(min-width: 768px){.classic-week{min-height:120px}.classic-day-cell{min-height:120px;padding:.3rem .25rem .4rem}.classic-day-number{width:1.85rem;height:1.85rem;font-size:.9rem}.classic-event-bar{min-height:1.35rem;font-size:.75rem;padding:.15rem .35rem}.classic-participant-dot{width:14px;height:14px;font-size:9px}.classic-overflow{font-size:.75rem}.classic-weekday{font-size:.8rem}}.calendar-table td.calendar-cell{cursor:pointer;min-height:40px;vertical-align:top;padding:4px;position:relative}.appointment-cards-container{padding-top:var(--cell-pad-top, 0);padding-bottom:var(--cell-pad-bottom, 0);padding-left:var(--cell-pad-left, 0);padding-right:var(--cell-pad-right, 0)}.multi-day-labels-start{right:var(--label-offset, 12px)}.multi-day-labels-start.horizontal{bottom:var(--label-offset, 12px);right:auto}.multi-day-labels-end{right:var(--label-offset, 12px)}.multi-day-labels-end.horizontal{bottom:var(--label-offset, 12px);right:auto}.calendar-day-column-header{width:70px;z-index:1020}.calendar-person-column-header{z-index:1030;min-width:150px}.calendar-day-header{min-width:120px}.calendar-person-row-header{z-index:1010}.calendar-person-add-btn{padding:0 4px;font-size:.7rem}.box-view-container>.calendar-day-box{flex:1 1 300px;min-width:250px;max-width:100%;min-height:150px}.day-view-sticky-left{position:sticky;left:0;z-index:30}.day-view-sticky-top{z-index:45;flex-shrink:0;background-color:var(--color-bg, #f8f9fa)}.day-view-all-day-row{background-color:var(--color-bg);overflow:visible;flex-shrink:0;align-items:stretch;min-height:50px}.day-view-all-day-row .person-column-all-day{min-height:100%;overflow:visible}.day-view-all-day-row .appointment-block{position:relative;flex-shrink:0}.day-view-header-row{flex-shrink:0}.day-view-wrapper{display:flex;flex-direction:column}.day-view-grid-scroll{scrollbar-width:thin;flex-grow:1;overflow-y:auto}.day-timeline-spacer,.day-timeline-column{width:80px;flex-shrink:0}.day-person-column{min-width:250px;flex:1}.day-all-day-label{font-size:.75rem;color:#6c757d;font-weight:bold;background-color:#f8f9fa}.day-person-column-all-day{background-color:#f8f9fa}.day-time-slot,.day-time-slot-label{height:100px}.day-time-slot-label{font-size:.9rem;color:#6c757d}.day-appointment-all-day{min-height:30px;background-color:var(--appt-bg) !important;color:var(--appt-fg) !important;cursor:pointer;border-left:5px solid rgba(0,0,0,.15) !important;font-size:.85rem}.day-appointment-timed{top:var(--appt-top);left:var(--appt-left);width:var(--appt-width);height:var(--appt-height);background-color:var(--appt-bg) !important;color:var(--appt-fg) !important;z-index:2;cursor:pointer;border-left:8px solid rgba(0,0,0,.15) !important}.day-subtask-due{font-size:.7rem}.day-subtask-due.is-overdue{color:red !important;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff,-1px 0 0 #fff,1px 0 0 #fff,0 -1px 0 #fff,0 1px 0 #fff}.day-current-time-line{top:var(--now-top);height:3px;background-color:#0d6efd;z-index:100;pointer-events:none;opacity:.8}.day-current-time-tag{left:-75px;top:-18px;font-size:.9rem;width:65px;text-align:center;font-weight:bold;z-index:110}.day-subtask-badge{width:18px;height:18px;border:1.5px solid #fff;box-shadow:0 0 0 1px #fff;background-color:rgba(0,0,0,0)}.appointment-block:hover{z-index:100 !important;transform:scale(1.02);transition:transform .1s ease}.vacation-planner{outline:none;min-height:calc(100vh - 120px)}.vacation-bar{display:flex;flex-direction:column;gap:.4rem}.vacation-bar-main,.vacation-bar-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.vacation-person{width:auto;min-width:8rem;max-width:12rem}.vacation-year{display:inline-flex;align-items:center;gap:.25rem;font-weight:700;font-variant-numeric:tabular-nums}.vacation-claim{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.3rem .45rem;padding:.2rem .5rem;background:#f8f9fa;border-radius:.4rem}.vacation-claim label{margin:0;font-size:.7rem;color:#6c757d;text-transform:uppercase;letter-spacing:.02em}.vacation-claim .form-control{width:4rem;padding:.15rem .35rem;text-align:center}.vacation-stats{display:inline-flex;align-items:stretch;gap:.35rem}.vacation-stat{display:flex;flex-direction:column;justify-content:center;min-width:3.5rem;padding:.15rem .55rem;background:#e9ecef;border-radius:.35rem;line-height:1.15;text-align:center}.vacation-stat small{font-size:.65rem;color:#6c757d;text-transform:uppercase}.vacation-stat strong{font-size:.95rem;font-variant-numeric:tabular-nums}.vacation-stat-rest{background:#ff8c42;color:#fff}.vacation-stat-rest small{color:rgba(255,255,255,.85)}.vacation-notes{flex:1 1 10rem;min-width:8rem;max-width:22rem}.vacation-type-chips{display:inline-flex;flex-wrap:wrap;gap:.3rem}.vacation-chip{min-width:2.25rem;height:2rem;padding:0 .45rem;border:1px solid color-mix(in srgb, var(--vac-color) 55%, #adb5bd);border-radius:.35rem;background:color-mix(in srgb, var(--vac-color) 40%, white);font-weight:700;font-size:.85rem;line-height:1}.vacation-chip:disabled{opacity:.45}.vacation-chip:not(:disabled):hover{filter:brightness(0.97)}.vacation-hint{font-size:.7rem;white-space:nowrap}.vacation-grid-wrap{max-width:100%;outline:none;border-radius:.35rem}.vacation-grid-wrap:focus{box-shadow:0 0 0 2px rgba(13,110,253,.25)}.vacation-grid{border-collapse:collapse;width:max-content;min-width:100%;font-size:.75rem;user-select:none;background:#fff}.vacation-grid th,.vacation-grid td{border:1px solid #ced4da;text-align:center;vertical-align:middle;padding:0}.vacation-grid thead th{background:#f1f3f5;font-weight:600;width:2rem;min-width:1.75rem;height:1.75rem}.vacation-grid .vacation-month-col{width:3rem;min-width:3rem;font-weight:600;background:#f8f9fa;text-align:left;padding:0 .35rem;position:sticky;left:0;z-index:1}.vacation-grid .vacation-sum-col{width:2.5rem;min-width:2.5rem;background:#f8f9fa;font-weight:600}.vacation-grid .vacation-remaining{background:#ff8c42;color:#fff;font-size:1rem}.vacation-cell{position:relative;width:2rem;min-width:1.75rem;height:1.85rem;cursor:pointer;background:#fff}.vacation-cell.vacation-weekend{background:#fff8dc}.vacation-cell.vacation-holiday{background:#ffd6d6}.vacation-cell.vacation-cell-invalid{background:#e9ecef;cursor:default}.vacation-cell.vacation-has-entry{background:color-mix(in srgb, var(--entry-color, #90EE90) 45%, white)}.vacation-cell.vacation-approved{box-shadow:inset 0 0 0 1px #198754}.vacation-cell.vacation-selected{outline:2px solid #0d6efd;outline-offset:-2px;z-index:2}.vacation-cell.vacation-focused:not(.vacation-selected){outline:1px dashed #0d6efd;outline-offset:-1px;z-index:2}.vacation-cell-code{font-weight:700;font-size:.7rem;line-height:1}.vacation-check{position:absolute;top:1px;right:1px;font-size:.55rem;color:#198754}.vacation-overlay-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--overlay-color, #9370db);pointer-events:none}@media(max-width: 991.98px){.vacation-hint{display:none}.vacation-grid{font-size:.65rem}.vacation-grid thead th,.vacation-grid .vacation-cell{width:1.5rem;min-width:1.4rem;height:1.6rem}}.color-swatch{display:inline-block;width:14px;height:14px;border-radius:50%;background-color:var(--swatch-color);flex-shrink:0}.color-swatch-lg{width:24px;height:24px}.type-color-badge{background-color:var(--badge-color, #ddd);min-width:80px}.ical-url-truncate{max-width:300px}.short-code-input{width:4rem}.day-value-input{width:5rem}.backup-interval-input{width:4.5rem}.backup-time-input{width:7rem}.backup-upload-label.is-disabled{pointer-events:none;opacity:.65}.backup-upload-btn-disabled{pointer-events:none}.profile-badge-experimental{font-size:.7rem}.profile-calendar-list{max-height:200px;overflow-y:auto}.hover-bg-light:hover{background-color:var(--color-bg)}.hover-bg-danger-subtle:hover{background-color:var(--color-danger-subtle) !important}.border-dashed{border-style:dashed !important}.custom-checkbox-small{width:1.2rem;height:1.2rem;margin-top:.15rem}.filter-checkbox{width:1.5rem;height:1.5rem;cursor:pointer}