@import "https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,600&family=Source+Sans+Pro:ital,wght@0,300;0,400;0,600;0,700;0,900;1,400&display=swap";:root{--primary:#6c63ff;--primary-hover:#5a52e0;--primary-light:#eeedfd;--primary-dark:#4e44d4;--secondary:#1e1e24;--bg-main:#f8f9fb;--bg-sidebar:#fff;--bg-card:#fff;--border-color:#eceef2;--border-subtle:#f1f3f7;--text-primary:#18191f;--text-secondary:#5f6368;--text-muted:#9ca3af;--text-on-primary:#fff;--color-danger:#ef4444;--bg-danger-light:#fee2e2;--color-warning:#f59e0b;--bg-warning-light:#fef3c7;--color-success:#00c853;--bg-success-light:#e8f8ee;--color-info:#0284c7;--bg-info-light:#e0f2fe;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--font-sans:"Source Sans 3", "Source Sans Pro", sans-serif;--font-heading:"Source Sans 3", "Source Sans Pro", sans-serif;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1rem;--text-md:1.0625rem;--text-lg:1.1875rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-4xl:2.75rem;--line-height-base:1.6;--line-height-heading:1.3;--border-radius-sm:8px;--border-radius-md:14px;--border-radius-lg:18px;--border-radius-pill:9999px;--shadow-sm:0 1px 3px 0 rgba(0,0,0,.04), 0 1px 2px 0 rgba(0,0,0,.02);--shadow-md:0 4px 12px -2px rgba(0,0,0,.06), 0 2px 6px -1px rgba(0,0,0,.03);--shadow-lg:0 12px 24px -4px rgba(108,99,255,.12), 0 4px 12px -2px rgba(0,0,0,.04)}*,:before,:after{box-sizing:border-box;margin:0;padding:0;font-family:"Source Sans 3",Source Sans Pro,sans-serif!important}html{font-size:16px;font-family:"Source Sans 3",Source Sans Pro,sans-serif!important}body{font-size:var(--text-base);background-color:var(--bg-main);color:var(--text-primary);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:"Source Sans 3",Source Sans Pro,sans-serif!important}button,input,select,textarea,optgroup{font-family:"Source Sans 3",Source Sans Pro,sans-serif!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-primary);font-weight:700}button,input,select,textarea{font-family:inherit;font-size:inherit;outline:none}input[type=password]::-ms-reveal{pointer-events:none!important;visibility:hidden!important;width:0!important;height:0!important;display:none!important}input[type=password]::-ms-clear{pointer-events:none!important;visibility:hidden!important;width:0!important;height:0!important;display:none!important}input::-ms-reveal{pointer-events:none!important;visibility:hidden!important;width:0!important;height:0!important;display:none!important}input::-ms-clear{pointer-events:none!important;visibility:hidden!important;width:0!important;height:0!important;display:none!important}a{color:inherit;text-decoration:none}.page-title{font-family:var(--font-heading);font-size:var(--text-3xl);color:var(--text-primary);font-weight:700;line-height:var(--line-height-heading)}.section-title{font-family:var(--font-heading);font-size:var(--text-xl);color:var(--text-primary);font-weight:700;line-height:var(--line-height-heading)}.card-title{font-family:var(--font-heading);font-size:var(--text-lg);color:var(--text-primary);font-weight:700;line-height:var(--line-height-heading)}.body-text{font-size:var(--text-base);color:var(--text-primary);line-height:var(--line-height-base)}.secondary-text{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--line-height-base)}.meta-text{font-size:var(--text-xs);color:var(--text-muted);line-height:1.4}.menu-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.nav-item-text{color:var(--text-primary);font-size:16px;font-weight:600;line-height:26px}.link-text{font-size:var(--text-sm);color:var(--primary);font-weight:700}.table-header-text{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.table-primary-text{font-size:var(--text-sm);color:var(--text-primary);font-weight:600}.table-secondary-text{font-size:var(--text-xs);color:var(--text-secondary)}.admin-label-meta{font-size:var(--text-xs);color:var(--primary);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.empty-state-title{font-size:var(--text-lg);color:var(--text-primary);margin-bottom:6px;font-weight:700}.empty-state-desc{font-size:var(--text-sm);color:var(--text-secondary);max-width:440px;line-height:var(--line-height-base);margin:0 auto 16px}.d-flex{display:flex}.flex-column{flex-direction:column}.align-items-center{align-items:center}.justify-content-between{justify-content:space-between}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.flex-grow-1{flex-grow:1}.w-100{width:100%}.grid-2{gap:var(--spacing-lg);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--spacing-lg);grid-template-columns:repeat(3,1fr);display:grid}@media (max-width:1024px){.grid-2,.grid-3{grid-template-columns:1fr}}.form-group{text-align:left;flex-direction:column;gap:6px;display:flex}.form-label{font-size:var(--text-sm);color:var(--text-primary);font-weight:700}.form-control{border:1.5px solid var(--border-color);border-radius:var(--border-radius-sm);width:100%;color:var(--text-primary);font-size:var(--text-sm);background-color:#f8f9fb;padding:11px 15px;transition:all .2s}.form-control:focus{border-color:var(--primary);background-color:#fff;box-shadow:0 0 0 3px rgba(108,99,255,.12)}.alert-banner{border-radius:var(--border-radius-sm);font-size:var(--text-sm);align-items:center;gap:10px;padding:14px 18px;font-weight:600;display:flex}.alert-banner.success-banner{color:#007e33;background-color:#e8f8ee;border-left:4px solid #00c853}.alert-banner.error-banner{color:#991b1b;background-color:#fef2f2;border-left:4px solid #ef4444}.alert-banner.warning-banner{color:#92400e;background-color:#fffbeb;border-left:4px solid #f59e0b}.card{background-color:var(--bg-card);border-radius:var(--border-radius-md);border:1px solid var(--border-color);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s,border-color .2s}.card:hover{box-shadow:var(--shadow-md)}.btn{border-radius:var(--border-radius-sm);cursor:pointer;font-weight:600;font-size:var(--text-sm);border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.btn-primary{background-color:var(--primary);color:var(--text-on-primary)}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(108,99,255,.3)}.btn-secondary{color:var(--text-on-primary);background-color:#262930}.btn-secondary:hover{background-color:#18191f;transform:translateY(-1px)}.btn-outline{border:1.5px solid var(--border-color);color:var(--text-secondary);background-color:#fff}.btn-outline:hover{color:var(--text-primary);background-color:#f8f9fb;border-color:#d1d5db}.btn-pill{border-radius:var(--border-radius-pill)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.badge{border-radius:var(--border-radius-pill);font-size:var(--text-xs);letter-spacing:.5px;text-transform:uppercase;align-items:center;padding:5px 12px;font-weight:700;display:inline-flex}.badge-danger{background-color:var(--bg-danger-light);color:var(--color-danger)}.badge-warning{background-color:var(--bg-warning-light);color:var(--color-warning)}.badge-success{background-color:var(--bg-success-light);color:var(--color-success)}.badge-info{background-color:var(--bg-info-light);color:var(--color-info)}.badge-purple{background-color:var(--primary-light);color:var(--primary)}.badge-neutral{color:#4b5563;background-color:#f1f3f7}.app-container{width:100%;min-height:100vh;display:flex;position:relative}.sidebar-backdrop{-webkit-backdrop-filter:blur(3px);z-index:995;background-color:rgba(15,23,42,.45);transition:opacity .25s;display:none;position:fixed;top:0;bottom:0;left:0;right:0}@media (max-width:1024px){.sidebar-backdrop.active{display:block}}.sidebar{background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);z-index:100;flex-direction:column;flex-shrink:0;width:240px;height:100vh;transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s;display:flex;position:sticky;top:0}@media (max-width:1024px){.sidebar{z-index:1000;height:100%;box-shadow:none;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.is-mobile-open{transform:translate(0);box-shadow:6px 0 28px rgba(0,0,0,.18)}}.sidebar-logo{box-sizing:border-box;height:72px;font-family:var(--font-heading);border-bottom:1px solid var(--border-color);color:var(--text-primary);align-items:center;gap:12px;padding:0 18px;font-size:1.15rem;font-weight:700;display:flex}.sidebar-section-title{font-size:var(--text-xs);color:#0f172a;text-transform:uppercase;letter-spacing:.8px;padding:16px 22px 6px;font-weight:800}.sidebar-menu{flex-direction:column;flex-grow:1;gap:2px;padding:4px 0;list-style:none;display:flex;overflow-y:auto}.sidebar-item{margin:1px 12px}.sidebar-item a,.sidebar-menu a,.sidebar-footer a{color:#0f172a;font-family:var(--font-sans);border-radius:10px;align-items:center;gap:12px;padding:10px 16px;font-size:16px;font-weight:600;line-height:26px;transition:all .15s;display:flex}.sidebar-item a:hover,.sidebar-menu a:hover,.sidebar-footer a:hover{color:#000;background-color:#f4f5f8}.sidebar-item.active a,.sidebar-menu .sidebar-item.active a,.sidebar-footer .sidebar-item.active a{background-color:var(--primary-light);color:var(--primary);font-weight:600}.menu-icon{stroke-width:2.2px;flex-shrink:0;width:18px;height:18px}.sidebar-friends-list{flex-direction:column;gap:6px;padding:0 12px;display:flex}.sidebar-friend-item{color:var(--text-secondary);border-radius:8px;align-items:center;gap:10px;padding:6px 8px;font-size:.82rem;font-weight:600;transition:background .15s;display:flex}.sidebar-friend-item:hover{background-color:#f8f9fb}.sidebar-friend-avatar{object-fit:cover;border-radius:50%;width:26px;height:26px}.sidebar-footer{border-top:1px solid var(--border-color);flex-direction:column;gap:2px;padding:12px;list-style:none;display:flex}.sidebar-version-pill{justify-content:space-between;align-items:center;margin-top:4px;padding:6px 16px 2px;display:flex}.sidebar-version-pill .version-tag{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--text-secondary);letter-spacing:.3px;font-weight:600}.sidebar-version-pill .version-update-tag{font-family:var(--font-sans);color:#00c853;cursor:pointer;background:#e8f5e9;border:1px solid #c8e6c9;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700;transition:all .15s}.sidebar-version-pill .version-update-tag:hover{background:#c8e6c9}.main-content{background-color:var(--bg-main);flex-direction:column;flex-grow:1;min-width:0;height:100vh;display:flex;overflow-y:auto}.header{box-sizing:border-box;border-bottom:1px solid var(--border-color);height:72px;color:var(--text-primary);z-index:90;background-color:#fff;flex-shrink:0;justify-content:space-between;align-items:center;gap:14px;padding:0 28px;display:flex;position:sticky;top:0}@media (max-width:768px){.header{height:60px;padding:0 16px}}.header-mobile-toggle{border:1px solid var(--border-color);width:40px;height:40px;color:var(--text-primary);cursor:pointer;background:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s;display:none}.header-mobile-toggle:hover{background-color:#f3f4f6}@media (max-width:1024px){.header-mobile-toggle{display:inline-flex}}.header-search{flex-shrink:1;width:440px;min-width:0;max-width:35vw;position:relative}@media (max-width:1440px){.header-search{display:none!important}}.header-search input{border-radius:var(--border-radius-pill);width:100%;color:var(--text-primary);background-color:#f4f5f8;border:1px solid transparent;padding:10px 16px 10px 42px;font-size:.85rem;transition:all .2s cubic-bezier(.16,1,.3,1)}.header-search input::placeholder{color:#9ca3af}.header-search input:focus{border-color:var(--primary);background-color:#fff;box-shadow:0 0 0 3px rgba(108,99,255,.12)}.search-icon{color:#9ca3af;pointer-events:none;width:17px;height:17px;position:absolute;top:50%;left:15px;transform:translateY(-50%)}.header-actions{flex-shrink:0;align-items:center;gap:16px;margin-left:auto;display:flex}.icon-button{border:1px solid var(--border-color);color:#5f6368;cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:all .15s;display:flex;position:relative}.icon-button:hover{color:var(--text-primary);background-color:#f4f5f8;border-color:#d1d5db}.user-profile-badge{cursor:pointer;border-radius:20px;align-items:center;gap:10px;padding:4px 8px;transition:background .15s;display:flex}.user-profile-badge:hover{background-color:#f4f5f8}.user-avatar{object-fit:cover;border:2px solid var(--primary-light);border-radius:50%;width:36px;height:36px}.user-name{color:var(--text-primary);font-size:.88rem;font-weight:700}.page-container{text-align:left;box-sizing:border-box;flex-grow:1;width:100%;padding:28px}.admin-label-meta{color:var(--primary);letter-spacing:.5px;text-transform:uppercase;font-size:.75rem;font-weight:700}.dropdown-fade-enter-active,.dropdown-fade-leave-active{transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1)}.dropdown-fade-enter-from,.dropdown-fade-leave-to{opacity:0;transform:translateY(-8px)scale(.98)}.notifications-dropdown{border:1px solid var(--border-color);z-index:1100;background:#fff;border-radius:14px;width:430px;max-width:calc(100vw - 24px);padding:0;position:absolute;top:calc(100% + 12px);right:0;overflow:hidden;box-shadow:0 14px 36px rgba(0,0,0,.12)}.notif-popover-header{border-bottom:1px solid var(--border-color);background:#fafafb;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.notif-popover-list{max-height:380px;overflow-y:auto}.notif-popover-item{cursor:pointer;text-align:left;background:#fff;border-bottom:1px solid #f1f5f9;gap:12px;padding:14px 18px;transition:background .15s;display:flex;position:relative}.notif-popover-item:last-child{border-bottom:none}.notif-popover-item:hover{background:#f8f9fb}.notif-popover-item.is-unread{background:#f8fafc}.notif-popover-item.is-unread:hover{background:#f1f5f9}.notif-popover-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin-top:2px;display:flex}.notif-popover-icon.grade,.notif-popover-icon.passed{color:#00c853;background:#e8f8f0}.notif-popover-icon.revision{color:#dc2626;background:#fef2f2}.notif-popover-icon.enrollment,.notif-popover-icon.course{color:#0284c7;background:#e0f2fe}.notif-popover-icon.quiz,.notif-popover-icon.deadline{color:#d97706;background:#fef3c7}.notif-popover-icon.default,.notif-popover-icon.system,.notif-popover-icon.general,.notif-popover-icon.announcement,.notif-popover-icon.user,.notif-popover-icon.security{color:var(--primary);background:#eef2ff}.notif-popover-content{flex-grow:1;min-width:0}.notif-popover-meta{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.notif-category-tag{text-transform:uppercase;letter-spacing:.6px;font-size:11px;font-weight:800;line-height:1}.notif-category-tag.grade,.notif-category-tag.passed{color:#00c853}.notif-category-tag.revision{color:#dc2626}.notif-category-tag.enrollment,.notif-category-tag.course{color:#0284c7}.notif-category-tag.quiz,.notif-category-tag.deadline{color:#d97706}.notif-category-tag.default,.notif-category-tag.system,.notif-category-tag.general,.notif-category-tag.announcement,.notif-category-tag.user,.notif-category-tag.security{color:var(--primary)}.notif-time-badge{color:#94a3b8;white-space:nowrap;align-items:center;gap:6px;font-size:11.5px;font-weight:500;display:flex}.notif-unread-dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:6px;height:6px}.notif-popover-title{color:#18191f;word-break:break-word;margin-bottom:3px;font-size:13.5px;font-weight:700;line-height:1.35}.notif-popover-desc{color:var(--text-secondary);-webkit-line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;margin:0;font-size:12.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.notif-popover-footer{border-top:1px solid var(--border-color);background:#fafafb;justify-content:space-between;align-items:center;padding:11px 18px;font-size:12px;display:flex}.assignment-layout-grid{margin-bottom:var(--spacing-xl);grid-template-columns:1fr 80px 1fr;align-items:center;display:grid}@media (max-width:1000px){.assignment-layout-grid{gap:var(--spacing-lg);grid-template-columns:1fr}.arrow-trigger-column{padding:12px 0;transform:rotate(90deg)}}.selection-card{background:#fff;flex-direction:column;padding:0;display:flex;overflow:hidden}.selection-card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.selection-title{margin:0;font-size:1.1rem;font-weight:700}.selection-badge.count-purple{background-color:var(--primary);color:#fff;border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:700}.selection-search-box{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);position:relative}.search-inner-icon{width:16px;height:16px;color:var(--text-muted);position:absolute;top:27px;left:28px}.selection-search-box input{border:1.5px solid var(--border-color);border-radius:var(--border-radius-sm);background-color:#f9fafb;width:100%;padding:10px 16px 10px 38px;font-size:.85rem}.scrollable-selection-list{max-height:320px;list-style:none;overflow-y:auto}.checklist-item{padding:14px var(--spacing-lg);cursor:pointer;border-bottom:1px solid #f3f4f6;align-items:center;gap:14px;transition:background-color .15s;display:flex}.checklist-item:hover{background-color:#f9fafb}.checklist-item.selected{background-color:var(--primary-light)}.checkbox-box{border:2px solid var(--text-muted);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.checklist-item.selected .checkbox-box{border-color:var(--primary);background-color:var(--primary)}.checkbox-check{color:#fff;width:12px;height:12px}.selection-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:36px;height:36px}.selection-avatar-initials{color:#475569;background-color:#e2e8f0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.8rem;font-weight:700;display:flex}.item-detail-info{flex-direction:column;flex-grow:1;display:flex}.item-primary-text{color:var(--text-primary);font-size:.9rem;font-weight:700}.item-secondary-text{color:var(--text-secondary);font-size:.75rem}.checklist-item.course-item{align-items:flex-start}.checklist-item.course-item .checkbox-box{margin-top:2px}.checklist-footer{padding:12px var(--spacing-lg);border-top:1px solid var(--border-color);background-color:#f9fafb}.footer-txt-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;font-size:.8rem;font-weight:700}.footer-txt-btn:hover{text-decoration:underline}.arrow-trigger-column{padding:0 var(--spacing-md);justify-content:center;align-items:center;display:flex}.round-arrow-trigger-btn{background-color:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:transform .2s,background-color .2s;display:flex;box-shadow:0 4px 12px rgba(156,39,176,.35)}.round-arrow-trigger-btn:hover{background-color:var(--primary-hover);transform:scale(1.08)}.round-arrow-icon{width:20px;height:20px}.audit-log-section{margin-top:var(--spacing-xl)}.section-title{margin:0;font-size:1.3rem;font-weight:700}.view-all-link{color:var(--primary);font-size:.88rem;font-weight:700}.view-all-link:hover{text-decoration:underline}.audit-table-card{border:1px solid var(--border-color);border-radius:var(--border-radius-md);background:#fff;padding:0;overflow:hidden}.audit-table{border-collapse:collapse;text-align:left;width:100%}.audit-table th{color:var(--text-secondary);border-bottom:1px solid var(--border-color);letter-spacing:.5px;text-transform:uppercase;background-color:#f8f9fa;padding:14px 24px;font-size:.75rem;font-weight:700}.audit-table td{vertical-align:middle;border-bottom:1px solid #f3f4f6;padding:16px 24px}.audit-table tr:last-child td{border-bottom:none}.table-avatar-initials{background-color:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.78rem;font-weight:700;display:flex}.table-primary-text{color:var(--text-primary);font-size:.88rem;font-weight:700}.table-secondary-text{color:var(--text-secondary);font-size:.75rem}.table-date-text{color:var(--text-secondary);font-size:.85rem;font-weight:500}.table-actions-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.table-actions-btn:hover{background-color:#f3f4f6}.welcome-banner-card{border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-sm);background:#faf5ff;border:1.5px solid #f3e8ff;justify-content:space-between;align-items:center;padding:36px 48px;display:flex}.welcome-text-side{text-align:left;max-width:65%}.welcome-heading{color:var(--text-primary);margin-bottom:var(--spacing-sm);font-size:2.1rem;font-weight:800}.welcome-subtext{color:var(--text-secondary);font-size:1.02rem;line-height:1.5}.circular-progress-container{flex-shrink:0;justify-content:center;align-items:center;width:110px;height:110px;display:flex;position:relative}.progress-ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-ring-bg{fill:transparent;stroke:#e9d5ff;stroke-width:10px}.progress-ring-indicator{fill:transparent;stroke:var(--primary);stroke-width:10px;stroke-linecap:round;transition:stroke-dashoffset .5s}.progress-ring-text{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute}.progress-percent-val{color:var(--text-primary);font-size:1.5rem;font-weight:800;line-height:1}.progress-percent-lbl{color:var(--text-secondary);letter-spacing:.5px;margin-top:2px;font-size:.65rem;font-weight:700}.dashboard-grid{gap:var(--spacing-xl);grid-template-columns:1fr 340px;align-items:start;display:grid}@media (max-width:1050px){.dashboard-grid{grid-template-columns:1fr}}.courses-row{gap:var(--spacing-lg);margin-top:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.course-card{border:1.5px solid var(--border-color);border-radius:var(--border-radius-md);background:#fff;flex-direction:column;padding:0;display:flex;overflow:hidden}.course-image-wrapper{background-color:#e5e7eb;height:150px;position:relative;overflow:hidden}.course-image{object-fit:cover;width:100%;height:100%;transition:transform .3s}.course-card:hover .course-image{transform:scale(1.04)}.badge-overlay{background-color:var(--primary);color:#fff;border-radius:4px;padding:3px 8px;font-size:.72rem;font-weight:700;position:absolute;top:10px;left:10px}.course-card-details{padding:var(--spacing-md);flex-direction:column;flex-grow:1;display:flex}.course-card-title{margin-bottom:var(--spacing-md);min-height:42px;font-size:1.02rem;font-weight:700;line-height:1.35}.course-card-progress{margin-top:auto;margin-bottom:var(--spacing-md)}.progress-bar-label-row{color:var(--text-secondary);justify-content:space-between;margin-bottom:6px;font-size:.75rem;font-weight:600;display:flex}.progress-bold{color:var(--text-primary);font-weight:700}.progress-bar-track{background-color:#f3f4f6;border-radius:3px;height:6px;overflow:hidden}.progress-bar-fill{background-color:var(--primary);border-radius:3px;height:100%}.continue-learning-btn{letter-spacing:.5px;background-color:var(--primary-light);width:100%;color:var(--primary);border-radius:var(--border-radius-sm);cursor:pointer;border:none;padding:9px;font-size:.8rem;font-weight:700;transition:all .2s}.continue-learning-btn:hover{background-color:var(--primary);color:#fff}.result-banner{color:#fff;border-radius:var(--border-radius-md);background:#7e22ce;align-items:center;gap:18px;padding:22px 28px;display:flex;box-shadow:0 4px 15px rgba(126,34,206,.25)}.trophy-icon-wrapper{background-color:rgba(255,255,255,.2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.trophy-svg{color:#fff;width:24px;height:24px}.result-banner-content{flex-grow:1}.result-title{color:#fff;margin-bottom:2px;font-size:1.05rem;font-weight:700}.result-subtitle{color:rgba(255,255,255,.85);margin:0;font-size:.85rem}.view-results-btn{color:var(--primary);border-radius:var(--border-radius-sm);cursor:pointer;white-space:nowrap;background-color:#fff;border:none;padding:9px 18px;font-size:.85rem;font-weight:700}.view-results-btn:hover{background-color:#f8fafc}.upcoming-panel,.quizzes-panel{padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);background:#fff}.panel-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.panel-title{margin:0;font-size:1.05rem;font-weight:700}.red-badge{color:#dc2626;background-color:#fee2e2;border-radius:12px;padding:2px 8px;font-size:.72rem;font-weight:700}.upcoming-list,.quiz-feed-list{flex-direction:column;gap:12px;list-style:none;display:flex}.upcoming-item{border-bottom:1px solid #f3f4f6;gap:12px;padding:10px 0;display:flex}.upcoming-indicator-line{border-radius:2px;flex-shrink:0;width:4px}.upcoming-indicator-line.warning{background-color:#f59e0b}.upcoming-indicator-line.info{background-color:#3b82f6}.upcoming-item-details{flex-direction:column;gap:2px;display:flex}.upcoming-item-title{color:var(--text-primary);margin:0;font-size:.88rem;font-weight:700}.upcoming-item-course{color:var(--text-secondary);margin:0;font-size:.78rem}.upcoming-due-time{color:#9ca3af;align-items:center;gap:4px;margin-top:4px;font-size:.75rem;display:flex}.upcoming-due-time.due-tomorrow{color:#dc2626;font-weight:600}.due-icon{width:13px;height:13px}.quiz-feed-item{border-radius:var(--border-radius-sm);cursor:pointer;background-color:#f9fafb;align-items:center;gap:12px;padding:10px 12px;transition:background-color .15s;display:flex}.quiz-feed-item:hover{background-color:#f3f4f6}.feed-icon-wrapper{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.feed-icon-wrapper.play{background-color:var(--primary-light);color:var(--primary)}.feed-icon-wrapper.check{color:#00c853;background-color:#e8f8ee}.feed-icon-wrapper svg{width:14px;height:14px}.feed-item-details{flex-grow:1}.feed-item-title{margin:0;font-size:.85rem;font-weight:700}.feed-item-subtitle{color:var(--text-secondary);margin:0;font-size:.75rem}.feed-item-meta{color:var(--text-secondary);font-size:.75rem;font-weight:600}.feed-item-meta.score{color:#007e33;font-weight:700}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:1000;box-sizing:border-box;background-color:rgba(15,23,42,.55);justify-content:center;align-items:center;width:100vw;height:100vh;padding:16px;display:flex;position:fixed;top:0;left:0}.modal-card,.modal-dialog,.academic-notif-modal,.assignment-modal-card,.legal-modal-card{border:1px solid var(--border-color)!important;text-align:left!important;box-sizing:border-box!important;background:#fff!important;border-radius:16px!important;flex-direction:column!important;width:100%!important;max-width:760px!important;max-height:90vh!important;padding:0!important;display:flex!important;position:relative!important;overflow-y:auto!important;box-shadow:0 20px 40px rgba(0,0,0,.22)!important}.modal-large,.modal-medium,.modal-small{width:100%!important;max-width:760px!important}.dashboard-layout-3col{grid-template-columns:1fr 300px;align-items:start;gap:28px;display:grid}@media (max-width:1200px){.dashboard-layout-3col{grid-template-columns:1fr}}.dashboard-main-col{flex-direction:column;gap:28px;min-width:0;display:flex}.dashboard-right-panel{flex-direction:column;gap:22px;display:flex}.greeting-card{border-radius:var(--border-radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:#fff;padding:22px}.greeting-title{color:var(--text-primary);align-items:center;gap:6px;margin-bottom:6px;font-size:1.15rem;font-weight:700;display:flex}.greeting-sub{color:var(--text-secondary);font-size:.82rem;line-height:1.4}.progress-chart-card{border:1px dashed var(--border-color);background:#f8f9fb;border-radius:12px;margin-top:16px;padding:16px 14px}.chart-header-title{color:var(--text-primary);margin-bottom:14px;font-size:.8rem;font-weight:700}.bar-chart-row{justify-content:space-around;align-items:flex-end;gap:10px;height:90px;padding:0 4px;display:flex}.chart-bar-col{flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.chart-bar-track{background-color:#e2e8f0;border-radius:6px;align-items:flex-end;width:100%;max-width:22px;height:70px;display:flex;overflow:hidden}.chart-bar-fill{border-radius:6px;width:100%;transition:height .4s}.chart-bar-fill.bar-1{background-color:#60a5fa}.chart-bar-fill.bar-2{background-color:#3b82f6}.chart-bar-fill.bar-3{background-color:#2563eb}.chart-bar-fill.bar-4{background-color:#6c63ff}.chart-bar-label{color:var(--text-muted);font-size:.68rem;font-weight:600}.mentors-card{border-radius:var(--border-radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:#fff;padding:20px}.mentors-header{color:var(--text-primary);margin-bottom:14px;font-size:.95rem;font-weight:700}.mentors-list{flex-direction:column;gap:12px;display:flex}.mentor-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.mentor-profile{align-items:center;gap:10px;display:flex}.mentor-avatar{object-fit:cover;border-radius:50%;width:34px;height:34px}.mentor-name{color:var(--text-primary);font-size:.82rem;font-weight:700;line-height:1.2}.mentor-role{color:var(--text-muted);font-size:.72rem}.btn-follow{border-radius:var(--border-radius-pill);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;background:0 0;padding:5px 12px;font-size:.72rem;font-weight:600;transition:all .15s}.btn-follow:hover{background-color:var(--primary-light);border-color:var(--primary);color:var(--primary)}.btn-follow.following{color:var(--text-secondary);background-color:#f1f3f7}.hero-banner{border-radius:var(--border-radius-lg);color:#fff;box-shadow:var(--shadow-lg);background:#6c63ff;padding:34px 38px;position:relative;overflow:hidden}@media (max-width:640px){.hero-banner{padding:22px 18px}}.hero-banner:after{content:"";pointer-events:none;background:rgba(255,255,255,.08);border-radius:50%;width:220px;height:220px;position:absolute;top:-40px;right:-40px}.hero-tag{color:#000;border-radius:var(--border-radius-pill);letter-spacing:.6px;text-transform:uppercase;background:#fff;margin-bottom:12px;padding:4px 12px;font-size:11px;font-weight:800;display:inline-block;box-shadow:0 2px 4px rgba(0,0,0,.08)}.hero-title{color:#fff;max-width:520px;margin-bottom:10px;font-size:1.75rem;font-weight:800;line-height:1.25}@media (max-width:640px){.hero-title{font-size:1.35rem}}.hero-description{color:rgba(255,255,255,.88);max-width:480px;margin-bottom:22px;font-size:.88rem;line-height:1.5}@media (max-width:640px){.hero-description{margin-bottom:16px;font-size:.82rem}}.hero-btn{color:#5d54e8;cursor:pointer;background-color:#fff;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 22px;font-size:.88rem;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.hero-btn:hover{background-color:#f8f9fb;transform:translateY(-2px);box-shadow:0 8px 16px rgba(0,0,0,.12)}.progress-mini-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}@media (max-width:900px){.progress-mini-grid{grid-template-columns:1fr}}.progress-mini-card{border-radius:var(--border-radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:14px;padding:18px 20px;transition:all .2s;display:flex}.progress-mini-card:hover{box-shadow:var(--shadow-md);border-color:#d1d5db}.progress-mini-top{justify-content:space-between;align-items:center;display:flex}.progress-mini-icon-box{border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.progress-mini-icon-box.purple{color:#6c63ff;background-color:#eeedfd}.progress-mini-icon-box.blue{color:#0284c7;background-color:#e0f2fe}.progress-mini-icon-box.green{color:#00c853;background-color:#e8f8ee}.progress-mini-stat{color:var(--text-secondary);font-size:.78rem;font-weight:700}.progress-mini-title{color:var(--text-primary);margin:0;font-size:.95rem;font-weight:700}.progress-mini-bar-track{background-color:#f1f3f7;border-radius:2px;width:100%;height:4px;overflow:hidden}.progress-mini-bar-fill{border-radius:2px;height:100%}.progress-mini-bar-fill.purple{background-color:#6c63ff}.progress-mini-bar-fill.blue{background-color:#0284c7}.progress-mini-bar-fill.green{background-color:#00c853}.section-heading-row{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-heading{color:var(--text-primary);font-size:1.15rem;font-weight:700}.course-showcase-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}@media (max-width:900px){.course-showcase-grid{grid-template-columns:1fr}}.course-thumb-wrapper{background-color:#e2e8f0;width:100%;height:140px;position:relative;overflow:hidden}.course-thumb-img{object-fit:cover;width:100%;height:100%}.course-type-pill{background-color:var(--primary);color:#fff;font-size:var(--text-xs);border-radius:var(--border-radius-pill);letter-spacing:.5px;text-transform:uppercase;box-shadow:var(--shadow-sm);padding:4px 10px;font-weight:700;position:absolute;top:10px;right:10px}.category-pill-tag{border-radius:var(--border-radius-pill);letter-spacing:.5px;text-transform:uppercase;padding:3px 10px;font-size:.65rem;font-weight:800;position:absolute;top:10px;left:10px}.category-pill-tag.frontend{color:#fff;background:rgba(2,132,199,.9)}.category-pill-tag.uiux{color:#fff;background:rgba(108,99,255,.9)}.category-pill-tag.branding{color:#fff;background:rgba(22,163,74,.9)}.course-showcase-body{flex-direction:column;flex-grow:1;justify-content:space-between;gap:12px;padding:16px;display:flex}.course-showcase-title{font-size:var(--text-md);color:var(--text-primary);margin:0;font-weight:700;line-height:1.35}.course-showcase-instructor{align-items:center;gap:8px;display:flex}.instructor-avatar-sm{object-fit:cover;border-radius:50%;width:28px;height:28px}.instructor-name-sm{color:var(--text-primary);font-size:.78rem;font-weight:700}.instructor-title-sm{color:var(--text-muted);font-size:.68rem}.upcoming-table-card{border-radius:var(--border-radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:#fff;overflow:hidden}.skillforge-table{border-collapse:collapse;text-align:left;width:100%}.skillforge-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid var(--border-color);background-color:#fafafb;padding:14px 20px;font-size:.7rem;font-weight:700}.skillforge-table td{border-bottom:1px solid var(--border-color);vertical-align:middle;padding:14px 20px;font-size:.85rem}.skillforge-table tr:last-child td{border-bottom:none}.skillforge-table tr:hover td{background-color:#f8f9fb}.btn-join-class{color:#fff;cursor:pointer;background-color:#6c63ff;border:none;border-radius:8px;padding:7px 16px;font-size:.78rem;font-weight:700;transition:all .15s}.btn-join-class:hover{background-color:#5a52e0;transform:translateY(-1px);box-shadow:0 4px 10px rgba(108,99,255,.25)}.schedule-card{border-radius:var(--border-radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:14px;padding:18px;display:flex}.schedule-header-row{justify-content:space-between;align-items:center;display:flex}.schedule-title{color:var(--text-primary);margin:0;font-size:.98rem;font-weight:800}.schedule-cal-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:5px 7px;transition:all .15s;display:flex}.schedule-cal-btn:hover{color:var(--primary);background:#f4f5f8}.calendar-month-nav{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.cal-month-label{color:var(--text-primary);font-size:.86rem;font-weight:800}.cal-nav-btns{gap:4px;display:flex}.cal-nav-arrow{border:1px solid var(--border-color);width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:6px;justify-content:center;align-items:center;font-size:.72rem;transition:all .15s;display:flex}.cal-nav-arrow:hover{color:var(--primary);background:#f4f5f8;border-color:#d1d5db}.calendar-grid-box{flex-direction:column;gap:4px;display:flex}.calendar-weekdays-row{text-align:center;color:var(--text-muted);letter-spacing:.4px;grid-template-columns:repeat(7,1fr);font-size:.64rem;font-weight:800;display:grid}.calendar-days-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-day-cell{height:28px;color:var(--text-primary);cursor:pointer;user-select:none;border-radius:7px;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;transition:all .15s;display:flex}.cal-day-cell:hover:not(.muted){color:var(--primary);background:#eeedfd}.cal-day-cell.muted{color:#d1d5db;font-weight:400}.cal-day-cell.active{color:#fff;background:#6c63ff;font-weight:800;box-shadow:0 3px 8px rgba(108,99,255,.4)}.cal-day-cell.has-event{position:relative}.cal-day-cell.has-event:after{content:"";background:#6c63ff;border-radius:50%;width:3.5px;height:3.5px;position:absolute;bottom:2px}.cal-day-cell.active.has-event:after{background:#fff}.events-section-header{color:var(--text-primary);text-align:left;margin-top:4px;margin-bottom:2px;font-size:.86rem;font-weight:800}.timeline-list{flex-direction:column;gap:10px;display:flex;position:relative}.timeline-item{grid-template-columns:38px 14px 1fr;align-items:flex-start;gap:6px;display:grid;position:relative}.timeline-time-label{color:var(--text-muted);text-align:right;padding-top:8px;font-size:.7rem;font-weight:700}.timeline-rail-node{flex-direction:column;align-items:center;height:100%;display:flex;position:relative}.timeline-dot{z-index:2;background:#fff;border:2.5px solid #6c63ff;border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:10px}.timeline-dot.purple{border-color:#6c63ff}.timeline-dot.teal{border-color:#0d9488}.timeline-dot.amber{border-color:#d97706}.timeline-dot.blue{border-color:#2563eb}.timeline-connector-line{z-index:1;background:#e5e7eb;width:1.5px;position:absolute;top:20px;bottom:-12px}.timeline-item:last-child .timeline-connector-line{display:none}.timeline-event-card{text-align:left;cursor:pointer;background:#f8f9fd;border:1px solid #eceef8;border-radius:9px;padding:9px 11px;transition:all .15s}.timeline-event-card:hover{background:#f1f0fe;border-color:#d5d2fb;transform:translateY(-1px)}.timeline-event-title{color:var(--text-primary);margin:0 0 2px;font-size:.78rem;font-weight:700;line-height:1.3}.timeline-event-sub{color:var(--text-secondary);margin:0;font-size:.68rem;line-height:1.3}.digital-clock-banner{background:#f1f0fe;border:1.5px solid #e0defd;border-radius:14px;flex-direction:column;gap:10px;margin-top:16px;padding:16px 18px;display:flex;box-shadow:0 2px 8px rgba(108,99,255,.05)}.clock-top-bar{justify-content:space-between;align-items:center;display:flex}.eat-pill{color:var(--primary);letter-spacing:.3px;background:#fff;border:1px solid #d5d2fb;border-radius:20px;align-items:center;gap:6px;padding:3px 10px;font-size:.68rem;font-weight:700;display:inline-flex;box-shadow:0 1px 2px rgba(0,0,0,.04)}.clock-live-tag{color:#00c853;text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:4px;font-size:.68rem;font-weight:700;display:inline-flex}.clock-center-display{justify-content:center;align-items:center;gap:8px;padding:4px 0;display:flex}.clock-digits{font-family:var(--font-heading);letter-spacing:1px;color:#18191f;font-size:2.1rem;font-weight:800;line-height:1}.clock-ampm-badge{color:#fff;letter-spacing:.5px;text-transform:uppercase;background:#6c63ff;border-radius:6px;padding:3px 7px;font-size:.72rem;font-weight:800}.clock-date-row{color:var(--text-secondary);border-top:1px solid #e5e3fb;justify-content:center;align-items:center;gap:6px;padding-top:8px;font-size:.76rem;font-weight:600;display:flex}.live-status-dot{background-color:#00c853;border-radius:50%;width:6px;height:6px}.time-of-day-icon{background-color:#fef3c7;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;transition:all .3s;display:inline-flex;box-shadow:0 2px 8px rgba(245,158,11,.2)}.time-of-day-icon.morning{color:#d97706;background-color:#fef3c7}.time-of-day-icon.afternoon{color:#ea580c;background-color:#ffedd5}.time-of-day-icon.evening{color:#7c3aed;background-color:#ede9fe}.time-of-day-icon.night{color:#3730a3;background-color:#e0e7ff}.header-eat-clock{font-family:var(--font-sans);border:1.5px solid var(--border-color);border-radius:var(--border-radius-pill);color:var(--text-primary);user-select:none;white-space:nowrap;background:#f8f9fb;flex-shrink:0;align-items:center;gap:10px;padding:5px 14px;font-size:14px;display:flex}.header-eat-clock .date-text{color:var(--text-secondary);white-space:nowrap;flex-shrink:0;font-size:14px;font-weight:600}.header-eat-clock .divider{background-color:var(--border-color);width:1px;height:16px}.header-eat-clock .time-text{color:var(--text-primary);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";text-align:center;min-width:96px;font-size:14px;font-weight:700;display:inline-block}.header-eat-clock .eat-badge-tag{color:#6c63ff;letter-spacing:.5px;background-color:#eeedfd;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:800}@media (max-width:768px){.header-eat-clock{display:none}}.skeleton-box{border-radius:var(--border-radius-sm);background-color:#eceef2;position:relative;overflow:hidden}.skeleton-shimmer{animation:1.4s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%{opacity:1}50%{opacity:.45}to{opacity:1}}.course-card-skeleton{border-radius:var(--border-radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;min-height:260px;display:flex;overflow:hidden}.course-thumb-skeleton{aspect-ratio:16/9;background-color:#e2e8f0;width:100%}.skeleton-cell{border-radius:var(--border-radius-sm);background-color:#e2e8f0;height:14px;display:inline-block}.skeleton-stat-card{border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:12px;padding:20px;display:flex}.skeleton-accordion-row{border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);background:#fff;align-items:center;gap:16px;padding:16px 20px;display:flex}.course-showcase-card{border-radius:var(--border-radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);cursor:pointer;background:#fff;flex-direction:column;transition:all .2s;display:flex;overflow:hidden}.course-showcase-card:hover{box-shadow:var(--shadow-md);border-color:#d1d5db;transform:translateY(-2px)}.course-thumb-wrapper{aspect-ratio:16/9;background-color:#e2e8f0;width:100%;position:relative;overflow:hidden}.course-thumb-img{object-fit:cover;width:100%;height:100%;display:block}.course-body-content{flex-direction:column;flex-grow:1;gap:10px;padding:16px;display:flex}.course-card-title{font-size:var(--text-md);color:var(--text-primary);margin:0;font-weight:700;line-height:1.35}.course-brief-desc{color:var(--text-secondary);-webkit-line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.45;display:-webkit-box;overflow:hidden}.category-tabs .tab-btn:not(.active),.filter-tab-pill:not(.active),.category-tabs-group button:not(.active){color:#18191f!important}.category-tabs .tab-btn.active,.filter-tab-pill.active,.category-tabs-group button.active{color:var(--primary)!important}.table-responsive{-webkit-overflow-scrolling:touch;border-radius:var(--border-radius-md);width:100%;position:relative;overflow-x:auto}.table-responsive::-webkit-scrollbar{height:5px}.table-responsive::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.grid-responsive-2{gap:var(--spacing-lg);grid-template-columns:repeat(2,1fr);display:grid}@media (max-width:768px){.grid-responsive-2{gap:var(--spacing-md);grid-template-columns:1fr}}.grid-responsive-3{gap:var(--spacing-lg);grid-template-columns:repeat(3,1fr);display:grid}@media (max-width:1080px){.grid-responsive-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.grid-responsive-3{gap:var(--spacing-md);grid-template-columns:1fr}}.grid-responsive-4{gap:var(--spacing-lg);grid-template-columns:repeat(4,1fr);display:grid}@media (max-width:1200px){.grid-responsive-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.grid-responsive-4{gap:var(--spacing-md);grid-template-columns:1fr}}@media (max-width:768px){.page-container{padding:16px 14px 84px}}.student-bottom-nav{display:none}@media (max-width:640px){.student-bottom-nav{border-top:1px solid var(--border-color);z-index:990;height:64px;padding:0 4px;padding-bottom:env(safe-area-inset-bottom,0);background:#fff;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px rgba(0,0,0,.06)}.bottom-nav-item{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;height:100%;font-size:.72rem;font-weight:600;text-decoration:none;transition:color .15s;display:flex}.bottom-nav-item svg{stroke-width:2px;width:20px;height:20px}.bottom-nav-item.active,.bottom-nav-item.router-link-active{color:var(--primary)}.bottom-nav-item.active svg,.bottom-nav-item.router-link-active svg{stroke-width:2.4px}}.modal-overlay{backdrop-filter:blur(4px);z-index:9999;background-color:rgba(17,24,39,.65);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-card,.legal-modal-card,.academic-notif-modal,.assignment-modal-card,.modal-dialog{box-sizing:border-box;flex-direction:column;display:flex;position:relative;overflow:hidden;border-radius:var(--border-radius-md,16px)!important;width:100%!important;max-width:760px!important;box-shadow:var(--shadow-lg,0 20px 40px -8px rgba(0,0,0,.25))!important;background:#fff!important}.modal-header,.academic-modal-header,.legal-modal-header{box-sizing:border-box!important;background:0 0!important;border-bottom:none!important;flex-direction:column!important;justify-content:flex-start!important;align-items:flex-start!important;gap:8px!important;width:100%!important;margin:0!important;padding:72px 50px 10px!important;display:flex!important;position:relative!important}.modal-body,.academic-modal-body,.modal-form-body{box-sizing:border-box!important;width:100%!important;padding:10px 50px 25px!important}.modal-footer{box-sizing:border-box!important;border-top:none!important;justify-content:flex-end!important;align-items:center!important;gap:12px!important;width:100%!important;margin:0!important;padding:10px 50px 35px!important;display:flex!important}.academic-modal-footer,.academic-modal-body .academic-modal-footer{box-sizing:border-box!important;border-top:none!important;justify-content:flex-end!important;align-items:center!important;gap:12px!important;width:100%!important;margin:0!important;padding:12px 0 25px!important;display:flex!important}.academic-modal-footer .btn,.academic-modal-body .academic-modal-footer .btn{font-size:14px!important;font-family:var(--font-sans)!important;border-radius:8px!important;padding:9px 20px!important}.modal-header-content,.modal-title-block,.academic-title-block,.academic-header-left{text-align:left!important;flex-direction:column!important;flex:auto!important;gap:8px!important;min-width:0!important;display:flex!important}.academic-breadcrumb-row{flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;line-height:1.4;display:flex}.breadcrumb-prog-text{color:var(--text-primary);font-size:14px;font-weight:600}.breadcrumb-arrow{color:var(--text-muted);user-select:none;font-size:14px;font-weight:600}.breadcrumb-sect-text{color:var(--primary);font-size:14px;font-weight:600}.eval-student-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:4px;font-size:13.5px;line-height:1.4;display:flex}.eval-student-badge{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:9999px;align-self:flex-start;align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;line-height:1.4;display:inline-flex}.modal-meta-top,.academic-date-text{color:var(--text-secondary,#5f6368)!important;margin-bottom:8px!important;font-size:13px!important;font-weight:600!important;line-height:1.4!important;display:block!important}.modal-title,.modal-card .card-title,.modal-card .modal-header h2,.modal-card .modal-header h3,.modal-header .card-title,.modal-header h2,.modal-header h3,.legal-modal-header .modal-main-title,.legal-modal-card .modal-main-title,.academic-headline-title,.modal-dialog .modal-title,.modal-dialog h2,.modal-dialog h3,.modal-card>h2,.modal-card>h3,.modal-card .modal-main-title,.statement-detail-body .section-title{font-family:var(--font-heading)!important;color:var(--text-primary)!important;letter-spacing:-.01em!important;text-align:left!important;margin:0!important;font-size:25px!important;font-weight:800!important;line-height:1.3!important}.modal-subtitle,.modal-header-content p,.modal-header-content .meta-text,.academic-breadcrumb-row{color:var(--text-secondary,#5f6368)!important;text-align:left!important;margin:2px 0 0!important;font-size:14px!important;line-height:1.4!important}.close-btn,.modal-close-icon-btn,.academic-notif-modal .close-btn{background-color:var(--primary,#6c63ff)!important;color:#fff!important;cursor:pointer!important;z-index:10!important;border:none!important;border-radius:8px!important;flex-shrink:0!important;justify-content:center!important;align-items:center!important;width:32px!important;height:32px!important;margin:0!important;padding:0!important;transition:all .15s!important;display:inline-flex!important;position:absolute!important;top:20px!important;right:24px!important;box-shadow:0 2px 6px rgba(108,99,255,.35)!important}.close-btn:hover,.modal-close-icon-btn:hover,.academic-notif-modal .close-btn:hover{color:#fff!important;background-color:#5548d9!important;transform:scale(1.06)!important}.close-btn svg,.modal-close-icon-btn svg{stroke:#fff!important;width:16px!important;height:16px!important}@media (max-width:640px){.modal-dialog,.modal-card,.legal-modal-card,.academic-notif-modal,.assignment-modal-card{width:95vw!important;max-width:95vw!important;max-height:92vh!important;margin:10px auto!important;padding:16px!important;overflow-y:auto!important}.modal-title,.modal-card .card-title,.modal-card .modal-header h2,.modal-card .modal-header h3,.modal-header .card-title,.modal-header h2,.modal-header h3,.legal-modal-header .modal-main-title,.legal-modal-card .modal-main-title,.academic-headline-title,.modal-dialog .modal-title,.modal-dialog h2,.modal-dialog h3,.modal-card>h2,.modal-card>h3,.modal-card .modal-main-title,.statement-detail-body .section-title{font-size:20px!important;line-height:1.35!important}}@media (max-width:580px){.header{gap:8px!important;height:56px!important;padding:0 12px!important}.header-mobile-toggle{width:36px!important;height:36px!important}.header-actions{gap:8px!important}.header-eat-clock{padding:3px 8px!important;font-size:.72rem!important}.header-eat-clock .date-text,.header-eat-clock .divider{display:none!important}.user-profile-badge{gap:6px!important;padding:2px 4px!important}.user-meta-info{display:none!important}.user-avatar{width:32px!important;height:32px!important;font-size:13px!important}.notifications-dropdown{border-radius:12px!important;width:auto!important;max-width:calc(100vw - 24px)!important;position:fixed!important;top:64px!important;left:12px!important;right:12px!important}}@media (max-width:1100px){.dashboard-layout{flex-direction:column!important}.dashboard-right-panel{width:100%!important;max-width:100%!important}.assessments-grid,.course-grid,.courses-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))!important;gap:16px!important}}@media (max-width:480px){.btn,.btn-primary,.btn-secondary,.btn-outline{min-height:42px;font-size:.88rem}.card{border-radius:10px!important;padding:14px!important}.page-container{padding:12px 10px 78px!important}.assessments-grid,.course-grid,.courses-grid{grid-template-columns:1fr!important;gap:14px!important}.table-responsive,.table-container,.table-wrapper{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}}.session-timeout-overlay[data-v-3ca8b84f]{backdrop-filter:blur(4px);z-index:9999;background-color:rgba(15,23,42,.6);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.session-timeout-modal[data-v-3ca8b84f]{text-align:center;border:1px solid var(--border-color);background:#fff;border-radius:12px;width:100%;max-width:390px;padding:24px 22px;box-shadow:0 12px 36px rgba(0,0,0,.16)}.timeout-header[data-v-3ca8b84f]{margin-bottom:14px}.timeout-countdown-pill[data-v-3ca8b84f]{color:var(--primary);background:#faf5ff;border:1px solid #e9d5ff;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-bottom:20px;padding:10px 24px;display:inline-flex}.timeout-clock-icon[data-v-3ca8b84f]{width:18px;height:18px;color:var(--primary)}.timeout-time[data-v-3ca8b84f]{font-size:22px;font-weight:700;font-family:var(--font-heading);font-variant-numeric:tabular-nums;letter-spacing:.5px}.timeout-modal-actions[data-v-3ca8b84f]{justify-content:center;gap:10px;display:flex}.timeout-modal-actions .btn[data-v-3ca8b84f]{border-radius:var(--border-radius-sm);flex:1;padding:9px 16px;font-size:13.5px;font-weight:600}.modal-fade-enter-active[data-v-3ca8b84f],.modal-fade-leave-active[data-v-3ca8b84f]{transition:opacity .2s}.modal-fade-enter-from[data-v-3ca8b84f],.modal-fade-leave-to[data-v-3ca8b84f]{opacity:0}.version-update-toast[data-v-3ca8b84f]{z-index:10000;color:#fff;max-width:420px;font-family:var(--font-sans);background:#18191f;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:14px 18px;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 36px rgba(0,0,0,.28)}.version-update-toast-body[data-v-3ca8b84f]{align-items:center;gap:14px;display:flex}.version-update-icon-wrapper[data-v-3ca8b84f]{color:#00c853;background:rgba(0,200,83,.15);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.version-update-svg[data-v-3ca8b84f]{width:20px;height:20px}.version-update-text-block[data-v-3ca8b84f]{flex:1;min-width:0}.version-update-title[data-v-3ca8b84f]{font-family:var(--font-heading);color:#fff;font-size:13.5px;font-weight:700;line-height:1.2}.version-update-subtitle[data-v-3ca8b84f]{color:#d1d5db;margin-top:2px;font-size:12px;line-height:1.3}.btn-version-reload[data-v-3ca8b84f]{color:#fff;font-family:var(--font-sans);cursor:pointer;white-space:nowrap;background:#00c853;border:none;border-radius:6px;flex-shrink:0;padding:8px 14px;font-size:12.5px;font-weight:700;transition:opacity .2s}.btn-version-reload[data-v-3ca8b84f]:hover{opacity:.9}.update-slide-enter-active[data-v-3ca8b84f],.update-slide-leave-active[data-v-3ca8b84f]{transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .25s}.update-slide-enter-from[data-v-3ca8b84f],.update-slide-leave-to[data-v-3ca8b84f]{opacity:0;transform:translateY(20px)}
