.layout{min-height:100vh;display:flex;flex-direction:column}.layout-header{background-color:var(--surface-color);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.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.5rem;font-weight:700;color:var(--primary-color);margin:0}.header-nav{display:flex;gap:var(--spacing-md);align-items:center}.nav-link{background:none;border:none;padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;font-weight:500;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all .2s}.nav-link:hover{color:var(--primary-color);background-color:var(--background-color)}.header-right{display:flex;align-items:center;gap:var(--spacing-lg)}.user-info{display:flex;flex-direction:column;align-items:flex-end;margin-right:var(--spacing-md)}.user-name{font-size:.875rem;font-weight:600;color:var(--text-primary)}.user-role{font-size:.75rem;color:var(--text-secondary);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}@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)}}.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{background:#f0fdf4;border-color:#86efac}.requirement-item.completed .requirement-name{text-decoration:line-through;color:var(--text-secondary)}.requirement-item.overdue{border-left:4px solid var(--danger-color)}.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}.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}.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}.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)}.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){.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)}@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-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{display:flex;flex-direction:column;gap:var(--spacing-xs)}.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%}}.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}.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%}}.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}}.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}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #2563eb;--primary-hover: #1d4ed8;--secondary-color: #64748b;--success-color: #10b981;--warning-color: #f59e0b;--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)}
