.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.change-password-modal{background-color:#fff;border-radius:var(--radius-lg);box-shadow:0 4px 20px #00000040;width:100%;max-width:400px;max-height:90vh;overflow-y:auto}.change-password-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.change-password-modal .modal-header h2{margin:0;font-size:1.25rem;color:var(--text-primary)}.change-password-modal .modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1;transition:color .2s}.change-password-modal .modal-close:hover{color:var(--text-primary)}.change-password-modal .modal-body{padding:var(--spacing-lg)}.change-password-modal .form-group{margin-bottom:var(--spacing-md)}.change-password-modal .form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--text-primary)}.change-password-modal .form-group input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:1rem;background-color:#fff;transition:border-color .2s,box-shadow .2s}.change-password-modal .form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #5c2e911a}.change-password-modal .form-hint{display:block;margin-top:var(--spacing-xs);font-size:.875rem;color:var(--text-secondary)}.change-password-modal .error-message{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md);font-size:.875rem}.change-password-modal .success-message{text-align:center;padding:var(--spacing-lg) 0}.change-password-modal .success-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background-color:#dcfce7;color:#16a34a;border-radius:50%;font-size:1.5rem;margin-bottom:var(--spacing-md)}.change-password-modal .success-message p{margin:0;color:var(--text-primary);font-weight:500}.change-password-modal .success-subtext{color:var(--text-secondary)!important;font-weight:400!important;font-size:.875rem;margin-top:var(--spacing-xs)!important}.change-password-modal .modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.change-password-modal .modal-actions .btn{min-width:100px}.layout{min-height:100vh;display:flex;flex-direction:column}.layout-header{background:var(--sae-purple);border-bottom:3px solid var(--sae-gold);box-shadow:0 2px 4px #0000001a}.header-content{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) 0}.header-left{display:flex;align-items:center;gap:var(--spacing-xl)}.app-title{font-size:1.25rem;font-weight:700;color:#fff;margin:0;display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:opacity .2s}.app-title:hover{opacity:.9}.app-icon{font-size:1.4rem;line-height:1;color:var(--sae-gold);filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.header-nav{display:flex;gap:.5rem;align-items:center}.nav-link{background:none;border:none;padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;font-weight:500;color:#ffffffe6;cursor:pointer;border-radius:var(--radius-sm);transition:all .2s;text-decoration:none}.nav-link:hover{background-color:var(--sae-purple-dark);color:var(--sae-gold-light)}.nav-link.active{background-color:var(--sae-gold);color:var(--sae-purple);font-weight:600}.header-right{display:flex;align-items:center;gap:var(--spacing-lg)}.user-dropdown{position:relative}.user-dropdown-trigger{display:flex;align-items:center;gap:var(--spacing-sm);background:#ffffff1a;border:1px solid rgba(255,255,255,.2);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}.user-dropdown-trigger:hover{background:#ffffff26;border-color:#ffffff4d}.user-dropdown-trigger .user-info{margin-right:0}.dropdown-arrow{color:var(--sae-gold-light);font-size:.75rem;transition:transform .2s}.dropdown-arrow.open{transform:rotate(180deg)}.user-dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;background-color:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-md);box-shadow:0 4px 12px #00000026;min-width:180px;z-index:100;overflow:hidden}.dropdown-item{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;text-align:left;font-size:.875rem;color:var(--text-primary);cursor:pointer;transition:background-color .2s}.dropdown-item:hover{background-color:#f1f5f9}.dropdown-item-danger{color:var(--danger)}.dropdown-item-danger:hover{background-color:#fef2f2}.dropdown-divider{height:1px;background-color:var(--border-color);margin:var(--spacing-xs) 0}.user-info{display:flex;flex-direction:column;align-items:flex-end;margin-right:var(--spacing-md);color:#fff}.user-name{font-size:.875rem;font-weight:600;color:#fff}.user-role{font-size:.75rem;color:var(--sae-gold-light);text-transform:capitalize}.layout-main{flex:1;padding:var(--spacing-2xl) 0}.layout-footer{background-color:var(--surface-color);border-top:1px solid var(--border-color);padding:var(--spacing-lg) 0;margin-top:auto}.layout-footer p{text-align:center;font-size:.875rem;color:var(--text-secondary);margin:0}@media(max-width:768px){.header-content{flex-direction:column;gap:var(--spacing-md);align-items:flex-start}.header-right{width:100%;justify-content:space-between}.user-info{align-items:flex-start;margin-right:0}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:linear-gradient(135deg,#667eea,#764ba2)}.login-card{width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:var(--spacing-xl)}.login-header h1{font-size:1.875rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.login-header p{color:var(--text-secondary);font-size:.875rem}.login-form{margin-bottom:var(--spacing-xl)}.login-button{width:100%;padding:var(--spacing-md);font-size:1rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.login-footer{border-top:1px solid var(--border-color);padding-top:var(--spacing-lg)}.demo-accounts-title{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);text-align:center}.demo-accounts{display:flex;flex-direction:column;gap:var(--spacing-sm)}.demo-account{padding:var(--spacing-sm);background-color:var(--background-color);border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-secondary)}.demo-account strong{color:var(--text-primary);font-weight:600}@media(max-width:640px){.login-container{padding:var(--spacing-md)}.login-card{padding:var(--spacing-lg)}.login-header h1{font-size:1.5rem}}.dashboard{max-width:900px;margin:0 auto;padding:var(--spacing-md)}.dashboard-header{margin-bottom:var(--spacing-2xl);text-align:center}.dashboard-header h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.dashboard-subtitle{font-size:1rem;color:var(--text-secondary)}.dashboard-subtitle strong{color:var(--primary-color);text-transform:capitalize}.dashboard-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.user-details{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.user-details h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md)}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-color)}.detail-item:last-child{border-bottom:none}.detail-label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.detail-value{font-size:.875rem;color:var(--text-primary)}.role-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--primary-color);color:#fff;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:capitalize}.status-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.status-active{background-color:#d1fae5;color:#065f46}.status-inactive{background-color:#fee2e2;color:#991b1b}.dashboard-content ul{margin:var(--spacing-md) 0;padding-left:var(--spacing-xl)}.dashboard-content li{margin:var(--spacing-sm) 0;color:var(--text-secondary)}.card-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.card-header-row h2{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0}.standing-badge{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);font-size:.75rem;font-weight:600;white-space:nowrap}.info-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}.info-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--background-color);border-radius:var(--radius-md);border:1px solid var(--border-color)}.info-icon{font-size:2rem;flex-shrink:0}.info-content{flex:1;min-width:0}.info-label{font-size:.75rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-xs)}.info-value{font-size:1.5rem;font-weight:700;color:var(--primary-color)}.summary-grid{display:flex;flex-direction:column;gap:var(--spacing-md)}.summary-item{padding:var(--spacing-md);background-color:var(--background-color);border-radius:var(--radius-md);border:1px solid var(--border-color)}.summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.summary-date{font-size:.875rem;font-weight:500;color:var(--text-primary)}.status-badge-sm{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.summary-progress{display:flex;flex-direction:column;gap:var(--spacing-xs)}.progress-bar{height:8px;background-color:var(--border-color);border-radius:var(--radius-sm);overflow:hidden}.progress-fill{height:100%;transition:width .3s ease}.progress-success{background-color:#059669}.progress-warning{background-color:#d97706}.progress-text{font-size:.875rem;color:var(--text-secondary);text-align:right}.fine-total{font-size:1.25rem;font-weight:700;color:#dc2626}.fines-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.fine-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background-color:var(--background-color);border-radius:var(--radius-md);border:1px solid var(--border-color)}.fine-info{flex:1;min-width:0}.fine-date{font-size:.75rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.fine-reason{font-size:.875rem;color:var(--text-primary)}.fine-amount{font-size:1.125rem;font-weight:700;color:#dc2626;flex-shrink:0;margin-left:var(--spacing-md)}.view-more{text-align:center;margin-top:var(--spacing-md);font-size:.875rem;color:var(--text-secondary)}.quick-links{display:flex;flex-direction:column;gap:var(--spacing-sm)}.quick-link-btn{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.quick-link-btn:hover{background-color:var(--background-hover);border-color:var(--primary-color);transform:translate(4px)}.link-icon{font-size:1.5rem;flex-shrink:0}.link-text{flex:1;font-size:.9375rem;font-weight:500;color:var(--text-primary)}.link-arrow{font-size:1.25rem;color:var(--primary-color);flex-shrink:0}.placeholder-text{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary);font-style:italic}.btn-link{background:none;border:none;color:var(--primary-color);font-size:.875rem;font-weight:500;cursor:pointer;padding:0;transition:opacity .2s ease}.btn-link:hover{opacity:.7}.classes-grid{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.class-badge{display:inline-flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--text-primary)}.semester-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-md);background-color:var(--sae-purple-light, #7B4BA8);color:#fff;border-radius:var(--radius-md);font-size:.75rem;font-weight:600;white-space:nowrap}.requirements-summary{display:flex;flex-direction:column;gap:var(--spacing-md)}.summary-stats{display:flex;gap:var(--spacing-lg);flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--background-color);border-radius:var(--radius-md);min-width:80px}.stat-item .stat-number{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.stat-item .stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase}.stat-item.overdue{background:#fee2e2}.stat-item.overdue .stat-number{color:#dc2626}.stat-item.completed .stat-number{color:#059669}.upcoming-requirements{border-top:1px solid var(--border-color);padding-top:var(--spacing-md)}.upcoming-requirements h4{font-size:.875rem;font-weight:600;color:var(--text-secondary);margin:0 0 var(--spacing-sm) 0}.upcoming-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-color)}.upcoming-item:last-child{border-bottom:none}.upcoming-item .upcoming-name{font-size:.875rem;color:var(--text-primary)}.upcoming-item .upcoming-date{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.upcoming-item.due-soon .upcoming-date{color:#d97706;font-weight:600}.all-done-text{text-align:center;color:#059669;font-weight:500;padding:var(--spacing-md);background:#d1fae5;border-radius:var(--radius-md);margin:0}.class-history-preview{display:flex;flex-direction:column;gap:var(--spacing-md)}.semester-preview{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.semester-preview-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--background-color);border-bottom:1px solid var(--border-color)}.semester-preview-header .semester-name{font-weight:600;font-size:.875rem;color:var(--text-primary)}.semester-gpa-badge{font-size:.75rem;font-weight:600;color:#5c2e91;background:#f3e8ff;padding:2px 8px;border-radius:var(--radius-sm)}.classes-preview-grid{padding:var(--spacing-sm) var(--spacing-md);display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.class-preview-item{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--background-color);border-radius:var(--radius-sm);font-size:.8rem}.class-preview-item .class-code{font-family:monospace;color:var(--text-primary)}.grade-badge-sm{display:inline-block;padding:1px 6px;border-radius:var(--radius-sm);font-weight:600;font-size:.7rem}.grade-badge-sm.grade-a{background:#d1fae5;color:#065f46}.grade-badge-sm.grade-b{background:#dbeafe;color:#1e40af}.grade-badge-sm.grade-c{background:#fef3c7;color:#92400e}.grade-badge-sm.grade-d{background:#fed7aa;color:#9a3412}.grade-badge-sm.grade-f{background:#fee2e2;color:#991b1b}.grade-badge-sm.grade-default{background:#f3f4f6;color:#6b7280}.more-classes{font-size:.75rem;color:var(--text-secondary);padding:var(--spacing-xs) var(--spacing-sm)}.more-semesters-text{font-size:.8rem;color:var(--text-secondary);text-align:center;margin:0;padding-top:var(--spacing-sm)}@media(max-width:640px){.dashboard{padding:var(--spacing-sm)}.dashboard-header h1{font-size:1.5rem}.detail-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.info-value{font-size:1.25rem}.card-header-row{flex-wrap:wrap;gap:var(--spacing-sm)}}@media(min-width:640px){.info-grid{grid-template-columns:repeat(2,1fr)}}.classes-table-container{overflow-x:auto}.classes-table{width:100%;border-collapse:collapse;font-size:.875rem}.classes-table th{text-align:left;padding:var(--spacing-sm) var(--spacing-md);background-color:#f8fafc;border-bottom:2px solid var(--border-color);font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}.classes-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color);color:var(--text-primary)}.classes-table tbody tr:hover{background-color:#f8fafc}.classes-table tbody tr:last-child td{border-bottom:none}.class-history-container{display:flex;flex-direction:column;gap:var(--spacing-lg)}.semester-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background-color:#f8fafc;border-bottom:1px solid var(--border-color);font-weight:600;color:var(--text-primary)}.student-list{max-width:1400px;margin:0 auto}.student-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.student-list-header h1{font-size:2rem;font-weight:700;color:var(--text-primary)}.student-filters{margin-bottom:var(--spacing-lg)}.filter-form{width:100%}.filter-row{display:flex;gap:var(--spacing-md);align-items:center;flex-wrap:wrap}.filter-group{flex:1;min-width:200px}.filter-group .form-input{width:100%}.results-summary{margin-bottom:var(--spacing-md);font-size:.875rem;color:var(--text-secondary)}.table-container{overflow-x:auto}.student-table{width:100%;border-collapse:collapse}.student-table thead{background-color:var(--background-color)}.student-table th{padding:var(--spacing-md);text-align:left;font-size:.875rem;font-weight:600;color:var(--text-secondary);border-bottom:2px solid var(--border-color)}.student-table td{padding:var(--spacing-md);font-size:.875rem;color:var(--text-primary);border-bottom:1px solid var(--border-color)}.student-table tbody tr:hover{background-color:var(--background-color)}.student-table .no-results{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary)}.font-mono{font-family:Courier New,monospace;font-weight:600}.badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:capitalize}.badge-success{background-color:#d1fae5;color:#065f46}.badge-warning{background-color:#fef3c7;color:#92400e}.badge-danger{background-color:#fee2e2;color:#991b1b}.badge-critical{background-color:#fecaca;color:#7f1d1d}.badge-info{background-color:#dbeafe;color:#1e40af}.badge-secondary{background-color:#f1f5f9;color:#475569}.badge-default{background-color:#e5e7eb;color:#374151}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-xl)}.pagination-info{font-size:.875rem;color:var(--text-secondary)}@media(max-width:768px){.student-list-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.filter-row{flex-direction:column}.filter-group{width:100%}.table-container{overflow-x:scroll}.student-table{min-width:800px}}.student-requirements{background:var(--surface-color);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm)}.requirements-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.requirements-header h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.875rem}.student-requirements-loading{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl)}.empty-text{text-align:center;color:var(--text-secondary);font-size:.875rem;padding:var(--spacing-xl)}.requirements-list-items{display:flex;flex-direction:column;gap:var(--spacing-md)}.requirement-item{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);border:2px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);transition:all .2s}.requirement-item:hover{border-color:var(--primary-color);box-shadow:var(--shadow-sm)}.requirement-item.completed .requirement-name{text-decoration:line-through;color:var(--text-secondary)}.requirement-item.overdue{border-left:4px solid var(--danger-color)}.requirement-item.pending{background:#fffbeb;border-color:#fcd34d}.requirement-main{display:flex;align-items:flex-start;gap:var(--spacing-md);flex:1}.requirement-checkbox{margin-top:2px;cursor:pointer;width:18px;height:18px;flex-shrink:0}.status-select{padding:4px 8px;font-size:.75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#fff;cursor:pointer;flex-shrink:0;min-width:100px}.status-select:disabled{background:#f3f4f6;cursor:not-allowed}.requirement-info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs)}.requirement-name{font-size:1rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-sm)}.auto-badge{padding:2px 6px;background:#dbeafe;color:#1e40af;border-radius:var(--radius-sm);font-size:.7rem;font-weight:600;text-transform:uppercase}.pending-badge{padding:2px 6px;background:#fef3c7;color:#92400e;border-radius:var(--radius-sm);font-size:.7rem;font-weight:600;text-transform:uppercase}.exempt-badge{padding:2px 6px;background:#e0e7ff;color:#3730a3;border-radius:var(--radius-sm);font-size:.7rem;font-weight:600;text-transform:uppercase}.requirement-item.exempt{background:#f5f3ff;border-color:#c4b5fd}.requirement-item.exempt .requirement-name{text-decoration:line-through;color:var(--text-secondary)}.requirement-description{font-size:.875rem;color:var(--text-secondary);line-height:1.4}.requirement-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-md);font-size:.75rem;color:var(--text-secondary)}.meta-item{display:flex;align-items:center;gap:var(--spacing-xs)}.meta-item.overdue{color:var(--danger-color);font-weight:600}.meta-item.success{color:var(--success-color);font-weight:500}.meta-item.semester{background:var(--sae-purple-light, #7B4BA8);color:#fff;padding:2px 8px;border-radius:var(--radius-sm);font-weight:500}.btn-remove{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);flex-shrink:0;transition:all .2s}.btn-remove:hover{background:#fee2e2;color:var(--danger-color)}.requirement-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.review-content{padding:var(--spacing-md) 0}.review-requirement-info{background:#f8fafc;border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.review-requirement-info h4{margin:0 0 var(--spacing-sm) 0;font-size:1rem;color:var(--text-primary)}.review-notes-display{margin:0;font-size:.875rem;color:var(--text-secondary);font-style:italic}.review-actions{justify-content:space-between}.meta-item.notes{display:block;width:100%;font-style:italic;color:var(--text-secondary);margin-top:var(--spacing-xs)}.btn-success{background:#059669;color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-sm);cursor:pointer;font-weight:500}.btn-success:hover{background:#047857}.btn-danger{background:#dc2626;color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-sm);cursor:pointer;font-weight:500}.btn-danger:hover{background:#b91c1c}.submitted-classes-section{background:#f0f9ff;border:1px solid #bae6fd;border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.submitted-classes-section label{display:block;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.submitted-classes-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.submitted-class-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:#fff;border-radius:var(--radius-sm);border:1px solid #e0f2fe}.submitted-class-item .class-code{font-weight:600;color:var(--text-primary);min-width:100px}.submitted-class-item .class-name{color:var(--text-secondary);font-size:.875rem}.loading-text,.no-classes-text{color:var(--text-secondary);font-size:.875rem;font-style:italic;margin:0}@media(max-width:768px){.requirements-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.requirements-header button{width:100%}.requirement-item{flex-direction:column}.btn-remove{align-self:flex-end}}.student-details{max-width:1200px;margin:0 auto}.details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.header-actions{display:flex;gap:var(--spacing-md)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--border-color)}.card-header h2{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0}.standing-badge{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:.875rem;font-weight:600}.standing-success{background-color:#d1fae5;color:#065f46}.standing-warning{background-color:#fef3c7;color:#92400e}.standing-danger{background-color:#fee2e2;color:#991b1b}.standing-critical{background-color:#fecaca;color:#7f1d1d}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-xl)}.info-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.info-section.full-width{grid-column:1 / -1}.info-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.info-item{display:flex;justify-content:space-between;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-color)}.info-item:last-child{border-bottom:none}.info-label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.info-value{font-size:.875rem;color:var(--text-primary);font-weight:500}.gpa-value{font-size:1.125rem;font-weight:700;color:var(--primary-color)}.status-notes{padding:var(--spacing-md);background-color:var(--background-color);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-secondary);line-height:1.6}.placeholder-text{color:var(--text-secondary);font-style:italic;text-align:center;padding:var(--spacing-xl)}.table-container{overflow-x:auto;margin-top:var(--spacing-md)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table thead{background-color:var(--background-color);border-bottom:2px solid var(--border-color)}.data-table th{padding:var(--spacing-md);text-align:left;font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}.data-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color .15s ease}.data-table tbody tr:hover{background-color:var(--background-color)}.data-table tbody tr:last-child{border-bottom:none}.data-table td{padding:var(--spacing-md);color:var(--text-primary)}.text-success{color:#059669;font-weight:600}.text-warning{color:#d97706;font-weight:600}.text-danger{color:#dc2626;font-weight:600}.fine-summary{margin-top:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--background-color);border-radius:var(--radius-md);text-align:right;font-size:1rem}.fine-summary strong{margin-right:var(--spacing-sm)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-md)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg)}.email-preview-modal{background:var(--surface-color);border-radius:var(--radius-lg);max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600}.email-preview-content{padding:var(--spacing-lg)}.email-preview-meta{background:var(--background-color);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.preview-field{display:flex;gap:var(--spacing-md);padding:var(--spacing-xs) 0}.preview-label{font-weight:600;color:var(--text-secondary);min-width:60px}.preview-value{color:var(--text-primary)}.email-preview-body{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.email-template-preview{background:#fff}.template-header{background:linear-gradient(135deg,#5c2e91,#4a2573);color:#fff;padding:var(--spacing-lg);text-align:center}.template-icon{font-size:2rem;display:block;margin-bottom:var(--spacing-sm)}.template-header h2{margin:0;font-size:1.25rem}.template-content{padding:var(--spacing-lg);font-size:.875rem;line-height:1.6}.template-content p{margin:0 0 var(--spacing-md) 0}.credentials-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-md);padding:var(--spacing-md);margin:var(--spacing-lg) 0}.credentials-preview h4{margin:0 0 var(--spacing-md) 0;color:#5c2e91;font-size:.875rem}.credential-row{display:flex;flex-direction:column;gap:2px;padding:var(--spacing-sm);background:#fff;border-radius:var(--radius-sm);margin-bottom:var(--spacing-sm)}.credential-row:last-child{margin-bottom:0}.cred-label{font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.cred-value{font-weight:600;color:#1e293b;font-family:monospace}.cred-value.placeholder{color:#9ca3af;font-style:italic;font-family:inherit}.warning-preview{background:#fef3c7;border-left:4px solid #f59e0b;padding:var(--spacing-md);margin:var(--spacing-md) 0;border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:.875rem}.warning-preview strong{color:#92400e}.standing-badge-preview{display:inline-block;background:#cfb53b;color:#1e293b;padding:2px 8px;border-radius:var(--radius-sm);font-weight:600;font-size:.8rem}.button-preview{text-align:center;margin:var(--spacing-lg) 0}.btn-preview{display:inline-block;background:#5c2e91;color:#fff;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-sm);font-weight:600;font-size:.875rem}.template-content ul{margin:var(--spacing-md) 0;padding-left:var(--spacing-lg)}.template-content li{margin-bottom:var(--spacing-xs)}.email-preview-warning{background:#fef3c7;border:1px solid #fcd34d;border-radius:var(--radius-md);padding:var(--spacing-md);margin-top:var(--spacing-lg);font-size:.875rem}.email-preview-warning strong{color:#92400e}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid var(--border-color)}.class-badges-container{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);padding:var(--spacing-md) 0}.class-badge{display:inline-block;background-color:#f3e8ff;color:#5c2e91;padding:var(--spacing-xs) var(--spacing-md);border-radius:9999px;font-weight:500;font-size:.875rem;border:1px solid #e9d5ff}.class-history-container{display:flex;flex-direction:column;gap:var(--spacing-xl)}.semester-section{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.semester-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background:var(--background-color);border-bottom:1px solid var(--border-color)}.semester-header h4{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.semester-gpa{font-size:.875rem;font-weight:600;color:#5c2e91;background:#f3e8ff;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.data-table.compact th,.data-table.compact td{padding:var(--spacing-sm) var(--spacing-md)}.grade-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-weight:600;font-size:.8rem}.grade-a{background:#d1fae5;color:#065f46}.grade-b{background:#dbeafe;color:#1e40af}.grade-c{background:#fef3c7;color:#92400e}.grade-d{background:#fed7aa;color:#9a3412}.grade-f{background:#fee2e2;color:#991b1b}.grade-p{background:#e5e7eb;color:#374151}.grade-default{background:#f3f4f6;color:#6b7280}@media(max-width:768px){.details-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.header-actions{width:100%;flex-wrap:wrap}.header-actions button{flex:1}.card-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.info-grid{grid-template-columns:1fr}.info-item{flex-direction:column;gap:var(--spacing-xs)}}.student-preview{max-width:900px;margin:0 auto}.preview-banner{background:linear-gradient(135deg,var(--sae-purple, #5C2E91),var(--sae-purple-dark, #4A2573));color:#fff;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-md)}.banner-content{display:flex;align-items:center;gap:var(--spacing-md)}.banner-icon{font-size:1.5rem}.banner-note{opacity:.8;font-size:.875rem}.preview-banner .btn-sm{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:var(--spacing-xs) var(--spacing-md);font-size:.875rem}.preview-banner .btn-sm:hover{background:#ffffff4d}.preview-content{background:#f8fafc;border:2px dashed var(--sae-purple, #5C2E91);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.preview-dashboard h1{font-size:1.75rem;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.preview-dashboard .subtitle{color:var(--text-secondary);margin:0 0 var(--spacing-xl) 0}.status-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);box-shadow:var(--shadow-sm)}.status-card h3{font-size:.875rem;color:var(--text-secondary);margin:0 0 var(--spacing-sm) 0;text-transform:uppercase;letter-spacing:.05em}.status-card.standing .standing-value{font-size:1.5rem;font-weight:700}.standing-value.good-standing{color:var(--success-color)}.standing-value.academic-watch{color:var(--sae-gold, #CFB53B)}.standing-value.academic-probation{color:#f97316}.standing-value.academic-suspension{color:var(--danger-color)}.gpa-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.gpa-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.requirements-section{margin-top:var(--spacing-xl)}.requirements-section h2{font-size:1.25rem;margin:0 0 var(--spacing-lg) 0;color:var(--text-primary)}.req-summary{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.summary-item{flex:1;text-align:center;padding:var(--spacing-md);border-radius:var(--radius-md);background:var(--surface-color);border:2px solid var(--border-color)}.summary-item .count{display:block;font-size:1.5rem;font-weight:700}.summary-item .label{font-size:.75rem;text-transform:uppercase;color:var(--text-secondary)}.summary-item.pending{border-color:var(--sae-gold, #CFB53B)}.summary-item.pending .count{color:var(--sae-gold-dark, #B39A2F)}.summary-item.completed{border-color:var(--success-color)}.summary-item.completed .count{color:var(--success-color)}.summary-item.overdue{border-color:var(--danger-color)}.summary-item.overdue .count{color:var(--danger-color)}.requirement-item{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--surface-color);border:2px solid var(--border-color);border-radius:var(--radius-md)}.requirement-item.completed{background:#f0fdf4;border-color:#86efac}.requirement-item.exempt{background:#fefce8;border-color:#fde047}.requirement-item.overdue{border-color:var(--danger-color);border-left-width:4px}.req-status{flex-shrink:0}.status-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:1rem}.status-icon.completed{background:var(--success-color);color:#fff}.status-icon.exempt{background:#fde047;color:#854d0e}.status-icon.overdue{background:var(--danger-color);color:#fff;font-weight:700}.status-icon.pending{background:var(--border-color);color:var(--text-secondary)}.req-content{flex:1}.req-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm)}.req-name{font-weight:600;color:var(--text-primary)}.requirement-item.completed .req-name{text-decoration:line-through;color:var(--text-secondary)}.req-badges{display:flex;flex-wrap:wrap;gap:4px}.badge{padding:2px 6px;border-radius:var(--radius-sm);font-size:.65rem;font-weight:600;text-transform:uppercase}.req-description{font-size:.875rem;color:var(--text-secondary);margin:var(--spacing-xs) 0}.req-due{font-size:.8125rem;color:var(--text-secondary)}.req-due.overdue{color:var(--danger-color);font-weight:600}.empty-state{text-align:center;padding:var(--spacing-xl);background:var(--surface-color);border-radius:var(--radius-md);color:var(--text-secondary)}@media(max-width:768px){.preview-banner{flex-direction:column;gap:var(--spacing-md);text-align:center}.banner-content{flex-direction:column}.gpa-row{grid-template-columns:1fr}.req-summary,.req-header{flex-direction:column}}.student-form-container{max-width:900px;margin:0 auto}.form-header{margin-bottom:var(--spacing-xl)}.form-header h1{font-size:1.875rem;font-weight:700;color:var(--text-primary)}.student-form{display:flex;flex-direction:column;gap:var(--spacing-xl)}.form-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-section h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--border-color)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group label{font-size:.875rem;font-weight:600;color:var(--text-primary)}.form-group .required{color:var(--danger-color)}.form-group input,.form-group select,.form-group textarea{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:var(--danger-color)}.form-group textarea{resize:vertical;min-height:100px}.form-text{font-size:.75rem;color:var(--text-secondary);font-style:italic}.error-message{font-size:.75rem;color:var(--danger-color);font-weight:500}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.alert{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:.875rem;font-weight:500}.alert-danger{background-color:#fee2e2;color:#991b1b;border:1px solid #fca5a5}@media(max-width:768px){.student-form-container{padding:var(--spacing-md)}.form-header h1{font-size:1.5rem}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}.academic-standing-settings{max-width:900px;margin:0 auto}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.settings-header h1{font-size:1.75rem;font-weight:700;color:var(--text-primary)}.button-group{display:flex;gap:var(--spacing-md)}.info-banner{background:#f0f9ff;border-left:4px solid #0284c7;padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-xl);border-radius:var(--radius-sm);font-size:.875rem;color:var(--text-secondary)}.standings-compact{display:flex;flex-direction:column;gap:var(--spacing-md)}.rule-card{position:relative;background:#fff;border:2px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-lg);padding-left:60px;display:flex;align-items:flex-start;transition:all .2s;min-height:60px}.rule-card:hover{box-shadow:0 2px 8px #00000014}.rule-card.success{border-left:5px solid #10b981}.rule-card.warning{border-left:5px solid #f59e0b}.rule-card.danger{border-left:5px solid #f97316}.rule-card.critical{border-left:5px solid #dc2626}.rule-card.default{border:2px dashed #d1d5db;background:#fafafa}.rule-badge{position:absolute;left:var(--spacing-md);top:50%;transform:translateY(-50%);width:32px;height:32px;background:var(--primary-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700}.rule-badge.default{background:#9ca3af}.rule-content{flex:1;display:flex;flex-direction:column;gap:var(--spacing-sm)}.standing-name{font-size:1.125rem;font-weight:600;margin:0;padding:0}.standing-name.success{color:#047857}.standing-name.warning{color:#b45309}.standing-name.danger{color:#c2410c}.standing-name.critical{color:#991b1b}.standing-name.default{color:#6b7280}.standing-name-input{font-size:1.125rem;font-weight:600;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#fff}.rule-display{font-size:.875rem;color:var(--text-secondary);font-family:Courier New,monospace}.rule-editor{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-xs)}.rule-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.rule-row label{font-size:.875rem;font-weight:500;color:var(--text-secondary);min-width:120px}.operator-input{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;background:#fff;width:70px}.gpa-input{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;width:80px;background:#fff}.logic-operator{padding:var(--spacing-xs) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;color:var(--primary-color);background:#fff;width:100px;margin-left:120px}.rule-meta-compact{display:flex;align-items:center;gap:var(--spacing-lg);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color)}.color-input{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;background:#fff}.rank-label{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.875rem;color:var(--text-secondary)}.rank-input-small{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;width:60px;background:#fff}.test-panel{background:#fefce8;border:2px solid #eab308;border-radius:var(--radius-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.test-panel h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md)}.test-inputs{display:flex;gap:var(--spacing-md);align-items:flex-end;flex-wrap:wrap}.test-input-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.test-input-group label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.test-result{margin-top:var(--spacing-lg);padding:var(--spacing-md);border-radius:var(--radius-sm);border-left:4px solid}.test-result.success{background:#d1fae5;border-color:#10b981}.test-result.warning{background:#fef3c7;border-color:#f59e0b}.test-result.danger{background:#fee2e2;border-color:#f97316}.test-result.critical{background:#fecaca;border-color:#dc2626}.test-result.default{background:#f3f4f6;border-color:#9ca3af}.test-result-standing{font-size:1rem;font-weight:600;margin-bottom:var(--spacing-xs)}.test-result-reason{font-size:.875rem;color:var(--text-secondary);font-family:Courier New,monospace}.default-selector{margin-top:var(--spacing-xl);padding:var(--spacing-lg);background:var(--background-color);border-radius:var(--radius-md)}.default-selector label{display:flex;flex-direction:column;gap:var(--spacing-sm);font-size:.875rem}.default-selector select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;background:#fff}.form-input{padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:#fff;color:var(--text-primary);transition:border-color .2s}.form-input:focus,.operator-input:focus,.gpa-input:focus,.logic-operator:focus,.color-input:focus,.rank-input-small:focus,.standing-name-input:focus{outline:none;border-color:var(--primary-color)}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@media(max-width:768px){.settings-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.button-group{width:100%}.button-group button{flex:1}.rule-card{padding-left:var(--spacing-md);padding-top:50px}.rule-badge{left:50%;transform:translate(-50%);top:var(--spacing-md)}.rule-row{flex-direction:column;align-items:flex-start}.rule-row label{min-width:auto}.logic-operator{margin-left:0;align-self:center}.rule-meta-compact{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}}.study-hours-settings{max-width:1200px;margin:0 auto;padding:2rem}.settings-header{margin-bottom:2rem}.settings-header h1{margin:0 0 .5rem;color:#2c3e50}.settings-header .subtitle{color:#7f8c8d;margin:0}.settings-section{background:#fff;border:1px solid #e1e8ed;border-radius:8px;padding:2rem;margin-bottom:2rem}.settings-section h2{margin:0 0 .5rem;color:#2c3e50;font-size:1.5rem}.section-description{color:#7f8c8d;margin:0 0 1.5rem}.setting-item{margin-bottom:1.5rem}.setting-item label{display:block;font-weight:500;color:#2c3e50;margin-bottom:.5rem}.setting-item label small{display:block;font-weight:400;color:#95a5a6;font-size:.875rem;margin-top:.25rem}.setting-item input[type=date],.setting-item input[type=number]{width:100%;max-width:300px;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.setting-item input:disabled{background-color:#f5f5f5;cursor:not-allowed}.toggle-label{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-label input[type=checkbox]{width:20px;height:20px;margin-right:.75rem;cursor:pointer}.toggle-text{flex:1}.toggle-text small{display:block;color:#95a5a6;font-weight:400;margin-top:.25rem}.standings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.checkbox-label{display:flex;align-items:center;padding:.75rem;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:background-color .2s}.checkbox-label:hover{background-color:#f8f9fa}.checkbox-label input[type=checkbox]{width:18px;height:18px;margin-right:.75rem;cursor:pointer}.checkbox-label input:disabled{cursor:not-allowed}.checkbox-label span{flex:1;font-weight:500}.tiers-container{display:flex;flex-direction:column;gap:1.5rem}.tier-item{border:2px solid #e1e8ed;border-radius:8px;padding:1.5rem;background:#f8f9fa}.tier-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.tier-header h3{margin:0;color:#2c3e50;font-size:1.25rem}.btn-remove{background-color:#e74c3c;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.875rem;transition:background-color .2s}.btn-remove:hover:not(:disabled){background-color:#c0392b}.btn-remove:disabled{background-color:#bdc3c7;cursor:not-allowed}.tier-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.field-group label{display:block;font-weight:500;color:#2c3e50;margin-bottom:.5rem;font-size:.875rem}.field-group input{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.field-group input:disabled{background-color:#e9ecef;cursor:not-allowed}.tier-preview{padding:.75rem;background:#fff;border:1px solid #d1d8dd;border-radius:4px;font-weight:500;color:#27ae60;text-align:center}.btn-add-tier{width:100%;padding:1rem;background-color:#3498db;color:#fff;border:2px dashed #2980b9;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.btn-add-tier:hover:not(:disabled){background-color:#2980b9;border-color:#2471a3}.btn-add-tier:disabled{background-color:#bdc3c7;border-color:#95a5a6;cursor:not-allowed}.settings-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:2px solid #e1e8ed}.btn-primary{background-color:#27ae60;color:#fff}.btn-primary:hover:not(:disabled){background-color:#229954}.btn-secondary{background-color:#95a5a6;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#7f8c8d}.loading,.error{text-align:center;padding:3rem;font-size:1.125rem;color:#7f8c8d}.error{color:#e74c3c}@media(max-width:768px){.study-hours-settings{padding:1rem}.settings-section{padding:1.5rem}.tier-fields,.standings-grid{grid-template-columns:1fr}.settings-actions{flex-direction:column}.settings-actions .btn{width:100%}}.semester-settings{padding:var(--spacing-lg)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.section-header h2{margin:0;color:var(--text-primary)}.section-description{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.semester-form{background:var(--surface-color);border-radius:var(--radius-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border:1px solid var(--border-color)}.semester-form h3{margin:0 0 var(--spacing-lg) 0;color:var(--text-primary);font-size:1.1rem}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-weight:600;color:var(--text-primary);font-size:.875rem}.form-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:1rem}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #5c2e911a}.checkbox-group{flex-direction:row;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.checkbox-group label{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:400;cursor:pointer}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.help-text{font-size:.75rem;color:var(--text-secondary);margin:0 0 0 26px}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.semesters-list{background:var(--surface-color);border-radius:var(--radius-md);border:1px solid var(--border-color);overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{background:var(--background-color);font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.data-table tbody tr:hover{background:var(--background-color)}.data-table tbody tr:last-child td{border-bottom:none}.data-table .active-row{background:#f0fdf4}.badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.badge-success{background:#d1fae5;color:#065f46}.badge-inactive{background:#f3f4f6;color:#6b7280}.empty-state{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary)}.empty-state p{margin:var(--spacing-xs) 0}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-secondary)}.actions-cell{display:flex;gap:var(--spacing-sm)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--surface-color);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.modal-header h3{font-size:1.25rem;font-weight:600;margin:0}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.modal-close:hover{background:var(--background-color);color:var(--text-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-lg)}@media(max-width:768px){.section-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.section-header button{width:100%}.form-row{grid-template-columns:1fr}.actions-cell{flex-direction:column}}.bulk-upload{max-width:1200px;margin:0 auto}.upload-header{margin-bottom:2rem}.upload-header h1{margin-bottom:.5rem;color:var(--text-primary)}.subtitle{color:var(--text-secondary);font-size:.95rem}.upload-section{background:#fff;border:1px solid var(--border);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.upload-section h2{margin-top:0;margin-bottom:1rem;font-size:1.25rem;color:var(--text-primary)}.upload-section h3{margin-top:1.5rem;margin-bottom:1rem;font-size:1.1rem;color:var(--text-primary)}.csv-format-table{overflow-x:auto;margin:1rem 0}.csv-format-table table{width:100%;border-collapse:collapse;font-size:.9rem}.csv-format-table th,.csv-format-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.csv-format-table th{background-color:var(--bg-secondary);font-weight:600;color:var(--text-primary)}.csv-format-table code{background:var(--bg-secondary);padding:.2rem .4rem;border-radius:3px;font-family:monospace;font-size:.85rem}.badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.badge-required{background-color:#fee;color:#c33}.badge-optional{background-color:#eef;color:#66c}.upload-notes{background-color:var(--bg-secondary);padding:1rem;border-radius:4px;margin:1rem 0}.upload-notes p{margin-top:0;font-weight:600}.upload-notes ul{margin:.5rem 0 0;padding-left:1.5rem}.upload-notes li{margin-bottom:.5rem;color:var(--text-secondary)}.file-upload-area{margin:1.5rem 0}.file-upload-area input[type=file]{display:block;width:100%;padding:.75rem;border:2px dashed var(--border);border-radius:4px;cursor:pointer;transition:border-color .2s}.file-upload-area input[type=file]:hover{border-color:var(--primary)}.selected-file{margin-top:1rem;padding:1rem;background-color:var(--bg-secondary);border-radius:4px;display:flex;justify-content:space-between;align-items:center}.selected-file strong{color:var(--primary)}.results-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.result-stat{padding:1rem;background-color:var(--bg-secondary);border-radius:4px;border-left:4px solid var(--border)}.result-stat.stat-success{border-left-color:var(--success);background-color:#f0fdf4}.result-stat.stat-info{border-left-color:var(--info);background-color:#f0f9ff}.result-stat.stat-error{border-left-color:var(--danger);background-color:#fef2f2}.result-stat .stat-label{display:block;font-size:.85rem;color:var(--text-secondary);margin-bottom:.25rem}.result-stat .stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--text-primary)}.created-students{margin-top:1.5rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.btn-sm{padding:.4rem .8rem;font-size:.85rem}.passwords-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:1rem}.passwords-table th,.passwords-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.passwords-table th{background-color:var(--bg-secondary);font-weight:600}.passwords-table code{background:#ffe;padding:.3rem .6rem;border-radius:3px;font-family:monospace;font-weight:600;color:#c33;border:1px solid #fcc}.import-errors{margin-top:1.5rem}.errors-table{width:100%;border-collapse:collapse;font-size:.9rem}.errors-table th,.errors-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.errors-table th{background-color:#fef2f2;font-weight:600;color:var(--danger)}.error-message{color:var(--danger);font-family:monospace;font-size:.85rem}.preview-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:1rem}.preview-table th,.preview-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.preview-table th{background-color:var(--bg-secondary);font-weight:600}.preview-table .highlight-change{background-color:#fffbeb;font-weight:600;color:#f59e0b}.preview-new,.preview-updates,.preview-errors{margin-top:1.5rem}.preview-new h3{color:var(--success)}.preview-updates h3{color:var(--info)}.preview-errors h3{color:var(--danger)}.preview-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:2px solid var(--border)}@media(max-width:768px){.results-summary{grid-template-columns:1fr}.selected-file,.section-header{flex-direction:column;align-items:flex-start;gap:.5rem}.csv-format-table,.passwords-table,.errors-table,.preview-table{font-size:.8rem}.preview-actions{flex-direction:column}}.settings-container{max-width:1400px;margin:0 auto;padding:var(--spacing-xl)}.settings-container h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.settings-description{color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.settings-tabs{display:flex;gap:0;margin-bottom:0;border-bottom:2px solid var(--border-color)}.settings-tab{padding:var(--spacing-md) var(--spacing-xl);background:none;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-weight:500;cursor:pointer;transition:all .2s;position:relative;bottom:-2px}.settings-tab:hover{color:var(--text-primary);background:var(--background-color)}.settings-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.settings-content{background:var(--surface-color);border-radius:0 var(--radius-lg) var(--radius-lg) var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-md)}.settings-section{animation:fadeIn .3s ease}@media(max-width:968px){.settings-container{padding:var(--spacing-md)}.settings-content{padding:var(--spacing-lg)}.settings-tabs{overflow-x:auto}.settings-tab{white-space:nowrap}}.requirements-list{max-width:1200px;margin:0 auto;padding:var(--spacing-xl)}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.list-header h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0}.header-actions{display:flex;gap:.5rem}.list-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding:var(--spacing-md);background:var(--surface-color);border-radius:var(--radius-md)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:.875rem;color:var(--text-secondary)}.checkbox-label input[type=checkbox]{cursor:pointer}.list-stats{display:flex;gap:var(--spacing-lg)}.stat{font-size:.875rem;color:var(--text-secondary);font-weight:500}.requirements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-lg)}.requirement-card{background:var(--surface-color);border:2px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md);transition:all .2s}.requirement-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-color)}.requirement-card.inactive{opacity:.6;background:var(--background-color)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm)}.card-header h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0;flex:1}.badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase}.badge.inactive{background:#f3f4f6;color:#6b7280}.requirement-description{font-size:.875rem;color:var(--text-secondary);line-height:1.5;margin:0}.requirement-meta{display:flex;flex-direction:column;gap:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color)}.meta-row{display:flex;flex-direction:column;gap:var(--spacing-xs)}.meta-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.meta-value{font-size:.875rem;color:var(--text-primary)}.standing-badges{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.standing-badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;white-space:nowrap}.standing-badge.success{background:#d1fae5;color:#047857}.standing-badge.warning{background:#fef3c7;color:#b45309}.standing-badge.danger{background:#fed7aa;color:#c2410c}.standing-badge.critical{background:#fecaca;color:#991b1b}.standing-badge.none{background:#f3f4f6;color:#6b7280}.card-actions{display:flex;gap:var(--spacing-sm);margin-top:auto;padding-top:var(--spacing-sm);border-top:1px solid var(--border-color)}.card-actions button{flex:1}.empty-state{text-align:center;padding:var(--spacing-2xl);background:var(--surface-color);border-radius:var(--radius-md)}.empty-state p{font-size:1rem;color:var(--text-secondary);margin-bottom:var(--spacing-lg)}@media(max-width:768px){.requirements-grid{grid-template-columns:1fr}.list-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.list-header button{width:100%}.list-controls{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.list-stats{width:100%;justify-content:space-between}}.requirement-form-container{max-width:800px;margin:0 auto;padding:var(--spacing-xl)}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.form-header h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0}.requirement-form{background:var(--surface-color);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md)}.form-section{margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-xl);border-bottom:1px solid var(--border-color)}.form-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.section-description{font-size:.875rem;color:var(--text-secondary);margin:0 0 var(--spacing-lg) 0;line-height:1.5}.form-group label{display:block;margin-bottom:var(--spacing-sm);font-size:.875rem;font-weight:500;color:var(--text-primary)}.form-input[type=number]{max-width:200px}.form-text{display:block;margin-top:var(--spacing-xs);font-size:.75rem;color:var(--text-secondary)}textarea.form-input{resize:vertical;min-height:100px;font-family:inherit}.radio-group{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.radio-option{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;background:var(--surface-color)}.radio-option:hover{border-color:var(--primary-color);background:var(--background-color)}.radio-option input[type=radio]{margin-top:2px;cursor:pointer;flex-shrink:0}.radio-option input[type=radio]:checked~span{color:var(--primary-color)}.radio-option input[type=radio]:checked~span strong{color:var(--primary-color)}.radio-option span{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:.875rem;color:var(--text-primary)}.radio-option span strong{font-weight:600;color:var(--text-primary)}.radio-option span small{font-size:.75rem;color:var(--text-secondary);font-weight:400}.standings-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.checkbox-card{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;background:var(--surface-color)}.checkbox-card:hover{border-color:var(--primary-color);background:var(--background-color)}.checkbox-card input[type=checkbox]{margin-top:2px;cursor:pointer;flex-shrink:0}.checkbox-card input[type=checkbox]:checked+.checkbox-label{color:var(--primary-color);font-weight:600}.checkbox-label{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:.875rem;color:var(--text-primary)}.checkbox-label small{font-size:.75rem;color:var(--text-secondary);font-weight:400}.info-box{padding:var(--spacing-md);background:#f0f9ff;border-left:4px solid #0284c7;border-radius:var(--radius-sm);font-size:.875rem;color:var(--text-secondary)}.info-box strong{color:var(--text-primary)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:1px solid var(--border-color)}.form-actions button{min-width:150px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);gap:var(--spacing-md)}.loading-container p{color:var(--text-secondary)}.alert{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-sm);margin-bottom:var(--spacing-lg);font-size:.875rem}.alert-error{background-color:#fee2e2;color:#991b1b;border-left:4px solid #dc2626}.alert-success{background-color:#d1fae5;color:#065f46;border-left:4px solid #10b981}@media(max-width:768px){.requirement-form-container{padding:var(--spacing-md)}.form-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.form-header button{width:100%}.standings-checkboxes{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}.form-input[type=number]{max-width:100%}}.bulk-completion-container{padding:2rem;max-width:1200px;margin:0 auto}.bulk-completion-container h1{margin:0 0 .5rem;font-size:1.75rem;color:#1a1a1a}.page-description{color:#666;margin-bottom:2rem;font-size:1rem}.alert-success{background-color:#efe;color:#3c3;border:1px solid #cfc}.bulk-completion-form{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.form-section{padding:1.5rem;border-bottom:1px solid #e9ecef}.form-section:last-child{border-bottom:none}.form-section h2{margin:0 0 1rem;font-size:1.25rem;color:#333}.form-group{margin-bottom:1rem}.form-group:last-child{margin-bottom:0}.form-control:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.requirement-description{margin-top:.5rem;padding:.75rem;background-color:#f8f9fa;border-left:3px solid #007bff;font-size:.9rem;color:#666;border-radius:4px}.student-selection-controls{display:flex;gap:1rem;margin-bottom:1rem;align-items:flex-end}.filter-input{flex:1}.students-list{max-height:400px;overflow-y:auto;border:1px solid #ddd;border-radius:4px;padding:.5rem;background-color:#fafafa}.student-item{padding:.5rem;border-bottom:1px solid #e9ecef}.student-item:last-child{border-bottom:none}.student-checkbox{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.25rem;border-radius:4px;transition:background-color .15s}.student-checkbox:hover{background-color:#f0f0f0}.student-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.student-info{display:flex;gap:1rem;flex:1;align-items:center}.student-name{font-weight:500;color:#333;min-width:200px}.student-id{color:#666;font-size:.9rem;min-width:100px}.student-standing{font-size:.85rem;color:#777;font-style:italic}.no-students-message{padding:2rem;text-align:center;color:#999;font-style:italic}.char-count{display:block;text-align:right;font-size:.85rem;color:#999;margin-top:.25rem}.form-actions{padding:1.5rem;background-color:#f8f9fa;border-top:1px solid #e9ecef;display:flex;justify-content:flex-end}.results-section{margin-top:2rem;padding:1.5rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.results-section h2{margin:0 0 1rem;font-size:1.5rem;color:#333}.results-section h3{margin:1.5rem 0 .75rem;font-size:1.1rem;color:#555}.results-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.result-stat{padding:1rem;border-radius:6px;display:flex;justify-content:space-between;align-items:center;border:2px solid}.result-stat.success{background-color:#d4edda;border-color:#28a745}.result-stat.error{background-color:#f8d7da;border-color:#dc3545}.result-label{font-weight:500;color:#333}.result-value{font-size:1.5rem;font-weight:700;color:#1a1a1a}.completed-list,.errors-list{margin-top:1rem}.completed-list ul,.errors-list ul{list-style:none;padding:0;margin:.5rem 0}.completed-list li{padding:.5rem;background-color:#d4edda;border-left:3px solid #28a745;margin-bottom:.5rem;border-radius:4px}.errors-list li{padding:.5rem;background-color:#f8d7da;border-left:3px solid #dc3545;margin-bottom:.5rem;border-radius:4px}.completion-date{color:#666;font-size:.85rem;margin-left:.5rem}.btn{padding:.5rem 1rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .15s,transform .1s;font-weight:500}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#545b62}.btn-sm{padding:.375rem .75rem;font-size:.9rem}@media(max-width:768px){.bulk-completion-container{padding:1rem}.student-selection-controls{flex-direction:column;align-items:stretch}.student-info{flex-direction:column;gap:.25rem;align-items:flex-start}.student-name,.student-id{min-width:auto}.results-summary{grid-template-columns:1fr}}.dashboard-container{max-width:1400px;margin:0 auto;padding:var(--spacing-xl)}.dashboard-container h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.dashboard-description{color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}.summary-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md);text-align:center;transition:transform .2s,box-shadow .2s}.summary-card.alert{border-left:4px solid #ef4444;cursor:pointer}.summary-card.alert:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.summary-card.success{border-left:4px solid #10b981}.card-value{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.summary-card.alert .card-value{color:#ef4444}.summary-card.success .card-value{color:#10b981}.card-label{font-size:.875rem;color:var(--text-secondary);font-weight:500}.card-hint{display:block;margin-top:var(--spacing-xs);font-size:.75rem;color:var(--text-secondary);font-style:italic}.dashboard-section{background:var(--surface-color);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md);margin-bottom:var(--spacing-2xl)}.dashboard-section h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-lg) 0}.standing-distribution{display:flex;flex-direction:column;gap:var(--spacing-md)}.standing-row{display:grid;grid-template-columns:200px 1fr 80px;gap:var(--spacing-md);align-items:center}.standing-info{display:flex;align-items:center;gap:var(--spacing-sm)}.standing-badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;white-space:nowrap}.standing-count{font-size:.875rem;color:var(--text-secondary)}.standing-bar-container{background:#f3f4f6;height:24px;border-radius:var(--radius-sm);overflow:hidden}.standing-bar{height:100%;transition:width .5s ease}.standing-bar.standing-good-standing{background:#10b981}.standing-bar.standing-academic-watch{background:#f59e0b}.standing-bar.standing-academic-probation{background:#ef4444}.standing-bar.standing-academic-suspension{background:#dc2626}.standing-percentage{font-size:.875rem;font-weight:600;color:var(--text-primary);text-align:right}.activity-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.activity-item{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--background-color);border-radius:var(--radius-md);border-left:3px solid var(--primary-color)}.activity-icon{font-size:1.5rem;flex-shrink:0}.activity-content{flex:1}.activity-content p{margin:0;font-size:.875rem;color:var(--text-primary)}.activity-content em{color:var(--primary-color);font-style:normal}.activity-time{font-size:.75rem;color:var(--text-secondary);display:block;margin-top:var(--spacing-xs)}.no-data{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary);font-style:italic}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.action-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);background:var(--background-color);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;color:var(--text-primary);font-weight:500}.action-btn:hover{border-color:var(--primary-color);background:var(--surface-color);transform:translateY(-2px);box-shadow:var(--shadow-md)}.action-icon{font-size:2rem}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);gap:var(--spacing-md)}.error-message{color:#dc2626;margin-bottom:var(--spacing-md)}@media(max-width:768px){.dashboard-container{padding:var(--spacing-md)}.summary-cards{grid-template-columns:1fr}.standing-row{grid-template-columns:1fr;gap:var(--spacing-sm)}.standing-bar-container{grid-column:1 / -1}.standing-percentage{text-align:left}.quick-actions{grid-template-columns:1fr}}.study-hours-report-container{padding:2rem;max-width:1400px;margin:0 auto}.report-controls{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.report-controls h1{margin:0 0 1.5rem;font-size:1.75rem;color:#1a1a1a}.controls-row{display:flex;gap:1.5rem;align-items:flex-end;flex-wrap:wrap}.form-group{flex:1;min-width:200px}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-control{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.week-select{min-width:350px}.week-select option:disabled{color:#999!important;font-style:italic}.button-group{display:flex;gap:.5rem}.alert{padding:1rem;border-radius:4px;margin-top:1rem}.alert-error{background-color:#fee;color:#c33;border:1px solid #fcc}.loading-message{text-align:center;padding:2rem;font-size:1.1rem;color:#666}.print-header h1{margin:0 0 .5rem;font-size:1.75rem}.print-header .week-range{font-size:1.1rem;font-weight:500;margin:.5rem 0}.print-header .generated-info{font-size:.9rem;color:#666;margin:.5rem 0 1.5rem}.report-summary{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.summary-header h2{margin:0 0 .5rem;font-size:1.5rem}.summary-header .week-range{font-size:1.1rem;color:#666;margin:.5rem 0}.finalized-status{font-weight:600;padding:.25rem .75rem;border-radius:4px;display:inline-block;margin-top:.5rem}.finalized-status.finalized{background-color:#d4edda;color:#155724}.finalized-status.not-finalized{background-color:#fff3cd;color:#856404}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:1.5rem}.stat-card{background:#f8f9fa;padding:1rem;border-radius:6px;text-align:center;border:2px solid transparent}.stat-card.success{background-color:#d4edda;border-color:#28a745}.stat-card.warning{background-color:#fff3cd;border-color:#ffc107}.stat-card.info{background-color:#d1ecf1;border-color:#17a2b8}.stat-card.danger{background-color:#f8d7da;border-color:#dc3545}.stat-label{font-size:.85rem;color:#666;margin-bottom:.5rem;font-weight:500}.stat-value{font-size:1.75rem;font-weight:700;color:#1a1a1a}.report-table-container{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.study-hours-table{width:100%;border-collapse:collapse;margin-top:1rem}.study-hours-table thead{background-color:#f8f9fa;border-bottom:2px solid #dee2e6}.study-hours-table th{padding:.75rem;text-align:left;font-weight:600;color:#495057;font-size:.9rem}.study-hours-table td{padding:.75rem;border-bottom:1px solid #dee2e6;font-size:.9rem}.study-hours-table tbody tr:hover{background-color:#f8f9fa}.study-hours-table tbody tr.completed{background-color:#f0f9f0}.study-hours-table tbody tr.not-completed{background-color:#fff8f0}.study-hours-table tbody tr.exempt{background-color:#f0f8ff}.hours-cell{font-weight:600;white-space:nowrap}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.complete{background-color:#28a745;color:#fff}.status-badge.incomplete{background-color:#ffc107;color:#333}.status-badge.exempt{background-color:#17a2b8;color:#fff}.fines-cell{min-width:120px}.fines-list{display:flex;flex-direction:column;gap:.25rem}.fine-item{display:flex;align-items:center;gap:.5rem;font-weight:600}.fine-status{font-size:.7rem;font-weight:400;color:#666}.fine-status.pending{color:#ffc107}.fine-status.paid{color:#28a745}.fine-status.waived{color:#6c757d}.no-fines{color:#999}.no-data-message{text-align:center;padding:2rem;color:#666;font-style:italic}@media print{.no-print{display:none!important}.print-only{display:block!important}.study-hours-report-container{padding:0;max-width:100%}.report-summary,.report-table-container{box-shadow:none;padding:.5rem 0}.print-header{margin-bottom:1.5rem;border-bottom:2px solid #333;padding-bottom:1rem}.summary-stats{margin-bottom:1.5rem;page-break-after:avoid}.stat-card{border:1px solid #333;page-break-inside:avoid}.study-hours-table{border:1px solid #333;font-size:10pt}.study-hours-table thead{display:table-header-group;background-color:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.study-hours-table th{border:1px solid #333;font-weight:700}.study-hours-table td{border:1px solid #666}.study-hours-table tr{page-break-inside:avoid}.study-hours-table tbody tr.completed{background-color:#e8f5e9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.study-hours-table tbody tr.not-completed{background-color:#fff3e0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.study-hours-table tbody tr.exempt{background-color:#e3f2fd!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.status-badge{border:1px solid #333;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid #333;font-size:9pt;color:#666;text-align:center}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.high-achievers-report-container{padding:2rem;max-width:1200px;margin:0 auto}.report-controls{margin-bottom:2rem;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.controls-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.controls-header h1{margin:0;font-size:1.75rem;color:#333}.gpa-filter-form{margin-top:1rem}.gpa-filter-form .form-group{display:flex;align-items:center;gap:1rem}.gpa-filter-form label{font-weight:500;color:#555}.gpa-input{width:120px;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.report-content{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.report-header{margin-bottom:2rem;text-align:center}.report-header h1{margin:0 0 1rem;font-size:2rem;color:#333}.report-meta{display:flex;justify-content:center;gap:2rem;font-size:.95rem;color:#666}.report-meta p{margin:.25rem 0}.high-achievers-table{width:100%;border-collapse:collapse;margin:1.5rem 0}.high-achievers-table thead{background-color:#f8f9fa;border-bottom:2px solid #dee2e6}.high-achievers-table th{padding:1rem;text-align:left;font-weight:600;color:#495057}.high-achievers-table tbody tr{border-bottom:1px solid #e9ecef}.high-achievers-table tbody tr:hover{background-color:#f8f9fa}.high-achievers-table td{padding:.875rem 1rem}.student-name{font-weight:500;color:#333}.student-gpa{font-weight:600;color:#28a745;text-align:left}.report-footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid #e9ecef;text-align:center;color:#6c757d;font-size:.9rem}.report-footer p{margin:.25rem 0}.no-data-message{text-align:center;padding:3rem;color:#6c757d}.no-data-message p{margin:.5rem 0;font-size:1.1rem}.print-only{display:none}@media print{@page{size:letter;margin:.5in}html,body{width:100%;height:auto;margin:0;padding:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}.no-print{display:none!important}.high-achievers-report-container{padding:1rem;max-width:100%;visibility:visible!important;display:block!important}.print-only{display:block!important;visibility:visible!important}.report-content{box-shadow:none;padding:1rem;display:block!important;visibility:visible!important;background:#fff}.report-header{display:block!important;visibility:visible!important;page-break-after:avoid}.report-header h1{font-size:1.5rem;margin-bottom:.5rem;color:#000}.report-meta{font-size:.85rem;gap:1.5rem;display:flex!important;visibility:visible!important;color:#000}.high-achievers-table{font-size:.9rem;display:table!important;visibility:visible!important;width:100%;border-collapse:collapse;margin:1rem 0}.high-achievers-table thead{display:table-header-group!important;visibility:visible!important}.high-achievers-table tbody{display:table-row-group!important;visibility:visible!important}.high-achievers-table tr{display:table-row!important;visibility:visible!important;page-break-inside:avoid}.high-achievers-table th,.high-achievers-table td{display:table-cell!important;visibility:visible!important;padding:.5rem .75rem;border:1px solid #333;color:#000}.high-achievers-table th{background-color:#f0f0f0!important;font-weight:700}.high-achievers-table tbody tr:hover{background-color:transparent}.report-footer{display:block!important;visibility:visible!important;margin-top:2rem;color:#000}}.reports-container{max-width:1400px;margin:0 auto;padding:var(--spacing-xl)}.reports-container h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.reports-description{color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.report-tabs{display:flex;gap:0;margin-bottom:0;border-bottom:2px solid var(--border-color)}.report-tab{padding:var(--spacing-md) var(--spacing-xl);background:none;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-weight:500;cursor:pointer;transition:all .2s;position:relative;bottom:-2px}.report-tab:hover{color:var(--text-primary);background:var(--background-color)}.report-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.report-content{background:var(--surface-color);border-radius:0 var(--radius-lg) var(--radius-lg) var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-md)}.report-section{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.report-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-2xl)}.report-header h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.section-description{font-size:.875rem;color:var(--text-secondary);margin:0}.report-actions{display:flex;gap:var(--spacing-md)}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}.stat-card{background:var(--background-color);padding:var(--spacing-lg);border-radius:var(--radius-md);text-align:center;border-left:4px solid var(--primary-color)}.stat-card.alert{border-left-color:#ef4444}.stat-card.success{border-left-color:#10b981}.stat-value{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.stat-card.alert .stat-value{color:#ef4444}.stat-card.success .stat-value{color:#10b981}.stat-label{font-size:.875rem;color:var(--text-secondary)}.filters-container{display:flex;gap:var(--spacing-md);align-items:flex-end;padding:var(--spacing-lg);background:var(--background-color);border-radius:var(--radius-md);margin-bottom:var(--spacing-2xl)}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1}.filter-group label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.filter-group select,.filter-group input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem}.results-count{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--spacing-md);font-weight:500}.report-table{width:100%;border-collapse:collapse;background:var(--surface-color)}.report-table thead{background:var(--background-color)}.report-table th{padding:var(--spacing-md);text-align:left;font-weight:600;color:var(--text-primary);font-size:.875rem;border-bottom:2px solid var(--border-color)}.report-table td{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);font-size:.875rem;color:var(--text-primary)}.report-table tbody tr:hover{background:var(--background-color)}.text-center{text-align:center!important}.standing-badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;white-space:nowrap;display:inline-block}.standing-badge.standing-good-standing{background:#d1fae5;color:#065f46}.standing-badge.standing-academic-watch{background:#fed7aa;color:#92400e}.standing-badge.standing-academic-probation{background:#fee2e2;color:#991b1b}.standing-badge.standing-academic-suspension{background:#fecaca;color:#7f1d1d}.overdue-badge{background:#fee2e2;color:#991b1b;padding:2px 8px;border-radius:var(--radius-sm);font-weight:600;font-size:.75rem}.override-indicator{color:var(--primary-color);font-weight:700;margin-left:4px}.progress-cell{display:flex;align-items:center;gap:var(--spacing-sm)}.progress-bar{flex:1;height:20px;background:#f3f4f6;border-radius:var(--radius-sm);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(to right,#10b981,#059669);transition:width .3s ease}.progress-text{font-weight:600;font-size:.75rem;min-width:45px;text-align:right}.loading-state,.empty-state{padding:var(--spacing-2xl);text-align:center;color:var(--text-secondary);background:var(--background-color);border-radius:var(--radius-md)}.empty-state p{margin:0;font-size:1rem}.requirement-detail-view{animation:fadeIn .3s ease}.requirement-detail-view h3{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.requirement-description{color:var(--text-secondary);margin-bottom:var(--spacing-2xl);font-size:.938rem}.requirement-detail-view h4{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:var(--spacing-2xl) 0 var(--spacing-md) 0}.completion-progress{margin-bottom:var(--spacing-2xl);padding:var(--spacing-lg);background:var(--background-color);border-radius:var(--radius-md)}.progress-bar-large .progress-fill{height:100%;background:linear-gradient(to right,#10b981,#059669);transition:width .3s ease}.status-badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.813rem;font-weight:600;white-space:nowrap;display:inline-block}.status-badge.status-completed{background:#d1fae5;color:#065f46}.status-badge.status-incomplete{background:#fef3c7;color:#92400e}.status-badge.status-overdue{background:#fee2e2;color:#991b1b}.requirement-detail-modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal-content{background:var(--surface-color);border-radius:var(--radius-lg);max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.close-btn{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .2s ease}.close-btn:hover{background:var(--background-color);color:var(--text-primary)}.modal-body{padding:var(--spacing-xl)}.detail-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.detail-stat{padding:var(--spacing-md);background:var(--background-color);border-radius:var(--radius-md);border-left:3px solid var(--primary-color)}.detail-stat.success{border-left-color:#10b981}.detail-stat.warning{border-left-color:#f59e0b}.detail-stat.danger{border-left-color:#ef4444}.detail-stat .stat-label{display:block;font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.detail-stat .stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--text-primary)}.completion-summary{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--background-color);border-radius:var(--radius-md)}.progress-bar-large{height:30px;background:#e5e7eb;border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--spacing-sm)}.progress-fill-large{height:100%;background:linear-gradient(to right,#10b981,#059669);transition:width .3s ease}.progress-label{text-align:center;font-weight:600;color:var(--text-primary);font-size:1rem}.action-hint{padding:var(--spacing-lg);background:#eff6ff;border-radius:var(--radius-md);border-left:4px solid var(--primary-color)}.action-hint p{margin:0 0 var(--spacing-sm) 0;color:var(--text-primary)}.action-hint ol{margin:var(--spacing-sm) 0;padding-left:var(--spacing-xl);color:var(--text-secondary)}.action-hint li{margin-bottom:var(--spacing-xs)}.alert-message{margin-top:var(--spacing-md);padding:var(--spacing-md);background:#fef3c7;border-left:4px solid #f59e0b;border-radius:var(--radius-sm);color:#78350f;font-weight:500}@media(max-width:968px){.reports-container{padding:var(--spacing-md)}.report-content{padding:var(--spacing-lg)}.report-tabs{overflow-x:auto}.report-tab{white-space:nowrap}.report-header{flex-direction:column;gap:var(--spacing-md)}.filters-container{flex-direction:column;align-items:stretch}.report-table{font-size:.75rem}.report-table th,.report-table td{padding:var(--spacing-sm)}.report-table-container{overflow-x:auto}.modal-content{width:95%;max-height:85vh}.modal-header,.modal-body{padding:var(--spacing-md)}.detail-stats{grid-template-columns:1fr}}@media print{body>*:not(.reports-container){display:none!important}.report-tabs,.report-actions,.filters-container,.btn,.reports-description{display:none!important}.reports-container>h1{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{margin:0;padding:0}.reports-container{max-width:100%;padding:0;margin:0}.report-content{padding:20px;box-shadow:none;border-radius:0;background:#fff}.report-section{page-break-after:always}.report-header{margin-bottom:30px;border-bottom:2px solid #000;padding-bottom:10px}.report-header h2{font-size:18pt;margin:0 0 5px}.report-header h2:before{content:"Academic Tracker - ";font-weight:400}.section-description{font-size:10pt;color:#333}.summary-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px;page-break-inside:avoid}.stat-card{border:1px solid #333;padding:10px;text-align:center;page-break-inside:avoid;background:#fff!important}.stat-value{font-size:18pt;font-weight:700;color:#000!important;margin-bottom:5px}.stat-label{font-size:9pt;color:#333!important}.requirement-detail-view h3{font-size:16pt;margin:0 0 10px;color:#000}.requirement-description{font-size:10pt;margin-bottom:20px;color:#333}.requirement-detail-view h4{font-size:12pt;margin:20px 0 10px;color:#000;page-break-after:avoid}.completion-progress{margin-bottom:20px;padding:10px;border:1px solid #ddd;page-break-inside:avoid}.progress-bar-large{height:20px;border:1px solid #333;background:#f0f0f0!important}.progress-fill{background:#333!important}.progress-label{font-size:10pt;margin-top:5px}.report-table{width:100%;border-collapse:collapse;font-size:9pt;page-break-inside:auto}.report-table thead{display:table-header-group}.report-table thead tr{background:#f0f0f0!important}.report-table th{border:1px solid #333;padding:8px 4px;font-weight:700;text-align:left;background:#f0f0f0!important}.report-table td{border:1px solid #666;padding:6px 4px}.report-table tbody tr{page-break-inside:avoid;page-break-after:auto}.standing-badge,.status-badge,.overdue-badge{border:1px solid #000;padding:2px 6px;font-size:8pt;font-weight:700}.standing-badge.standing-good-standing{border-color:#065f46}.standing-badge.standing-academic-watch{border-color:#92400e}.standing-badge.standing-academic-probation{border-color:#991b1b}.standing-badge.standing-academic-suspension{border-color:#7f1d1d}.status-badge.status-completed{border-color:#065f46}.status-badge.status-incomplete{border-color:#92400e}.status-badge.status-overdue{border-color:#991b1b}.progress-cell{display:flex;align-items:center;gap:5px}.progress-bar{border:1px solid #333;background:#f0f0f0!important}.progress-text{font-size:8pt;font-weight:700}.results-count{font-size:9pt;margin-bottom:10px;font-weight:700}.empty-state,.loading-state{display:none}}.study-hours-entry{max-width:1400px;margin:0 auto;padding:2rem}.entry-header{margin-bottom:2rem}.entry-header h1{margin:0 0 .5rem;color:#2c3e50}.entry-header .subtitle{color:#7f8c8d;margin:0;font-size:1.125rem}.week-selector-section{background:#fff;border:1px solid #e1e8ed;border-radius:8px;padding:1.5rem;margin-bottom:2rem}.week-selector{margin-bottom:1.5rem}.week-selector label{display:block;font-weight:500;color:#2c3e50;margin-bottom:.5rem}.week-selector select{width:100%;max-width:400px;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;background-color:#fff;cursor:pointer}.week-selector select:disabled{background-color:#f5f5f5;cursor:not-allowed}.week-stats{display:flex;gap:2rem;flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.875rem;color:#7f8c8d;font-weight:500}.stat-value{font-size:1.5rem;font-weight:700;color:#2c3e50}.stat-success .stat-value{color:#27ae60}.stat-warning .stat-value{color:#f39c12}.stat-finalized .stat-value{color:#3498db}.stat-draft .stat-value{color:#95a5a6}.entries-table-container{background:#fff;border:1px solid #e1e8ed;border-radius:8px;overflow:hidden;margin-bottom:2rem}.entries-table{width:100%;border-collapse:collapse}.entries-table thead{background-color:#f8f9fa;border-bottom:2px solid #e1e8ed}.entries-table th{padding:1rem;text-align:left;font-weight:600;color:#2c3e50;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.entries-table tbody tr{border-bottom:1px solid #e1e8ed;transition:background-color .2s}.entries-table tbody tr:hover{background-color:#f8f9fa}.entries-table tbody tr.row-exempt{background-color:#fff3cd}.entries-table tbody tr.row-exempt:hover{background-color:#ffe8a1}.entries-table td{padding:1rem;color:#2c3e50}.student-name{font-weight:500}.standing{font-size:.875rem;color:#7f8c8d}.hours-input input{width:100px;padding:.5rem;border:2px solid #ddd;border-radius:4px;font-size:1rem;text-align:center;font-weight:600}.hours-input input:disabled{background-color:#f5f5f5;cursor:not-allowed}.hours-input input.input-success{border-color:#27ae60;background-color:#eafaf1}.hours-input input.input-warning{border-color:#f39c12;background-color:#fef5e7}.required-hours{font-weight:600;color:#7f8c8d}.exempt-checkbox{text-align:center}.exempt-checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer}.exempt-checkbox input:disabled{cursor:not-allowed;opacity:.5}.no-entries{text-align:center;padding:3rem;background:#fff;border:1px solid #e1e8ed;border-radius:8px;margin-bottom:2rem}.no-entries p{margin:.5rem 0;color:#7f8c8d;font-size:1.125rem}.no-entries .hint{font-size:.875rem;color:#95a5a6}.entry-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1rem}.btn{padding:.75rem 2rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background-color:#3498db;color:#fff}.btn-primary:hover:not(:disabled){background-color:#2980b9}.btn-success{background-color:#27ae60;color:#fff}.btn-success:hover:not(:disabled){background-color:#229954}.btn-warning{background-color:#f39c12;color:#fff}.btn-warning:hover:not(:disabled){background-color:#e67e22}.btn:disabled{background-color:#bdc3c7;cursor:not-allowed;opacity:.6}.alert-success{background-color:#efe;border:1px solid #cfc;color:#3c3}.alert-warning{background-color:#fff3cd;border:1px solid #ffeaa7;color:#856404}.alert-warning h2{margin:0 0 .5rem;color:#856404}@media(max-width:1024px){.entries-table{font-size:.875rem}.entries-table th,.entries-table td{padding:.75rem .5rem}.hours-input input{width:80px}}@media(max-width:768px){.study-hours-entry{padding:1rem}.week-stats{gap:1rem}.entries-table-container{overflow-x:auto}.entries-table{min-width:700px}.entry-actions{flex-direction:column}.entry-actions .btn{width:100%}}.study-hours-history{max-width:1200px;margin:0 auto;padding:2rem}.study-hours-history h1{margin:0 0 .5rem;color:#2c3e50}.subtitle{color:#7f8c8d;margin:0 0 2rem}.history-table-container{background:#fff;border:1px solid #e1e8ed;border-radius:8px;overflow:hidden}.history-table{width:100%;border-collapse:collapse}.history-table thead{background-color:#f8f9fa;border-bottom:2px solid #e1e8ed}.history-table th{padding:1rem;text-align:left;font-weight:600;color:#2c3e50;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.history-table tbody tr{border-bottom:1px solid #e1e8ed;transition:background-color .2s}.history-table tbody tr:hover{background-color:#f8f9fa}.history-table tbody tr.row-exempt{background-color:#fff3cd}.history-table tbody tr.row-exempt:hover{background-color:#ffe8a1}.history-table td{padding:1rem;color:#2c3e50}.week-range{font-weight:500}.hours{font-size:1.25rem;font-weight:700}.hours-success{color:#27ae60}.hours-warning{color:#f39c12}.required{color:#7f8c8d;font-weight:600}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-success{background-color:#d4edda;color:#155724}.badge-warning{background-color:#fff3cd;color:#856404}.badge-exempt{background-color:#cce5ff;color:#004085}.badge-draft{background-color:#e2e3e5;color:#383d41}.notes{font-size:.875rem;color:#7f8c8d;max-width:300px}.no-notes{color:#bdc3c7}.no-history{text-align:center;padding:3rem;background:#fff;border:1px solid #e1e8ed;border-radius:8px}.no-history p{margin:.5rem 0;color:#7f8c8d;font-size:1.125rem}.no-history .hint{font-size:.875rem;color:#95a5a6}.alert{padding:1rem;border-radius:4px;margin-bottom:1.5rem}.alert-error{background-color:#fee;border:1px solid #fcc;color:#c33}.loading{text-align:center;padding:3rem;font-size:1.125rem;color:#7f8c8d}@media(max-width:768px){.study-hours-history{padding:1rem}.history-table-container{overflow-x:auto}.history-table{min-width:600px}.history-table th,.history-table td{padding:.75rem .5rem}}.student-requirements-view{max-width:900px;margin:0 auto;padding:var(--spacing-lg)}.page-header{margin-bottom:var(--spacing-xl)}.page-header h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.page-subtitle{color:var(--text-secondary);margin:0}.status-summary{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.status-card{flex:1;padding:var(--spacing-lg);border-radius:var(--radius-lg);text-align:center;background:var(--surface-color);border:2px solid var(--border-color)}.status-card.pending{border-color:var(--sae-gold, #CFB53B);background:#cfb53b1a}.status-card.completed{border-color:var(--success-color, #22c55e);background:#22c55e1a}.status-card.overdue{border-color:var(--danger-color, #ef4444);background:#ef44441a}.status-number{font-size:2rem;font-weight:700;line-height:1}.status-card.pending .status-number{color:var(--sae-gold-dark, #B39A2F)}.status-card.completed .status-number{color:var(--success-color, #22c55e)}.status-card.overdue .status-number{color:var(--danger-color, #ef4444)}.status-label{font-size:.875rem;color:var(--text-secondary);margin-top:var(--spacing-xs);text-transform:uppercase;letter-spacing:.05em}.filter-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);border-bottom:2px solid var(--border-color);padding-bottom:var(--spacing-sm)}.filter-tab{padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;font-size:.875rem;font-weight:500;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md) var(--radius-md) 0 0;transition:all .2s}.filter-tab:hover{color:var(--text-primary);background:var(--background-color)}.filter-tab.active{color:var(--sae-purple, #5C2E91);background:var(--sae-purple-light, #7B4BA8);background:#5c2e911a;font-weight:600}.filter-tab.overdue{color:var(--danger-color)}.filter-tab.overdue.active{background:#ef44441a}.requirements-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.requirement-card{display:flex;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--surface-color);border:2px solid var(--border-color);border-radius:var(--radius-lg);transition:all .2s}.requirement-card:hover{box-shadow:var(--shadow-md)}.requirement-card.completed{background:#f0fdf4;border-color:#86efac}.requirement-card.exempt{background:#fefce8;border-color:#fde047}.requirement-card.overdue{border-color:var(--danger-color);border-left-width:4px}.requirement-card.due-soon{border-color:var(--sae-gold, #CFB53B);border-left-width:4px}.requirement-status-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:1.25rem}.requirement-status-icon .icon.completed{background:var(--success-color);color:#fff;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:50%}.requirement-status-icon .icon.exempt{background:#fde047;color:#854d0e;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:50%}.requirement-status-icon .icon.overdue{background:var(--danger-color);color:#fff;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700}.requirement-status-icon .icon.pending{background:var(--border-color);color:var(--text-secondary);width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:50%}.requirement-content{flex:1;min-width:0}.requirement-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.requirement-name{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.requirement-card.completed .requirement-name{text-decoration:line-through;color:var(--text-secondary)}.requirement-badges{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);flex-shrink:0}.badge{padding:2px 8px;border-radius:var(--radius-sm);font-size:.7rem;font-weight:600;text-transform:uppercase;white-space:nowrap}.badge.semester{background:var(--sae-purple, #5C2E91);color:#fff}.badge.completed{background:var(--success-color);color:#fff}.badge.exempt{background:#fde047;color:#854d0e}.badge.overdue{background:var(--danger-color);color:#fff}.badge.due-soon{background:var(--sae-gold, #CFB53B);color:#1e293b}.requirement-description{color:var(--text-secondary);font-size:.875rem;margin:0 0 var(--spacing-md) 0;line-height:1.5}.requirement-details{display:flex;flex-wrap:wrap;gap:var(--spacing-md);font-size:.8125rem}.detail-item{display:flex;gap:var(--spacing-xs)}.detail-label{color:var(--text-secondary)}.detail-value{color:var(--text-primary);font-weight:500}.detail-item.overdue .detail-value{color:var(--danger-color);font-weight:600}.detail-item.completed .detail-value{color:var(--success-color)}.detail-item.notes{flex-basis:100%}.empty-state{text-align:center;padding:var(--spacing-xxl) var(--spacing-lg);background:var(--surface-color);border-radius:var(--radius-lg);border:2px dashed var(--border-color)}.empty-icon{font-size:3rem;color:var(--success-color);margin-bottom:var(--spacing-md)}.empty-state h3{margin:0 0 var(--spacing-sm) 0;color:var(--text-primary)}.empty-state p{margin:0;color:var(--text-secondary)}.loading-state{text-align:center;padding:var(--spacing-xxl)}.loading-state .spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--sae-purple, #5C2E91);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto var(--spacing-md)}.error-state{text-align:center;padding:var(--spacing-xxl);background:#fef2f2;border-radius:var(--radius-lg);border:2px solid var(--danger-color)}.error-state p{color:var(--danger-color);margin:0 0 var(--spacing-md) 0}.help-text{margin-top:var(--spacing-xl);padding:var(--spacing-md);background:#5c2e910d;border-radius:var(--radius-md);border-left:4px solid var(--sae-purple, #5C2E91)}.help-text p{margin:0;font-size:.875rem;color:var(--text-secondary)}@media(max-width:768px){.student-requirements-view{padding:var(--spacing-md)}.status-summary{flex-direction:column}.filter-tabs{flex-wrap:wrap}.requirement-card{flex-direction:column}.requirement-status-icon{align-self:flex-start}.requirement-header{flex-direction:column}.requirement-badges{margin-top:var(--spacing-sm)}}.submit-schedule{max-width:800px;margin:0 auto;padding:var(--spacing-lg)}.submit-schedule .page-header{margin-bottom:var(--spacing-xl)}.submit-schedule .page-header h1{color:var(--text-primary);margin-bottom:var(--spacing-sm)}.submit-schedule .page-description{color:var(--text-secondary);font-size:1rem}.schedule-form{padding:var(--spacing-xl)}.schedule-form .form-group{margin-bottom:var(--spacing-lg)}.schedule-form label{display:block;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.schedule-form .form-select{width:100%;max-width:300px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:1rem;background-color:#fff}.schedule-form .help-text{color:var(--text-secondary);font-size:.875rem;margin-bottom:var(--spacing-md)}.courses-section{margin-bottom:var(--spacing-xl)}.course-inputs{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.course-input-row{display:flex;align-items:center;gap:var(--spacing-md)}.course-number{font-weight:600;color:var(--text-secondary);min-width:24px}.course-input-wrapper{flex:1;position:relative}.course-input-wrapper .form-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:1rem;text-transform:uppercase}.course-input-wrapper .form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #5c2e911a}.course-input-wrapper .form-input.input-error{border-color:var(--danger)}.suggestions-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:0 4px 12px #0000001a;max-height:200px;overflow-y:auto;z-index:100;list-style:none;padding:0;margin:var(--spacing-xs) 0 0 0}.suggestion-item{padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background-color .15s}.suggestion-item:hover,.suggestion-item.active{background-color:var(--purple-light, #f3e8ff)}.suggestion-code{font-weight:600;color:var(--primary)}.suggestion-name{color:var(--text-secondary);font-size:.875rem;margin-left:var(--spacing-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.btn-remove{background:none;border:1px solid var(--border-color);color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-remove:hover:not(:disabled){background-color:var(--danger);border-color:var(--danger);color:#fff}.btn-remove:disabled{opacity:.3;cursor:not-allowed}.btn-add-course{margin-top:var(--spacing-sm)}.form-actions{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.btn-submit{padding:var(--spacing-md) var(--spacing-xl);font-size:1rem}.alert{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-sm);margin-bottom:var(--spacing-lg)}.alert-error{background-color:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.alert-success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#15803d}.existing-classes{margin-top:var(--spacing-xl);padding:var(--spacing-lg)}.existing-classes h3{margin-bottom:var(--spacing-sm);color:var(--text-primary)}.class-badges{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.class-badge{display:inline-block;background-color:var(--purple-light, #f3e8ff);color:var(--primary);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full, 9999px);font-weight:500;font-size:.875rem}.loading-spinner{display:flex;justify-content:center;align-items:center;min-height:200px;color:var(--text-secondary)}@media(max-width:768px){.submit-schedule,.schedule-form{padding:var(--spacing-md)}.course-input-row{flex-wrap:wrap}.course-input-wrapper{width:calc(100% - 60px)}.suggestion-name{display:none}}.print-view{max-width:1200px;margin:2rem auto;padding:2rem;background:#fff;font-family:Arial,sans-serif}.print-header{text-align:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #333}.print-header h1{margin:0 0 1rem;font-size:2rem;color:#000}.report-info{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;font-size:.95rem;color:#333}.report-info p{margin:.25rem 0}.summary-section{margin:2rem 0;padding:1rem;background:#f5f5f5;border-radius:4px}.summary-section h2{margin:0 0 1rem;font-size:1.25rem;color:#000}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.summary-item{display:flex;justify-content:space-between;padding:.5rem;background:#fff;border-radius:4px}.summary-label{font-weight:600;color:#555}.summary-value{font-weight:700;color:#000}h2{margin:2rem 0 1rem;font-size:1.5rem;color:#000}.print-table{width:100%;border-collapse:collapse;margin:1rem 0}.print-table thead{background-color:#f0f0f0;border-bottom:2px solid #333}.print-table th{padding:.75rem;text-align:left;font-weight:700;color:#000;border:1px solid #ddd}.print-table td{padding:.75rem;border:1px solid #ddd;color:#000}.print-table tbody tr:nth-child(2n){background-color:#f9f9f9}.print-table tbody tr.completed{background-color:#e8f5e9}.print-table tbody tr.not-completed{background-color:#ffebee}.print-footer{margin-top:3rem;padding-top:1rem;border-top:1px solid #ddd;text-align:center;font-size:.9rem;color:#666}.print-footer p{margin:.25rem 0}.loading,.error{text-align:center;padding:3rem;font-size:1.25rem;color:#666}.error{color:#d32f2f}@media print{.print-view{margin:0;padding:0;max-width:100%}.print-header h1{font-size:1.5rem}.report-info,.print-table{font-size:.85rem}.print-table th,.print-table td{padding:.5rem}.print-table tr{page-break-inside:avoid}.print-table thead{display:table-header-group}.summary-section{page-break-inside:avoid}}*{margin:0;padding:0;box-sizing:border-box}:root{--sae-purple: #5C2E91;--sae-purple-dark: #4A2573;--sae-purple-light: #7B4BA8;--sae-purple-lighter: #9B6FC4;--sae-gold: #CFB53B;--sae-gold-dark: #B39A2F;--sae-gold-light: #E5D68A;--sae-gold-lighter: #F0E5B3;--primary-color: var(--sae-purple);--primary-hover: var(--sae-purple-dark);--secondary-color: #64748b;--success-color: #10b981;--warning-color: var(--sae-gold);--danger-color: #ef4444;--background-color: #f8fafc;--surface-color: #ffffff;--text-primary: #1e293b;--text-secondary: #64748b;--border-color: #e2e8f0;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-color);color:var(--text-primary);line-height:1.5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-secondary:hover:not(:disabled){background-color:#475569}.btn-danger{background-color:var(--danger-color);color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-size:.875rem;font-weight:500;color:var(--text-primary)}.form-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;transition:border-color .2s}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.form-error{display:block;margin-top:var(--spacing-xs);font-size:.75rem;color:var(--danger-color)}.card{background-color:var(--surface-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-xl)}.alert{padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:.875rem}.alert-success{background-color:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.alert-error{background-color:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.alert-warning{background-color:#fef3c7;color:#92400e;border:1px solid #fcd34d}.alert-info{background-color:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.spinner{display:inline-block;width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.text-center{text-align:center}.mt-1{margin-top:var(--spacing-sm)}.mt-2{margin-top:var(--spacing-md)}.mt-3{margin-top:var(--spacing-lg)}.mt-4{margin-top:var(--spacing-xl)}.mb-1{margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:var(--spacing-lg)}.mb-4{margin-bottom:var(--spacing-xl)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--spacing-sm)}.gap-2{gap:var(--spacing-md)}.gap-3{gap:var(--spacing-lg)}
