body,html{overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background-color:#f5f5f5;display:flex;flex-direction:column;height:100vh;overflow:hidden}.main-content{box-sizing:border-box;flex:1 1;margin:0 auto;overflow-x:hidden;overflow-y:auto;padding:20px;width:100%}.navigation{align-items:center;background-color:#2c3e50;box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1rem 2rem;position:sticky;top:0;z-index:100}.nav-brand{color:#3498db;font-size:1.5rem;font-weight:700}.nav-menu{display:flex;gap:2rem;list-style:none;margin:0;padding:0}.nav-item{position:relative}.nav-item.active .nav-link{background-color:#3498db}.nav-item.disabled{cursor:not-allowed;opacity:.6}.nav-item.disabled .nav-link{cursor:not-allowed}.nav-link{align-items:center;border-radius:4px;box-sizing:border-box;cursor:pointer;display:flex;gap:.5rem;height:100%;padding:.5rem 1rem;transition:background-color .3s ease;width:100%}.nav-link,.nav-link:hover{color:#fff;text-decoration:none}.nav-link:hover{background-color:#34495e}.nav-link:visited{color:#fff}.nav-link.disabled{align-items:center;border-radius:4px;box-sizing:border-box;color:#fff9;cursor:not-allowed;display:flex;gap:.5rem;height:100%;padding:.5rem 1rem;text-decoration:none;transition:background-color .3s ease;width:100%}.nav-icon{font-size:1.1rem}.nav-label{font-size:.9rem;font-weight:500}.auth-required{font-size:.8rem;margin-left:.5rem}.login-btn{background:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background-color .3s}.login-btn:hover{background:#2980b9}.nav-user{align-items:center;display:flex;gap:1rem}.logout-btn{background:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background-color .3s}.logout-btn:hover{background:#c0392b}.card{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:1rem;padding:1.5rem}.card-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem}.card-title{color:#2c3e50;font-size:1.2rem;font-weight:700;margin:0}.btn{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .3s}.btn-primary{background-color:#3498db;color:#fff}.btn-primary:hover{background-color:#2980b9}.btn-success{background-color:#2ecc71;color:#fff}.btn-success:hover{background-color:#27ae60}.btn-warning{background-color:#f39c12;color:#fff}.btn-warning:hover{background-color:#e67e22}.btn-danger{background-color:#e74c3c;color:#fff}.btn-danger:hover{background-color:#c0392b}.form-group{margin-bottom:1rem}.form-label{color:#2c3e50;display:block;font-weight:500;margin-bottom:.5rem}.form-input{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.5rem;transition:border-color .3s;width:100%}.form-input:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.grid{grid-gap:1rem;display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width:768px){.main-content{padding:10px}.navigation{padding:1rem}.nav-menu{gap:1rem}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.loading-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;height:100vh;justify-content:center;overflow:hidden}.loading-spinner{animation:pulse 1.5s ease-in-out infinite;background:#fff;border-radius:12px;box-shadow:0 10px 30px #0003;color:#2c3e50;font-size:1.2rem;padding:2rem 3rem}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.notification{animation:slideInRight .3s ease-out;border-radius:8px;box-shadow:0 4px 12px #00000026;cursor:pointer;margin-bottom:8px;max-width:400px;min-width:300px;padding:12px 16px;position:relative;transition:all .3s ease}.notification:hover{box-shadow:0 6px 16px #0003;transform:translateX(-4px)}.notification__content{align-items:center;display:flex;gap:12px}.notification__icon{flex-shrink:0;font-size:16px;font-weight:700}.notification__message{flex:1 1;font-size:14px;line-height:1.4}.notification__count{font-size:12px;font-weight:700;opacity:.8}.notification__close{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:18px;height:20px;justify-content:center;padding:0;transition:background-color .2s ease;width:20px}.notification__close:hover{background-color:#fff3}.notification--success{background-color:#10b981;color:#fff}.notification--error{background-color:#ef4444;color:#fff}.notification--warning{background-color:#f59e0b;color:#fff}.notification--info{background-color:#3b82f6;color:#fff}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}.notification--exiting{animation:slideOutRight .3s ease-in forwards}.notification-container{display:flex;flex-direction:column;gap:8px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:9999}.notification-container .notification{pointer-events:auto}@media (max-width:768px){.notification-container{left:10px;max-width:none;right:10px;top:10px}.notification-container .notification{max-width:none;min-width:auto}}.confirm-dialog-overlay{align-items:center;animation:fadeIn .2s ease-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.confirm-dialog{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;max-width:400px;width:90%}.confirm-dialog__content{padding:24px}.confirm-dialog__message{color:#374151;font-size:16px;line-height:1.5;margin:0 0 20px;text-align:center}.confirm-dialog__buttons{display:flex;gap:12px;justify-content:flex-end}.confirm-dialog__button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;min-width:80px;padding:10px 20px;transition:all .2s ease}.confirm-dialog__button--cancel{background-color:#f3f4f6;color:#374151}.confirm-dialog__button--cancel:hover{background-color:#e5e7eb}.confirm-dialog__button--confirm{background-color:#3b82f6;color:#fff}.confirm-dialog__button--confirm:hover{background-color:#2563eb}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.confirm-dialog{max-width:none;width:95%}.confirm-dialog__content{padding:20px}.confirm-dialog__buttons{flex-direction:column}.confirm-dialog__button{width:100%}}.datetime-picker{display:inline-block;max-width:280px;position:relative;width:100%}.datetime-picker-trigger{align-items:center;background:#fff;border:1px solid #e1e5e9;border-radius:6px;color:#37352f;cursor:pointer;display:flex;font-size:14px;justify-content:space-between;min-height:36px;padding:8px 12px;transition:all .15s ease}.datetime-picker-trigger:hover{background:#f7f6f3;border-color:#d3d1cb}.datetime-picker-trigger:focus{border-color:#2383e2;box-shadow:0 0 0 1px #2383e2;outline:none}.datetime-value{flex:1 1;font-weight:400;text-align:left}.datetime-picker-icon{fill:currentColor;margin-left:8px;opacity:.6;transition:opacity .15s ease}.datetime-picker-trigger:hover .datetime-picker-icon{opacity:.8}.datetime-picker-popup{animation:slideDown .15s ease-out;background:#fff;border:1px solid #e1e5e9;border-radius:8px;box-shadow:0 8px 24px #0000001f;left:0;margin-top:4px;min-width:350px;position:absolute;right:0;top:100%;z-index:1000}.datetime-picker-header{border-bottom:1px solid #f1f1ef;padding:16px 16px 12px}.datetime-picker-header h3{color:#37352f;font-size:14px;font-weight:600;margin:0}.datetime-picker-content{padding:16px}.time-section{margin-bottom:16px}.time-input-container{display:flex;flex-direction:column;gap:8px;width:100%}.time-text-input{background:#fff;border:1px solid #e1e5e9;border-radius:6px;box-sizing:border-box;color:#37352f;font-size:16px;font-weight:500;letter-spacing:.5px;outline:none;padding:12px 16px;text-align:center;transition:all .15s ease;width:100%}.time-text-input:hover{background-color:#fbfbfa;border-color:#d3d1cb}.time-text-input:focus{background-color:#fff;border-color:#2383e2;box-shadow:0 0 0 1px #2383e2}.time-text-input::placeholder{color:#9b9a97;font-size:14px;font-weight:400}.time-input-hint{color:#787774;font-size:11px;line-height:1.3;opacity:.8;text-align:center}.datetime-picker-footer{border-top:1px solid #f1f1ef;display:flex;justify-content:flex-end;padding:12px 16px}.confirm-btn{background:#2383e2;border:1px solid #2383e2;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;outline:none;padding:8px 20px;transition:all .15s ease}.confirm-btn:hover{background:#1a73cf;border-color:#1a73cf}.confirm-btn:active{transform:translateY(1px)}@media (max-width:480px){.datetime-picker-popup{left:50%;min-width:320px;right:auto;transform:translateX(-50%)}.calendar-header{margin-bottom:12px}.month-year{font-size:14px;min-width:100px}.nav-btn{height:28px;width:28px}.calendar-day{font-size:13px;height:32px;width:32px}.time-text-input{font-size:14px;padding:10px 12px}.time-text-input::placeholder{font-size:12px}.time-input-hint{font-size:10px}}@media (max-width:360px){.datetime-picker-popup{min-width:280px}.calendar-day{font-size:12px;height:28px;width:28px}.weekday{font-size:11px;padding:6px 2px}.time-text-input{font-size:13px;padding:8px 10px}.time-text-input::placeholder{font-size:11px}.time-input-hint{font-size:9px}}@media (prefers-color-scheme:dark){.datetime-picker-trigger{background:#2f3437;border-color:#454b4e;color:#e9e9e7}.datetime-picker-trigger:hover{background:#37393c;border-color:#5a6063}.datetime-picker-popup{background:#2f3437;border-color:#454b4e;box-shadow:0 8px 24px #0000004d}.datetime-picker-header{border-bottom-color:#454b4e}.datetime-picker-header h3{color:#e9e9e7}.section-label{color:#9b9a97}.nav-btn{background:#37393c;border-color:#454b4e}.nav-btn:hover{background:#3f4144;border-color:#5a6063}.nav-btn svg{fill:#e9e9e7}.month-year{color:#e9e9e7}.weekday{color:#9b9a97}.calendar-day{color:#e9e9e7}.calendar-day:hover{background:#37393c}.calendar-day.other-month{color:#6b6f72}.calendar-day.other-month:hover{background:#37393c}.calendar-day.today{background:#1a3a52;color:#4a9eff}.calendar-day.today:hover{background:#1e3f5a}.time-text-input{background:#2f3437;border-color:#454b4e;color:#e9e9e7}.time-text-input:hover{background-color:#37393c;border-color:#5a6063}.time-text-input:focus{background-color:#2f3437}.time-text-input::placeholder{color:#6b6f72}.time-input-hint{color:#9b9a97}.datetime-picker-footer{border-top-color:#454b4e}}.date-range-picker{display:inline-block;max-width:400px;position:relative;width:100%}.date-range-picker-trigger{align-items:center;background:#fff;border:1px solid #e1e5e9;border-radius:6px;color:#37352f;cursor:pointer;display:flex;font-size:14px;justify-content:space-between;min-height:36px;padding:8px 12px;transition:all .15s ease}.date-range-picker-trigger:hover{background:#f7f6f3;border-color:#d3d1cb}.date-range-picker-trigger:focus{border-color:#2383e2;box-shadow:0 0 0 1px #2383e2;outline:none}.date-range-value{flex:1 1;font-weight:400;text-align:left}.date-range-picker-icon{fill:currentColor;margin-left:8px;opacity:.6;transition:opacity .15s ease}.date-range-picker-trigger:hover .date-range-picker-icon{opacity:.8}.date-range-picker-popup{animation:slideDown .15s ease-out;background:#fff;border:1px solid #e1e5e9;border-radius:8px;box-shadow:0 8px 24px #0000001f;left:0;margin-top:4px;min-width:380px;position:absolute;right:0;top:100%;z-index:1000}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.date-range-picker-header{align-items:center;border-bottom:1px solid #f1f1ef;display:flex;justify-content:space-between;padding:16px 16px 12px}.date-range-picker-header h3{color:#37352f;font-size:14px;font-weight:600;margin:0}.mode-toggle{display:flex;gap:4px}.mode-btn{background:#fff;border:1px solid #e1e5e9;border-radius:4px;color:#37352f;cursor:pointer;font-size:12px;font-weight:500;padding:6px 12px;transition:all .15s ease}.mode-btn:hover{background:#f7f6f3;border-color:#d3d1cb}.mode-btn.active{background:#2383e2;border-color:#2383e2;color:#fff}.mode-btn.show-all-btn{background:#28a745;border-color:#28a745;color:#fff}.mode-btn.show-all-btn:hover{background:#218838;border-color:#1e7e34}.date-range-picker-content{padding:16px}.section-label{color:#787774;display:block;font-size:12px;font-weight:500;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.quick-select-section{margin-bottom:24px}.quick-select-buttons{display:flex;gap:8px}.quick-select-btn{background:#fff;border:1px solid #e1e5e9;border-radius:6px;color:#37352f;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .15s ease}.quick-select-btn:hover{background:#f7f6f3;border-color:#d3d1cb}.quick-select-btn:active{background:#e5e4e1;transform:scale(.98)}.calendar-section{margin-bottom:24px}.calendar-header{justify-content:space-between;margin-bottom:16px;padding:0 4px}.calendar-header,.nav-btn{align-items:center;display:flex}.nav-btn{background:#f7f6f3;border:1px solid #e1e5e9;border-radius:6px;cursor:pointer;height:32px;justify-content:center;outline:none;transition:all .15s ease;width:32px}.nav-btn:hover{background:#efefef;border-color:#d3d1cb}.nav-btn:active{background:#e5e4e1;transform:scale(.95)}.nav-btn svg{fill:#37352f;opacity:.7}.nav-btn:hover svg{opacity:1}.month-year{color:#37352f;font-size:15px;font-weight:600;min-width:120px;text-align:center}.weekdays{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.weekday{color:#787774;font-size:12px;font-weight:500;letter-spacing:.5px;padding:8px 4px;text-align:center;text-transform:uppercase}.calendar-grid{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr)}.calendar-day{align-items:center;background:#0000;border:none;border-radius:6px;color:#37352f;cursor:pointer;display:flex;font-size:14px;font-weight:400;height:36px;justify-content:center;outline:none;position:relative;transition:all .15s ease;width:36px}.calendar-day:hover{background:#f7f6f3}.calendar-day.current-month{color:#37352f}.calendar-day.other-month{color:#b8b6b0;opacity:.6}.calendar-day.other-month:hover{background:#f7f6f3;opacity:.8}.calendar-day.today{background:#e8f4fd;color:#2383e2;font-weight:600}.calendar-day.today:hover{background:#d9edfc}.calendar-day.selected{background:#2383e2;color:#fff;font-weight:600}.calendar-day.selected:hover{background:#1a73cf}.calendar-day.today.selected{background:#2383e2;color:#fff}.calendar-day.in-range{background:#e8f4fd;color:#2383e2}.calendar-day.in-range:hover{background:#d9edfc}.calendar-day.range-start{background:#2383e2;border-radius:6px 2px 2px 6px;color:#fff;font-weight:600}.calendar-day.range-end{background:#2383e2;border-radius:2px 6px 6px 2px;color:#fff;font-weight:600}.calendar-day.range-start.range-end{border-radius:6px}.calendar-day:active{transform:scale(.95)}.selection-status{background:#f7f6f3;border:1px solid #e1e5e9;border-radius:6px;margin-bottom:16px;padding:12px}.status-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.status-item:last-of-type{margin-bottom:0}.status-label{color:#787774;font-size:12px;font-weight:500}.status-value{color:#37352f;font-size:13px;font-weight:600}.status-hint{border-top:1px solid #e1e5e9;color:#9b9a97;font-size:11px;margin-top:8px;padding-top:8px;text-align:center}.date-range-picker-footer{border-top:1px solid #f1f1ef;display:flex;gap:8px;justify-content:flex-end;padding:12px 16px}.cancel-btn{background:#fff;border:1px solid #e1e5e9;border-radius:4px;color:#37352f;cursor:pointer;font-size:13px;font-weight:500;outline:none;padding:8px 16px;transition:all .15s ease}.cancel-btn:hover{background:#f7f6f3;border-color:#d3d1cb}.apply-btn{background:#2383e2;border:1px solid #2383e2;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;outline:none;padding:8px 20px;transition:all .15s ease}.apply-btn:hover{background:#1a73cf;border-color:#1a73cf}.apply-btn:active{transform:translateY(1px)}@media (max-width:480px){.date-range-picker-popup{left:50%;min-width:320px;right:auto;transform:translateX(-50%)}.date-range-picker-header{align-items:flex-start;flex-direction:column;gap:12px}.calendar-header{margin-bottom:12px}.month-year{font-size:14px;min-width:100px}.nav-btn{height:28px;width:28px}.calendar-day{font-size:13px;height:32px;width:32px}.quick-select-buttons{flex-direction:column;gap:4px}.quick-select-btn{text-align:center;width:100%}}@media (max-width:360px){.date-range-picker-popup{min-width:280px}.calendar-day{font-size:12px;height:28px;width:28px}.weekday{font-size:11px;padding:6px 2px}}@media (prefers-color-scheme:dark){.date-range-picker-trigger{background:#2f3437;border-color:#454b4e;color:#e9e9e7}.date-range-picker-trigger:hover{background:#37393c;border-color:#5a6063}.date-range-picker-popup{background:#2f3437;border-color:#454b4e;box-shadow:0 8px 24px #0000004d}.date-range-picker-header{border-bottom-color:#454b4e}.date-range-picker-header h3,.mode-btn{color:#e9e9e7}.mode-btn{background:#37393c;border-color:#454b4e}.mode-btn:hover{background:#3f4144;border-color:#5a6063}.section-label{color:#9b9a97}.quick-select-btn{background:#37393c;border-color:#454b4e;color:#e9e9e7}.quick-select-btn:hover{background:#3f4144;border-color:#5a6063}.nav-btn{background:#37393c;border-color:#454b4e}.nav-btn:hover{background:#3f4144;border-color:#5a6063}.nav-btn svg{fill:#e9e9e7}.month-year{color:#e9e9e7}.weekday{color:#9b9a97}.calendar-day{color:#e9e9e7}.calendar-day:hover{background:#37393c}.calendar-day.other-month{color:#6b6f72}.calendar-day.other-month:hover{background:#37393c}.calendar-day.today{background:#1a3a52;color:#4a9eff}.calendar-day.today:hover{background:#1e3f5a}.calendar-day.in-range{background:#1a3a52;color:#4a9eff}.calendar-day.in-range:hover{background:#1e3f5a}.selection-status{background:#37393c;border-color:#454b4e}.status-label{color:#9b9a97}.status-value{color:#e9e9e7}.status-hint{color:#6b6f72}.date-range-picker-footer,.status-hint{border-top-color:#454b4e}.cancel-btn{background:#37393c;border-color:#454b4e;color:#e9e9e7}.cancel-btn:hover{background:#3f4144;border-color:#5a6063}}
/*# sourceMappingURL=main.b1c9adea.css.map*/