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}*{box-sizing:border-box;margin:0;padding:0}body{background:#f5f6fa;color:#2d3436;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.loading{align-items:center;color:#636e72;display:flex;font-size:18px;height:100vh;justify-content:center}.app{min-height:100vh}.navbar{align-items:center;background:#1a2a4a;border-radius:0 0 16px 16px;border-top:none;box-shadow:none;color:#fff;display:flex;gap:16px;height:64px;padding:0 24px;position:sticky;top:0;z-index:100}.navbar-brand{color:#fff;font-size:20px;font-weight:700;white-space:nowrap}.navbar-menu{display:flex;flex:1 1;gap:8px}.navbar-user{align-items:center;color:#b2bec3;display:flex;font-size:16px;gap:12px}.user-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-btn{background:none;border:none;border-radius:6px;color:#b2bec3;cursor:pointer;font-size:16px;padding:8px 16px;transition:all .2s;white-space:nowrap}.nav-btn:hover{background:#ffffff1a;color:#fff}.nav-btn.active,.role-badge{background:#0984e3;color:#fff}.role-badge{border-radius:12px;font-size:13px;padding:2px 8px;text-transform:uppercase;white-space:nowrap}.logout-btn{background:#d63031;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:6px 14px;white-space:nowrap}.logout-btn:hover{background:#c0392b}.burger-btn{align-items:center;background:none;border:none;border-radius:6px;cursor:pointer;display:none;flex-direction:column;justify-content:center;margin-left:auto;padding:8px}.burger-btn:hover{background:#ffffff1a}.mobile-menu{animation:slideDown .25s ease-out;background:#1a2a4a;box-shadow:0 8px 24px #0000004d;left:0;padding:8px 0;position:fixed;right:0;top:67px;z-index:99}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.mobile-user-info{align-items:center;color:#b2bec3;display:flex;font-size:16px;gap:10px;padding:12px 20px}.mobile-user-name{color:#fff;font-weight:500}.mobile-divider{background:#d63031;height:1px;margin:4px 0}.mobile-nav-btn{background:none;border:none;color:#b2bec3;cursor:pointer;display:block;font-size:17px;padding:14px 20px;text-align:left;transition:all .2s;width:100%}.mobile-nav-btn:hover{background:#ffffff1a;color:#fff}.mobile-nav-btn.active{color:#74b9ff;font-weight:500}.mobile-nav-btn.logout{color:#ff7675}.mobile-nav-btn.logout:hover{background:#d63031;color:#fff}@media (max-width:768px){.desktop-menu{display:none!important}.burger-btn{display:flex}.navbar{padding:0 16px}.main-content{padding:16px 12px}.modal{margin:8px;max-height:95vh;padding:16px}.form-row{flex-direction:column}.table-container{padding:16px 12px}table{font-size:14px}td,th{padding:8px 10px}.assignment-item{align-items:flex-start;flex-direction:column;gap:6px}}@media (min-width:769px){.mobile-menu{display:none!important}}.main-content{animation:fadeIn .18s ease-out;padding:24px}.modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.modal{animation:slideUp .3s cubic-bezier(.4,0,.2,1);background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;padding:24px;width:100%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.modal h2{font-size:20px;margin-bottom:20px}.form-group{margin-bottom:16px}.form-group label{color:#636e72;display:block;font-size:16px;font-weight:500;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{border:1px solid #dfe6e9;border-radius:8px;font-size:16px;outline:none;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#0984e3}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1 1}.checkbox-group{align-items:center;display:flex;font-size:16px;gap:8px}.btn{border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:500;padding:10px 20px;transition:all .2s}.btn-primary{background:#1a2a4a;color:#fff}.btn-primary:hover{background:#243d6b}.btn-danger{background:#d63031;color:#fff}.btn-danger:hover{background:#c0392b}.btn-secondary{background:#dfe6e9;color:#2d3436}.btn-secondary:hover{background:#b2bec3}.btn-success{background:#00b894;color:#fff}.btn-success:hover{background:#00a381}.modal-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:20px}.tiptap-editor{border:1px solid #dfe6e9;border-radius:8px;overflow:hidden}.tiptap-toolbar{background:#f5f6fa;border-bottom:1px solid #dfe6e9;display:flex;flex-wrap:wrap;gap:4px;padding:8px}.tiptap-toolbar button{background:#fff;border:1px solid #dfe6e9;border-radius:4px;cursor:pointer;font-size:14px;padding:4px 10px}.tiptap-toolbar button.is-active{background:#0984e3;border-color:#0984e3;color:#fff}.ProseMirror{font-size:16px;line-height:1.6;min-height:120px;outline:none;padding:12px}.assignments-list{margin-top:12px}.assignment-item{align-items:center;background:#f5f6fa;border-radius:8px;display:flex;flex-wrap:wrap;font-size:16px;gap:8px;justify-content:space-between;margin-bottom:6px;padding:8px 12px}.assignment-status{border-radius:12px;font-size:13px;font-weight:500;padding:2px 8px}.status-pending{background:#ffeaa7;color:#d63031}.status-accepted{background:#d4edda;color:#00b894}.status-declined{background:#fde8e8;color:#d63031}.mandatory-badge{background:#fd79a8;border-radius:4px;color:#fff;font-size:12px;margin-left:6px;padding:2px 6px}.table-container{background:#fff;border-radius:16px;overflow-x:auto;padding:24px}.table-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}table{border-collapse:collapse;min-width:400px;width:100%}td,th{font-size:16px;padding:12px 16px;text-align:left}th{background:#f5f6fa;color:#636e72;font-weight:500}tr:not(:last-child) td{border-bottom:1px solid #f5f6fa}.error{color:#d63031;font-size:14px;margin-top:8px}.filter-pill{background:#fff;border:none;border-radius:20px;box-shadow:0 1px 3px #00000014;color:#636e72;cursor:pointer;font-size:16px;font-weight:500;padding:8px 18px;transition:all .2s}.filter-pill.active{background:#1a2a4a;box-shadow:0 2px 8px #00000026;color:#fff}.filter-pill.active span{background:#fff3;color:#fff}.filter-pill span{background:#f5f6fa;border-radius:10px;color:#636e72;font-size:13px;margin-left:8px;padding:1px 7px}.fc{font-size:13px}.fc .fc-toolbar{flex-wrap:wrap;gap:8px}.fc .fc-toolbar-title{font-size:16px}.fc .fc-button{font-size:13px;padding:4px 8px}.fc .fc-daygrid-day-number{font-size:13px;padding:2px 4px}.fc .fc-event-title{font-size:12px}@media (max-width:768px){.fc .fc-toolbar{align-items:flex-start;flex-direction:column}.fc .fc-toolbar-chunk{display:flex;gap:4px}.fc .fc-toolbar-title{font-size:16px}.fc .fc-button{font-size:12px;padding:4px 6px}.fc .fc-col-header-cell-cushion{font-size:12px;padding:2px}.fc .fc-daygrid-day-number{font-size:12px}.fc .fc-event{font-size:11px}.fc-direction-ltr .fc-daygrid-event{margin:1px 2px}}.tdm-modal{display:flex;flex-direction:column;max-height:92vh;overflow:hidden!important;padding:0!important}.tdm-header{align-items:flex-start;border-bottom:1px solid #f0f2f5;display:flex;flex-shrink:0;gap:12px;padding:14px 20px 12px}.tdm-body{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;padding:16px 20px}.tdm-footer{background:#fff;border-radius:0 0 16px 16px;border-top:1px solid #f0f2f5;box-shadow:0 -4px 16px #0000000f;display:flex;flex-direction:column;flex-shrink:0;gap:8px;padding:12px 20px}.tdm-footer-edit-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.tdm-title{color:#1a2a4a;font-size:18px;font-weight:700;line-height:1.2;margin:0}.tdm-title-input{border:1px solid #dfe6e9;border-radius:8px;font-size:18px;font-weight:600;margin-bottom:4px;outline:none;padding:8px 12px;width:100%}.tdm-title-input:focus{border-color:#0984e3}.tdm-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:2px}.tdm-meta-item{color:#2d3436;font-size:14px;font-weight:500;gap:5px}.tdm-meta-item,.tdm-tag{align-items:center;display:inline-flex}.tdm-tag{border:1px solid #0000;border-radius:20px;font-size:12px;font-weight:600;gap:4px;padding:3px 9px;white-space:nowrap}.tdm-tag-green{background:#f0faf7;border-color:#b2dfdb;color:#00b894}.tdm-tag-purple{background:#f0eeff;border-color:#d1c4e9;color:#6c5ce7}.tdm-tag-blue{background:#e8f4fd;border-color:#bbdefb;color:#0984e3}.tdm-tag-guest{background:#0000;border:1px solid #d1c4e9;color:#6c5ce7;font-size:12px;font-weight:500;padding:2px 7px}.tdm-badge-done,.tdm-tag-guest{border-radius:20px;white-space:nowrap}.tdm-badge-done{align-self:center;background:#d4f5ec;color:#00b894;font-size:13px;font-weight:600;padding:3px 10px}.tdm-close-x{align-items:center;background:none;border:none;border-radius:6px;color:#b2bec3;cursor:pointer;display:flex;flex-shrink:0;padding:4px;transition:all .15s}.tdm-close-x:hover{background:#f5f6fa;color:#636e72}.tdm-description{margin-bottom:4px}.tdm-description .ProseMirror{background:#f8f9fa;border:1px solid #0000!important;border-left:2px solid #1a2a4a!important;border-radius:6px!important;color:#2d3436;font-size:17px;line-height:1.7;min-height:0!important;min-height:auto!important;padding:10px 12px!important}.tdm-progress{background:#f0f2f5;border-radius:4px;height:4px;margin-bottom:14px;overflow:hidden}.tdm-progress-bar{border-radius:4px;height:100%;transition:width .4s ease}.tdm-person-row{align-items:center;border-bottom:1px solid #f5f6fa;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:7px 0}.tdm-person-row:last-child{border-bottom:none}.tdm-person-num{color:#b2bec3;flex-shrink:0;font-size:13px;font-weight:600;min-width:18px;text-align:right}.tdm-person-name{color:#2d3436;font-size:16px;font-weight:500}.tdm-collapse-btn{align-items:center;background:none;border:1px solid #eef0f3;border-radius:8px;color:#636e72;cursor:pointer;display:flex;font-size:14px;font-weight:500;justify-content:space-between;padding:8px 12px;transition:all .15s;width:100%}.tdm-collapse-btn:hover{background:#f8f9fa;border-color:#dfe6e9}.tdm-collapse-btn-red{border-color:#ffd0d0;color:#d63031}.tdm-collapse-btn-red:hover{background:#fff5f5}.tdm-attachment{align-items:center;background:#f8f9fa;border:1px solid #f0f2f5;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:6px;padding:8px 12px}.tdm-upload-label{align-items:center;border:2px dashed #dfe6e9;border-radius:8px;color:#636e72;cursor:pointer;display:inline-flex;font-size:14px;gap:8px;padding:8px 14px;transition:all .15s}.tdm-upload-label:hover{border-color:#0984e3;color:#0984e3}.tdm-footer-panel{background:#fafbfc;border-top:1px solid #f0f2f5;flex-shrink:0}.tdm-footer-panel-section{border-bottom:1px solid #f0f2f5;padding:12px 20px}.tdm-footer-panel-section:last-child{border-bottom:none}.tdm-removal-admin{background:#fffbeb;border-left:3px solid #f59e0b}.tdm-respond-panel{background:#f0f9ff;border-left:3px solid #1a2a4a}@media (max-width:768px){.tdm-modal{border-radius:16px;margin:4px;max-height:97vh}.tdm-header{padding:12px 14px 10px}.tdm-body{padding:12px 14px}.tdm-footer,.tdm-footer-panel-section{padding:10px 14px}.tdm-title{font-size:16px}.tdm-meta{gap:8px}.tdm-meta-item{font-size:13px}}.hscroll::-webkit-scrollbar{display:none}@keyframes attentionPulse{0%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}.attention-dot{animation:attentionPulse 2s ease-in-out infinite;background:#d63031;border-radius:50%;display:inline-block;flex-shrink:0;height:8px;vertical-align:middle;width:8px}@keyframes navMenuOpen{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes navMenuClose{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@keyframes collapseUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@keyframes fabIn{0%{opacity:0;transform:scale(.7) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes fabOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.85) translateY(6px)}}
/*# sourceMappingURL=main.3d12451b.css.map*/