@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Source+Sans+3:wght@400;500;600&display=swap";:root{--red-primary: #E53935;--red-dark: #C62828;--red-light: #FFCDD2;--blue-primary: #4FC3F7;--blue-dark: #0288D1;--blue-light: #E1F5FE;--black: #1A1A1A;--gray-900: #212121;--gray-800: #424242;--gray-600: #757575;--gray-400: #BDBDBD;--gray-200: #EEEEEE;--gray-100: #F5F5F5;--white: #FFFFFF;--success: #4CAF50;--success-light: #E8F5E9;--error: #E53935;--error-light: #FFEBEE}*{margin:0;padding:0;box-sizing:border-box}body{font-family:"Source Sans 3",sans-serif;background:var(--gray-100);color:var(--black);line-height:1.6}.app{min-height:100vh}.login-page:before{content:"";position:absolute;top:-50%;right:-20%;width:80%;height:200%;background:radial-gradient(ellipse,rgba(79,195,247,.1) 0%,transparent 70%);pointer-events:none}.login-page-header{position:fixed;top:0;left:0;right:0;height:100px;background:var(--white);display:flex;align-items:center;padding:0 40px;box-shadow:0 2px 8px #0000001a;z-index:100}.login-page-header .header-logo{height:80px;width:auto}.login-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,var(--gray-900) 0%,var(--black) 100%);position:relative;overflow:hidden;padding-top:100px}.login-content{flex:1;display:flex;width:100%}.login-left{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px 60px 60px;position:relative;z-index:1}.login-logo{margin-bottom:40px}.login-logo img{max-width:320px;height:auto}.login-form-container{width:100%;max-width:400px;background:var(--white);border-radius:16px;padding:40px;box-shadow:0 25px 50px -12px #00000040}.login-form h2{font-family:Outfit,sans-serif;font-size:28px;font-weight:700;color:var(--black);margin-bottom:8px}.login-form p{color:var(--gray-600);margin-bottom:32px}.form-group{margin-bottom:20px}.form-group label{display:block;font-weight:600;color:var(--gray-800);margin-bottom:8px;font-size:14px}.form-group input{width:100%;padding:14px 16px;border:2px solid var(--gray-200);border-radius:10px;font-size:16px;font-family:inherit;transition:all .2s ease}.form-group input:focus{outline:none;border-color:var(--blue-primary);box-shadow:0 0 0 4px #4fc3f71a}.login-btn{width:100%;padding:16px;background:var(--red-primary);color:var(--white);border:none;border-radius:10px;font-size:16px;font-weight:600;font-family:Outfit,sans-serif;cursor:pointer;transition:all .2s ease;margin-top:12px}.login-btn:hover{background:var(--red-dark);transform:translateY(-2px);box-shadow:0 10px 20px -10px #e5393580}.login-footer{text-align:center;margin-top:24px;color:var(--gray-600);font-size:14px}.login-footer a{color:var(--blue-dark);text-decoration:none;font-weight:600}.login-right{flex:1;display:flex;align-items:center;justify-content:center;padding:60px;position:relative}.login-features{max-width:500px}.login-features h3{font-family:Outfit,sans-serif;font-size:32px;font-weight:700;color:var(--white);margin-bottom:32px}.feature-item{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px}.feature-icon{width:48px;height:48px;background:#4fc3f733;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.feature-text h4{font-family:Outfit,sans-serif;font-size:18px;font-weight:600;color:var(--white);margin-bottom:4px}.feature-text p{color:var(--gray-400);font-size:15px}.main-layout{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--white);border-right:1px solid var(--gray-200);padding:16px;display:flex;flex-direction:column;position:fixed;height:100vh;overflow-y:auto}.sidebar-logo{display:flex;align-items:center;justify-content:center;padding-bottom:16px;border-bottom:1px solid var(--gray-200);margin-bottom:16px}.sidebar-logo img{max-width:160px;height:auto}.nav-section{margin-bottom:16px}.nav-section-title{font-size:10px;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;padding-left:10px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;cursor:pointer;transition:all .2s ease;color:var(--gray-800);font-weight:500;font-size:14px}.nav-badge{margin-left:auto;background:var(--red-primary);color:#fff;font-size:11px;font-weight:600;padding:2px 7px;border-radius:10px;min-width:18px;text-align:center}.nav-item-icon{font-size:18px}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--gray-200)}.user-profile{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;cursor:pointer;transition:all .2s ease}.user-profile:hover{background:var(--gray-100)}.user-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--blue-primary),var(--blue-dark));border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:600;font-size:14px}.user-info{flex:1}.user-name{font-weight:600;font-size:13px;color:var(--black)}.user-email{font-size:11px;color:var(--gray-600)}.main-content{flex:1;margin-left:260px;padding:32px;background:var(--gray-100)}.dashboard-header{margin-bottom:32px}.dashboard-header h1{font-family:Outfit,sans-serif;font-size:32px;font-weight:700;color:var(--black);margin-bottom:8px}.dashboard-header p{color:var(--gray-600);font-size:16px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:40px}.stat-card{background:var(--white);border-radius:16px;padding:24px;box-shadow:0 1px 3px #0000000d}.stat-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}.stat-icon.red{background:var(--red-light)}.stat-icon.blue{background:var(--blue-light)}.stat-icon.green{background:var(--success-light)}.stat-icon.purple{background:#f3e5f5}.stat-value{font-family:Outfit,sans-serif;font-size:36px;font-weight:700;color:var(--black)}.stat-label{font-size:14px;color:var(--gray-600);margin-top:4px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.section-header h2{font-family:Outfit,sans-serif;font-size:24px;font-weight:700;color:var(--black)}.workbooks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.workbook-card{background:var(--white);border-radius:16px;padding:24px;box-shadow:0 1px 3px #0000000d;cursor:pointer;transition:all .3s ease;border:2px solid transparent;position:relative;overflow:hidden}.workbook-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--card-color);opacity:0;transition:opacity .3s ease}.workbook-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px #00000026;border-color:var(--gray-200)}.workbook-card:hover:before{opacity:1}.workbook-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:16px}.workbook-title{font-family:Outfit,sans-serif;font-size:20px;font-weight:700;color:var(--black);margin-bottom:8px}.workbook-description{font-size:14px;color:var(--gray-600);margin-bottom:16px;line-height:1.5}.workbook-meta{display:flex;gap:16px;font-size:13px;color:var(--gray-600)}.workbook-meta span{display:flex;align-items:center;gap:6px}.study-page{max-width:900px;margin:0 auto}.study-header{background:var(--white);border-radius:16px;padding:32px;margin-bottom:24px;box-shadow:0 1px 3px #0000000d}.study-breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--gray-600);margin-bottom:16px}.study-breadcrumb a{color:var(--blue-dark);text-decoration:none;cursor:pointer}.study-breadcrumb a:hover{text-decoration:underline}.study-title{font-family:Outfit,sans-serif;font-size:32px;font-weight:700;color:var(--black);margin-bottom:8px;display:flex;align-items:center;gap:16px}.study-title-icon{font-size:36px}.study-subtitle{color:var(--gray-600);font-size:16px}.study-progress{margin-top:24px}.progress-bar-container{display:flex;align-items:center;gap:16px}.progress-bar{flex:1;height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--blue-primary),var(--blue-dark));border-radius:4px;transition:width .5s ease}.progress-text{font-weight:600;color:var(--gray-800);min-width:100px;text-align:right}.questions-container{display:flex;flex-direction:column;gap:16px}.section-divider{background:var(--white);border-radius:12px;padding:16px 24px;font-family:Outfit,sans-serif;font-size:18px;font-weight:700;color:var(--black);box-shadow:0 1px 3px #0000000d;border-left:4px solid var(--red-primary)}.question-card{background:var(--white);border-radius:16px;padding:24px;box-shadow:0 1px 3px #0000000d;transition:all .3s ease}.question-card.correct{border:2px solid var(--success);background:var(--success-light)}.question-card.incorrect{border:2px solid var(--error);background:var(--error-light)}.question-number{font-family:Outfit,sans-serif;font-size:12px;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}.question-text{font-size:18px;color:var(--black);line-height:1.6;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.blank-button{display:inline-flex;align-items:center;justify-content:center;min-width:160px;padding:10px 20px;background:var(--gray-100);border:2px dashed var(--gray-400);border-radius:8px;font-size:16px;font-weight:600;color:var(--gray-600);cursor:pointer;transition:all .2s ease;font-family:inherit}.blank-button:hover{border-color:var(--blue-primary);background:var(--blue-light);color:var(--blue-dark)}.blank-button.filled{background:var(--blue-light);border:2px solid var(--blue-primary);color:var(--blue-dark);border-style:solid}.blank-button.correct{background:var(--success-light);border-color:var(--success);color:var(--success)}.blank-button.incorrect{background:var(--error-light);border-color:var(--error);color:var(--error)}.question-feedback{margin-top:16px;padding:16px;border-radius:10px;font-size:14px;display:flex;align-items:flex-start;gap:12px}.question-feedback.correct{background:var(--success-light);color:#1b5e20}.question-feedback.incorrect{background:var(--error-light);color:#b71c1c}.feedback-icon{font-size:20px;flex-shrink:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--white);border-radius:20px;padding:32px;max-width:400px;width:90%;box-shadow:0 25px 50px -12px #00000040;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{text-align:center;margin-bottom:24px}.modal-header h3{font-family:Outfit,sans-serif;font-size:20px;font-weight:700;color:var(--black)}.modal-header p{font-size:14px;color:var(--gray-600);margin-top:4px}.answer-options{display:flex;flex-direction:column;gap:12px}.answer-option{padding:16px 20px;background:var(--gray-100);border:2px solid var(--gray-200);border-radius:12px;font-size:16px;font-weight:500;color:var(--black);cursor:pointer;transition:all .2s ease;text-align:left;font-family:inherit}.answer-option:hover{border-color:var(--blue-primary);background:var(--blue-light)}.modal-close{margin-top:24px;width:100%;padding:14px;background:var(--gray-200);border:none;border-radius:10px;font-size:14px;font-weight:600;color:var(--gray-800);cursor:pointer;transition:all .2s ease;font-family:inherit}.modal-close:hover{background:var(--gray-400)}.grade-section{background:var(--white);border-radius:16px;padding:24px;margin-top:24px;box-shadow:0 1px 3px #0000000d;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.grade-info{color:var(--gray-600)}.grade-info strong{color:var(--black)}.grade-btn{padding:16px 32px;background:var(--red-primary);color:var(--white);border:none;border-radius:12px;font-size:16px;font-weight:600;font-family:Outfit,sans-serif;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:10px}.grade-btn:hover{background:var(--red-dark);transform:translateY(-2px);box-shadow:0 10px 20px -10px #e5393580}.grade-btn:disabled{background:var(--gray-400);cursor:not-allowed;transform:none;box-shadow:none}.reset-btn{padding:16px 32px;background:var(--white);color:var(--gray-800);border:2px solid var(--gray-300);border-radius:12px;font-size:16px;font-weight:600;font-family:Outfit,sans-serif;cursor:pointer;transition:all .2s ease}.reset-btn:hover{border-color:var(--gray-600);background:var(--gray-100)}.results-summary{background:linear-gradient(135deg,var(--blue-primary),var(--blue-dark));border-radius:16px;padding:32px;margin-top:24px;color:var(--white);text-align:center}.results-score{font-family:Outfit,sans-serif;font-size:64px;font-weight:800;margin-bottom:8px}.results-label{font-size:18px;opacity:.9}.results-breakdown{display:flex;justify-content:center;gap:40px;margin-top:24px;padding-top:24px;border-top:1px solid rgba(255,255,255,.2)}.breakdown-item{text-align:center}.breakdown-value{font-family:Outfit,sans-serif;font-size:28px;font-weight:700}.breakdown-label{font-size:14px;opacity:.8}@media (max-width: 1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){.login-page-header{padding:0 20px;height:80px}.login-page-header .header-logo{height:60px}.login-page{padding-top:80px}}@media (max-width: 600px){.login-page-header{padding:0 16px;height:70px}.login-page-header .header-logo{height:50px}.login-page{padding-top:70px}}@media (max-width: 600px){.stats-grid,.workbooks-grid{grid-template-columns:1fr}.login-header{padding:16px}.login-header img{max-width:180px}.login-form-container{padding:24px}.login-form h2{font-size:22px}}.app.dark-mode{--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-tertiary: #242424;--text-primary: #ffffff;--text-secondary: #a0a0a0;--border-color: #333333}.app:not(.dark-mode){--bg-primary: #f5f5f5;--bg-secondary: #ffffff;--bg-tertiary: #fafafa;--text-primary: #1a1a1a;--text-secondary: #757575;--border-color: #eeeeee}.dark-mode body,.dark-mode .app{background:var(--bg-primary);color:var(--text-primary)}.dark-mode .sidebar{background:var(--bg-secondary);border-color:var(--border-color)}.dark-mode .main-content{background:var(--bg-primary)}.dark-mode .stat-card,.dark-mode .workbook-card,.dark-mode .data-table-container,.dark-mode .module-header,.dark-mode .module-item,.dark-mode .calendar-main,.dark-mode .calendar-sidebar,.dark-mode .syllabus-section,.dark-mode .cohort-overview,.dark-mode .modal{background:var(--bg-secondary);border-color:var(--border-color)}.dark-mode h1,.dark-mode h2,.dark-mode h3,.dark-mode h4,.dark-mode .stat-value,.dark-mode .user-name,.dark-mode .nav-item{color:var(--text-primary)}.dark-mode p,.dark-mode .stat-label,.dark-mode .user-email,.dark-mode .nav-section-title{color:var(--text-secondary)}.dark-mode .nav-item:hover,.dark-mode .user-profile:hover{background:var(--bg-tertiary)}.dark-mode .nav-item.active{background:#e5393533}.dark-mode .form-group input,.dark-mode .form-group select,.dark-mode .form-group textarea{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}.dark-mode .form-group select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%239E9E9E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}.dark-mode .form-group select:hover{background-color:var(--bg-secondary);border-color:var(--gray-600)}.dark-mode .form-group select option{background:var(--bg-secondary);color:var(--text-primary)}.dark-mode .recurring-options{background:var(--bg-tertiary);border-color:var(--border-color)}.dark-mode .recurring-options-header{border-color:var(--border-color)}.dark-mode .weekday-btn{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-secondary)}.dark-mode .weekday-btn:hover{border-color:var(--blue-primary);color:var(--blue-primary)}.dark-mode .weekday-btn.active{background:var(--blue-primary);border-color:var(--blue-primary);color:var(--white)}.dark-mode .recurring-preview{background:#4fc3f726;color:var(--blue-primary)}.dark-mode .toggle-switch{background:var(--gray-600)}.dark-mode .form-group input:focus,.dark-mode .form-group select:focus,.dark-mode .form-group textarea:focus{border-color:var(--blue-primary)}.dark-mode .data-table th{background:var(--bg-tertiary);color:var(--text-secondary)}.dark-mode .data-table td{border-color:var(--border-color);color:var(--text-primary)}.dark-mode .data-table tr:hover{background:var(--bg-tertiary)}.dark-mode .calendar-cell{background:var(--bg-secondary);border-color:var(--border-color)}.dark-mode .calendar-cell:hover{background:var(--bg-tertiary)}.dark-mode .calendar-cell.today{background:#4fc3f726}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;flex-wrap:wrap;gap:16px}.page-header h1{font-family:Outfit,sans-serif;font-size:32px;font-weight:700;margin-bottom:4px}.page-header p{color:var(--gray-600);font-size:16px}.btn-primary{padding:12px 24px;background:var(--red-primary);color:var(--white);border:none;border-radius:10px;font-size:14px;font-weight:600;font-family:Outfit,sans-serif;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.btn-primary:hover{background:var(--red-dark);transform:translateY(-1px)}.btn-secondary{padding:12px 24px;background:var(--white);color:var(--gray-800);border:2px solid var(--gray-300);border-radius:10px;font-size:14px;font-weight:600;font-family:Outfit,sans-serif;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{border-color:var(--gray-600);background:var(--gray-100)}.btn-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:16px}.btn-icon:hover{background:var(--gray-100)}.btn-icon.danger:hover{background:var(--error-light)}.btn-icon.small{width:28px;height:28px;font-size:14px}.btn-link{background:none;border:none;color:var(--blue-dark);font-size:14px;cursor:pointer;padding:8px 0;margin-bottom:16px}.btn-link:hover{text-decoration:underline}.data-table-container{background:var(--white);border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:16px 20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-600);background:var(--gray-100);border-bottom:1px solid var(--gray-200)}.data-table td{padding:16px 20px;border-bottom:1px solid var(--gray-200);font-size:14px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background:var(--gray-50)}.cohort-name-cell{display:flex;align-items:center;gap:12px}.cohort-name-cell.clickable{cursor:pointer;color:var(--blue-dark)}.cohort-name-cell.clickable:hover{text-decoration:underline}.table-icon{font-size:20px}.date-cell{color:var(--gray-600);white-space:nowrap}.enrollment-cell{display:flex;align-items:center;gap:12px}.enrollment-bar{flex:1;height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden;max-width:120px}.enrollment-fill{height:100%;background:linear-gradient(90deg,var(--blue-primary),var(--blue-dark));border-radius:4px;transition:width .3s ease}.enrollment-text{font-size:13px;color:var(--gray-600);min-width:50px}.action-buttons{display:flex;gap:4px}.status-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.status-badge.active{background:var(--success-light);color:#2e7d32}.status-badge.upcoming{background:var(--blue-light);color:var(--blue-dark)}.status-badge.inactive{background:var(--gray-200);color:var(--gray-600)}.status-badge.completed{background:#f3e5f5;color:#7b1fa2}.role-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}.role-badge.admin{background:#fff3e0;color:#e65100}.role-badge.student{background:var(--blue-light);color:var(--blue-dark)}.cohort-badge{padding:4px 10px;background:var(--gray-100);border-radius:6px;font-size:12px;color:var(--gray-800)}.cohort-badge.na{color:var(--gray-400);background:transparent}.user-cell{display:flex;align-items:center;gap:12px}.user-avatar.small{width:36px;height:36px;font-size:13px}.user-details{display:flex;flex-direction:column}.user-details .user-name{font-weight:600;font-size:14px}.user-details .user-email{font-size:12px;color:var(--gray-600)}.filters-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.search-input{position:relative;flex:1;max-width:320px}.search-input .search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:16px}.search-input input{width:100%;padding:12px 16px 12px 44px;border:2px solid var(--gray-200);border-radius:10px;font-size:14px;font-family:inherit;transition:all .2s ease}.search-input input:focus{outline:none;border-color:var(--blue-primary)}.filter-group{display:flex;gap:12px}.filter-group select{padding:12px 16px;border:2px solid var(--gray-200);border-radius:10px;font-size:14px;font-family:inherit;background:var(--white);cursor:pointer}.empty-state{text-align:center;padding:60px 20px}.empty-state.small{padding:30px 20px}.empty-state h2{font-family:Outfit,sans-serif;margin-bottom:8px}.empty-state p{color:var(--gray-600)}.empty-table-state{text-align:center;padding:40px 20px;color:var(--gray-600)}.modal{background:var(--white);border-radius:20px;padding:32px;max-width:480px;width:90%;max-height:90vh;overflow-y:auto}.modal.large{max-width:600px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-header h3{font-family:Outfit,sans-serif;font-size:22px;font-weight:700}.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--gray-100);border:none;border-radius:50%;font-size:24px;cursor:pointer;color:var(--gray-600)}.modal-close:hover{background:var(--gray-200)}.modal-description{color:var(--gray-600);margin-bottom:24px;font-size:14px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid var(--gray-200)}.form-select{width:100%;padding:14px 16px;border:2px solid var(--gray-200);border-radius:10px;font-size:16px;font-family:inherit;background:var(--white);cursor:pointer;transition:all .2s ease}.form-select:focus{outline:none;border-color:var(--blue-primary)}.form-group select{width:100%;padding:14px 44px 14px 16px;border:2px solid var(--gray-200);border-radius:10px;font-size:16px;font-family:inherit;background-color:var(--white);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23757575' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:20px;cursor:pointer;transition:all .2s ease;appearance:none;-webkit-appearance:none;-moz-appearance:none}.form-group select:hover{border-color:var(--gray-400);background-color:var(--gray-100)}.form-group select:focus{outline:none;border-color:var(--blue-primary);box-shadow:0 0 0 4px #4fc3f726;background-color:var(--white)}.form-group select option{padding:12px 16px;font-size:15px;background:var(--white);color:var(--gray-800)}.form-group select option:checked{background:var(--blue-light);color:var(--blue-dark)}.form-group select option:disabled{color:var(--gray-400);font-style:italic}.select-wrapper{position:relative}.select-wrapper .select-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:18px;pointer-events:none;z-index:1}.select-wrapper select{padding-left:42px}.form-group select.select-role{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23757575' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}.form-group select.select-status{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23757575' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}.form-group select.select-item-type option[value=video]{background:#e3f2fd}.form-group select.select-item-type option[value=assignment]{background:#fff3e0}.form-group select.select-item-type option[value=quiz]{background:#f3e5f5}.form-group select.select-item-type option[value=exam]{background:#ffebee}.form-group select.select-item-type option[value=workbook]{background:#e8f5e9}.form-group.select-enhanced label{display:flex;align-items:center;gap:8px}.form-group.select-enhanced label .label-icon{font-size:16px}.select-compact{padding:10px 36px 10px 14px!important;font-size:14px!important;border-radius:8px!important;background-size:16px!important;background-position:right 10px center!important}.select-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.recurring-options{background:var(--gray-100);border-radius:12px;padding:20px;margin-top:8px;border:2px solid var(--gray-200)}.recurring-options .form-group{margin-bottom:16px}.recurring-options .form-group:last-child{margin-bottom:0}.recurring-options-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--gray-200)}.recurring-options-header span{font-weight:600;color:var(--gray-800)}.weekday-selector{display:flex;gap:8px;flex-wrap:wrap}.weekday-btn{width:44px;height:44px;border:2px solid var(--gray-200);border-radius:10px;background:var(--white);font-size:13px;font-weight:600;color:var(--gray-600);cursor:pointer;transition:all .2s ease}.weekday-btn:hover{border-color:var(--blue-primary);color:var(--blue-primary)}.weekday-btn.active{background:var(--blue-primary);border-color:var(--blue-primary);color:var(--white)}.recurring-preview{background:var(--blue-light);border-radius:8px;padding:12px 16px;margin-top:16px;font-size:13px;color:var(--blue-dark);display:flex;align-items:center;gap:8px}.recurring-preview .preview-icon{font-size:16px}.toggle-wrapper{display:flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch{width:48px;height:26px;background:var(--gray-400);border-radius:13px;position:relative;transition:all .3s ease;flex-shrink:0}.toggle-switch:after{content:"";position:absolute;width:22px;height:22px;background:var(--white);border-radius:50%;top:2px;left:2px;transition:all .3s ease;box-shadow:0 2px 4px #0003}.toggle-switch.active{background:var(--blue-primary)}.toggle-switch.active:after{left:24px}.toggle-label{font-weight:500;color:var(--gray-800)}.master-template-notice{display:flex;align-items:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:2px solid var(--blue-primary);border-radius:10px;color:var(--blue-dark);font-weight:600;font-size:14px;margin-top:12px}.master-template-notice span{font-size:18px}.dark-mode .master-template-notice{background:#4fc3f726;border-color:var(--blue-primary);color:var(--blue-primary)}.cohort-specific-notice{display:flex;align-items:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#fff3e0,#ffe0b2);border:2px solid #FF9800;border-radius:10px;color:#e65100;font-weight:600;font-size:14px;margin-top:12px}.cohort-specific-notice span{font-size:18px}.dark-mode .cohort-specific-notice{background:#ff980026;border-color:#ff9800;color:#ffb74d}.master-calendar-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--blue-light);color:var(--blue-dark);border-radius:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.custom-event-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--success-light);color:var(--success);border-radius:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.scope-toggle-group{display:grid;grid-template-columns:1fr 1fr;gap:12px}.scope-btn{display:flex;align-items:center;gap:12px;padding:16px;border:2px solid var(--gray-200);border-radius:12px;background:var(--white);cursor:pointer;transition:all .2s ease;text-align:left}.scope-btn:hover{border-color:var(--gray-400);background:var(--gray-100)}.scope-btn.active{border-color:var(--blue-primary);background:var(--blue-light)}.scope-btn span{font-size:24px}.scope-btn div{display:flex;flex-direction:column;gap:2px}.scope-btn strong{font-size:14px;color:var(--gray-800)}.scope-btn small{font-size:12px;color:var(--gray-600)}.scope-btn.active strong,.scope-btn.active small{color:var(--blue-dark)}.dark-mode .scope-btn{background:var(--bg-tertiary);border-color:var(--border-color)}.dark-mode .scope-btn:hover{background:var(--bg-secondary)}.dark-mode .scope-btn.active{background:#4fc3f726;border-color:var(--blue-primary)}.dark-mode .scope-btn strong{color:var(--text-primary)}.dark-mode .scope-btn small{color:var(--text-secondary)}.dark-mode .scope-btn.active strong,.dark-mode .scope-btn.active small{color:var(--blue-primary)}.upcoming-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.upcoming-title .master-calendar-badge,.upcoming-title .custom-event-badge{font-size:9px;padding:2px 6px}.form-group textarea{width:100%;padding:14px 16px;border:2px solid var(--gray-200);border-radius:10px;font-size:16px;font-family:inherit;resize:vertical;transition:all .2s ease}.form-group textarea:focus{outline:none;border-color:var(--blue-primary)}.form-error{background:var(--error-light);color:#b71c1c;padding:12px 16px;border-radius:10px;margin-bottom:20px;font-size:14px}.info-box{display:flex;gap:12px;padding:16px;background:var(--blue-light);border-radius:10px;margin-top:16px}.info-box .info-icon{font-size:20px}.info-box p{font-size:13px;color:var(--blue-dark);margin:0}.demo-credentials{margin-top:24px;padding:16px;background:var(--gray-100);border-radius:10px;font-size:13px}.demo-credentials p{margin:4px 0;color:var(--gray-600)}.sidebar-nav{flex:1;overflow-y:auto}.nav-section{margin-bottom:12px}.nav-section-title{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--gray-600)}.nav-section-title.expandable{cursor:pointer;border-radius:6px}.nav-section-title.expandable:hover{background:var(--gray-100)}.expand-arrow{font-size:10px;transition:transform .2s ease}.expand-arrow.expanded{transform:rotate(90deg)}.nav-items{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:13px;font-weight:500;text-decoration:none;color:inherit}.nav-item:hover{background:var(--gray-100)}.nav-item.active{background:var(--red-light);color:var(--red-primary)}.nav-item.hidden-item{opacity:.6}.nav-icon{font-size:18px;width:24px;text-align:center}.nav-item-content{flex:1;display:flex;justify-content:space-between;align-items:center;gap:8px}.nav-item-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hidden-badge{font-size:10px;padding:2px 6px;background:var(--gray-200);border-radius:4px;color:var(--gray-600)}.completion-check{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--success);color:#fff;border-radius:50%;font-size:11px;font-weight:700}.progress-indicator{font-size:10px;padding:2px 6px;background:var(--blue-light);color:var(--blue-dark);border-radius:4px;font-weight:600}.external-arrow{font-size:12px;color:var(--gray-400)}.theme-toggle{display:flex;align-items:center;gap:10px;padding:8px 10px;margin-bottom:8px;border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:13px;font-weight:500}.theme-toggle:hover{background:var(--gray-100)}.sidebar-footer .user-profile{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer}.sidebar-footer .user-info{flex:1}.sidebar-footer .user-role{font-size:12px;color:var(--gray-600)}.logout-icon{opacity:.5;font-size:16px}.calendar-view{max-width:1400px}.calendar-layout{display:grid;grid-template-columns:1fr 320px;gap:24px}.calendar-main{background:var(--white);border-radius:16px;padding:24px;box-shadow:0 1px 3px #0000000d}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.calendar-title{display:flex;align-items:center;gap:16px}.calendar-title h2{font-family:Outfit,sans-serif;font-size:24px;font-weight:700}.today-btn{padding:6px 12px;background:var(--gray-100);border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.today-btn:hover{background:var(--gray-200)}.nav-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--gray-100);border:none;border-radius:10px;font-size:20px;cursor:pointer;transition:all .2s ease}.nav-btn:hover{background:var(--gray-200)}.nav-btn:disabled{opacity:.4;cursor:not-allowed}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-header-cell{text-align:center;padding:12px;font-size:12px;font-weight:600;text-transform:uppercase;color:var(--gray-600)}.calendar-cell{min-height:100px;padding:8px;background:var(--gray-50);border-radius:10px;cursor:pointer;transition:all .2s ease}.calendar-cell.empty{background:transparent;cursor:default}.calendar-cell:not(.empty):hover{background:var(--gray-100)}.calendar-cell.today{background:var(--blue-light);border:2px solid var(--blue-primary)}.calendar-cell.has-events{background:var(--white);box-shadow:0 1px 2px #0000000d}.cell-date{font-weight:600;font-size:14px;margin-bottom:6px}.cell-events{display:flex;flex-direction:column;gap:4px}.cell-event{padding:3px 6px;border-radius:4px;font-size:11px;font-weight:500;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.more-events{font-size:11px;color:var(--gray-600);padding:2px 0}.calendar-legend{display:flex;gap:24px;margin-top:20px;padding-top:20px;border-top:1px solid var(--gray-200);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--gray-600)}.legend-dot{width:12px;height:12px;border-radius:4px}.calendar-sidebar{background:var(--white);border-radius:16px;padding:24px;box-shadow:0 1px 3px #0000000d;height:fit-content}.calendar-sidebar h3{font-family:Outfit,sans-serif;font-size:18px;font-weight:600;margin-bottom:16px}.upcoming-list{display:flex;flex-direction:column;gap:12px}.upcoming-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--gray-50);border-radius:10px}.upcoming-dot{width:10px;height:10px;border-radius:50%;margin-top:4px;flex-shrink:0}.upcoming-info{flex:1}.upcoming-title{font-weight:500;font-size:14px;margin-bottom:2px}.upcoming-date{font-size:12px;color:var(--gray-600)}.cohort-selector{background:var(--white);padding:12px 16px;border-radius:12px;margin-bottom:16px;display:flex;align-items:center;gap:12px}.cohort-selector label{margin:0;font-weight:500;font-size:14px;white-space:nowrap}.cohort-selector select{flex:1;max-width:300px;padding:8px 12px;border:2px solid var(--gray-200);border-radius:8px;font-size:14px;font-family:inherit}.module-view{max-width:1000px}.module-header{background:var(--white);border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000000d;overflow:visible}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--gray-600);margin-bottom:16px}.breadcrumb span{cursor:pointer}.breadcrumb span:hover:not(.separator):not(.current){color:var(--blue-dark);text-decoration:underline}.breadcrumb .separator{cursor:default}.breadcrumb .current{color:var(--black);cursor:default}.header-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.header-row h1{font-family:Outfit,sans-serif;font-size:28px;font-weight:700}.header-title-section{display:flex;align-items:center;gap:16px}.module-completion-badge{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--gray-100);border-radius:20px;font-size:13px;font-weight:500;color:var(--gray-600)}.module-completion-badge.complete{background:var(--success-light);color:var(--success)}.module-completion-badge svg{width:14px;height:14px}.visibility-warning{margin-top:16px;padding:12px 16px;background:#fff3e0;border-radius:10px;font-size:14px;color:#e65100;display:flex;align-items:center;gap:8px}.module-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.week-indicator{font-weight:500;color:var(--gray-600)}.module-items{display:flex;flex-direction:column;gap:16px}.module-item{background:var(--white);border-radius:16px;padding:20px;box-shadow:0 1px 3px #0000000d;cursor:pointer;transition:all .2s ease}.module-item:hover{box-shadow:0 4px 12px #0000001a}.module-item.completed{border-left:4px solid var(--success)}.module-item.expanded{background:var(--gray-50)}.module-item.collapsed .item-content{display:none}.completion-checkmark{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.completion-checkmark-wrapper{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:8px 12px;border-radius:8px;transition:background .2s ease;position:relative;z-index:10;min-width:60px}.completion-checkmark-wrapper:hover{background:#4caf501a}.completion-checkmark-wrapper:active{transform:scale(.95)}.completion-label{font-size:10px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.3px}.completion-label.complete{color:var(--success)}.completion-checkmark.clickable{cursor:pointer}.completion-checkmark.clickable:hover{transform:scale(1.1);box-shadow:0 2px 8px #00000026}.completion-checkmark.clickable.incomplete:hover{background:var(--gray-300)}.completion-checkmark.clickable.incomplete:hover .empty-circle{border-color:var(--success)}.completion-checkmark.complete{background:var(--success);color:#fff}.completion-checkmark.clickable.complete:hover{background:var(--success-dark, #388E3C)}.completion-checkmark.complete svg{width:16px;height:16px}.completion-checkmark.incomplete{background:var(--gray-200)}.completion-checkmark .empty-circle{width:14px;height:14px;border:2px solid var(--gray-400);border-radius:50%}.module-progress-bar{margin-top:16px;padding:16px;background:var(--gray-100);border-radius:12px}.module-progress-bar .progress-info{display:flex;justify-content:space-between;margin-bottom:10px;font-size:14px;font-weight:500;color:var(--gray-700)}.module-progress-bar .progress-track{height:12px;background:var(--gray-300);border-radius:6px;overflow:hidden}.module-progress-bar .progress-fill{height:100%;background:linear-gradient(90deg,var(--success),#66BB6A);border-radius:6px;transition:width .3s ease}.module-instructions{padding:12px 16px;background:var(--blue-light);border-radius:8px;margin-bottom:16px}.module-instructions p{font-size:14px;color:var(--blue-dark);margin:0}.item-header{display:flex;align-items:flex-start;gap:16px}.item-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--gray-100);border-radius:12px;font-size:24px}.item-info{flex:1}.item-type{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-600);margin-bottom:4px}.item-info h3{font-family:Outfit,sans-serif;font-size:18px;font-weight:600}.item-actions{display:flex;gap:4px}.item-content{margin-top:16px;padding-top:16px;border-top:1px solid var(--gray-200)}.video-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;background:var(--gray-100);border-radius:12px;text-align:center}.video-placeholder.empty{background:var(--gray-50);border:2px dashed var(--gray-300)}.video-placeholder span{font-size:48px;margin-bottom:12px}.video-placeholder p{color:var(--gray-600);margin-bottom:8px}.video-placeholder a{color:var(--blue-dark);text-decoration:none}.video-placeholder a:hover{text-decoration:underline}.duration-badge{display:inline-block;margin-top:12px;padding:4px 10px;background:var(--gray-100);border-radius:6px;font-size:13px;color:var(--gray-600)}.assessment-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.meta-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--gray-100);border-radius:6px;font-size:13px;color:var(--gray-700)}.text-content p{font-size:15px;line-height:1.7;color:var(--gray-700)}.file-upload{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;background:var(--gray-50);border:2px dashed var(--gray-300);border-radius:12px;cursor:pointer;transition:all .2s ease;position:relative}.file-upload:hover{border-color:var(--blue-primary);background:var(--blue-light)}.file-upload span{font-size:36px;margin-bottom:12px}.file-upload p{color:var(--gray-600);font-size:14px}.file-upload input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.syllabus-view{max-width:1000px}.syllabus-section{background:var(--white);border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000000d}.syllabus-section h2{font-family:Outfit,sans-serif;font-size:20px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:12px}.pdf-list{display:flex;flex-direction:column;gap:12px}.pdf-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--gray-50);border-radius:10px}.pdf-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--red-light);border-radius:10px;font-size:24px}.pdf-info{flex:1}.pdf-title{font-weight:600;font-size:15px;margin-bottom:4px}.pdf-meta{font-size:12px;color:var(--gray-600)}.pdf-actions{display:flex;gap:8px}.summary-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--gray-50);border-radius:10px;margin-bottom:12px}.summary-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:20px}.summary-icon.lecture{background:#4fc3f733}.summary-icon.assignment{background:#ff704333}.summary-icon.quiz{background:#7e57c233}.summary-icon.exam{background:#e5393533}.summary-info{flex:1}.summary-title{font-weight:600;font-size:15px;margin-bottom:2px}.summary-date{font-size:13px;color:var(--gray-600)}.cohort-view{max-width:1200px}.cohort-overview{background:var(--white);border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000000d}.cohort-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}.cohort-info-item{display:flex;align-items:flex-start;gap:12px}.cohort-info-icon{font-size:24px}.cohort-info-label{font-size:12px;text-transform:uppercase;color:var(--gray-600);margin-bottom:4px}.cohort-info-value{font-weight:600;font-size:16px}.weeks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.week-card{background:var(--white);border-radius:16px;padding:20px;box-shadow:0 1px 3px #0000000d;cursor:pointer;transition:all .3s ease;border:2px solid transparent}.week-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px -8px #00000026;border-color:var(--gray-200)}.week-card.hidden{opacity:.6}.week-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.week-number{font-family:Outfit,sans-serif;font-size:24px;font-weight:700;color:var(--red-primary)}.week-card h3{font-family:Outfit,sans-serif;font-size:16px;font-weight:600;margin-bottom:12px}.week-items-preview{display:flex;flex-wrap:wrap;gap:8px}.week-item-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--gray-100);border-radius:6px;font-size:12px}.admin-controls{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--gray-200)}.admin-controls button{flex:1;padding:8px 12px;border:none;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.admin-controls .toggle-btn{background:var(--gray-100);color:var(--gray-700)}.admin-controls .toggle-btn:hover{background:var(--gray-200)}.admin-controls .schedule-btn{background:var(--blue-light);color:var(--blue-dark)}.admin-controls .schedule-btn:hover{background:var(--blue-primary);color:var(--white)}.student-dashboard{max-width:1000px}.welcome-banner{background:linear-gradient(135deg,var(--red-primary),var(--red-dark));border-radius:16px;padding:32px;color:var(--white);margin-bottom:24px}.welcome-banner h1{font-family:Outfit,sans-serif;font-size:28px;font-weight:700;margin-bottom:8px}.welcome-banner p{opacity:.9;font-size:16px}.quick-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}.quick-stat{background:#ffffff26;padding:16px;border-radius:12px;text-align:center}.quick-stat-value{font-family:Outfit,sans-serif;font-size:28px;font-weight:700;margin-bottom:4px}.quick-stat-label{font-size:13px;opacity:.9}@media (max-width: 1200px){.calendar-layout{grid-template-columns:1fr}.calendar-sidebar{display:none}}@media (max-width: 900px){.filters-bar{flex-direction:column;align-items:stretch}.search-input{max-width:none}.filter-group{flex-wrap:wrap}.form-row{grid-template-columns:1fr}.cohort-info-grid{grid-template-columns:1fr 1fr}.weeks-grid,.quick-stats{grid-template-columns:1fr}}@media (max-width: 600px){.page-header{flex-direction:column;align-items:stretch}.page-header .btn-primary{width:100%;justify-content:center}.calendar-grid{gap:4px}.calendar-cell{min-height:70px;padding:4px;position:relative}.cell-date{font-size:12px;margin-bottom:4px}.cell-events{display:flex;flex-wrap:wrap;gap:3px}.cell-event{width:8px;height:8px;min-width:8px;padding:0;border-radius:50%;font-size:0;overflow:hidden}.cell-event .module-indicator{display:none}.more-events{font-size:9px;width:100%;text-align:center}.calendar-legend{display:none}.modal{padding:20px;margin:16px;max-height:calc(100vh - 32px)}.action-buttons{flex-direction:column}}.cohort-header{background:var(--white);border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000000d}.dark-mode .cohort-header{background:var(--bg-secondary)}.cohort-header h1{font-family:Outfit,sans-serif;font-size:32px;font-weight:700;margin-bottom:12px}.cohort-meta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:16px}.meta-item{font-size:14px;color:var(--gray-600)}.lecture-schedule{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--blue-light);border-radius:10px;font-size:14px;color:var(--blue-dark)}.schedule-icon{font-size:18px}.tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--gray-200);padding-bottom:8px}.tab{padding:12px 20px;background:transparent;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px;color:var(--gray-600)}.tab:hover{background:var(--gray-100)}.tab.active{background:var(--red-light);color:var(--red-primary)}.modules-list{display:flex;flex-direction:column;gap:12px}.module-row{display:flex;justify-content:space-between;align-items:center;padding:20px;background:var(--white);border-radius:12px;box-shadow:0 1px 3px #0000000d;cursor:pointer;transition:all .2s ease}.dark-mode .module-row{background:var(--bg-secondary)}.module-row:hover{transform:translate(4px);box-shadow:0 4px 12px #0000001a}.module-row.hidden-module{opacity:.6}.module-row-left{display:flex;align-items:center;gap:16px}.module-row .week-number{font-family:Outfit,sans-serif;font-size:14px;font-weight:700;color:#fff;padding:10px 14px;background:linear-gradient(135deg,var(--red-primary),var(--red-dark));border-radius:8px;min-width:90px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}.module-row .week-number .modules-available{font-size:10px;font-weight:500;opacity:.9}.module-info h3{font-size:16px;font-weight:600;margin-bottom:4px}.module-meta{display:flex;gap:12px;font-size:13px;color:var(--gray-600)}.module-meta .scheduled{color:var(--blue-dark)}.module-row-right{display:flex;align-items:center;gap:16px}.visibility-badge{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:500}.visibility-badge.visible{background:var(--success-light);color:#2e7d32}.visibility-badge.hidden{background:var(--gray-200);color:var(--gray-600)}.module-actions{display:flex;gap:4px}.students-section{background:var(--white);border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.dark-mode .students-section{background:var(--bg-secondary)}.student-cell{display:flex;align-items:center;gap:12px}.student-cell .avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--blue-primary),var(--blue-dark));border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);font-size:13px;font-weight:600}.empty-icon{font-size:48px;display:block;margin-bottom:12px}.info-card{background:var(--white);border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000000d}.dark-mode .info-card{background:var(--bg-secondary)}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.info-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-600)}.info-value{font-weight:600;font-size:15px}.documents-grid{display:flex;flex-direction:column;gap:12px}.document-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--gray-50);border-radius:12px;transition:all .2s ease}.dark-mode .document-card{background:var(--bg-tertiary)}.document-card:hover{background:var(--gray-100)}.document-icon{font-size:32px}.document-info{flex:1}.document-info h4{font-weight:600;margin-bottom:4px}.document-info p{font-size:13px;color:var(--gray-600);margin-bottom:2px}.upload-date{font-size:12px;color:var(--gray-400)}.document-actions{display:flex;gap:8px}.btn-secondary.small{padding:8px 14px;font-size:13px}.section-description{color:var(--gray-600);margin-bottom:20px;font-size:14px}.type-badge{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}.type-badge.assignment{background:#ff704333;color:#e64a19}.type-badge.quiz{background:#7e57c233;color:#5e35b1}.type-badge.exam{background:#e5393533;color:#c62828}.clickable{cursor:pointer}.clickable:hover{background:var(--gray-100)}.week-badge{padding:4px 10px;background:var(--gray-100);border-radius:6px;font-size:12px;font-weight:600}.assignment-cell{display:flex;align-items:center;gap:8px}.total-points{padding:16px 20px;background:var(--gray-100);border-radius:10px;margin-top:16px;text-align:right;font-size:14px}.weekly-overview{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.week-card{background:var(--gray-50);border-radius:12px;padding:20px;cursor:pointer;transition:all .2s ease}.dark-mode .week-card{background:var(--bg-tertiary)}.week-card:hover{background:var(--gray-100);transform:translateY(-2px)}.week-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.week-header .week-number{font-size:12px;font-weight:700;color:var(--red-primary)}.week-card h4{font-size:15px;font-weight:600;margin-bottom:12px}.week-items{list-style:none;padding:0;margin:0}.week-items li{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;color:var(--gray-700);border-top:1px solid var(--gray-200)}.week-items li:first-child{border-top:none}.week-items .item-icon{font-size:14px}.week-items .more{color:var(--gray-500);font-style:italic}.selected-file{margin-top:8px;font-size:13px;color:var(--gray-600)}.course-banner{background:linear-gradient(135deg,var(--red-primary),var(--red-dark));border-radius:16px;padding:24px;color:var(--white);margin-bottom:24px;display:flex;justify-content:space-between;align-items:center}.banner-content{display:flex;align-items:center;gap:16px}.banner-icon{font-size:48px}.banner-info h3{font-family:Outfit,sans-serif;font-size:24px;font-weight:700;margin-bottom:4px}.banner-info p{opacity:.9;font-size:14px}.banner-stats{display:flex;gap:24px}.banner-stat{text-align:center;padding:12px 24px;background:#ffffff26;border-radius:10px;display:flex;flex-direction:column}.banner-stat .stat-value{font-family:Outfit,sans-serif;font-size:24px;font-weight:700;color:#fff;line-height:1.2}.banner-stat .stat-label{font-size:12px;color:#ffffffe6;margin-top:4px}.stats-grid.compact{grid-template-columns:repeat(3,1fr)}.stats-grid.small .stat-card{padding:20px}.stats-grid.small .stat-value{font-size:28px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.dashboard-section{background:var(--white);border-radius:16px;padding:24px;box-shadow:0 1px 3px #0000000d}.dark-mode .dashboard-section{background:var(--bg-secondary)}.dashboard-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dashboard-section .section-header h2{font-family:Outfit,sans-serif;font-size:18px;font-weight:600}.link-btn{background:none;border:none;color:var(--blue-dark);font-size:13px;font-weight:500;cursor:pointer}.link-btn:hover{text-decoration:underline}.events-list{display:flex;flex-direction:column;gap:12px}.event-card{display:flex;align-items:center;gap:14px;padding:14px;background:var(--gray-50);border-radius:10px;border-left:4px solid var(--gray-400)}.dark-mode .event-card{background:var(--bg-tertiary)}.event-card.lecture{border-color:#4fc3f7}.event-card.assignment{border-color:#ff7043}.event-card.quiz{border-color:#7e57c2}.event-card.exam{border-color:#e53935}.event-icon{font-size:24px}.event-info{flex:1}.event-title{font-weight:500;font-size:14px;margin-bottom:2px}.event-meta{font-size:12px;color:var(--gray-600)}.modules-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.module-card{padding:16px;background:var(--gray-50);border-radius:12px;cursor:pointer;transition:all .2s ease;border:2px solid transparent}.dark-mode .module-card{background:var(--bg-tertiary)}.module-card:hover{background:var(--gray-100);border-color:var(--gray-300)}.module-card.current{border-color:var(--red-primary);background:var(--red-light)}.module-card.locked{opacity:.5;cursor:not-allowed}.module-card .module-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.current-badge{font-size:10px;padding:3px 8px;background:var(--red-primary);color:var(--white);border-radius:4px}.locked-badge{font-size:10px;color:var(--gray-500)}.module-card h4{font-size:14px;font-weight:600;margin-bottom:8px}.module-card .module-meta{font-size:12px;color:var(--gray-600)}@media (max-width: 900px){.dashboard-grid{grid-template-columns:1fr}.course-banner{flex-direction:column;text-align:center}.banner-content{flex-direction:column}.banner-stats{margin-top:20px;width:100%;justify-content:center}.info-grid{grid-template-columns:1fr 1fr}.stats-grid.compact,.modules-grid{grid-template-columns:1fr}}@media (max-width: 600px){.info-grid{grid-template-columns:1fr}.cohort-meta{flex-direction:column;align-items:flex-start;gap:8px}.tabs{flex-wrap:wrap}.banner-stats{flex-direction:column;gap:12px}}.sign-out-btn{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:6px 0;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;color:#ef4444;cursor:pointer;transition:all .2s ease;font-size:13px}.sign-out-btn:hover{background:#ef444433;border-color:#ef444466}.dark-mode .sign-out-btn{background:#ef444426;border-color:#ef44444d}.dark-mode .sign-out-btn:hover{background:#ef444440}.nav-item.add-resource{border:1px dashed #d1d5db;background:transparent;color:#6b7280;margin-top:4px}.nav-item.add-resource:hover{border-color:#3b82f6;background:#3b82f60d;color:#3b82f6}.dark-mode .nav-item.add-resource{border-color:#4b5563;color:#9ca3af}.dark-mode .nav-item.add-resource:hover{border-color:#3b82f6;color:#3b82f6}.delete-resource-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:none;background:#ef44441a;color:#ef4444;border-radius:50%;font-size:14px;line-height:1;cursor:pointer;opacity:0;transition:all .2s ease}.nav-item.external{position:relative}.nav-item.external:hover .delete-resource-btn{opacity:1}.delete-resource-btn:hover{background:#ef4444;color:#fff}.icon-picker{display:flex;flex-wrap:wrap;gap:8px}.icon-option{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:2px solid #e5e7eb;border-radius:8px;background:#fff;font-size:20px;cursor:pointer;transition:all .2s ease}.icon-option:hover{border-color:#3b82f6;background:#3b82f60d}.icon-option.selected{border-color:#3b82f6;background:#3b82f61a;box-shadow:0 0 0 2px #3b82f633}.dark-mode .icon-option{background:#374151;border-color:#4b5563}.dark-mode .icon-option:hover,.dark-mode .icon-option.selected{border-color:#3b82f6;background:#3b82f633}.form-success{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#059669;padding:12px;border-radius:8px;margin-bottom:16px}.success-message{color:#059669;font-size:.875rem;margin-top:8px}.error-message{color:#ef4444;font-size:.875rem;margin-top:8px}.password-reset-section{margin:16px 0;padding-top:16px;border-top:1px solid #e5e7eb}.dark-mode .password-reset-section{border-top-color:#374151}.forgot-link{font-size:.875rem;color:#6b7280;margin-top:8px;display:inline-block}.forgot-link:hover{color:#3b82f6}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.info-banner{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:8px;padding:12px 16px;color:#1e40af;font-size:.875rem;margin:16px 0}.dark-mode .info-banner{background:#3b82f626;border-color:#3b82f64d;color:#93c5fd}.empty-cell{text-align:center;padding:32px!important;color:#6b7280}.empty-cell .btn-link{display:block;margin-top:8px;color:#3b82f6;cursor:pointer;background:none;border:none;font-size:inherit}.empty-cell .btn-link:hover{text-decoration:underline}.data-table .btn-icon.small.danger{padding:4px 8px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:4px;color:#ef4444;cursor:pointer;transition:all .2s ease}.data-table .btn-icon.small.danger:hover{background:#ef4444;color:#fff}textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;resize:vertical;font-family:inherit}textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.dark-mode textarea{background:#374151;border-color:#4b5563;color:#f9fafb}.master-modules{padding:24px}.master-modules .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.master-modules .page-header h1{margin:0 0 8px;font-size:28px}.master-modules .page-header p{margin:0;color:#6b7280}.info-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1e40af;font-size:14px}.dark-mode .info-banner{background:#1e3a5f;border-color:#2563eb;color:#93c5fd}.modules-accordion{display:flex;flex-direction:column;gap:12px}.module-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.dark-mode .module-card{background:#1f2937;border-color:#374151}.module-card-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;cursor:pointer;transition:background .15s}.module-card-header:hover{background:#f9fafb}.dark-mode .module-card-header:hover{background:#374151}.module-card-left{display:flex;align-items:center;gap:12px}.module-card-left .expand-icon{font-size:12px;color:#9ca3af;transition:transform .2s}.module-card-left .expand-icon.expanded{transform:rotate(90deg)}.module-card-info h3{margin:0 0 4px;font-size:16px;font-weight:600}.module-card-info .item-count{font-size:13px;color:#6b7280}.module-card-right{display:flex;align-items:center;gap:8px}.module-card-right .edit-module-btn,.module-card-right .schedule-btn{opacity:0;transition:opacity .15s;padding:6px 8px;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer}.module-card-header:hover .edit-module-btn,.module-card-header:hover .schedule-btn{opacity:1}.edit-module-btn:hover,.schedule-btn:hover{background:#f3f4f6;border-color:#d1d5db}.dark-mode .edit-module-btn:hover,.dark-mode .schedule-btn:hover{background:#374151;border-color:#4b5563}.btn-visibility{padding:6px 12px;border-radius:16px;font-size:12px;font-weight:500;border:none;cursor:pointer;transition:all .15s}.btn-visibility.visible{background:#dcfce7;color:#166534}.btn-visibility.visible:hover{background:#bbf7d0}.btn-visibility.hidden{background:#fef3c7;color:#92400e}.btn-visibility.hidden:hover{background:#fde68a}.dark-mode .btn-visibility.visible{background:#166534;color:#dcfce7}.dark-mode .btn-visibility.hidden{background:#78350f;color:#fef3c7}.scheduled-date{display:block;font-size:11px;color:#7c3aed;margin-top:2px}.dark-mode .scheduled-date{color:#a78bfa}.schedule-preview{padding:12px;background:#f0fdf4;border-radius:8px;font-size:14px;color:#166534;margin:12px 0}.schedule-preview .schedule-example{font-size:12px;color:#6b7280;margin-top:8px;margin-bottom:0}.dark-mode .schedule-preview{background:#14532d;color:#bbf7d0}.dark-mode .schedule-preview .schedule-example{color:#9ca3af}.schedule-label{font-weight:500;margin-bottom:12px}.btn-danger-outline{background:transparent;border:1px solid #dc2626;color:#dc2626;padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .15s;margin-right:auto}.btn-danger-outline:hover{background:#fef2f2}.dark-mode .btn-danger-outline:hover{background:#450a0a}.timezone-notice{font-size:12px;color:#6b7280;margin-top:4px}.dark-mode .timezone-notice{color:#9ca3af}.cell-event.from-module{position:relative}.cell-event .module-indicator{font-size:10px;margin-right:2px}.legend-divider{color:#d1d5db;margin:0 4px}.dark-mode .legend-divider{color:#4b5563}.module-event-badge{font-size:12px;margin-left:4px}.week-indicator{color:#9ca3af;font-size:11px}.module-card-right .visibility-badge{font-size:12px;padding:4px 10px;border-radius:12px}.visibility-badge.visible{background:#dcfce7;color:#166534}.visibility-badge.hidden{background:#fef3c7;color:#92400e}.dark-mode .visibility-badge.visible{background:#166534;color:#dcfce7}.dark-mode .visibility-badge.hidden{background:#78350f;color:#fef3c7}.module-card-content{border-top:1px solid #e5e7eb;padding:16px 20px;background:#fafafa}.dark-mode .module-card-content{border-color:#374151;background:#111827}.empty-items{text-align:center;padding:24px;color:#9ca3af}.items-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.item-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;transition:all .15s}.dark-mode .item-row{background:#1f2937;border-color:#374151}.item-row:hover{border-color:#d1d5db;box-shadow:0 1px 3px #0000000d}.dark-mode .item-row:hover{border-color:#4b5563}.item-row-left{display:flex;align-items:center;gap:12px}.item-row .item-order{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#f3f4f6;border-radius:6px;font-size:12px;font-weight:600;color:#6b7280}.dark-mode .item-row .item-order{background:#374151;color:#9ca3af}.item-row .item-icon{font-size:18px}.item-row .item-info{display:flex;flex-direction:column;gap:2px}.item-row .item-title{font-weight:500;font-size:14px}.item-row .item-meta{display:flex;gap:12px;align-items:center}.item-row .item-type{font-size:12px;color:#9ca3af}.item-row .item-day{font-size:11px;color:#6b7280;background:#f3f4f6;padding:2px 8px;border-radius:4px}.item-row .item-day.missing{color:#dc2626;background:#fef2f2}.dark-mode .item-row .item-day{background:#374151;color:#9ca3af}.dark-mode .item-row .item-day.missing{background:#7f1d1d;color:#fca5a5}.required{color:#dc2626}.item-row-actions{display:flex;gap:8px;opacity:0;transition:opacity .15s}.item-row:hover .item-row-actions{opacity:1}.item-row-actions .btn-icon{padding:6px 8px;font-size:14px}.item-row-actions .btn-icon.danger:hover{background:#fee2e2}.dark-mode .item-row-actions .btn-icon.danger:hover{background:#7f1d1d}.btn-add-item{width:100%;padding:12px;background:transparent;border:2px dashed #d1d5db;border-radius:8px;color:#6b7280;font-size:14px;cursor:pointer;transition:all .15s}.btn-add-item:hover{border-color:#dc2626;color:#dc2626;background:#fef2f2}.dark-mode .btn-add-item{border-color:#4b5563;color:#9ca3af}.dark-mode .btn-add-item:hover{border-color:#dc2626;color:#dc2626;background:#dc26261a}.form-hint{font-size:12px;color:#9ca3af;margin-top:4px}.input-disabled{background:#f3f4f6;color:#6b7280;cursor:not-allowed}.dark-mode .input-disabled{background:#374151;color:#9ca3af}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:400}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.btn-secondary{background:#fff;border:1px solid #d1d5db;color:#374151;padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .15s}.btn-secondary:hover{background:#f9fafb;border-color:#9ca3af}.dark-mode .btn-secondary{background:#374151;border-color:#4b5563;color:#e5e7eb}.dark-mode .btn-secondary:hover{background:#4b5563}.master-badge{display:inline-block;margin-left:8px;padding:2px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#7c3aed;background-color:#ede9fe;border-radius:4px;vertical-align:middle}.dark .master-badge{color:#a78bfa;background-color:#a78bfa26}.document-card.master-document{border-left:3px solid #7c3aed}.dark .document-card.master-document{border-left-color:#a78bfa}.document-card.master-document{background:linear-gradient(135deg,rgba(124,58,237,.03) 0%,transparent 100%)}.dark .document-card.master-document{background:linear-gradient(135deg,rgba(167,139,250,.05) 0%,transparent 100%)}.live-lecture-banner{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-radius:12px;margin-bottom:20px;animation:slideDown .3s ease-out}.live-lecture-banner.live{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff}.live-lecture-banner.upcoming{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff}.live-banner-content{display:flex;align-items:center;gap:16px}.live-indicator{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#fff3;border-radius:20px}.pulse-dot{width:10px;height:10px;background:#fff;border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.live-text,.countdown-text{font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.countdown-icon{font-size:16px}.live-info{display:flex;flex-direction:column;gap:2px}.live-title{font-weight:600;font-size:16px}.live-time{font-size:13px;opacity:.9}.btn-join-lecture{padding:10px 20px;background:#fff;color:#1f2937;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-join-lecture:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.next-due-callout{display:flex;align-items:center;gap:16px;padding:16px 20px;background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #2563eb;border-radius:8px;margin-bottom:20px}.next-due-callout.overdue{background:#fef2f2;border-color:#fecaca;border-left-color:#991b1b;animation:pulse-urgent 2s infinite}@keyframes pulse-urgent{0%,to{opacity:1}50%{opacity:.85}}.next-due-callout.due-today{background:#fef2f2;border-color:#fecaca;border-left-color:#dc2626}.next-due-callout.due-tomorrow{background:#fffbeb;border-color:#fde68a;border-left-color:#f59e0b}.next-due-callout.due-soon{background:#eff6ff;border-color:#bfdbfe;border-left-color:#2563eb}.due-badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px;margin-left:8px}.due-badge.overdue{background:#991b1b;color:#fff}.due-badge.due-today{background:#dc2626;color:#fff}.due-badge.due-tomorrow{background:#f59e0b;color:#fff}.due-badge.due-soon{background:#2563eb;color:#fff}.unread-messages-banner{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-radius:12px;margin-bottom:20px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #2563eb4d}.unread-messages-banner:hover{transform:translateY(-2px);box-shadow:0 6px 16px #2563eb66}.unread-messages-banner .banner-content{display:flex;align-items:center;gap:12px}.unread-messages-banner .banner-icon{font-size:24px}.unread-messages-banner .banner-text{color:#fff;font-size:15px}.unread-messages-banner .banner-text strong{font-weight:700}.unread-messages-banner .banner-btn{background:#fff3;color:#fff;border:none;padding:8px 16px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:background .2s ease}.unread-messages-banner .banner-btn:hover{background:#ffffff4d}.dark-mode .unread-messages-banner{background:linear-gradient(135deg,#1e40af,#1e3a8a)}.dark .next-due-callout{background:#1e293b;border-color:#334155}.dark .next-due-callout.due-today{background:#dc26261a;border-color:#dc26264d}.callout-icon{font-size:28px}.callout-content{flex:1;display:flex;flex-direction:column;gap:2px}.callout-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#6b7280}.dark .callout-label{color:#9ca3af}.callout-title{font-size:16px;font-weight:600;color:#1f2937}.dark .callout-title{color:#f3f4f6}.callout-meta{font-size:13px;color:#6b7280}.due-today .callout-meta{color:#dc2626;font-weight:500}.due-tomorrow .callout-meta{color:#f59e0b;font-weight:500}.weekly-progress-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;margin-bottom:20px}.dark .weekly-progress-card{background:#1e293b;border-color:#334155}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-header h3{margin:0;font-size:16px;font-weight:600;color:#1f2937}.dark .progress-header h3{color:#f3f4f6}.progress-count{font-size:13px;color:#6b7280}.dark .progress-count{color:#9ca3af}.progress-bar-container{height:12px;background:#e5e7eb;border-radius:6px;overflow:hidden;margin-bottom:8px}.dark .progress-bar-container{background:#374151}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);border-radius:6px;transition:width .5s ease-out}.progress-percentage{text-align:right;font-size:14px;font-weight:600;color:#10b981}.module-progress{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb}.dark .module-progress{border-top-color:#374151}.module-progress-bar{flex:1;height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.dark .module-progress-bar{background:#374151}.module-progress-fill{height:100%;background:#10b981;border-radius:3px;transition:width .3s ease-out}.module-progress-text{font-size:12px;font-weight:500;color:#6b7280;min-width:35px;text-align:right}.dark .module-progress-text{color:#9ca3af}.module-card.current{border:2px solid #2563eb;box-shadow:0 0 0 4px #2563eb1a;position:relative}.module-card.current:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:14px;background:linear-gradient(135deg,rgba(37,99,235,.1) 0%,transparent 100%);pointer-events:none;z-index:-1}.dark .module-card.current{border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f626}.current-badge{background:#2563eb;color:#fff;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.module-card.completed{border-color:#10b981}.module-card.completed .module-progress-fill{background:#10b981}.completed-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:#10b981;color:#fff;border-radius:50%;font-size:12px;font-weight:700}@media (max-width: 768px){.live-lecture-banner{flex-direction:column;gap:12px;text-align:center}.live-banner-content{flex-direction:column}.next-due-callout{flex-direction:column;text-align:center}.callout-content{align-items:center}.progress-header{flex-direction:column;gap:8px;text-align:center}}.mobile-menu-toggle{display:none;position:fixed;top:16px;left:16px;z-index:1001;width:44px;height:44px;border-radius:12px;background:var(--white);border:1px solid var(--gray-200);box-shadow:0 2px 8px #0000001a;cursor:pointer;align-items:center;justify-content:center;font-size:24px}.mobile-menu-toggle:hover{background:var(--gray-100)}.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999}.sidebar-overlay.active{display:block}@media (max-width: 1024px){.main-layout{flex-direction:column}.sidebar{width:100%;height:auto;position:relative;border-right:none;border-bottom:1px solid var(--gray-200)}.main-content{margin-left:0;padding:20px}.dashboard-grid{grid-template-columns:1fr}.modules-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}.stats-grid.compact{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.mobile-menu-toggle{display:flex}.sidebar{position:fixed;top:0;left:0;width:280px;height:100vh;transform:translate(-100%);transition:transform .3s ease;z-index:1000;border-right:1px solid var(--gray-200);border-bottom:none}.sidebar.open{transform:translate(0)}.main-content{padding:70px 16px 16px}.page-header{flex-direction:column;gap:12px;align-items:stretch}.page-header h1{font-size:24px}.page-header .btn-primary{width:100%;justify-content:center}.stats-grid,.stats-grid.compact{grid-template-columns:1fr 1fr;gap:12px}.stat-card{padding:16px}.stat-value{font-size:24px}.modules-grid{grid-template-columns:1fr;gap:12px}.module-card{padding:16px}.course-banner{flex-direction:column;gap:16px;padding:16px}.banner-stats{width:100%;justify-content:space-around}.events-list{gap:8px}.event-card{padding:12px}.module-header{padding:16px}.header-row{flex-direction:column;align-items:flex-start;gap:12px}.header-row h1{font-size:22px}.header-title-section{flex-direction:column;align-items:flex-start;gap:8px}.module-nav{flex-direction:column;gap:12px}.module-nav .nav-btn{width:100%}.module-item{padding:16px}.item-header{flex-direction:column;align-items:flex-start;gap:12px}.item-icon{width:40px;height:40px;font-size:20px}.completion-checkmark{position:absolute;top:16px;right:16px}.module-item{position:relative}.calendar-nav{flex-direction:column;gap:12px}.calendar-title{order:-1}.calendar-grid{gap:2px}.calendar-header-cell{padding:8px 4px;font-size:11px}.calendar-cell{min-height:50px;padding:4px}.cell-date{font-size:12px}.data-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{min-width:600px}.form-row{grid-template-columns:1fr}.form-group input,.form-group select,.form-group textarea{font-size:16px}.modal{margin:8px;padding:16px;max-height:calc(100vh - 16px);width:calc(100% - 16px)}.modal.large{width:calc(100% - 16px);max-width:none}.modal-header h3{font-size:18px}.modal-footer{flex-direction:column;gap:8px}.modal-footer button{width:100%}.breadcrumb{font-size:12px;flex-wrap:wrap}.weekly-progress-card{padding:16px}.nav-item{padding:12px 10px}.nav-item-text{font-size:14px}.user-profile{padding:12px 10px}.user-avatar{width:36px;height:36px;font-size:14px}}@media (max-width: 480px){.stats-grid,.stats-grid.compact{grid-template-columns:1fr}.banner-stats{flex-direction:column;gap:12px}.page-header h1{font-size:20px}.module-header h1,.header-row h1{font-size:18px}.stat-card:nth-child(n+3){display:none}.stats-grid.compact .stat-card:nth-child(n+3){display:flex}}.dark-mode .mobile-menu-toggle{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.dark-mode .sidebar-overlay{background:#000000b3}@media (hover: none) and (pointer: coarse){.nav-item,.module-card,.event-card,.btn-primary,.btn-secondary{min-height:44px}.btn-icon{min-width:44px;min-height:44px}.completion-checkmark{width:32px;height:32px}.completion-checkmark.complete svg{width:18px;height:18px}}.student-progress-page{padding:0}.cohort-selector-card{background:var(--white);border-radius:12px;padding:20px;margin-bottom:24px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px #0000000d}.cohort-selector-card label{font-weight:600;color:var(--gray-800);white-space:nowrap}.cohort-selector-card select{flex:1;max-width:400px;padding:10px 14px;border:2px solid var(--gray-200);border-radius:8px;font-size:14px;font-family:inherit}.progress-summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.summary-card{background:var(--white);border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px #0000000d}.summary-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--gray-100);border-radius:12px;font-size:24px}.summary-value{font-family:Outfit,sans-serif;font-size:28px;font-weight:700;color:var(--black)}.summary-label{font-size:13px;color:var(--gray-600)}.progress-table-container{background:var(--white);border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.progress-table{width:100%;border-collapse:collapse}.progress-table th{background:var(--gray-100);padding:14px 16px;text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-600);border-bottom:1px solid var(--gray-200)}.progress-table td{padding:14px 16px;border-bottom:1px solid var(--gray-100);vertical-align:middle}.progress-table .student-col{min-width:220px}.progress-table .overall-col{min-width:140px}.progress-table .module-col{text-align:center;min-width:60px}.progress-table .actions-col{width:80px;text-align:center}.student-info{display:flex;align-items:center;gap:12px}.student-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--red-primary),var(--red-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.student-details{display:flex;flex-direction:column}.student-name{font-weight:600;color:var(--black)}.student-email{font-size:12px;color:var(--gray-600)}.progress-cell{display:flex;align-items:center;gap:10px}.progress-bar-mini{flex:1;height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}.progress-fill-mini{height:100%;border-radius:4px;transition:width .3s ease}.progress-text{font-weight:600;font-size:13px;min-width:40px;text-align:right}.module-progress-badge{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:28px;padding:0 8px;border-radius:14px;font-size:12px;font-weight:600;background:var(--gray-100);color:var(--gray-600)}.module-progress-badge.complete{background:var(--success-light);color:var(--success)}.module-progress-badge .check-icon{font-size:14px}.student-row.expanded{background:var(--gray-50)}.expanded-row td{padding:0;background:var(--gray-50)}.expanded-content{padding:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.module-detail-section{background:var(--white);border-radius:12px;padding:16px;border:1px solid var(--gray-200)}.module-detail-section h4{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--gray-800)}.items-checklist{display:flex;flex-direction:column;gap:8px}.checklist-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;font-size:13px}.checklist-item .check-box{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:14px}.checklist-item.complete .check-box{color:var(--success);font-weight:700}.checklist-item.incomplete .check-box{color:var(--gray-400)}.checklist-item .item-title{flex:1}.checklist-item .item-type{font-size:11px;text-transform:uppercase;padding:2px 6px;background:var(--gray-200);border-radius:4px;color:var(--gray-600)}.checklist-item .completed-date{font-size:11px;color:var(--gray-500)}.student-detail-content{padding:20px;max-height:70vh;overflow-y:auto}.detail-overall{display:flex;gap:32px;padding:24px;background:var(--gray-50);border-radius:12px;margin-bottom:24px}.overall-progress-ring{position:relative;width:120px;height:120px;flex-shrink:0}.overall-progress-ring svg{width:100%;height:100%}.ring-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.ring-percentage{display:block;font-family:Outfit,sans-serif;font-size:24px;font-weight:700;color:var(--black)}.ring-label{font-size:12px;color:var(--gray-600)}.overall-stats{display:flex;flex-direction:column;justify-content:center;gap:12px}.stat-row{display:flex;gap:12px;font-size:14px}.stat-row span{color:var(--gray-600)}.stat-row strong{color:var(--black)}.stat-row .status-active{color:var(--success)}.stat-row .status-inactive{color:var(--gray-500)}.detail-modules{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.detail-module-card{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;overflow:hidden}.module-card-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.module-card-title{display:flex;flex-direction:column;gap:4px}.module-card-title .week-badge{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--gray-500)}.module-card-title h4{font-size:14px;font-weight:600;margin:0}.module-card-progress{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:12px;font-weight:600;background:var(--gray-200);color:var(--gray-600)}.module-card-progress.complete{background:var(--success);color:#fff;font-size:18px}.module-card-items{padding:12px;display:flex;flex-direction:column;gap:6px}.detail-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;font-size:13px;background:var(--gray-50)}.detail-item.complete{background:var(--success-light)}.detail-item-check{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--gray-400)}.detail-item.complete .detail-item-check{color:var(--success);font-weight:700}.detail-item-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px}.loading-state .spinner{width:40px;height:40px;border:4px solid var(--gray-200);border-top-color:var(--red-primary);border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 1200px){.progress-summary-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){.progress-table-container{overflow-x:auto}.progress-table{min-width:800px}.expanded-content{grid-template-columns:1fr}}@media (max-width: 600px){.progress-summary-cards{grid-template-columns:1fr}.cohort-selector-card{flex-direction:column;align-items:stretch}.cohort-selector-card select{max-width:none}.detail-overall{flex-direction:column;align-items:center;text-align:center}.detail-modules{grid-template-columns:1fr}}.dark-mode .cohort-selector-card,.dark-mode .summary-card,.dark-mode .progress-table-container,.dark-mode .module-detail-section,.dark-mode .detail-module-card{background:var(--bg-secondary);border-color:var(--border-color)}.dark-mode .progress-table th{background:var(--bg-tertiary);color:var(--text-secondary);border-color:var(--border-color)}.dark-mode .progress-table td{border-color:var(--border-color)}.dark-mode .student-name,.dark-mode .summary-value,.dark-mode .module-detail-section h4,.dark-mode .module-card-title h4{color:var(--text-primary)}.dark-mode .detail-overall{background:var(--bg-tertiary)}.dark-mode .module-card-header{background:var(--bg-tertiary);border-color:var(--border-color)}.resource-actions{display:flex;flex-direction:row;align-items:center;gap:4px;margin-left:auto;opacity:0;transition:opacity .2s ease}.nav-item.external:hover .resource-actions{opacity:1}.edit-resource-btn{width:24px;height:24px;border:none;background:#3b82f61a;color:#3b82f6;border-radius:4px;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.edit-resource-btn:hover{background:#3b82f6;color:#fff}.resource-actions .delete-resource-btn{position:static;transform:none;opacity:1;width:24px;height:24px;display:flex;align-items:center;justify-content:center}@media (max-width: 900px){.login-content{flex-direction:column}.login-left{padding:30px 20px}.login-right{display:none}.login-logo{margin-bottom:24px}.login-logo img{max-width:240px}.login-form-container{max-width:100%;padding:28px;border-radius:12px}.login-form h2{font-size:24px}.login-form p{margin-bottom:24px}}@media (max-width: 600px){.login-page{padding-top:60px}.login-page-header{height:60px;padding:0 16px;justify-content:center}.login-page-header .header-logo{height:40px}.login-left{padding:20px 16px 40px;justify-content:flex-start}.login-logo{margin-bottom:20px}.login-logo img{max-width:180px}.login-form-container{padding:20px;box-shadow:0 10px 25px -5px #0003}.login-form h2{font-size:22px;margin-bottom:4px}.login-form p{font-size:14px;margin-bottom:20px}.form-group{margin-bottom:16px}.form-group label{font-size:13px;margin-bottom:6px}.form-group input{padding:12px 14px;font-size:16px;border-radius:8px}.login-btn{padding:14px;font-size:15px;border-radius:8px;margin-top:8px}.login-footer{margin-top:20px;font-size:13px}.demo-credentials{padding:12px;font-size:12px}.demo-credentials p{margin:2px 0}}@media (max-width: 380px){.login-left{padding:16px 12px 32px}.login-form-container{padding:16px}.login-form h2{font-size:20px}.login-logo img{max-width:150px}}@media (max-width: 768px){.item-row-actions{opacity:1}}.day-section{margin-bottom:24px;background:var(--white);border-radius:12px;border:1px solid var(--gray-200);overflow:hidden}.day-section.unscheduled{background:var(--gray-50);border-style:dashed}.day-section.empty-day{background:var(--gray-50);border-style:dashed;border-color:var(--gray-300)}.day-section.empty-day .day-header{background:var(--gray-400)}.day-item-count.empty{opacity:.7;font-style:italic}.day-header{display:flex;align-items:center;gap:12px;padding:16px 20px;background:linear-gradient(135deg,var(--blue-primary) 0%,var(--blue-dark) 100%);color:var(--white)}.day-section.unscheduled .day-header{background:var(--gray-400)}.day-icon{font-size:20px}.day-title{font-family:Outfit,sans-serif;font-size:18px;font-weight:600;margin:0;flex:1}.day-item-count{font-size:13px;opacity:.85;background:#fff3;padding:4px 10px;border-radius:12px}.btn-add-to-day{width:28px;height:28px;border-radius:50%;border:2px solid rgba(255,255,255,.5);background:#ffffff1a;color:var(--white);font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;line-height:1}.btn-add-to-day:hover{background:#ffffff4d;border-color:var(--white);transform:scale(1.1)}.day-items{padding:12px}.day-items .module-item{margin-bottom:8px;border-radius:8px}.day-items .module-item:last-child{margin-bottom:0}.day-items .module-item{border:1px solid var(--gray-200);box-shadow:none}.day-items .module-item:hover{border-color:var(--blue-primary);box-shadow:0 2px 8px #4fc3f726}.day-items .module-item.completed{border-color:var(--green-primary);background:linear-gradient(to right,rgba(76,175,80,.05),transparent)}@media (max-width: 768px){.day-section{margin-bottom:16px;border-radius:8px}.day-header{padding:12px 16px;gap:10px}.day-title{font-size:16px}.day-icon{font-size:18px}.day-item-count{font-size:12px;padding:3px 8px}.btn-add-to-day{width:24px;height:24px;font-size:16px}.day-items{padding:8px}.day-items .module-item{margin-bottom:6px}}@media (max-width: 480px){.day-header{padding:10px 12px;flex-wrap:wrap}.day-title{font-size:15px}.day-item-count{order:4;margin-left:auto}.day-items{padding:6px}}.app.dark-mode .day-section{background:var(--gray-800);border-color:var(--gray-700)}.app.dark-mode .day-section.unscheduled{background:var(--gray-900)}.app.dark-mode .day-items .module-item{border-color:var(--gray-700)}.app.dark-mode .day-items .module-item:hover{border-color:var(--blue-primary)}.day-group{margin-bottom:16px;border:1px solid var(--gray-200);border-radius:8px;overflow:hidden}.day-group.empty{border-style:dashed;border-color:var(--gray-300)}.day-group.unscheduled{border-color:#f59e0b;background:#fffbeb}.day-group-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--gray-100);border-bottom:1px solid var(--gray-200)}.day-group.empty .day-group-header{border-bottom:none;background:var(--gray-50)}.day-group.unscheduled .day-group-header{background:#fef3c7;border-bottom-color:#f59e0b}.day-group-icon{font-size:16px}.day-group-title{font-weight:600;font-size:14px;color:var(--gray-800);flex:1}.day-group-count{font-size:12px;color:var(--gray-500);background:var(--white);padding:2px 8px;border-radius:10px}.day-group.empty .day-group-count{font-style:italic;color:var(--gray-400)}.btn-add-to-day-small{width:24px;height:24px;border-radius:50%;border:1px solid var(--gray-300);background:var(--white);color:var(--gray-600);font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;line-height:1}.btn-add-to-day-small:hover{background:var(--blue-primary);border-color:var(--blue-primary);color:var(--white)}.day-group-items{padding:8px;background:var(--white)}.day-group-items .item-row{margin-bottom:6px;padding:8px 12px;border-radius:6px}.day-group-items .item-row:last-child{margin-bottom:0}.app.dark-mode .day-group{border-color:var(--gray-700)}.app.dark-mode .day-group-header{background:var(--gray-800);border-bottom-color:var(--gray-700)}.app.dark-mode .day-group-title{color:var(--gray-200)}.app.dark-mode .day-group-items{background:var(--gray-900)}.app.dark-mode .btn-add-to-day-small{background:var(--gray-800);border-color:var(--gray-600);color:var(--gray-400)}.app.dark-mode .btn-add-to-day-small:hover{background:var(--blue-primary);border-color:var(--blue-primary);color:var(--white)}.week-days{display:flex;flex-direction:column;gap:8px;padding:8px 0}.week-day-group{background:var(--gray-50);border-radius:6px;padding:8px 12px}.week-day-group.more-days{text-align:center;color:var(--gray-500);font-size:13px;font-style:italic}.week-day-label{font-size:12px;font-weight:600;color:var(--blue-primary);display:block;margin-bottom:4px}.week-day-items{list-style:none;padding:0;margin:0}.week-day-items li{font-size:13px;color:var(--gray-700);padding:2px 0;display:flex;align-items:center;gap:6px}.week-day-items li .item-icon{font-size:12px}.week-day-items li.more{color:var(--gray-500);font-style:italic;font-size:12px}.week-items .empty{color:var(--gray-400);font-style:italic}.app.dark-mode .week-day-group{background:var(--gray-800)}.app.dark-mode .week-day-items li{color:var(--gray-300)}.app.dark-mode .week-day-items li.more{color:var(--gray-500)}@media (max-width: 768px){.week-day-group{padding:6px 10px}.week-day-label{font-size:11px}.week-day-items li{font-size:12px}}.day-detail-modal{max-width:400px;width:90%}.day-events-list{max-height:400px;overflow-y:auto;padding:16px}.day-event-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--gray-50);border-radius:8px;margin-bottom:10px}.day-event-item:last-child{margin-bottom:0}.day-event-color{width:4px;min-height:40px;border-radius:2px;flex-shrink:0}.day-event-info{flex:1;min-width:0}.day-event-title{font-weight:600;color:var(--gray-900);margin-bottom:4px;display:flex;align-items:center;gap:6px}.day-event-title .module-indicator{font-size:14px}.day-event-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.event-type-badge{font-size:11px;text-transform:uppercase;background:var(--gray-200);color:var(--gray-600);padding:2px 6px;border-radius:4px;font-weight:500}.event-time{font-size:13px;color:var(--gray-500)}.day-event-description{margin-top:8px;font-size:13px;color:var(--gray-600);line-height:1.4}.day-event-item .btn-icon.small{padding:4px 6px;font-size:12px}.app.dark-mode .day-event-item{background:var(--gray-800)}.app.dark-mode .day-event-title{color:var(--gray-100)}.app.dark-mode .event-type-badge{background:var(--gray-700);color:var(--gray-300)}.app.dark-mode .day-event-description{color:var(--gray-400)}@media (max-width: 768px){.calendar-cell.has-events{cursor:pointer}.calendar-cell.has-events:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:20px;height:3px;background:var(--blue-primary);border-radius:2px;opacity:.5}}.day-title-group{flex:1;display:flex;align-items:baseline;gap:12px}.day-title-group .day-title{flex:none}.day-date{font-size:14px;font-weight:400;opacity:.9;background:#ffffff26;padding:2px 10px;border-radius:10px}.day-date.today{background:var(--white);color:var(--blue-dark);font-weight:600}.today-badge{margin-left:6px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;background:var(--red-primary);color:var(--white);padding:2px 6px;border-radius:4px;vertical-align:middle}.day-section.is-today{border:2px solid var(--blue-primary);box-shadow:0 4px 16px #4fc3f740}.day-section.is-today .day-header{background:linear-gradient(135deg,var(--red-primary) 0%,var(--red-dark) 100%)}.zoom-icon{border-radius:4px}.item-icon .zoom-icon{vertical-align:middle}.dark-mode .day-date{background:#0003}.dark-mode .day-date.today{background:var(--blue-primary);color:var(--white)}.dark-mode .day-section.is-today{border-color:var(--blue-primary);box-shadow:0 4px 16px #4fc3f74d}@media (max-width: 768px){.day-title-group{flex-direction:column;align-items:flex-start;gap:4px}.day-date{font-size:12px;padding:1px 8px}.today-badge{font-size:10px;padding:1px 4px}}.student-notes-panel{width:600px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column}.student-header-info{display:flex;align-items:center;gap:16px}.student-header-info .student-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--blue-primary),var(--blue-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:18px}.student-header-info h3{margin:0;font-size:18px}.student-header-info .student-email{color:var(--gray-600);font-size:14px;margin:0}.panel-tabs{display:flex;border-bottom:2px solid var(--gray-200);padding:0 24px}.tab-btn{padding:12px 20px;background:none;border:none;cursor:pointer;font-size:14px;font-weight:500;color:var(--gray-600);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s ease}.tab-btn:hover{color:var(--blue-primary)}.tab-btn.active{color:var(--blue-primary);border-bottom-color:var(--blue-primary)}.panel-content{flex:1;overflow-y:auto;padding:24px}.tab-actions{margin-bottom:16px}.note-form,.percentile-form{background:var(--gray-100);border-radius:12px;padding:20px;margin-bottom:20px}.note-form h4,.percentile-form h4{margin:0 0 16px;font-size:16px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.notes-list{display:flex;flex-direction:column;gap:12px}.note-card{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;padding:16px}.note-card.meeting{border-left:4px solid var(--blue-primary)}.note-card.goal{border-left:4px solid var(--success)}.note-card.concern{border-left:4px solid var(--error)}.note-card.general{border-left:4px solid var(--gray-400)}.note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.note-type-badge{font-size:12px;font-weight:500;color:var(--gray-600)}.note-actions{display:flex;gap:4px}.note-title{font-size:15px;font-weight:600;margin:0 0 8px}.note-content{font-size:14px;color:var(--gray-800);line-height:1.6;margin:0 0 12px;white-space:pre-wrap}.note-meta{display:flex;gap:16px;font-size:12px;color:var(--gray-500)}.note-edit-form{margin-top:8px}.percentile-history{margin-top:24px}.percentile-history h4{margin:0 0 16px;font-size:16px}.percentile-grid{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;overflow:hidden}.percentile-header,.percentile-row{display:grid;grid-template-columns:80px 100px 80px 80px 1fr;gap:12px;padding:12px 16px;align-items:center}.percentile-header{background:var(--gray-100);font-weight:600;font-size:12px;color:var(--gray-600);text-transform:uppercase}.percentile-row{border-top:1px solid var(--gray-100)}.percentile-row:hover{background:var(--gray-50)}.week-num{font-weight:600}.source-badge{font-size:11px;background:var(--blue-light);color:var(--blue-dark);padding:2px 8px;border-radius:10px;text-transform:capitalize}.percentile-value{font-weight:700;font-size:16px}.percentile-row .notes{font-size:13px;color:var(--gray-600);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.percentile-chart{margin-top:24px;background:var(--white);border:1px solid var(--gray-200);border-radius:12px;padding:20px}.percentile-chart h4{margin:0 0 20px}.chart-container{display:flex;align-items:flex-end;justify-content:space-around;height:150px;padding:0 20px;position:relative}.chart-bar-container{display:flex;flex-direction:column;align-items:center;flex:1;height:100%}.chart-bar{width:40px;border-radius:4px 4px 0 0;transition:height .3s ease;display:flex;align-items:flex-start;justify-content:center;min-height:4px}.bar-label{color:#fff;font-size:11px;font-weight:600;padding-top:4px;text-shadow:0 1px 2px rgba(0,0,0,.3)}.week-label{margin-top:8px;font-size:12px;font-weight:500;color:var(--gray-600)}.chart-baseline{position:relative;margin-top:-150px;height:150px;pointer-events:none}.baseline-line{position:absolute;left:0;right:0;height:2px;background:var(--error);opacity:.3}.baseline-label{position:absolute;right:0;bottom:calc(60% - 10px);font-size:10px;color:var(--error);background:var(--white);padding:0 4px}.percentile-col{width:80px;text-align:center}.percentile-badge{display:flex;flex-direction:column;align-items:center}.percentile-badge .percentile-value{font-weight:700;font-size:14px}.percentile-badge .percentile-week{font-size:10px;color:var(--gray-500)}.no-percentile{color:var(--gray-400);font-size:14px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:12px}.spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top-color:var(--blue-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dark-mode .note-card{background:var(--gray-800);border-color:var(--gray-700)}.dark-mode .note-content{color:var(--gray-200)}.dark-mode .percentile-grid{background:var(--gray-800);border-color:var(--gray-700)}.dark-mode .percentile-header{background:var(--gray-700)}.dark-mode .percentile-row{border-color:var(--gray-700)}.dark-mode .percentile-chart{background:var(--gray-800);border-color:var(--gray-700)}.dark-mode .note-form,.dark-mode .percentile-form{background:var(--gray-700)}@media (max-width: 768px){.student-notes-panel{width:100%;max-height:100vh;border-radius:0}.percentile-header,.percentile-row{grid-template-columns:60px 80px 60px 60px;font-size:12px}.percentile-row .notes{display:none}.chart-bar{width:30px}}.assignment-actions{margin-top:16px;padding-top:16px;border-top:1px solid var(--gray-200)}.assignment-actions .btn-primary{display:inline-flex;align-items:center;gap:8px}.assignment-submission-modal{width:600px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column}.assignment-submission-modal .modal-body{flex:1;overflow-y:auto;padding:24px}.assignment-meta{color:var(--gray-600);font-size:14px;margin:0}.assignment-meta span{margin-right:12px}.assignment-description{background:var(--gray-100);padding:16px;border-radius:8px;margin-bottom:20px}.assignment-description h4{margin:0 0 8px;font-size:14px;color:var(--gray-600)}.assignment-description p{margin:0;line-height:1.6}.submission-status-card{background:var(--blue-light);border:1px solid var(--blue-primary);border-radius:12px;padding:16px;margin-bottom:20px}.status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.status-badge{color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.submitted-date{font-size:13px;color:var(--gray-600)}.grade-display{display:flex;align-items:baseline;gap:16px;margin-top:12px}.grade-score{display:flex;align-items:baseline}.grade-value{font-size:32px;font-weight:700;color:var(--success)}.grade-max{font-size:18px;color:var(--gray-500)}.points-earned{font-size:14px;color:var(--gray-600)}.feedback-section{margin-top:16px;padding-top:16px;border-top:1px solid rgba(0,0,0,.1)}.feedback-section h4{margin:0 0 8px;font-size:14px;color:var(--gray-600)}.feedback-section p{margin:0;line-height:1.6;color:var(--gray-800)}.submission-form{background:var(--gray-50);border-radius:12px;padding:20px}.submission-form h4{margin:0 0 16px}.submission-tabs{display:flex;gap:8px;margin-bottom:20px}.submission-tabs .tab-btn{flex:1;padding:10px 16px;border:2px solid var(--gray-200);background:var(--white);border-radius:8px;cursor:pointer;font-size:13px;transition:all .2s ease}.submission-tabs .tab-btn:hover{border-color:var(--blue-primary)}.submission-tabs .tab-btn.active{border-color:var(--blue-primary);background:var(--blue-light);color:var(--blue-dark)}.file-upload-area{position:relative}.file-upload-area input[type=file]{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer}.file-upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;border:2px dashed var(--gray-300);border-radius:12px;background:var(--white);cursor:pointer;transition:all .2s ease}.file-upload-label:hover{border-color:var(--blue-primary);background:var(--blue-light)}.upload-icon{font-size:32px;margin-bottom:8px}.upload-text{font-weight:500;color:var(--gray-800)}.upload-hint{font-size:12px;color:var(--gray-500);margin-top:4px}.existing-file{display:flex;align-items:center;gap:12px;padding:12px;background:var(--white);border:1px solid var(--gray-200);border-radius:8px;margin-top:12px}.existing-file .file-icon{font-size:24px}.existing-file .file-name{flex:1;font-weight:500}.existing-file .file-size{color:var(--gray-500);font-size:13px}.existing-file .view-link{color:var(--blue-primary);text-decoration:none;font-weight:500}.submission-view{margin-top:20px}.submission-view h4{margin:0 0 12px}.submitted-content{background:var(--white);border:1px solid var(--gray-200);border-radius:8px;padding:16px}.submitted-content.text p{margin:0;white-space:pre-wrap;line-height:1.6}.submitted-content.file{display:flex;align-items:center;gap:12px}.submitted-content.link a{color:var(--blue-primary);word-break:break-all}.assignment-grid-view{padding:24px}.assignment-grid-view .view-header{margin-bottom:24px}.assignment-grid-view .view-header h1{margin:0;font-size:28px}.assignment-grid-view .view-header p{margin:4px 0 0;color:var(--gray-600)}.submission-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.submission-stats .stat-card{display:flex;align-items:center;gap:16px;background:var(--white);border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000000d}.submission-stats .stat-icon{font-size:32px}.submission-stats .stat-value{font-size:28px;font-weight:700}.submission-stats .stat-label{font-size:13px;color:var(--gray-600)}.grid-container{background:var(--white);border-radius:12px;box-shadow:0 2px 8px #0000000d;overflow:hidden}.grid-scroll{overflow-x:auto}.assignment-table{width:100%;border-collapse:collapse;min-width:800px}.assignment-table th,.assignment-table td{padding:12px 8px;text-align:center;border-bottom:1px solid var(--gray-100)}.assignment-table th{background:var(--gray-50);font-weight:600;font-size:12px;color:var(--gray-600);white-space:nowrap}.assignment-table .student-col{text-align:left;padding-left:16px;min-width:180px}.assignment-table .sticky-col{position:sticky;left:0;background:var(--white);z-index:10}.assignment-table th.sticky-col{background:var(--gray-50)}.assignment-table .assignment-col{min-width:80px}.assignment-header{display:flex;flex-direction:column;gap:2px}.assignment-week{font-size:10px;color:var(--gray-400)}.assignment-title{font-size:11px;font-weight:600}.assignment-type{font-size:9px;color:var(--gray-400);text-transform:uppercase}.assignment-table .student-info{display:flex;align-items:center;gap:10px}.assignment-table .student-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--blue-primary),var(--blue-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}.assignment-table .student-name{font-weight:500;font-size:13px}.submission-cell{cursor:default}.submission-cell.has-submission{cursor:pointer}.submission-cell.has-submission:hover{background:var(--gray-50)}.submission-indicator{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:18px}.grade-badge{font-size:10px;font-weight:600;background:var(--success);color:#fff;padding:1px 6px;border-radius:8px}.grid-legend{display:flex;gap:20px;padding:16px;border-top:1px solid var(--gray-100);font-size:13px;color:var(--gray-600)}.legend-item{display:flex;align-items:center;gap:6px}.grade-modal{width:700px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column}.grade-modal .modal-body{flex:1;overflow-y:auto;padding:24px}.submission-info{background:var(--gray-50);border-radius:8px;padding:16px;margin-bottom:20px}.info-row{display:flex;margin-bottom:8px}.info-row:last-child{margin-bottom:0}.info-label{width:100px;font-weight:500;color:var(--gray-600)}.info-value{flex:1}.submission-content-view{margin-bottom:24px}.submission-content-view h4{margin:0 0 12px}.content-box{background:var(--white);border:1px solid var(--gray-200);border-radius:8px;padding:16px}.content-box.text-content{white-space:pre-wrap;line-height:1.6;max-height:200px;overflow-y:auto}.content-box.file-content{display:flex;align-items:center;gap:12px}.content-box.file-content .file-icon{font-size:24px}.content-box.file-content .file-name{flex:1;font-weight:500}.content-box.file-content .file-size{color:var(--gray-500);font-size:13px}.content-box.link-content a{color:var(--blue-primary);word-break:break-all}.grade-form h4{margin:0 0 16px}.dark-mode .assignment-table .sticky-col{background:var(--gray-800)}.dark-mode .assignment-table th.sticky-col,.dark-mode .submission-cell.has-submission:hover{background:var(--gray-700)}.dark-mode .grid-container{background:var(--gray-800)}.dark-mode .assignment-table th{background:var(--gray-700)}.dark-mode .submission-status-card{background:#4fc3f71a;border-color:var(--blue-primary)}.dark-mode .submission-form{background:var(--gray-700)}.dark-mode .file-upload-label,.dark-mode .content-box{background:var(--gray-800);border-color:var(--gray-600)}@media (max-width: 768px){.assignment-submission-modal,.grade-modal{width:100%;max-height:100vh;border-radius:0}.submission-stats{grid-template-columns:repeat(2,1fr)}.submission-tabs{flex-direction:column}.grid-legend{flex-wrap:wrap;gap:12px}}.drag-handle{cursor:grab;color:var(--gray-400);font-size:14px;padding:4px;margin-right:4px;-webkit-user-select:none;user-select:none;letter-spacing:-2px}.drag-handle:hover{color:var(--gray-600)}.drag-handle:active{cursor:grabbing}.item-row.draggable{cursor:default;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.item-row.draggable:hover{background:var(--gray-50)}.item-row.dragging{opacity:.5;transform:scale(.98);box-shadow:0 4px 12px #00000026}.day-group.drop-target{background:var(--blue-light);border:2px dashed var(--blue-primary);border-radius:8px}.day-group.drop-target .day-group-header{background:transparent}.day-group-items.drop-placeholder{min-height:60px;display:flex;align-items:center;justify-content:center}.drop-hint{color:var(--blue-primary);font-size:13px;font-weight:500;padding:16px;text-align:center;width:100%}.dark-mode .item-row.draggable:hover{background:var(--gray-700)}.dark-mode .day-group.drop-target{background:#4fc3f71a;border-color:var(--blue-primary)}.dark-mode .drag-handle{color:var(--gray-500)}.dark-mode .drag-handle:hover{color:var(--gray-300)}.pdf-upload-area{border:2px dashed var(--gray-300);border-radius:8px;padding:20px;text-align:center;transition:all .2s ease}.pdf-upload-area:hover{border-color:var(--blue-primary);background:var(--blue-light)}.pdf-upload-label{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer}.upload-btn{background:var(--blue-primary);color:#fff;padding:10px 20px;border-radius:6px;font-weight:500;transition:background .2s ease}.upload-btn:hover{background:var(--blue-dark)}.upload-hint{color:var(--gray-500);font-size:12px}.selected-pdf{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px;background:var(--success-light);border-radius:6px}.selected-pdf span{font-weight:500;color:var(--success)}.btn-remove-pdf{background:none;border:none;color:var(--gray-500);cursor:pointer;font-size:16px;padding:4px 8px}.btn-remove-pdf:hover{color:var(--error)}.pdf-download-section{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px;background:var(--blue-light);border-radius:8px}.btn-pdf-download{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:var(--blue-primary);color:#fff;text-decoration:none;border-radius:6px;font-weight:500;transition:background .2s ease}.btn-pdf-download:hover{background:var(--blue-dark);color:#fff}.pdf-name{color:var(--gray-600);font-size:13px}.no-pdf-notice{color:var(--gray-500);font-style:italic;font-size:13px;margin-top:8px}.dark-mode .pdf-upload-area{border-color:var(--gray-600)}.dark-mode .pdf-upload-area:hover{border-color:var(--blue-primary);background:#4fc3f71a}.dark-mode .selected-pdf{background:#4caf5033}.dark-mode .pdf-download-section{background:#4fc3f71a}.dark-mode .pdf-name{color:var(--gray-400)}.live-lecture-content{display:flex;flex-direction:column;gap:12px}.lecture-description{color:var(--gray-700);font-size:14px;margin:0}.lecture-meta{display:flex;flex-wrap:wrap;gap:8px}.lecture-meta .time-badge{background:var(--blue-light);color:var(--blue-dark)}.btn-join-zoom{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;background:#2d8cff;color:#fff;text-decoration:none;border-radius:8px;font-weight:600;font-size:15px;transition:all .2s ease;width:fit-content;box-shadow:0 2px 8px #2d8cff4d}.btn-join-zoom:hover{background:#1a7ae8;transform:translateY(-1px);box-shadow:0 4px 12px #2d8cff66;color:#fff}.btn-join-zoom .zoom-btn-logo{height:20px;width:auto}.dark-mode .lecture-description{color:var(--gray-300)}.dark-mode .lecture-meta .time-badge{background:#4fc3f726;color:var(--blue-primary)}.btn-join-zoom-small{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#2d8cff;color:#fff;text-decoration:none;border-radius:4px;font-weight:500;font-size:12px;margin-top:6px;transition:all .2s ease}.btn-join-zoom-small:hover{background:#1a7ae8;color:#fff}.btn-join-zoom-modal{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:#2d8cff;color:#fff;text-decoration:none;border-radius:6px;font-weight:600;font-size:14px;margin-top:12px;transition:all .2s ease}.btn-join-zoom-modal:hover{background:#1a7ae8;color:#fff;transform:translateY(-1px)}@media (max-width: 768px){.btn-join-zoom{padding:10px 16px;font-size:14px;width:100%;justify-content:center}.btn-join-zoom-small{padding:8px 12px;font-size:11px}.btn-join-zoom-modal{padding:12px 16px;font-size:13px;width:100%;justify-content:center}}.feedback-badge{margin-left:6px;font-size:12px;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.feedback-list{display:flex;flex-direction:column;gap:12px}.feedback-card{background:var(--white);border:1px solid var(--gray-200);border-left:4px solid var(--blue-primary);border-radius:8px;padding:16px;transition:all .2s ease}.feedback-card:hover{box-shadow:0 4px 12px #00000014}.feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.feedback-item-title{font-weight:600;color:var(--gray-800)}.feedback-grade{background:var(--success-light);color:var(--success);padding:4px 10px;border-radius:12px;font-size:13px;font-weight:600}.feedback-content{color:var(--gray-700);font-size:14px;line-height:1.5;margin-bottom:10px}.feedback-content p{margin:0}.feedback-meta{font-size:12px;color:var(--gray-500)}.contact-instructor-card{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:12px;padding:24px;text-align:center}.contact-instructor-card p{color:var(--gray-700);margin-bottom:16px}.email-modal{max-width:500px}.email-modal textarea{resize:vertical;min-height:120px}.btn-primary.disabled{opacity:.5;cursor:not-allowed}.dark-mode .feedback-card{background:var(--gray-800);border-color:var(--gray-700)}.dark-mode .feedback-item-title{color:var(--gray-200)}.dark-mode .feedback-content{color:var(--gray-300)}.dark-mode .contact-instructor-card{background:linear-gradient(135deg,#4fc3f726,#4fc3f740)}.dark-mode .contact-instructor-card p{color:var(--gray-300)}.messages-view{padding:24px;height:100%;display:flex;flex-direction:column}.messages-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.messages-header h1{font-size:28px;font-weight:700}.messages-layout{display:flex;gap:24px;flex:1;min-height:0;background:var(--white);border-radius:12px;border:1px solid var(--gray-200);overflow:hidden}.messages-sidebar{width:350px;border-right:1px solid var(--gray-200);display:flex;flex-direction:column}.messages-tabs{display:flex;border-bottom:1px solid var(--gray-200)}.messages-tabs .tab-btn{flex:1;padding:14px;background:none;border:none;font-size:14px;font-weight:500;color:var(--gray-600);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.messages-tabs .tab-btn:hover{background:var(--gray-50)}.messages-tabs .tab-btn.active{color:var(--red-primary);border-bottom:2px solid var(--red-primary)}.unread-badge{background:var(--red-primary);color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:10px}.messages-list{flex:1;overflow-y:auto}.message-item{display:flex;align-items:flex-start;gap:12px;padding:16px;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:background .2s ease;position:relative}.message-item:hover{background:var(--gray-50)}.message-item.selected{background:var(--blue-light)}.message-item.unread{background:#dc35450d}.message-avatar{width:44px;height:44px;flex-shrink:0}.message-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.message-avatar .avatar-placeholder{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,var(--red-primary),var(--red-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.message-preview{flex:1;min-width:0}.message-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.message-sender{font-size:14px;color:var(--gray-700)}.message-sender.bold{font-weight:600;color:var(--gray-900)}.message-date{font-size:12px;color:var(--gray-500)}.message-subject{font-size:13px;color:var(--gray-800);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-subject.bold{font-weight:600}.message-snippet{font-size:12px;color:var(--gray-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unread-dot{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:8px;height:8px;background:var(--red-primary);border-radius:50%}.message-content{flex:1;display:flex;flex-direction:column;min-width:0}.no-message-selected{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--gray-400)}.no-message-selected .empty-icon{font-size:48px;margin-bottom:12px}.message-content-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--gray-200)}.message-content-header h2{font-size:18px;font-weight:600}.conversation-thread{flex:1;overflow-y:auto;padding:24px}.conversation-message{margin-bottom:24px;padding:16px;border-radius:12px;max-width:85%}.conversation-message.received{background:var(--gray-100);margin-right:auto}.conversation-message.sent{background:var(--blue-light);margin-left:auto}.conversation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.sender-info{display:flex;align-items:center;gap:10px}.sender-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.avatar-placeholder.small{width:32px;height:32px;font-size:12px}.sender-name{font-weight:600;font-size:14px}.role-tag{font-size:10px;padding:2px 6px;background:var(--blue-primary);color:#fff;border-radius:4px;text-transform:uppercase}.message-time{font-size:12px;color:var(--gray-500)}.conversation-body{font-size:14px;line-height:1.6;color:var(--gray-800)}.conversation-body p{margin:0 0 8px}.conversation-body p:last-child{margin-bottom:0}.quick-reply{padding:16px 24px;border-top:1px solid var(--gray-200);display:flex;gap:12px;align-items:flex-end}.quick-reply textarea{flex:1;padding:12px;border:1px solid var(--gray-300);border-radius:8px;resize:none;min-height:44px;max-height:120px;font-family:inherit;font-size:14px}.quick-reply textarea:focus{outline:none;border-color:var(--blue-primary)}.compose-modal{max-width:550px}.compose-modal textarea{min-height:150px;resize:vertical}.dark-mode .messages-layout{background:var(--gray-900);border-color:var(--gray-700)}.dark-mode .messages-sidebar,.dark-mode .messages-tabs{border-color:var(--gray-700)}.dark-mode .messages-tabs .tab-btn{color:var(--gray-400)}.dark-mode .messages-tabs .tab-btn:hover{background:var(--gray-800)}.dark-mode .message-item{border-color:var(--gray-800)}.dark-mode .message-item:hover{background:var(--gray-800)}.dark-mode .message-item.selected{background:#4fc3f726}.dark-mode .message-item.unread{background:#dc35451a}.dark-mode .message-sender{color:var(--gray-300)}.dark-mode .message-sender.bold{color:var(--gray-100)}.dark-mode .message-subject{color:var(--gray-200)}.dark-mode .message-content-header{border-color:var(--gray-700)}.dark-mode .conversation-message.received{background:var(--gray-800)}.dark-mode .conversation-message.sent{background:#4fc3f726}.dark-mode .conversation-body{color:var(--gray-200)}.dark-mode .quick-reply{border-color:var(--gray-700)}.dark-mode .quick-reply textarea{background:var(--gray-800);border-color:var(--gray-600);color:var(--gray-100)}@media (max-width: 768px){.messages-layout{flex-direction:column}.messages-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--gray-200);max-height:40vh}.message-content{min-height:50vh}.messages-header{flex-direction:column;gap:12px;align-items:stretch}.messages-header h1{font-size:22px}.message-content-header{flex-direction:column;gap:12px;align-items:flex-start}.message-content-header h2{font-size:16px}.conversation-message{max-width:95%}.quick-reply{flex-direction:column}.quick-reply textarea,.quick-reply button{width:100%}}@media (max-width: 768px){.unread-messages-banner{flex-direction:column;gap:12px;text-align:center;padding:14px 16px}.unread-messages-banner .banner-content{flex-direction:column;gap:8px}.unread-messages-banner .banner-btn{width:100%}}@media (max-width: 768px){.profile-modal{width:95%;max-width:none;margin:10px}.profile-header-section{flex-direction:column;text-align:center;gap:12px}.profile-name-section h2{font-size:18px}.social-links{gap:8px}.info-grid{grid-template-columns:1fr}}@media (max-width: 768px){.compose-modal{width:95%;max-width:none;margin:10px}.compose-modal textarea{min-height:120px}.email-modal{width:95%;max-width:none}}@media (max-width: 768px){.checklist-header{display:none}.progress-checklist-item{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}.check-boxes{order:-1;width:100%;justify-content:flex-start}.item-dates{width:100%;flex-direction:column;gap:4px}}@media (max-width: 768px){.feedback-badge{font-size:10px}.item-info .item-type{display:flex;flex-wrap:wrap;gap:4px}}@media (max-width: 600px){.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:12px}.stat-value{font-size:20px}.stat-label{font-size:11px}}@media (max-width: 400px){.stats-grid{grid-template-columns:1fr}}@media (max-width: 768px){.contact-instructor-card{padding:16px}.contact-instructor-card p{font-size:14px}}@media (max-width: 768px){.user-cell{flex-direction:column;align-items:flex-start;gap:4px}.user-avatar-img.small,.user-avatar.small{width:32px;height:32px;font-size:12px}.action-buttons{flex-wrap:wrap;gap:4px}.btn-icon{padding:6px;font-size:14px}}@media (max-width: 768px){.student-avatar-img{width:32px;height:32px}}@media (max-width: 768px){.day-popup-modal{width:95%;max-width:none;margin:10px;max-height:80vh}.day-popup-item{padding:12px}.btn-join-zoom-modal{width:100%;justify-content:center}}.override-badge{margin-left:6px;font-size:11px}.module-item.has-override{border-left:3px solid var(--blue-primary)}.module-item.has-override .item-type{color:var(--blue-primary)}.profile-view{max-width:800px}.profile-header{margin-bottom:24px}.profile-header h1{font-family:Outfit,sans-serif;font-size:28px;font-weight:700;margin-top:12px}.profile-card{background:var(--white);border-radius:16px;padding:32px;box-shadow:0 1px 3px #0000000d}.avatar-section{display:flex;align-items:center;gap:24px;padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--gray-200)}.avatar-container{position:relative;width:100px;height:100px}.avatar-image{width:100%;height:100%;border-radius:50%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,var(--red-primary),var(--red-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700}.avatar-upload-btn{position:absolute;bottom:0;right:0;width:32px;height:32px;background:var(--blue-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:all .2s ease}.avatar-upload-btn:hover{background:var(--blue-dark);transform:scale(1.1)}.avatar-info h2{font-size:24px;font-weight:600;margin-bottom:4px}.avatar-info p{color:var(--gray-600)}.profile-form{display:flex;flex-direction:column;gap:32px}.profile-form .form-section h3{font-size:18px;font-weight:600;margin-bottom:8px}.profile-form .section-hint{color:var(--gray-500);font-size:13px;margin-bottom:16px}.profile-form .form-group{margin-bottom:16px}.profile-form .form-group label{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-weight:500;color:var(--gray-700)}.profile-form .form-group input{width:100%;padding:10px 14px;border:1px solid var(--gray-300);border-radius:8px;font-size:14px;transition:border-color .2s ease}.profile-form .form-group input:focus{outline:none;border-color:var(--blue-primary)}.profile-form .form-group input:disabled{background:var(--gray-100);color:var(--gray-600)}.social-input{display:flex;align-items:center}.social-input .input-prefix{padding:10px 12px;background:var(--gray-100);border:1px solid var(--gray-300);border-right:none;border-radius:8px 0 0 8px;color:var(--gray-500);font-size:14px}.social-input input{border-radius:0 8px 8px 0!important}.social-icon{font-size:16px}.password-field{display:flex;gap:12px}.password-field input{flex:1}.btn-small{padding:8px 16px!important;font-size:13px!important}.profile-actions{display:flex;gap:12px;padding-top:16px;border-top:1px solid var(--gray-200);margin-top:16px}.message{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.message.success{background:var(--success-light);color:var(--success)}.message.error{background:var(--error-light);color:var(--error)}.dark-mode .profile-card{background:var(--dark-bg-secondary)}.dark-mode .avatar-section{border-bottom-color:var(--gray-700)}.dark-mode .avatar-info p{color:var(--gray-400)}.dark-mode .profile-form .form-group label{color:var(--gray-300)}.dark-mode .profile-form .form-group input{background:var(--dark-bg-primary);border-color:var(--gray-600);color:#fff}.dark-mode .profile-form .form-group input:disabled{background:var(--gray-800);color:var(--gray-400)}.dark-mode .social-input .input-prefix{background:var(--gray-800);border-color:var(--gray-600);color:var(--gray-400)}.dark-mode .profile-actions{border-top-color:var(--gray-700)}.checklist-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;margin-bottom:6px;background:var(--gray-50)}.checklist-item.complete{background:var(--success-light)}.checklist-item.viewed{background:var(--blue-light)}.checklist-item.incomplete{background:var(--gray-100)}.check-boxes{display:flex;gap:8px}.check-box{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:12px}.check-box.viewed{background:var(--blue-light);color:var(--blue-primary)}.check-box.completed{background:var(--success-light);color:var(--success)}.checklist-item .item-title{flex:1;font-weight:500}.checklist-item .item-type{font-size:11px;text-transform:uppercase;color:var(--gray-500);padding:2px 8px;background:var(--gray-200);border-radius:4px}.checklist-item .item-dates{display:flex;gap:12px;font-size:11px}.checklist-item .viewed-date{color:var(--blue-primary)}.checklist-item .completed-date{color:var(--success)}.dark-mode .checklist-item{background:var(--gray-800)}.dark-mode .checklist-item.complete{background:#4caf5026}.dark-mode .checklist-item.viewed{background:#4fc3f726}.progress-legend{display:flex;align-items:center;gap:24px;padding:12px 16px;background:var(--gray-100);border-radius:8px;margin-bottom:20px;flex-wrap:wrap}.progress-legend .legend-title{font-weight:600;color:var(--gray-700)}.progress-legend .legend-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--gray-600)}.progress-legend .legend-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:14px}.progress-legend .legend-icon.viewed{background:var(--blue-light)}.progress-legend .legend-icon.complete{background:var(--success-light);color:var(--success)}.progress-legend .legend-icon.empty{background:var(--gray-200);color:var(--gray-500)}.checklist-header{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--gray-200);border-radius:6px 6px 0 0;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--gray-600);margin-bottom:0}.checklist-header .header-col.viewed,.checklist-header .header-col.complete{width:50px;text-align:center}.checklist-header .header-col.title{flex:1}.checklist-header .header-col.type{width:80px}.checklist-header .header-col.dates{width:180px}.checklist-item .check-boxes{width:100px;display:flex;gap:8px;justify-content:center}.checklist-item .check-box{width:28px;height:28px}.checklist-item .check-box.yes{font-weight:700}.checklist-item .check-box.no{opacity:.4}.checklist-item .item-dates{width:180px;display:flex;flex-direction:column;gap:2px}.checklist-item .no-activity{color:var(--gray-400);font-style:italic;font-size:12px}.dark-mode .progress-legend{background:var(--gray-800)}.dark-mode .progress-legend .legend-title{color:var(--gray-300)}.dark-mode .checklist-header{background:var(--gray-700);color:var(--gray-400)}.user-avatar-img{border-radius:50%;object-fit:cover}.user-avatar-img.small{width:40px;height:40px}.user-avatar-img.medium{width:48px;height:48px}.student-avatar-img{width:40px;height:40px;border-radius:50%;object-fit:cover}.avatar-img{width:32px;height:32px;border-radius:50%;object-fit:cover}.profile-modal{max-width:500px}.profile-header-section{display:flex;align-items:center;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--gray-200);margin-bottom:20px}.profile-avatar-large{width:80px;height:80px;border-radius:50%;object-fit:cover}.profile-avatar-placeholder.large{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--red-primary),var(--red-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700}.profile-name-section h2{font-size:22px;font-weight:600;margin-bottom:4px}.profile-name-section p{color:var(--gray-600);margin-bottom:8px}.profile-info-section{margin-bottom:20px}.profile-info-section h4{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-500);margin-bottom:10px}.profile-info-section p{font-size:15px;color:var(--gray-800)}.social-links{display:flex;flex-direction:column;gap:10px}.social-link{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--gray-100);border-radius:8px;text-decoration:none;color:var(--gray-800);transition:all .2s ease}.social-link:hover:not(.empty){background:var(--gray-200)}.social-link.empty{color:var(--gray-400);font-style:italic}.social-link .social-icon{font-size:18px}.social-link.tiktok:hover{background:#ff00521a;color:#ff0050}.social-link.instagram:hover{background:#e1306c1a;color:#e1306c}.social-link.facebook:hover{background:#1877f21a;color:#1877f2}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.info-item{display:flex;flex-direction:column;gap:4px}.info-item .info-label{font-size:12px;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}.dark-mode .profile-header-section{border-bottom-color:var(--gray-700)}.dark-mode .profile-name-section p{color:var(--gray-400)}.dark-mode .profile-info-section p{color:var(--gray-200)}.dark-mode .social-link{background:var(--gray-800);color:var(--gray-200)}.dark-mode .social-link:hover:not(.empty){background:var(--gray-700)}.dark-mode .social-link.empty{color:var(--gray-500)}@media (max-width: 768px){.page-header{flex-direction:column;gap:16px;align-items:flex-start}.page-header h1{font-size:24px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.dashboard-grid{grid-template-columns:1fr}.modal{width:95%;max-width:none;margin:10px;max-height:90vh}.modal-body{max-height:60vh;overflow-y:auto}.modal .form-group input,.modal .form-group select,.modal .form-group textarea{font-size:16px}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}}@media (max-width: 768px){.unread-messages-banner{flex-direction:column;gap:12px;text-align:center;padding:14px 16px}.unread-messages-banner .banner-content{justify-content:center}.unread-messages-banner .banner-btn{width:100%}}@media (max-width: 768px){.messages-view{padding:16px}.messages-header{flex-direction:column;gap:12px;align-items:stretch}.messages-header h1{font-size:22px}.messages-header .btn-primary{width:100%;justify-content:center}.messages-layout{flex-direction:column;height:auto}.messages-sidebar{width:100%;max-height:50vh;border-right:none;border-bottom:1px solid var(--gray-200)}.message-item{padding:12px}.message-avatar{width:36px;height:36px}.message-content{min-height:auto}.message-content-header{flex-direction:column;gap:12px;align-items:flex-start;padding:16px}.message-content-header h2{font-size:16px}.conversation-thread{padding:16px}.conversation-message{max-width:95%;padding:12px}.quick-reply{flex-direction:column;padding:12px}.quick-reply textarea,.quick-reply .btn-primary{width:100%}.compose-modal{width:95%}}@media (max-width: 768px){.feedback-card{padding:12px}.feedback-header{flex-direction:column;align-items:flex-start;gap:8px}.feedback-grade{align-self:flex-start}}@media (max-width: 768px){.profile-modal{width:95%;max-width:none}.profile-header-section{flex-direction:column;text-align:center}.profile-avatar-large,.profile-avatar-placeholder.large{width:70px;height:70px;font-size:24px}.profile-name-section h2{font-size:18px}.info-grid{grid-template-columns:1fr}}@media (max-width: 768px){.student-profile{padding:16px}.profile-card{padding:20px}.profile-avatar-section{flex-direction:column;text-align:center}.avatar-upload-area{margin:0 auto}.form-row{flex-direction:column;gap:0}.form-row .form-group{width:100%}}@media (max-width: 768px){.module-view{padding:16px}.module-header{flex-direction:column;gap:12px}.day-section{margin-bottom:16px}.day-header{padding:10px 12px}.module-item{padding:12px}.item-header{flex-wrap:wrap;gap:8px}.item-actions{width:100%;justify-content:flex-end;margin-top:8px}.feedback-badge{font-size:11px}.master-template-notice,.cohort-specific-notice{font-size:12px;padding:10px 12px}}@media (max-width: 768px){.calendar-view{padding:16px}.calendar-header{flex-direction:column;gap:12px}.calendar-nav{width:100%;justify-content:space-between}.calendar-grid{font-size:12px}.calendar-day{min-height:60px;padding:4px}.calendar-event{font-size:10px;padding:2px 4px}.day-popup-modal{width:95%}}@media (max-width: 768px){.user-management{padding:16px}.users-table-container{overflow-x:auto}.users-table{min-width:600px}.user-cell{min-width:150px}.action-buttons{flex-wrap:nowrap}.action-buttons .btn-icon{padding:6px}}@media (max-width: 768px){.student-progress{padding:16px}.progress-table-container{overflow-x:auto}.checklist-header,.progress-checklist-item{font-size:12px}.check-boxes{gap:8px}.check-box{min-width:40px;padding:4px 8px}}@media (max-width: 768px){.assignment-grid{padding:16px}.assignment-grid-container{overflow-x:auto}.assignment-table{min-width:500px}}@media (max-width: 768px){.cohort-view{padding:16px}.cohort-header{flex-direction:column;gap:12px}.cohort-tabs{width:100%;overflow-x:auto}.cohort-tabs .tab-btn{flex:1;white-space:nowrap}}@media (max-width: 768px){.live-lecture-banner{flex-direction:column;gap:12px;padding:14px}.live-banner-content{width:100%;justify-content:center}.btn-join-lecture{width:100%;text-align:center}}@media (max-width: 768px){.next-due-callout{flex-direction:column;gap:12px;padding:14px}.callout-icon{font-size:24px}.next-due-callout .btn-secondary{width:100%}}@media (max-width: 768px){.nav-badge{font-size:10px;padding:2px 5px}}@media (max-width: 768px){.btn-join-zoom,.btn-join-zoom-modal{width:100%;justify-content:center}}@media (max-width: 380px){.page-header h1{font-size:20px}.stat-card{padding:12px}.stat-value{font-size:24px}.modal{margin:5px;width:calc(100% - 10px)}.btn-primary,.btn-secondary{padding:10px 16px;font-size:14px}}
