@charset "UTF-8";*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;color:#1e293b}#root{width:100%;height:100%}.tooltip{position:fixed;transform:translate(-50%,-100%);background-color:#000000d9;color:#fff;border-radius:4px;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none;z-index:1100;box-shadow:0 2px 8px #0003;font-size:14px;line-height:1.4;white-space:pre-wrap;max-width:280px;padding:8px 12px}.tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#000000d9}.tooltip__title{font-weight:600}.tooltip__description{margin-top:6px;opacity:.9;font-weight:400}.day-cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-width:28px;width:28px;max-width:28px;min-height:48px;font-size:11px;font-weight:400;color:#475569;background-color:#fff;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;cursor:crosshair;-webkit-user-select:none;user-select:none;position:relative;padding-top:2px;box-sizing:border-box;flex-shrink:0;flex-grow:0;overflow:visible;transition:background-color .1s ease}.day-cell--empty{background:linear-gradient(135deg,#f1f5f9,#eaf0f6);cursor:default}.day-cell--weekend{background-color:#f8fafc;color:#94a3b8}.day-cell--today{font-weight:700;background:linear-gradient(135deg,#dbeafe,#bdd9fd);color:#5b7ff5;box-shadow:inset 0 0 0 2px #5b7ff54d}.day-cell--today .day-cell__number{position:relative}.day-cell--selected{background:linear-gradient(135deg,#bfdbfe,#a6cdfe)!important}.day-cell__number{-webkit-user-select:none;user-select:none;line-height:1}.day-cell:not(.day-cell--empty):hover{background-color:#eff6ff}.day-cell--selected:hover{background:linear-gradient(135deg,#93c5fd,#7ab8fd)!important}.day-cell--drag-over{background:linear-gradient(135deg,#dcfce7,#c5fad7)!important}.day-cell--holiday{background:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(239,68,68,.04) 4px,rgba(239,68,68,.04) 8px),linear-gradient(135deg,snow,#fff8f8)!important}.day-cell--holiday .day-cell__number{color:#64748b}.day-cell--holiday.day-cell--holiday--today{background:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(239,68,68,.06) 4px,rgba(239,68,68,.06) 8px),linear-gradient(135deg,#dbeafe,#c7defd)!important;box-shadow:inset 0 0 0 2px #5b7ff54d}.day-cell--holiday.day-cell--holiday--today .day-cell__number{color:#5b7ff5}.event-bar{position:absolute;height:16px;border-radius:6px;display:flex;align-items:center;padding:0 8px;box-sizing:border-box;cursor:grab;z-index:10;overflow:visible;white-space:nowrap;transition:box-shadow .15s ease,opacity .15s ease;pointer-events:auto;box-shadow:0 1px 3px #0000001f,0 1px 2px #0000000f}.event-bar:hover{box-shadow:0 3px 8px #00000026,0 1px 3px #0000001a}.event-bar--dragging{opacity:.7;cursor:grabbing;box-shadow:0 6px 16px #0003}.event-bar--hidden{opacity:0;pointer-events:none}.event-bar--preview{opacity:.9;pointer-events:none;box-shadow:0 4px 12px #0003,0 2px 4px #0000001a;z-index:20}.event-bar--locked{cursor:not-allowed}.event-bar--continues-from-prev{border-top-left-radius:0;border-bottom-left-radius:0;-webkit-mask-image:linear-gradient(to right,transparent 0%,black 12px);mask-image:linear-gradient(to right,transparent 0%,black 12px)}.event-bar--continues-from-prev.event-bar--continues-from-prev--continues-to-next{-webkit-mask-image:linear-gradient(to right,transparent 0%,black 12px,black calc(100% - 12px),transparent 100%);mask-image:linear-gradient(to right,transparent 0%,black 12px,black calc(100% - 12px),transparent 100%)}.event-bar--continues-to-next{border-top-right-radius:0;border-bottom-right-radius:0;-webkit-mask-image:linear-gradient(to left,transparent 0%,black 12px);mask-image:linear-gradient(to left,transparent 0%,black 12px)}.event-bar__resize-handle{position:absolute;top:0;bottom:0;width:8px;cursor:col-resize;z-index:11}.event-bar__resize-handle--start{left:-2px}.event-bar__resize-handle--end{right:-2px}.event-bar__lock-icon{position:absolute;top:1px;right:2px;font-size:8px;opacity:.8;pointer-events:none;text-shadow:0 0 2px rgba(0,0,0,.5)}.event-bar__label{font-size:10px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;pointer-events:none;letter-spacing:.2px}.milestone{position:absolute;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;border-radius:50%;cursor:grab;z-index:10;-webkit-user-select:none;user-select:none;transition:all .15s ease;box-shadow:0 2px 4px #00000026,0 1px 2px #0000001a}.milestone:hover{transform:scale(1.25);box-shadow:0 4px 8px #0003,0 2px 4px #0000001a}.milestone--dragging{opacity:.7;filter:brightness(1.1);cursor:grabbing;box-shadow:0 6px 12px #00000040;transform:scale(1.15)}.milestone--hidden{opacity:0;pointer-events:none}.milestone--preview{opacity:.9;pointer-events:none;box-shadow:0 4px 12px #00000040;z-index:20}.milestone--locked{cursor:not-allowed}.milestone--locked:hover{transform:scale(1.1)}.milestone__lock-icon{position:absolute;top:-2px;right:-2px;font-size:6px;opacity:.9;pointer-events:none;filter:drop-shadow(0 0 1px rgba(0,0,0,.5))}.month-row{display:flex;align-items:stretch}.month-row__label{width:40px;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;background:linear-gradient(90deg,#f1f5f9,#f8fafc);border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.month-row__label--hidden{visibility:hidden}.month-row__name{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.month-row__cells{display:flex;position:relative}.date-picker{position:absolute;background:#fff;border:1px solid #cbd5e1;border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:200;top:100%;left:50%;transform:translate(-50%);padding:12px;width:240px;margin-top:4px;max-width:calc(100vw - 40px)}.date-picker__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.date-picker__nav{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .15s ease}.date-picker__nav:hover{background-color:#f8fafc}.date-picker__nav:disabled{cursor:not-allowed;opacity:.6}.date-picker__nav{font-size:20px;color:#64748b;width:28px;height:28px}.date-picker__month{font-size:14px;font-weight:600;color:#1e293b}.date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.date-picker__weekday{font-size:11px;font-weight:500;color:#94a3b8;text-align:center;padding:4px 0}.date-picker__days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-picker__day{width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:13px;border:none;background:none;border-radius:50%;cursor:pointer;transition:all .15s ease;color:#1e293b}.date-picker__day--empty{cursor:default}.date-picker__day:not(.date-picker__day--empty):not(.date-picker__day--disabled):hover{background-color:#eef3ff}.date-picker__day--today{font-weight:600;color:#5b7ff5}.date-picker__day--selected{background-color:#5b7ff5!important;color:#fff!important;font-weight:500}.date-picker__day--disabled{color:#94a3b8;cursor:not-allowed}.date-picker__day--disabled:hover{background-color:transparent}.project-dropdown{position:relative;width:100%}.project-dropdown__trigger{width:100%;padding:8px 12px;font-size:14px;border:1px solid #cbd5e1;border-radius:6px;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#fff;box-shadow:inset 0 1px 2px #0000000a}.project-dropdown__trigger:hover:not(:focus):not(:disabled){border-color:#94a3b8}.project-dropdown__trigger:focus{outline:none;border-color:#5b7ff5;box-shadow:0 0 0 3px #5b7ff533,inset 0 1px 2px #0000000a}.project-dropdown__trigger:disabled{background-color:#f1f5f9;cursor:not-allowed;opacity:.6}.project-dropdown__trigger{cursor:pointer;display:flex;align-items:center;gap:8px;text-align:left}.project-dropdown__trigger:hover{border-color:#cbd5e1}.project-dropdown__color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.project-dropdown__name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-dropdown__name--none{color:#94a3b8}.project-dropdown__arrow{font-size:10px;color:#64748b;flex-shrink:0}.project-dropdown__menu{position:absolute;background:#fff;border:1px solid #cbd5e1;border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:200;top:100%;left:0;right:0;margin-top:4px;max-height:200px;overflow-y:auto}.project-dropdown__option{width:100%;padding:8px 12px;font-size:14px;border:none;background:none;cursor:pointer;display:flex;align-items:center;text-align:left;transition:background-color .1s ease;color:#1e293b}.project-dropdown__option:hover{background-color:#f8fafc}.project-dropdown__option{gap:8px}.project-dropdown__option--selected{background-color:#eef3ff}.project-dropdown__option--selected:hover{background-color:#d5e1ff}.modal-overlay{position:fixed;inset:0;background-color:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:#fff;border-radius:8px;box-shadow:0 20px 50px #00000026,0 10px 20px #0000001a;width:100%;display:flex;flex-direction:column;animation:modal-appear .2s ease-out;overflow:visible}.modal--dialog{max-width:440px}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;border-bottom:1px solid #e2e8f0;background:linear-gradient(to bottom,#fff,#f1f5f9)}.modal__title{margin:0;font-size:18px;font-weight:700;color:#1e293b;letter-spacing:-.3px}.modal__close{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .15s ease}.modal__close:hover{background-color:#f8fafc}.modal__close:disabled{cursor:not-allowed;opacity:.6}.modal__close{font-size:28px;line-height:1;color:#a1a1aa;width:32px;height:32px}.modal__close:hover{color:#1e293b}.modal__content{padding:24px 32px;overflow:visible;flex:1}.modal__message{margin:0 0 24px;font-size:14px;color:#475569;line-height:1.5}.modal__actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px;border-top:1px solid #e2e8f0}.modal__btn{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.modal__btn:disabled{cursor:not-allowed;opacity:.6}.modal__btn{min-width:80px}.modal__btn:focus{outline:2px solid #5b7ff5;outline-offset:2px}.modal__btn--cancel{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.modal__btn--cancel:disabled{cursor:not-allowed;opacity:.6}.modal__btn--cancel{background-color:#fff;color:#475569;border:1px solid #e2e8f0}.modal__btn--cancel:hover:not(:disabled){background-color:#f8fafc;border-color:#94a3b8;color:#1e293b}.modal__btn--cancel:focus{outline-color:#a1a1aa}.modal__btn--confirm{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.modal__btn--confirm:disabled{cursor:not-allowed;opacity:.6}.modal__btn--confirm{background:linear-gradient(to bottom,#5b7ff5,#436cf4);color:#fff;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.modal__btn--confirm:hover:not(:disabled){background:linear-gradient(to bottom,#4a6ee0,#345ddc);transform:translateY(-1px);box-shadow:0 4px 8px #0000001f,0 2px 4px #00000014}.modal__btn--confirm:active:not(:disabled){transform:translateY(0)}.modal__btn--danger{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.modal__btn--danger:disabled{cursor:not-allowed;opacity:.6}.modal__btn--danger{background:linear-gradient(to bottom,#e57373,#df5151);color:#fff;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.modal__btn--danger:hover:not(:disabled){background:linear-gradient(to bottom,#d45a5a,#cc3a3a);transform:translateY(-1px);box-shadow:0 4px 8px #00000026,0 2px 4px #0000001a}.modal__btn--success{background-color:#66bb6a;color:#fff}.modal__btn--success:hover:not(:disabled){background-color:#57a05a}.modal__btn--error{background-color:#e57373;color:#fff}.modal__btn--error:hover:not(:disabled){background-color:#d45a5a}@keyframes modal-appear{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.details-sidebar{position:fixed;top:0;right:0;width:380px;height:100vh;background-color:#fff;border-left:1px solid #e2e8f0;box-shadow:-8px 0 24px #00000014;display:flex;flex-direction:column;z-index:150;transform:translate(100%);transition:transform .25s ease}.details-sidebar--open{transform:translate(0)}.details-sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid #e2e8f0;background:linear-gradient(to bottom,#fff,#f1f5f9)}.details-sidebar__title{margin:0;font-size:16px;font-weight:700;color:#1e293b;letter-spacing:-.3px}.details-sidebar__close{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .15s ease}.details-sidebar__close:hover{background-color:#f8fafc}.details-sidebar__close:disabled{cursor:not-allowed;opacity:.6}.details-sidebar__close{font-size:24px;color:#64748b;width:28px;height:28px}.details-sidebar__dates-section{padding:12px 24px;background-color:#f8fafc;border-bottom:1px solid #e2e8f0;align-items:center;justify-content:center;display:flex;flex-direction:column;gap:6px;position:relative;overflow:visible}.details-sidebar__date-range{display:flex;align-items:center;gap:8px;justify-content:center;width:100%}.details-sidebar__date-field{position:relative;display:flex;justify-content:center}.details-sidebar__date-btn{background:#fff;border:1px solid #cbd5e1;border-radius:4px;padding:8px 12px;font-size:13px;color:#1e293b;cursor:pointer;transition:all .15s ease;white-space:nowrap}.details-sidebar__date-btn:hover{border-color:#5b7ff5;background-color:#f8faff}.details-sidebar__date-btn:focus{outline:none;border-color:#5b7ff5;box-shadow:0 0 0 2px #5b7ff533}.details-sidebar__date-btn--locked{cursor:not-allowed;opacity:.6;background-color:#f8fafc;border-color:#94a3b8}.details-sidebar__date-btn--locked:hover{border-color:#94a3b8;background-color:#f8fafc}.details-sidebar__date-separator{color:#94a3b8;font-size:14px}.details-sidebar__date-with-lock{display:flex;align-items:center;gap:4px}.details-sidebar__lock-btn{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:4px;font-size:14px;padding:6px 8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;line-height:1;opacity:.7}.details-sidebar__lock-btn:hover{opacity:1;background:#dbeafe;border-color:#cbd5e1}.details-sidebar__lock-btn--locked{opacity:1;background:#fff5f5;border-color:#fdf4f4;color:#e57373}.details-sidebar__lock-btn--locked:hover{background:#fff;border-color:#f5c9c9}.details-sidebar__lock-btn--duration{font-size:14px}.details-sidebar__duration-row{display:flex;align-items:center;justify-content:center;gap:6px}.details-sidebar__duration{font-size:11px;color:#64748b}.details-sidebar__form{flex:1;display:flex;flex-direction:column;padding:24px;overflow-y:auto}.details-sidebar__field{margin-bottom:24px}.details-sidebar__label{display:block;font-size:13px;font-weight:500;color:#475569;margin-bottom:8px}.details-sidebar__input{width:100%;padding:8px 12px;font-size:14px;border:1px solid #cbd5e1;border-radius:6px;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#fff;box-shadow:inset 0 1px 2px #0000000a}.details-sidebar__input:hover:not(:focus):not(:disabled){border-color:#94a3b8}.details-sidebar__input:focus{outline:none;border-color:#5b7ff5;box-shadow:0 0 0 3px #5b7ff533,inset 0 1px 2px #0000000a}.details-sidebar__input:disabled{background-color:#f1f5f9;cursor:not-allowed;opacity:.6}.details-sidebar__textarea{width:100%;padding:8px 12px;font-size:14px;border:1px solid #cbd5e1;border-radius:6px;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#fff;box-shadow:inset 0 1px 2px #0000000a}.details-sidebar__textarea:hover:not(:focus):not(:disabled){border-color:#94a3b8}.details-sidebar__textarea:focus{outline:none;border-color:#5b7ff5;box-shadow:0 0 0 3px #5b7ff533,inset 0 1px 2px #0000000a}.details-sidebar__textarea:disabled{background-color:#f1f5f9;cursor:not-allowed;opacity:.6}.details-sidebar__textarea{resize:vertical;min-height:80px;line-height:1.5;min-height:60px;max-height:150px}.details-sidebar__select{width:100%;padding:8px 12px;font-size:14px;border:1px solid #cbd5e1;border-radius:6px;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#fff;box-shadow:inset 0 1px 2px #0000000a}.details-sidebar__select:hover:not(:focus):not(:disabled){border-color:#94a3b8}.details-sidebar__select:focus{outline:none;border-color:#5b7ff5;box-shadow:0 0 0 3px #5b7ff533,inset 0 1px 2px #0000000a}.details-sidebar__select:disabled{background-color:#f1f5f9;cursor:not-allowed;opacity:.6}.details-sidebar__select{cursor:pointer}.details-sidebar__icons{display:flex;gap:8px}.details-sidebar__icon-btn{width:40px;height:40px;border:1px solid #cbd5e1;border-radius:6px;background-color:#fff;font-size:18px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.details-sidebar__icon-btn:hover{border-color:#5b7ff5;background-color:#f8faff}.details-sidebar__icon-btn--active{border-color:#5b7ff5;background-color:#eef3ff;color:#5b7ff5}.details-sidebar__actions{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:24px;border-top:1px solid #e2e8f0}.details-sidebar__actions-right{display:flex;gap:8px;margin-left:auto}.details-sidebar__btn{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.details-sidebar__btn:disabled{cursor:not-allowed;opacity:.6}.details-sidebar__btn--delete{background-color:#fff5f5;color:#e57373}.details-sidebar__btn--delete:hover:not(:disabled){background-color:#fff}.details-sidebar__btn--cancel{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.details-sidebar__btn--cancel:disabled{cursor:not-allowed;opacity:.6}.details-sidebar__btn--cancel{background-color:#fff;color:#475569;border:1px solid #e2e8f0}.details-sidebar__btn--cancel:hover:not(:disabled){background-color:#f8fafc;border-color:#94a3b8;color:#1e293b}.details-sidebar__btn--confirm{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.details-sidebar__btn--confirm:disabled{cursor:not-allowed;opacity:.6}.details-sidebar__btn--confirm{background:linear-gradient(to bottom,#5b7ff5,#436cf4);color:#fff;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.details-sidebar__btn--confirm:hover:not(:disabled){background:linear-gradient(to bottom,#4a6ee0,#345ddc);transform:translateY(-1px);box-shadow:0 4px 8px #0000001f,0 2px 4px #00000014}.details-sidebar__btn--confirm:active:not(:disabled){transform:translateY(0)}.day-context-menu{position:fixed;background-color:#fff;border-radius:6px;box-shadow:0 4px 12px #00000026;min-width:180px;z-index:1000;overflow:hidden}.day-context-menu__header{padding:4px 12px;font-size:11px;font-weight:500;color:#64748b;background-color:#f8fafc;border-bottom:1px solid #e2e8f0}.day-context-menu__items{padding:4px 0}.day-context-menu__item{width:100%;padding:8px 12px;font-size:14px;border:none;background:none;cursor:pointer;display:flex;align-items:center;text-align:left;transition:background-color .1s ease;color:#1e293b}.day-context-menu__item:hover{background-color:#f8fafc}.day-context-menu__item{gap:4px}.day-context-menu__icon{font-size:16px;width:24px;display:inline-block;text-align:center}.header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 24px;background:linear-gradient(135deg,#f8faff,#fff 30% 70%,#f8faff);border-bottom:1px solid #c7d3f1;flex-shrink:0;box-shadow:0 2px 8px #0000000f,0 1px 3px #0000000a}.header__left{display:flex;align-items:center;gap:24px}.header__title{font-size:20px;font-weight:700;color:#1e293b;margin:0;letter-spacing:-.5px}.header__year{display:flex;align-items:center;gap:2px;background-color:#fff;border-radius:8px;padding:2px 4px;box-shadow:inset 0 1px 2px #0000000f;border:1px solid #e2e8f0}.header__year-nav{background:none;border:none;padding:4px 8px;font-size:16px;color:#94a3b8;cursor:pointer;line-height:1;transition:all .15s ease;border-radius:6px}.header__year-nav:hover{color:#5b7ff5;background-color:#eef3ff}.header__year-label{font-size:16px;font-weight:700;color:#1e293b;cursor:pointer;padding:4px 12px;border-radius:6px;transition:all .15s ease}.header__year-label:hover{background-color:#eef3ff;color:#5b7ff5}.header__projects{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;justify-content:flex-start;padding:0 16px}.header__projects--dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.header__project-wrapper{position:relative;display:flex;align-items:center;gap:4px;cursor:grab;transition:transform .15s ease-out,opacity .15s ease-out}.header__projects:not(.header__projects--dragging) .header__project-wrapper:hover .header__project-edit,.header__projects:not(.header__projects--dragging) .header__project-wrapper:hover .header__project-visibility{display:flex}.header__project-wrapper--dragging{opacity:.5;cursor:grabbing}.header__project-wrapper--shift-left{transform:translate(-24px)}.header__project-wrapper--shift-right{transform:translate(24px)}.header__project-wrapper--drop-target-left:before{content:"";position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:4px;height:28px;background:#5b7ff5;border-radius:4px;box-shadow:0 0 8px #5b7ff580}.header__project-wrapper--drop-target-right:after{content:"";position:absolute;right:-16px;top:50%;transform:translateY(-50%);width:4px;height:28px;background:#5b7ff5;border-radius:4px;box-shadow:0 0 8px #5b7ff580}.header__project-pill{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:20px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.header__project-pill:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a}.header__project-pill--hidden{color:var(--project-color);text-shadow:none;background-color:transparent!important;box-shadow:inset 0 0 0 2px var(--project-color)}.header__project-pill--hidden .header__project-dot{opacity:.5;background-color:transparent!important;border-color:var(--project-color)}.header__project-pill--hidden .header__project-dot--selected{background-color:var(--project-color)!important;opacity:1}.header__project-pill--hidden:hover{background-color:#00000008!important;transform:translateY(-1px)}.header__project-pill--selected{box-shadow:0 0 0 2px #fffffff2,0 0 0 4px var(--project-color),0 4px 12px #00000026}.header__project-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;border:2px solid transparent;box-sizing:border-box}.header .header__project-pill:not(.header__project-pill--hidden) .header__project-dot{background-color:transparent!important;border-color:#ffffffb3}.header .header__project-pill:not(.header__project-pill--hidden) .header__project-dot--selected{background-color:#ffffffe6!important;border-color:#ffffffe6}.header__project-edit,.header__project-visibility{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid #94a3b8;background:#fff;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 4px #0000001a}.header__project-edit:hover,.header__project-visibility:hover{border-color:#a1a1aa;background-color:#f8fafc}.header__project-edit,.header__project-visibility{display:none;font-size:14px;color:#64748b;position:absolute;top:50%;transform:translateY(-50%)}.header__project-edit:hover,.header__project-visibility:hover{color:#1e293b;transform:translateY(-50%) scale(1.1)}.header__project-edit{right:-8px}.header__project-visibility{left:-8px;font-size:11px}.header__add-project{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:2px dashed #e2e8f0;background:#fff;font-size:18px;color:#94a3b8;cursor:pointer;transition:all .15s ease}.header__add-project:hover{border-color:#5b7ff5;border-style:solid;color:#5b7ff5;background-color:#eef3ff;transform:scale(1.05)}.header__right{display:flex;align-items:center;gap:8px}.header__action{padding:8px 16px;border:1px solid #e2e8f0;border-radius:8px;background-color:#fff;font-size:13px;font-weight:500;color:#64748b;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0000000a}.header__action:hover{background-color:#fff;border-color:#5b7ff5;color:#5b7ff5;box-shadow:0 2px 4px #0000000f;transform:translateY(-1px)}.header__action--icon{font-size:16px;padding:8px 12px;color:#94a3b8}.header__action--icon:hover{color:#5b7ff5}.header__action--danger{background-color:#e57373;border-color:#e57373;color:#fff}.header__action--danger:hover{background-color:#d45a5a;border-color:#d45a5a;transform:translateY(-1px)}.project-form__form{min-width:350px}.project-form__field{margin-bottom:24px}.project-form__label{display:block;font-size:13px;font-weight:500;color:#475569;margin-bottom:8px}.project-form__input{width:100%;padding:8px 12px;font-size:14px;border:1px solid #cbd5e1;border-radius:6px;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#fff;box-shadow:inset 0 1px 2px #0000000a}.project-form__input:hover:not(:focus):not(:disabled){border-color:#94a3b8}.project-form__input:focus{outline:none;border-color:#5b7ff5;box-shadow:0 0 0 3px #5b7ff533,inset 0 1px 2px #0000000a}.project-form__input:disabled{background-color:#f1f5f9;cursor:not-allowed;opacity:.6}.project-form__select{width:100%;padding:8px 12px;font-size:14px;border:1px solid #cbd5e1;border-radius:6px;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#fff;box-shadow:inset 0 1px 2px #0000000a}.project-form__select:hover:not(:focus):not(:disabled){border-color:#94a3b8}.project-form__select:focus{outline:none;border-color:#5b7ff5;box-shadow:0 0 0 3px #5b7ff533,inset 0 1px 2px #0000000a}.project-form__select:disabled{background-color:#f1f5f9;cursor:not-allowed;opacity:.6}.project-form__colors{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.project-form__color{width:40px;height:40px;border:3px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s ease;padding:0}.project-form__color:hover{transform:scale(1.1)}.project-form__color--active{border-color:#1e293b;transform:scale(1.05)}.project-form__delete-section{margin-top:24px;padding:16px;background-color:#e573730d;border:1px solid rgba(229,115,115,.2);border-radius:6px}.project-form__delete-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.project-form__actions{display:flex;justify-content:space-between;gap:8px;margin-top:32px}.project-form__actions-right{display:flex;gap:8px}.project-form__delete-wrapper{display:inline-block}.project-form__delete-wrapper:has(button:disabled){cursor:help}.project-form__btn{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.project-form__btn:disabled{cursor:not-allowed;opacity:.6}.project-form__btn--cancel{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.project-form__btn--cancel:disabled{cursor:not-allowed;opacity:.6}.project-form__btn--cancel{background-color:#fff;color:#475569;border:1px solid #e2e8f0}.project-form__btn--cancel:hover:not(:disabled){background-color:#f8fafc;border-color:#94a3b8;color:#1e293b}.project-form__btn--confirm{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.project-form__btn--confirm:disabled{cursor:not-allowed;opacity:.6}.project-form__btn--confirm{background:linear-gradient(to bottom,#5b7ff5,#436cf4);color:#fff;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.project-form__btn--confirm:hover:not(:disabled){background:linear-gradient(to bottom,#4a6ee0,#345ddc);transform:translateY(-1px);box-shadow:0 4px 8px #0000001f,0 2px 4px #00000014}.project-form__btn--confirm:active:not(:disabled){transform:translateY(0)}.project-form__btn--delete{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.project-form__btn--delete:disabled{cursor:not-allowed;opacity:.6}.project-form__btn--delete{background:linear-gradient(to bottom,#e57373,#df5151);color:#fff;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.project-form__btn--delete:hover:not(:disabled){background:linear-gradient(to bottom,#d45a5a,#cc3a3a);transform:translateY(-1px);box-shadow:0 4px 8px #00000026,0 2px 4px #0000001a}.project-form__btn--delete:disabled{opacity:.5;cursor:not-allowed}.settings-modal{display:flex;flex-direction:column;gap:24px}.settings-modal__section{display:flex;flex-direction:column;gap:8px}.settings-modal__label{display:block;margin-bottom:4px;font-size:13px;font-weight:500;color:#475569}.settings-modal__select{width:100%;padding:8px 12px;font-size:14px;border:1px solid #cbd5e1;border-radius:6px;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#fff;box-shadow:inset 0 1px 2px #0000000a}.settings-modal__select:hover:not(:focus):not(:disabled){border-color:#94a3b8}.settings-modal__select:focus{outline:none;border-color:#5b7ff5;box-shadow:0 0 0 3px #5b7ff533,inset 0 1px 2px #0000000a}.settings-modal__select:disabled{background-color:#f1f5f9;cursor:not-allowed;opacity:.6}.settings-modal__select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23475569' d='M6 8L1.5 3.5h9L6 8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.settings-modal__select:focus{outline:none;border-color:#5b7ff5;box-shadow:0 0 0 3px #5b7ff533}.settings-modal__holidays-btn{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.settings-modal__holidays-btn:disabled{cursor:not-allowed;opacity:.6}.settings-modal__holidays-btn{background-color:#fff;color:#475569;border:1px solid #e2e8f0}.settings-modal__holidays-btn:hover:not(:disabled){background-color:#f8fafc;border-color:#94a3b8;color:#1e293b}.settings-modal__holidays-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px}.settings-modal__holidays-btn:before{content:"⚙";font-size:16px}.settings-modal__divider{position:relative;display:flex;align-items:center;justify-content:center;margin:12px 0}.settings-modal__divider:before{content:"";position:absolute;left:0;right:0;height:1px;background-color:#e2e8f0}.settings-modal__divider-text{position:relative;padding:0 12px;background-color:#fff;font-size:10px;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.05em}.settings-modal__data-btn{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.settings-modal__data-btn:disabled{cursor:not-allowed;opacity:.6}.settings-modal__data-btn{background-color:#fff;color:#475569;border:1px solid #e2e8f0}.settings-modal__data-btn:hover:not(:disabled){background-color:#f8fafc;border-color:#94a3b8;color:#1e293b}.settings-modal__data-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px}.settings-modal__data-btn:not(:last-child){margin-bottom:8px}.holiday-form{display:flex;flex-direction:column;gap:12px;width:100%}.holiday-form--standalone{padding:16px;background-color:#f8fafc;border:2px dashed #e2e8f0;border-radius:6px}.holiday-form__input{width:100%;padding:8px 12px;font-size:14px;border:1px solid #cbd5e1;border-radius:6px;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#fff;box-shadow:inset 0 1px 2px #0000000a}.holiday-form__input:hover:not(:focus):not(:disabled){border-color:#94a3b8}.holiday-form__input:focus{outline:none;border-color:#5b7ff5;box-shadow:0 0 0 3px #5b7ff533,inset 0 1px 2px #0000000a}.holiday-form__input:disabled{background-color:#f1f5f9;cursor:not-allowed;opacity:.6}.holiday-form__date-section{display:flex;flex-direction:column;gap:8px}.holiday-form__date-row{display:flex;gap:12px}.holiday-form__date-field{flex:1;display:flex;flex-direction:column;gap:4px;position:relative}.holiday-form__date-label{font-size:11px;font-weight:500;color:#64748b}.holiday-form__date-btn{width:100%;padding:8px 12px;font-size:13px;border:1px solid #cbd5e1;border-radius:4px;background-color:#fff;cursor:pointer;transition:all .15s ease;text-align:left;white-space:nowrap;color:#1e293b}.holiday-form__date-btn:hover{border-color:#5b7ff5;background-color:#f8faff}.holiday-form__date-btn:focus{outline:none;border-color:#5b7ff5;box-shadow:0 0 0 2px #5b7ff533}.holiday-form__checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:#64748b;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.holiday-form__checkbox input[type=checkbox]{cursor:pointer;width:16px;height:16px;margin:0}.holiday-form__checkbox:hover{color:#1e293b}.holiday-form__actions{display:flex;gap:8px;justify-content:space-between;align-items:center}.holiday-form__actions-right{display:flex;gap:8px;margin-left:auto}.holiday-form__btn{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.holiday-form__btn:disabled{cursor:not-allowed;opacity:.6}.holiday-form__btn:disabled{opacity:.5;cursor:not-allowed}.holiday-form__btn--cancel{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.holiday-form__btn--cancel:disabled{cursor:not-allowed;opacity:.6}.holiday-form__btn--cancel{background-color:#fff;color:#475569;border:1px solid #e2e8f0}.holiday-form__btn--cancel:hover:not(:disabled){background-color:#f8fafc;border-color:#94a3b8;color:#1e293b}.holiday-form__btn--save{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.holiday-form__btn--save:disabled{cursor:not-allowed;opacity:.6}.holiday-form__btn--save{background:linear-gradient(to bottom,#5b7ff5,#436cf4);color:#fff;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.holiday-form__btn--save:hover:not(:disabled){background:linear-gradient(to bottom,#4a6ee0,#345ddc);transform:translateY(-1px);box-shadow:0 4px 8px #0000001f,0 2px 4px #00000014}.holiday-form__btn--save:active:not(:disabled){transform:translateY(0)}.holiday-form__btn--delete{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.holiday-form__btn--delete:disabled{cursor:not-allowed;opacity:.6}.holiday-form__btn--delete{background:linear-gradient(to bottom,#e57373,#df5151);color:#fff;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.holiday-form__btn--delete:hover:not(:disabled){background:linear-gradient(to bottom,#d45a5a,#cc3a3a);transform:translateY(-1px);box-shadow:0 4px 8px #00000026,0 2px 4px #0000001a}.holiday-modal__list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.holiday-modal__empty{text-align:center;color:#a1a1aa;font-size:14px;padding:24px;margin:0}.holiday-modal__item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;transition:background-color .2s ease}.holiday-modal__item:hover{background-color:#e2e8f0}.holiday-modal__item-info{flex:1;display:flex;flex-direction:column;gap:4px}.holiday-modal__item-title{font-size:14px;font-weight:500;color:#1e293b}.holiday-modal__item-date{font-size:13px;color:#64748b}.holiday-modal__item-actions{display:flex;gap:8px;align-items:center}.holiday-modal__item-btn{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .15s ease}.holiday-modal__item-btn:hover{background-color:#f8fafc}.holiday-modal__item-btn:disabled{cursor:not-allowed;opacity:.6}.holiday-modal__item-btn{font-size:18px;color:#64748b;padding:4px 8px}.holiday-modal__item-btn--delete{font-size:24px}.holiday-modal__item-btn--delete:hover{background-color:#fff5f5;color:#e57373}.holiday-modal__add-btn{width:100%;padding:12px;font-size:14px;font-weight:500;color:#5b7ff5;background-color:#f8fafc;border:2px dashed #94a3b8;border-radius:6px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.holiday-modal__add-btn:hover{background-color:#eef3ff;border-color:#5b7ff5}.ical-export-modal{display:flex;flex-direction:column;gap:16px}.ical-export-modal__description{font-size:11px;color:#475569;margin-bottom:4px}.ical-export-modal__projects{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto;padding:4px;border:1px solid #e2e8f0;border-radius:4px;background-color:#f1f5f9}.ical-export-modal__project{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease}.ical-export-modal__project:hover{background-color:#f8fafc}.ical-export-modal__project--hidden{opacity:.6}.ical-export-modal__checkbox{width:18px;height:18px;cursor:pointer;accent-color:#5b7ff5}.ical-export-modal__project-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.ical-export-modal__project-dot--hidden{visibility:hidden}.ical-export-modal__project-name{font-size:11px;color:#1e293b;flex:1}.ical-export-modal__actions{display:flex;gap:8px;justify-content:center}.ical-export-modal__select-btn{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.ical-export-modal__select-btn:disabled{cursor:not-allowed;opacity:.6}.ical-export-modal__select-btn{background-color:#fff;color:#475569;border:1px solid #e2e8f0}.ical-export-modal__select-btn:hover:not(:disabled){background-color:#f8fafc;border-color:#94a3b8;color:#1e293b}.ical-export-modal__select-btn{font-size:10px;padding:4px 12px}.ical-export-modal__footer{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e2e8f0}.ical-export-modal__btn{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.ical-export-modal__btn:disabled{cursor:not-allowed;opacity:.6}.ical-export-modal__btn{padding:8px 16px;font-size:11px}.ical-export-modal__btn--cancel{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.ical-export-modal__btn--cancel:disabled{cursor:not-allowed;opacity:.6}.ical-export-modal__btn--cancel{background-color:#fff;color:#475569;border:1px solid #e2e8f0}.ical-export-modal__btn--cancel:hover:not(:disabled){background-color:#f8fafc;border-color:#94a3b8;color:#1e293b}.ical-export-modal__btn--export{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.ical-export-modal__btn--export:disabled{cursor:not-allowed;opacity:.6}.ical-export-modal__btn--export{background:linear-gradient(to bottom,#5b7ff5,#436cf4);color:#fff;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.ical-export-modal__btn--export:hover:not(:disabled){background:linear-gradient(to bottom,#4a6ee0,#345ddc);transform:translateY(-1px);box-shadow:0 4px 8px #0000001f,0 2px 4px #00000014}.ical-export-modal__btn--export:active:not(:disabled){transform:translateY(0)}.ical-export-modal__btn--export:disabled{opacity:.6;cursor:not-allowed;background-color:#f1f5f9;color:#cbd5e1}.year-progress{display:flex;align-items:center;justify-content:center;width:100%;height:100%;cursor:pointer;pointer-events:auto}.year-progress__chart{width:50%;height:auto;aspect-ratio:1;transform:rotate(-90deg);transition:transform .15s ease;overflow:visible}.year-progress:hover .year-progress__chart{transform:rotate(-90deg) scale(1.15)}.year-progress__bg{stroke:#e2e8f0;opacity:1}.year-progress__arc{stroke:#5b7ff5;opacity:.9;transition:opacity .15s ease,stroke .15s ease}.year-progress:hover .year-progress__arc{opacity:1}.year-progress--inactive{cursor:default;opacity:.4}.year-progress--inactive .year-progress__arc{stroke:#cbd5e1;opacity:.3}.year-progress--inactive .year-progress__bg{opacity:.3}.year-progress--inactive:hover .year-progress__chart{transform:rotate(-90deg)}.year-progress__tooltip{position:fixed;background-color:#000000d9;color:#fff;border-radius:4px;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px #0003;font-size:14px;line-height:1.4;white-space:pre-wrap;max-width:280px;padding:8px 12px;z-index:1100}.year-progress__tooltip:before{content:"";position:absolute;bottom:100%;left:var(--arrow-offset, 20px);transform:translate(-50%);border:6px solid transparent;border-bottom-color:#000000d9}.year-progress__tooltip-title{font-weight:600;color:#fffffff2}.year-progress__tooltip-description{margin-top:6px;opacity:.9;font-weight:400;color:#ffffffd9}.calendar{display:flex;flex-direction:column;height:100vh;background-color:#f8fafc}.calendar__main{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}.calendar__container{flex:1;overflow:auto;cursor:grab;position:relative}.calendar__container--panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.calendar__wrapper{position:relative;display:inline-block;box-sizing:border-box}.calendar__content{display:inline-block;transition:transform .1s ease;border-top:1px solid #e2e8f0;border-left:1px solid #e2e8f0;transform-origin:top left}.calendar__scroll-area{display:inline-block;min-width:100%;min-height:100%}.calendar__column-headers{display:flex;align-items:stretch}.calendar__column-headers--hidden{visibility:hidden}.calendar__month-spacer{width:40px;flex-shrink:0;background-color:#f1f5f9;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.calendar__header-cells{display:flex}.calendar__header-cell{display:flex;align-items:center;justify-content:center;width:28px;height:24px;font-size:9px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(180deg,#f1f5f9,#edf2f7);border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;flex-shrink:0;box-sizing:border-box}.calendar__header-cell--weekend{color:#cbd5e1;background:linear-gradient(180deg,#f8fafc,#f1f5f9)}.calendar__months{display:flex;flex-direction:column}.calendar__sticky-corner,.calendar__sticky-headers,.calendar__sticky-months{position:fixed;transform-origin:top left;pointer-events:none;will-change:transform}.calendar__sticky-corner{z-index:102;width:40px;height:24px;background-color:#f1f5f9;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;border-top:1px solid #e2e8f0;border-left:1px solid #e2e8f0;box-shadow:2px 2px 6px #0000001a;display:flex;align-items:center;justify-content:center;overflow:visible}.calendar__sticky-headers{z-index:101;box-shadow:0 2px 6px #0000001a;overflow:hidden}.calendar__sticky-months{z-index:100;box-shadow:2px 0 6px #0000001a;overflow:hidden}.calendar__sticky-month-label{width:40px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;background:linear-gradient(90deg,#f1f5f9,#f8fafc);border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;border-left:1px solid #e2e8f0;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;box-sizing:border-box;flex-shrink:0}.announcement-modal{display:flex;flex-direction:column;gap:24px}.announcement-modal__intro{margin:0;font-size:15px;line-height:1.6;color:#475569}.announcement-modal__warning{background-color:#fffbeb;border:1px solid #fcd34d;border-radius:6px;padding:12px 16px;font-size:14px;line-height:1.5;color:#92400e}.announcement-modal__warning strong{color:#92400e}.announcement-modal__info-header{display:flex;align-items:center;justify-content:center;padding:8px 0}.announcement-modal__version-badge{display:inline-block;padding:6px 16px;background-color:#5b7ff5;color:#fff;font-size:14px;font-weight:600;border-radius:20px}.announcement-modal__divider{height:1px;background-color:#e2e8f0;margin:4px 0}.announcement-modal__section-title{margin:0 0 12px;font-size:16px;font-weight:600;color:#1e293b}.announcement-modal__changelog{display:flex;flex-direction:column;gap:24px;max-height:400px;overflow-y:auto;padding-right:8px}.announcement-modal__changelog::-webkit-scrollbar{width:6px}.announcement-modal__changelog::-webkit-scrollbar-track{background:#f8fafc;border-radius:3px}.announcement-modal__changelog::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:3px}.announcement-modal__changelog::-webkit-scrollbar-thumb:hover{background:#a1a1aa}.announcement-modal__version{display:flex;flex-direction:column;gap:8px}.announcement-modal__version-header{display:flex;align-items:center;gap:12px}.announcement-modal__version-number{display:inline-block;padding:4px 8px;background-color:#eef3ff;color:#4a6ee0;font-size:13px;font-weight:600;border-radius:12px}.announcement-modal__version-date{font-size:13px;color:#a1a1aa}.announcement-modal__version-title{margin:0;font-size:15px;font-weight:600;color:#1e293b}.announcement-modal__highlights{margin:0;padding-left:24px;list-style:disc}.announcement-modal__highlights li{font-size:14px;line-height:1.6;color:#475569;margin-bottom:6px}.announcement-modal__highlights li:last-child{margin-bottom:0}.announcement-modal__actions{display:flex;align-items:center;justify-content:space-between;justify-content:flex-end;padding-top:8px;border-top:1px solid #e2e8f0;margin-top:4px}.announcement-modal__btn{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.announcement-modal__btn:disabled{cursor:not-allowed;opacity:.6}.announcement-modal__btn{background:linear-gradient(to bottom,#5b7ff5,#436cf4);color:#fff;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.announcement-modal__btn:hover:not(:disabled){background:linear-gradient(to bottom,#4a6ee0,#345ddc);transform:translateY(-1px);box-shadow:0 4px 8px #0000001f,0 2px 4px #00000014}.announcement-modal__btn:active:not(:disabled){transform:translateY(0)}.announcement-modal__btn{padding:8px 32px;border-radius:6px;min-width:120px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}.error-fallback{align-items:center;justify-content:center;display:flex;flex-direction:column;padding:48px 32px;text-align:center;min-height:100vh;background:#f1f5f9}.error-fallback__icon{width:64px;height:64px;border-radius:50%;background:#fff5f5;color:#e57373;font-size:32px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:32px}.error-fallback__title{margin:0 0 8px;font-size:20px;font-weight:600;color:#1e293b}.error-fallback__message{margin:0 0 32px;font-size:14px;color:#64748b}.error-fallback__details{margin-bottom:32px;text-align:left;max-width:100%}.error-fallback__details summary{cursor:pointer;color:#64748b;font-size:13px}.error-fallback__details summary:hover{color:#1e293b}.error-fallback__error,.error-fallback__stack{background:#f8fafc;padding:12px;border-radius:4px;font-size:11px;font-family:monospace;overflow-x:auto;max-width:500px;margin:8px 0 0;color:#e57373;white-space:pre-wrap;word-break:break-word}.error-fallback__stack{color:#64748b;max-height:200px;overflow-y:auto}.error-fallback__actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.error-fallback__btn{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.error-fallback__btn:disabled{cursor:not-allowed;opacity:.6}.error-fallback__btn--primary{padding:8px 16px;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;line-height:1.5;box-shadow:0 1px 2px #0000000d}.error-fallback__btn--primary:disabled{cursor:not-allowed;opacity:.6}.error-fallback__btn--primary{background:linear-gradient(to bottom,#5b7ff5,#436cf4);color:#fff;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.error-fallback__btn--primary:hover:not(:disabled){background:linear-gradient(to bottom,#4a6ee0,#345ddc);transform:translateY(-1px);box-shadow:0 4px 8px #0000001f,0 2px 4px #00000014}.error-fallback__btn--primary:active:not(:disabled){transform:translateY(0)}.error-fallback__btn--danger{background:#fff;color:#e57373;border:1px solid #e57373}.error-fallback__btn--danger:hover:not(:disabled){background:#fff5f5}.app{width:100%;height:100vh;overflow:hidden}
