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}:root{--primary:#23408f;--primary-light:#4a6bb3;--primary-dark:#1a2f6b;--secondary:#5b7fd8;--background:#f6faff;--surface:#e8f2ff;--white:#fff;--black:#1a1a1a;--grey:#6b7280;--grey-light:#f3f4f6;--success:#10b981;--warning:#f59e0b;--error:#f44336;--info:#3b82f6}*{box-sizing:border-box;margin:0;padding:0}body{background:#f6faff;background:var(--background);color:#1a1a1a;color:var(--black);font-family:Inter,sans-serif}.stat-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:24px}.stat-card{background:var(--white);border:1px solid var(--grey-light);border-radius:10px;cursor:default;padding:20px 24px;transition:box-shadow .2s}.stat-card.clickable{cursor:pointer}.stat-card.clickable:hover{box-shadow:0 4px 16px #23408f1f}.stat-card .stat-label{color:var(--grey);font-size:11px;font-weight:600;letter-spacing:.06em;margin-bottom:6px;text-transform:uppercase}.stat-card .stat-value{color:var(--primary);font-size:36px;font-weight:800;line-height:1}.stat-card .stat-value.warn{color:var(--warning)}.stat-card .stat-value.alert{color:var(--error)}.stat-card .stat-sub{color:var(--grey);font-size:12px;margin-top:4px}.dash-table{border-collapse:collapse;width:100%}.dash-table thead{background:var(--primary);color:var(--white)}.dash-table thead th{font-size:11px;font-weight:600;letter-spacing:.05em;padding:11px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.dash-table tbody tr{border-bottom:1px solid var(--grey-light);cursor:pointer;height:52px;transition:background .15s}.dash-table tbody tr:hover{background:#23408f12}.dash-table tbody tr:nth-child(2n){background:var(--background)}.dash-table tbody tr:nth-child(2n):hover{background:#23408f12}.dash-table tbody td{color:var(--black);font-size:14px;padding:8px 14px}.milestone-steps{align-items:center;display:flex;font-size:10px;font-weight:700;gap:2px}.m-step{background:var(--grey-light);border-radius:4px;color:var(--grey);padding:2px 6px;white-space:nowrap}.m-step.done{background:var(--success);color:var(--white)}.m-step.current{background:var(--primary);color:var(--white)}.m-step-sep{color:var(--grey-light);font-size:10px}.badge-no_proposal{background:var(--grey-light);border:1px solid var(--grey);color:var(--grey)}.report-pill{align-items:center;border-radius:99px;display:inline-flex;font-size:11px;font-weight:700;gap:4px;padding:2px 9px;text-transform:uppercase}.report-pill.on-time{background:#d1fae5;color:var(--success)}.report-pill.late{background:#fee2e2;color:var(--error)}.report-pill.reviewed{background:var(--surface);color:var(--primary)}.report-pill.none{background:var(--grey-light);color:var(--grey);font-style:italic;text-transform:none}.notif-list{list-style:none;margin:0;padding:0}.notif-item{align-items:flex-start;background:var(--white);border-bottom:1px solid var(--grey-light);cursor:pointer;display:flex;gap:14px;padding:14px 16px;transition:background .15s}.notif-item:hover{background:#23408f0d}.notif-item.unread{background:var(--surface);border-left:3px solid var(--primary)}.notif-item.unread:hover{background:#23408f1a}.notif-dot{background:var(--primary);border-radius:50%;flex-shrink:0;height:8px;margin-top:6px;width:8px}.notif-dot.read{background:#0000}.notif-body{flex:1 1;min-width:0}.notif-title{color:var(--black);font-size:14px;font-weight:700;margin-bottom:2px}.notif-text{color:var(--grey);font-size:13px;white-space:pre-wrap;word-break:break-word}.notif-meta{color:var(--grey);font-size:11px;margin-top:4px}.notif-dropdown-item{border-bottom:1px solid var(--grey-light);cursor:pointer;padding:10px 14px;transition:background .15s}.notif-dropdown-item:hover{background:var(--background)}.notif-dropdown-item.unread{background:var(--surface)}.stub-page{align-items:center;color:var(--grey);display:flex;flex-direction:column;gap:12px;height:300px;justify-content:center}.stub-page .stub-icon{color:var(--grey-light);font-size:48px}.stub-page h3{color:var(--black);font-size:18px;font-weight:700;margin:0}.stub-page p{font-size:14px;margin:0}@media (max-width:768px){.stat-cards{grid-template-columns:1fr}}.pagination-bar{align-items:center;border-top:1px solid var(--grey-light);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:14px 16px}.pagination-info{align-items:center;color:var(--grey);display:flex;font-size:14px}.page-size-selector select{background:var(--white);border:1px solid var(--grey-light);border-radius:4px;color:var(--black);font-size:13px;outline:none;padding:3px 8px}.pagination-controls{align-items:center;display:flex;gap:4px}.page-btn{background:var(--white);border:1px solid var(--grey-light);border-radius:6px;color:var(--black);cursor:pointer;font-size:14px;height:34px;min-width:34px;padding:0 10px;transition:background .2s}.page-btn.active{background:var(--primary);border-color:var(--primary);color:var(--white);font-weight:700}.page-btn:hover:not(.active):not(:disabled){background:var(--grey-light)}.page-btn:disabled{cursor:not-allowed;opacity:.4}.page-dots{color:var(--grey);font-size:14px;padding:0 4px;-webkit-user-select:none;user-select:none}.export-btns{display:flex;gap:8px}.btn-excel{background:var(--success);border:none;border-radius:6px;color:var(--white);transition:opacity .2s}.btn-excel,.btn-print{align-items:center;cursor:pointer;display:inline-flex;font-size:13px;font-weight:700;gap:6px;padding:7px 16px}.btn-print{background:var(--white);border:1px solid var(--grey-light);border-radius:6px;color:var(--grey);transition:background .2s}.btn-excel:hover{opacity:.88}.btn-print:hover{background:var(--grey-light)}.action-btns{gap:4px;justify-content:flex-end}.action-btn,.action-btns{align-items:center;display:flex}.action-btn{background:none;border:none;border-radius:6px;cursor:pointer;font-size:16px;height:32px;justify-content:center;transition:background .2s;width:32px}.action-btn.edit{color:var(--primary)}.action-btn.view{color:var(--grey)}.action-btn.change{color:var(--info)}.action-btn.delete{color:var(--error)}.action-btn.edit:hover{background:var(--surface)}.action-btn.view:hover{background:var(--grey-light)}.action-btn.change:hover{background:var(--surface)}.action-btn.delete:hover{background:#fee2e2}.page-header{gap:12px}.header-actions,.page-header{flex-wrap:wrap}.btn-add,.btn-assign,.btn-auto-assign,.btn-secondary{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:14px;font-weight:700;gap:6px;padding:10px 18px;transition:opacity .2s,background .2s}.btn-auto-assign{background:var(--info);color:var(--white)}.btn-secondary{background:var(--grey-light);color:var(--black)}.btn-add:hover,.btn-assign:hover,.btn-auto-assign:hover{opacity:.88}.btn-secondary:hover{background:var(--surface)}.btn-add:disabled,.btn-assign:disabled,.btn-auto-assign:disabled{cursor:not-allowed;opacity:.5}.supervisor-table{border-collapse:collapse;width:100%}.supervisor-table thead{background:var(--primary);color:var(--white)}.supervisor-table thead th{font-size:11px;font-weight:600;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}.supervisor-table tbody tr{border-bottom:1px solid var(--grey-light);cursor:pointer;height:48px;transition:background .2s}.supervisor-table tbody tr:hover{background:#23408f12}.supervisor-table tbody tr:nth-child(2n){background:var(--background)}.supervisor-table tbody tr:nth-child(2n):hover{background:#23408f12}.supervisor-table tbody td{color:var(--black);font-size:14px;padding:8px 16px}.student-count-badge{align-items:center;background:var(--surface);border-radius:99px;color:var(--primary);display:inline-flex;font-size:13px;font-weight:700;gap:4px;padding:3px 10px}.empty-state,.loading-state{color:var(--grey);font-size:14px;padding:40px;text-align:center}.back-link{align-items:center;color:var(--primary);cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:6px;margin-bottom:16px}.back-link:hover{text-decoration:underline}.form-card{background:var(--white);border:1px solid var(--grey-light);border-radius:8px;max-width:520px;padding:32px}.form-actions{display:flex;gap:10px;margin-top:8px}.assign-modal-section{margin-bottom:18px}.assign-modal-section label{color:var(--black);display:block;font-size:13px;font-weight:600;margin-bottom:6px}.assign-modal-divider{align-items:center;color:var(--grey);display:flex;font-size:12px;gap:10px;letter-spacing:.05em;margin:20px 0;text-transform:uppercase}.assign-modal-divider:after,.assign-modal-divider:before{background:var(--grey-light);content:"";flex:1 1;height:1px}@media (max-width:768px){.summary-cards{grid-template-columns:repeat(2,1fr)}.filter-bar,.page-header{flex-direction:column}.page-header{align-items:flex-start}}.page-header{justify-content:space-between;margin-bottom:20px}.page-header,.page-header h2{align-items:center;display:flex}.page-header h2{color:var(--black);font-size:28px;font-weight:700;gap:10px;margin:0}.page-header .icon-box{align-items:center;background:var(--primary);border-radius:8px;color:var(--white);display:flex;font-size:22px;padding:8px}.header-actions{display:flex;gap:10px}.btn-add{background:var(--primary)}.btn-add,.btn-assign{align-items:center;border:none;border-radius:8px;color:var(--white);cursor:pointer;display:flex;font-size:14px;font-weight:700;gap:6px;padding:10px 18px;transition:opacity .2s}.btn-assign{background:var(--success)}.btn-add:hover,.btn-assign:hover{opacity:.88}.summary-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:16px}.summary-card{background:var(--white);border:1px solid var(--grey-light);border-radius:8px;padding:16px}.summary-card .card-label{color:var(--grey);font-size:11px;font-weight:600;letter-spacing:.05em;margin-bottom:4px;text-transform:uppercase}.summary-card .card-value{font-size:30px;font-weight:700;line-height:1.2}.summary-card .bar{background:var(--grey-light);border-radius:99px;height:4px;margin-top:8px;overflow:hidden}.summary-card .bar-fill{border-radius:99px;height:100%}.filter-bar{align-items:flex-end;background:var(--grey-light);border:1px solid var(--grey-light);border-radius:8px;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:16px}.filter-group label{color:var(--grey);display:block;font-size:11px;font-weight:600;letter-spacing:.05em;margin-bottom:6px;text-transform:uppercase}.filter-group input,.filter-group select{background:var(--white);border:1px solid var(--grey-light);border-radius:4px;color:var(--black);font-size:14px;outline:none;padding:7px 10px;transition:border .2s}.filter-group input:focus,.filter-group select:focus{border-color:var(--primary)}.filter-group.search{flex:1 1;min-width:200px}.filter-group.search input{width:100%}.btn-clear{background:var(--white);border:1px solid var(--grey-light);border-radius:4px;color:var(--grey);cursor:pointer;font-size:13px;font-weight:600;padding:7px 14px;transition:background .2s}.btn-clear:hover{background:var(--surface)}.table-container{background:var(--white);border:1px solid var(--grey-light);border-radius:8px;overflow:hidden}.student-table{border-collapse:collapse;width:100%}.student-table thead{background:var(--primary);color:var(--white)}.student-table thead th{font-size:11px;font-weight:600;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}.student-table tbody tr{border-bottom:1px solid var(--grey-light);height:48px;transition:background .2s}.student-table tbody tr:hover{background:#23408f0d}.student-table tbody tr:nth-child(2n){background:var(--background)}.student-table tbody tr:nth-child(2n):hover{background:#23408f0d}.student-table tbody td{color:var(--black);font-size:14px;padding:8px 16px}.badge{border-radius:99px;display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;text-transform:uppercase}.badge-approved{background:#d1fae5;border:1px solid var(--success);color:var(--success)}.badge-pending{background:#fef3c7;border:1px solid var(--warning);color:var(--warning)}.badge-rejected{background:#fee2e2;border:1px solid var(--error);color:var(--error)}.empty-state,.loading-state{color:var(--grey);font-size:14px;padding:40px;text-align:center}@media (max-width:768px){.summary-cards{grid-template-columns:repeat(2,1fr)}.filter-bar,.page-header{flex-direction:column}.page-header{align-items:flex-start;gap:12px}}.cycle-table{border-collapse:collapse;width:100%}.cycle-table thead{background:var(--primary);color:var(--white)}.cycle-table thead th{font-size:11px;font-weight:600;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}.cycle-table tbody tr{border-bottom:1px solid var(--grey-light);height:48px;transition:background .2s}.cycle-table tbody tr:hover{background:#23408f12}.cycle-table tbody tr:nth-child(2n){background:var(--background)}.cycle-table tbody tr:nth-child(2n):hover{background:#23408f12}.cycle-table tbody td{color:var(--black);font-size:14px;padding:8px 16px}.badge-active{background:#d1fae5;border:1px solid var(--success);color:var(--success)}.badge-closed{background:var(--grey-light);border:1px solid var(--grey);color:var(--grey)}.level-pill{background:var(--surface);border-radius:99px;color:var(--primary);display:inline-block;font-size:11px;font-weight:700;padding:2px 10px;text-transform:capitalize}.approval-table{border-collapse:collapse;width:100%}.approval-table thead{background:var(--primary);color:var(--white)}.approval-table thead th{font-size:11px;font-weight:600;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}.approval-table tbody tr{border-bottom:1px solid var(--grey-light);height:48px;transition:background .2s}.approval-table tbody tr:hover{background:#23408f12}.approval-table tbody tr:nth-child(2n){background:var(--background)}.approval-table tbody tr:nth-child(2n):hover{background:#23408f12}.approval-table tbody td{color:var(--black);font-size:14px;padding:8px 16px}.btn-approve{background:var(--success)}.btn-approve,.btn-reject{align-items:center;border:none;border-radius:6px;color:var(--white);cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:4px;padding:5px 12px;transition:opacity .2s}.btn-reject{background:var(--error)}.btn-approve:hover,.btn-reject:hover{opacity:.85}.btn-approve:disabled,.btn-reject:disabled{cursor:not-allowed;opacity:.5}.tab-bar{border-bottom:2px solid var(--grey-light);display:flex;gap:4px;margin-bottom:16px}.tab-btn{background:none;border:none;border-bottom:2px solid #0000;color:var(--grey);cursor:pointer;font-size:14px;font-weight:600;margin-bottom:-2px;padding:8px 18px;transition:color .2s,border-color .2s}.tab-btn.active,.tab-btn:hover{color:var(--primary)}.tab-btn.active{border-bottom-color:var(--primary)}.tab-count{align-items:center;background:var(--surface);border-radius:99px;color:var(--primary);display:inline-flex;font-size:11px;font-weight:700;justify-content:center;margin-left:6px;padding:1px 7px}.tab-count.warn{background:#fef3c7;color:var(--warning)}
/*# sourceMappingURL=main.43577bfb.css.map*/