@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.main-navigation{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,var(--bg-secondary) 0,#fffffff2 100%);border-bottom:1px solid var(--border-color);box-shadow:0 4px 20px #00000014;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.nav-container{justify-content:space-between;margin:0 auto;max-width:1400px;padding:var(--space-4) var(--space-6)}.nav-brand,.nav-container{align-items:center;display:flex}.nav-brand{cursor:pointer;gap:var(--space-4);transition:all var(--transition-fast)}.nav-brand:hover{transform:translateY(-1px)}.brand-icon{align-items:center;display:flex;justify-content:center}.brand-logo{border-radius:var(--radius-lg);box-shadow:0 4px 12px #0000001a;height:48px;transition:all var(--transition-fast);width:48px}.brand-logo:hover{box-shadow:0 6px 16px #00000026;transform:scale(1.05)}.brand-content{display:flex;flex-direction:column;gap:var(--space-1)}.brand-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));-webkit-background-clip:text;background-clip:text;font-size:1.75rem;font-weight:800;letter-spacing:-.02em;margin:0}.brand-subtitle{color:var(--text-secondary);font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.nav-menu{gap:var(--space-8)}.nav-links,.nav-menu{align-items:center;display:flex}.nav-links{gap:var(--space-6)}.nav-link{background:none;border:none;border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:500;padding:var(--space-2) var(--space-3);position:relative}.nav-link,.nav-link:after{transition:all var(--transition-fast)}.nav-link:after{background:linear-gradient(90deg,var(--primary-500),var(--primary-400));bottom:-2px;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);width:0}.nav-link:hover{background:var(--primary-50);color:var(--primary-600)}.nav-link:hover:after{width:80%}.nav-link.active{background:var(--primary-100);color:var(--primary-600);font-weight:600}.nav-link.active:after{width:80%}.nav-actions{gap:var(--space-4)}.auth-button,.nav-actions{align-items:center;display:flex}.auth-button{background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border:none;border-radius:var(--radius-xl);box-shadow:0 4px 12px #3b82f64d;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-6);transition:all var(--transition-fast)}.auth-button:hover{background:linear-gradient(135deg,var(--primary-600),var(--primary-500));box-shadow:0 8px 20px #3b82f666;transform:translateY(-2px)}.auth-icon{font-size:1.1rem}.user-menu{position:relative}.user-button{align-items:center;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-xl);cursor:pointer;display:flex;font-family:inherit;gap:var(--space-3);padding:var(--space-2) var(--space-4);transition:all var(--transition-fast)}.user-button:hover{background:var(--primary-50);border-color:var(--primary-200);box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.user-avatar{align-items:center;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border-radius:50%;box-shadow:0 2px 8px #3b82f64d;color:#fff;display:flex;font-size:.875rem;font-weight:700;height:40px;justify-content:center;width:40px}.user-info{align-items:flex-start;display:flex;flex-direction:column;gap:var(--space-1)}.user-name{color:var(--text-primary);font-size:.95rem;font-weight:600}.user-role{letter-spacing:.05em;text-transform:uppercase}.user-chevron,.user-role{color:var(--text-secondary);font-size:.75rem}.user-chevron{transition:transform var(--transition-fast)}.user-button:hover .user-chevron{transform:rotate(180deg)}.bolt-link{align-items:center;display:flex;position:absolute;right:1.2em;top:1.2em;z-index:10}@media (max-width:768px){.bolt-link{right:.7em;top:.7em}}@media (max-width:1024px){.nav-links{gap:var(--space-4)}}@media (max-width:768px){.nav-container{padding:var(--space-3) var(--space-4)}.brand-logo{height:40px;width:40px}.brand-title{font-size:1.5rem}.brand-subtitle{display:none}.nav-links{gap:var(--space-2)}.nav-link{font-size:.875rem;padding:var(--space-2)}.user-chevron,.user-info{display:none}.auth-button{font-size:.875rem;padding:var(--space-2) var(--space-4)}}@media (max-width:480px){.brand-logo{height:36px;width:36px}.brand-title{font-size:1.25rem}.user-avatar{font-size:.75rem;height:32px;width:32px}.nav-links{gap:var(--space-1)}.nav-link{font-size:.8rem;padding:var(--space-1) var(--space-2)}}.not-implemented-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.not-implemented-container{animation:slideInUp .4s ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-height:90vh;max-width:600px;overflow-y:auto;position:relative;width:90%}.not-implemented-header{background:linear-gradient(135deg,var(--warning-50),var(--bg-secondary));border-bottom:1px solid var(--border-color);padding:var(--space-6);position:relative;text-align:center}.feature-icon{filter:grayscale(.3);font-size:4rem;margin-bottom:var(--space-4)}.close-button{height:40px;padding:var(--space-2);position:absolute;right:var(--space-4);top:var(--space-4);width:40px}.close-button:hover{transform:scale(1.1)}.not-implemented-content{padding:var(--space-6)}.feature-title{color:var(--text-primary);font-size:1.75rem;font-weight:700;margin:0 0 var(--space-3) 0;text-align:center}.feature-description{color:var(--text-secondary);font-size:1.1rem;line-height:1.5;margin:0 0 var(--space-6) 0;text-align:center}.status-badge{align-items:center;background:linear-gradient(135deg,var(--warning-100),var(--warning-50));border:2px solid var(--warning-200);border-radius:var(--radius-xl);color:var(--warning-700);display:flex;font-size:.95rem;gap:var(--space-2);justify-content:center;margin:0 0 var(--space-8) 0;padding:var(--space-3) var(--space-5)}.status-icon{font-size:1.1rem}.feature-preview{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:var(--space-6);padding:var(--space-5)}.feature-preview h3{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0 0 var(--space-4) 0}.preview-list{flex-direction:column;list-style:none;margin:0;padding:0}.preview-list,.preview-list li{display:flex;gap:var(--space-3)}.preview-list li{align-items:center;color:var(--text-secondary);font-size:.95rem;line-height:1.4}.preview-list li:before{content:"✨";flex-shrink:0;font-size:1rem}.notification-signup{background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border:1px solid var(--primary-100);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center}.notification-signup h3{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0 0 var(--space-2) 0}.notification-signup p{color:var(--text-secondary);font-size:.9rem;margin:0 0 var(--space-4) 0}.email-signup{display:flex;gap:var(--space-3);margin:0 auto;max-width:400px}.email-input{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);flex:1 1;font-size:.95rem;padding:var(--space-3);transition:all var(--transition-fast)}.email-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100)}.notify-button{background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:var(--space-3) var(--space-4);transition:all var(--transition-fast);white-space:nowrap}.notify-button:hover{background:linear-gradient(135deg,var(--primary-600),var(--primary-500));transform:translateY(-1px)}.not-implemented-actions{border-top:1px solid var(--border-color);padding:var(--space-6);text-align:center}.primary-action{background:linear-gradient(135deg,var(--success-500),var(--success-600));padding:var(--space-4) var(--space-8)}.primary-action:hover{background:linear-gradient(135deg,var(--success-600),var(--success-500));box-shadow:var(--shadow-lg)}@media (max-width:768px){.not-implemented-container{margin:var(--space-4);width:95%}.not-implemented-actions,.not-implemented-content,.not-implemented-header{padding:var(--space-4)}.feature-title{font-size:1.5rem}.feature-icon{font-size:3rem}.email-signup{flex-direction:column}.notify-button{width:100%}}@media (max-width:480px){.not-implemented-container{border-radius:0;height:100vh;max-height:none;width:100%}.feature-title{font-size:1.25rem}.feature-icon{font-size:2.5rem}}.guide-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.guide-container{animation:slideInUp .4s ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-height:90vh;max-width:800px;overflow-y:auto;position:relative;width:90%}.guide-header{background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border-bottom:1px solid var(--border-color);justify-content:space-between;padding:var(--space-6)}.guide-header,.guide-progress{align-items:center;display:flex}.guide-progress{flex:1 1;gap:var(--space-4)}.progress-bar{flex:1 1;height:6px}.progress-fill{transition:width .3s ease-out}.progress-text{color:var(--text-secondary);font-size:.875rem;font-weight:600;white-space:nowrap}.guide-close{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;padding:var(--space-2);transition:all var(--transition-fast);width:40px}.guide-close:hover{background:var(--error-100);color:var(--error-600);transform:scale(1.1)}.guide-content{min-height:500px;padding:var(--space-8)}.guide-title{color:var(--text-primary);font-size:1.75rem;font-weight:700;margin:0 0 var(--space-6) 0;text-align:center}.guide-step{align-items:center;display:flex;flex-direction:column;text-align:center}.step-icon{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));font-size:4rem;margin-bottom:var(--space-4)}.guide-step h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0 0 var(--space-4) 0}.guide-step p{color:var(--text-secondary);font-size:1.1rem;line-height:1.6;margin:0 0 var(--space-6) 0;max-width:600px}.guide-step ul{list-style:none;margin:0 0 var(--space-6) 0;padding:0;text-align:left}.guide-step li{align-items:center;color:var(--text-secondary);display:flex;font-size:1rem;gap:var(--space-3);margin-bottom:var(--space-2)}.guide-step li:before{content:"✨";flex-shrink:0;font-size:1.1rem}.step-tip{align-items:center;background:linear-gradient(135deg,var(--primary-50),var(--primary-25));border:1px solid var(--primary-200);border-radius:var(--radius-lg);display:flex;gap:var(--space-3);margin-top:var(--space-4);max-width:500px;padding:var(--space-4)}.tip-icon{flex-shrink:0;font-size:1.25rem}.step-tip span:last-child{color:var(--primary-700);font-size:.9rem;font-weight:500}.preference-options{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr;margin:var(--space-6) 0;max-width:600px}.preference-card{background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center;transition:all var(--transition-fast)}.preference-card:hover{border-color:var(--primary-300);box-shadow:var(--shadow-md);transform:translateY(-2px)}.preference-header{align-items:center;display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.preference-icon{font-size:2rem}.preference-card h4{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0}.preference-card p{color:var(--text-secondary);font-size:.9rem;margin:0 0 var(--space-3) 0}.preference-example{background:var(--primary-100);border-radius:var(--radius-md);color:var(--primary-700);font-size:.8rem;font-weight:500;padding:var(--space-2) var(--space-3)}.course-info-grid{display:flex;flex-direction:column;gap:var(--space-4);margin:var(--space-6) 0;max-width:500px}.info-item{align-items:flex-start;gap:var(--space-4);padding:var(--space-4);text-align:left}.info-icon{align-items:center;background:var(--primary-100);border-radius:var(--radius-md);display:flex;flex-shrink:0;font-size:1.5rem;height:40px;justify-content:center;width:40px}.info-content{flex:1 1}.info-content h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 var(--space-1) 0}.info-content p{color:var(--text-secondary);font-size:.9rem;margin:0 0 var(--space-2) 0}.example{background:var(--success-100);border-radius:var(--radius-sm);color:var(--success-700);font-family:var(--font-mono);font-size:.8rem;font-weight:500;padding:var(--space-1) var(--space-2)}.constraints-examples{display:flex;flex-direction:column;gap:var(--space-4);margin:var(--space-6) 0;max-width:600px}.constraint-example{align-items:flex-start;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;gap:var(--space-4);padding:var(--space-4);text-align:left}.constraint-icon{background:var(--warning-100);border-radius:var(--radius-md);font-size:1.5rem;height:40px;width:40px}.constraint-text{display:flex;flex:1 1;flex-direction:column;gap:var(--space-2)}.constraint-text strong{color:var(--text-primary);font-size:1rem;font-weight:600}.constraint-text span{background:var(--gray-100);border-left:3px solid var(--primary-500);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-mono);font-size:.85rem;padding:var(--space-1) var(--space-2)}.generation-process{display:flex;flex-direction:column;gap:var(--space-4);margin:var(--space-6) 0;max-width:500px}.process-step{align-items:flex-start;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;gap:var(--space-4);padding:var(--space-4);text-align:left}.process-number{align-items:center;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.9rem;font-weight:700;height:32px;justify-content:center;width:32px}.process-content h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 var(--space-1) 0}.process-content p{color:var(--text-secondary);font-size:.9rem;margin:0}.customization-info{background:linear-gradient(135deg,var(--success-50),var(--success-25));border:1px solid var(--success-200);border-radius:var(--radius-lg);margin:var(--space-4) 0;max-width:500px;padding:var(--space-4);text-align:left}.customization-info h4{color:var(--success-700);font-size:1rem;font-weight:600;margin:0 0 var(--space-2) 0}.customization-info p{color:var(--success-600);font-size:.9rem;margin:0}.final-checklist{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-6) 0;max-width:500px}.checklist-item{align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;gap:var(--space-3);padding:var(--space-3);text-align:left}.check-icon{color:var(--success-600);flex-shrink:0;font-size:1.1rem}.checklist-item span:last-child{color:var(--text-primary);font-size:.95rem;font-weight:500}.success-message{align-items:center;background:linear-gradient(135deg,var(--success-50),var(--success-25));border:2px solid var(--success-200);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-6) 0;padding:var(--space-5)}.success-icon{font-size:2.5rem}.success-message p{color:var(--success-700);font-size:1.1rem;font-weight:600;margin:0}.guide-actions{background:var(--bg-tertiary);border-top:1px solid var(--border-color);padding:var(--space-6)}.guide-navigation{align-items:center;display:flex;gap:var(--space-4);justify-content:space-between}.step-indicators{display:flex;gap:var(--space-2)}.step-dot{background:var(--gray-300);cursor:pointer;transition:all var(--transition-fast)}.step-dot.active{background:var(--primary-500);transform:scale(1.2)}.step-dot:hover{background:var(--primary-400);transform:scale(1.1)}.guide-btn{align-items:center;border:none;border-radius:var(--radius-lg);cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-6);transition:all var(--transition-fast)}.guide-btn-primary{background:linear-gradient(135deg,var(--primary-500),var(--primary-600));color:#fff}.guide-btn-primary:hover{background:linear-gradient(135deg,var(--primary-600),var(--primary-500));box-shadow:var(--shadow-md);transform:translateY(-1px)}.guide-btn-secondary{background:var(--gray-200);color:var(--text-secondary)}.guide-btn-secondary:hover{background:var(--gray-300);transform:translateY(-1px)}.guide-btn-success{background:linear-gradient(135deg,var(--success-500),var(--success-600));color:#fff;font-size:1.1rem;padding:var(--space-4) var(--space-8)}.guide-btn-success:hover{background:linear-gradient(135deg,var(--success-600),var(--success-500));box-shadow:var(--shadow-lg);transform:translateY(-2px)}@media (max-width:768px){.guide-container{margin:var(--space-4);width:95%}.guide-header{padding:var(--space-4)}.guide-content{min-height:400px;padding:var(--space-5)}.guide-title{font-size:1.5rem}.step-icon{font-size:3rem}.preference-options{grid-template-columns:1fr}.guide-navigation{flex-direction:column;gap:var(--space-4)}.guide-btn{justify-content:center;width:100%}}@media (max-width:480px){.guide-container{border-radius:0;height:100vh;max-height:none;width:100%}.guide-content{padding:var(--space-4)}.step-icon{font-size:2.5rem}.guide-title{font-size:1.25rem}}.dashboard{margin:0 auto;max-width:1200px;padding:var(--space-6)}.loading-container{gap:var(--space-4);min-height:400px}.loading-container .loading-spinner{border-width:4px;height:40px;width:40px}.loading-container p{color:var(--text-secondary);font-weight:500}.skeleton{animation:loading-shimmer 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;border-radius:var(--radius-sm)}@keyframes loading-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-bar{animation:loading-shimmer 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;border-radius:var(--radius-sm);height:1em}.skeleton-value{height:2.5rem;margin-bottom:.5rem;width:60px}.skeleton-change{height:1rem;width:100px}.skeleton-schedule-name{height:1.5rem;margin-bottom:.5rem;width:70%}.skeleton-meta{height:1rem;width:80px}.skeleton-status{height:1.5rem;width:60px}.stat-card.loading{opacity:.7}.stat-card.loading .stat-icon{opacity:.5}.schedule-card.loading{opacity:.7}.schedule-card.loading .schedule-action{cursor:not-allowed;opacity:.5}.schedule-action.loading{background:var(--gray-300);cursor:not-allowed}.schedule-action:disabled{cursor:not-allowed;opacity:.5}.status-badge.loading{background:var(--gray-200);color:#0000}.activity-item.loading{opacity:.7}.activity-item.loading .activity-dot{background:var(--gray-300)}.activity-content .skeleton{display:block;margin-bottom:.25rem}.activity-content .skeleton:last-child{margin-bottom:0}.dashboard-header{align-items:flex-start;display:flex;gap:var(--space-6);justify-content:space-between;margin-bottom:var(--space-8)}.welcome-section{flex:1 1}.welcome-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:2.25rem;font-weight:800;line-height:1.2;margin:0 0 var(--space-2) 0}.welcome-subtitle{color:var(--text-secondary);font-size:1.05rem;line-height:1.5;margin:0}.error-notice{background:var(--warning-50);border:1px solid var(--warning-200);border-radius:var(--radius-md);color:var(--warning-700);font-size:.875rem;margin-top:var(--space-2);padding:var(--space-2) var(--space-3)}.header-actions{gap:var(--space-3)}.primary-action{align-items:center;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border:none;border-radius:var(--radius-xl);box-shadow:0 4px 12px #3b82f64d;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:var(--space-2);padding:var(--space-4) var(--space-6);transition:all var(--transition-fast)}.primary-action:hover{background:linear-gradient(135deg,var(--primary-600),var(--primary-500));box-shadow:0 8px 20px #3b82f666;transform:translateY(-2px)}.action-icon{font-size:1.1rem}.stats-grid{grid-gap:var(--space-5);gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:var(--space-8)}.stat-card{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-xl);gap:var(--space-4);overflow:hidden;padding:var(--space-5);position:relative}.stat-card:before{content:"";height:3px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity var(--transition-fast)}.stat-card.primary:before,.stat-card:before{background:var(--primary-500)}.stat-card.success:before{background:var(--success-500)}.stat-card.warning:before{background:var(--warning-500)}.stat-card.info:before{background:#06b6d4}.stat-card:hover{border-color:var(--primary-200);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.stat-card:hover:before{opacity:1}.stat-icon{background:var(--primary-50);border-radius:var(--radius-lg);flex-shrink:0;font-size:2.25rem;height:56px;width:56px}.stat-value{color:var(--text-primary);font-size:1.875rem;font-weight:800;line-height:1}.stat-label,.stat-value{margin-bottom:var(--space-1)}.stat-label{font-size:.9rem;font-weight:600}.stat-change{font-size:.75rem}.dashboard-content{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:2fr 1fr}.content-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6);padding:var(--space-6)}.section-header{border-bottom:1px solid var(--border-color);margin-bottom:var(--space-5);padding-bottom:var(--space-3)}.section-title{font-size:1.125rem;margin:0}.section-action{background:none;border:none;border-radius:var(--radius-md);color:var(--primary-600);cursor:pointer;font-size:.875rem;font-weight:600;padding:var(--space-2) var(--space-3);transition:all var(--transition-fast)}.section-action:hover{background:var(--primary-50);color:var(--primary-700)}.schedules-list{display:flex;flex-direction:column;gap:var(--space-3)}.schedule-card{align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;justify-content:space-between;padding:var(--space-4);transition:all var(--transition-fast)}.schedule-card:hover{background:var(--bg-secondary);border-color:var(--primary-200);transform:translateX(3px)}.schedule-info{flex:1 1}.schedule-name{color:var(--text-primary);font-size:.95rem;font-weight:600;margin:0 0 var(--space-1) 0}.schedule-meta{color:var(--text-secondary);display:flex;font-size:.8rem;gap:var(--space-3)}.schedule-actions{align-items:center;display:flex;gap:var(--space-3)}.schedule-buttons{display:flex;gap:var(--space-2)}.status-badge{border-radius:var(--radius-md);font-size:.7rem;font-weight:600;letter-spacing:.03em;padding:var(--space-1) var(--space-2);text-transform:uppercase}.status-badge.active{background:var(--success-100);color:var(--success-700)}.status-badge.completed{background:var(--primary-100);color:var(--primary-700)}.status-badge.draft{background:var(--warning-100);color:var(--warning-700)}.schedule-action{background:var(--primary-500);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:var(--space-2) var(--space-3);transition:all var(--transition-fast)}.schedule-action:hover{background:var(--primary-600);transform:translateY(-1px)}.schedule-action.secondary{align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);display:flex;font-size:1rem;height:32px;justify-content:center;padding:0;width:32px}.schedule-action.secondary:hover{background:var(--primary-50);border-color:var(--primary-200);color:var(--primary-600);transform:translateY(-1px)}.schedule-action.primary{background:var(--primary-500)}.schedule-action.primary:hover{background:var(--primary-600)}.quick-start-cards{display:flex;flex-direction:column;gap:var(--space-4)}.quick-start-card{background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border:1px solid var(--primary-100);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center;transition:all var(--transition-fast)}.quick-start-card:hover{border-color:var(--primary-200);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-icon{font-size:1.75rem;margin-bottom:var(--space-3)}.quick-start-card h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 var(--space-2) 0}.quick-start-card p{color:var(--text-secondary);font-size:.8rem;line-height:1.4;margin:0 0 var(--space-3) 0}.card-action{background:var(--primary-500);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:var(--space-2) var(--space-4);transition:all var(--transition-fast);width:100%}.card-action:hover{background:var(--primary-600);transform:translateY(-1px)}.activity-list{display:flex;flex-direction:column;gap:var(--space-2)}.activity-item{align-items:flex-start;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;gap:var(--space-3);padding:var(--space-3)}.activity-dot{background:var(--primary-500);border-radius:50%;flex-shrink:0;height:6px;margin-top:5px;width:6px}.activity-dot.success{background:var(--success-500)}.activity-dot.error{background:var(--error-500)}.activity-content{flex:1 1}.activity-action{color:var(--text-primary);font-size:.85rem;font-weight:500;margin:0 0 var(--space-1) 0}.activity-time{color:var(--text-secondary);font-size:.7rem}@media (max-width:1024px){.dashboard-content{grid-template-columns:1fr}.stats-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (max-width:768px){.dashboard{padding:var(--space-4)}.dashboard-header{align-items:stretch;flex-direction:column;gap:var(--space-4)}.welcome-title{font-size:1.875rem}.stats-grid{grid-template-columns:1fr}.stat-card{padding:var(--space-4)}.stat-icon{font-size:1.75rem;height:48px;width:48px}.stat-value{font-size:1.5rem}.content-section{padding:var(--space-4)}.schedule-card{align-items:stretch;flex-direction:column;gap:var(--space-3)}.schedule-actions{justify-content:space-between}}@media (max-width:480px){.welcome-title{font-size:1.5rem}.primary-action{justify-content:center;width:100%}.quick-start-cards{gap:var(--space-3)}.quick-start-card{padding:var(--space-3)}}.home-page{background:linear-gradient(135deg,var(--primary-50) 0,var(--bg-primary) 100%);min-height:calc(100vh - 80px)}.course-block{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-xl);box-sizing:border-box;margin-bottom:var(--space-4);max-width:100%;padding:var(--space-5);transition:all var(--transition-normal)}.course-block.collapsed{margin-bottom:var(--space-3);padding:var(--space-3)}.course-block.expanded{margin-bottom:var(--space-4);padding:var(--space-5)}.course-block.invalid{background:linear-gradient(135deg,var(--error-50),var(--bg-secondary));border-color:var(--error-500)}.course-block:before{background:linear-gradient(90deg,var(--primary-500),var(--primary-400));height:4px;opacity:0;transition:opacity var(--transition-fast)}.course-block:hover{border-color:var(--primary-200);box-shadow:var(--shadow-md)}.course-block:hover:before{opacity:1}.course-block:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-100)}.course-input{background-color:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--radius-lg);box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:1rem;font-weight:500;margin-bottom:var(--space-3);min-width:0;padding:var(--space-3);transition:all var(--transition-fast);width:100%}.autocomplete-container{position:relative;width:100%}.autocomplete-hint{color:var(--text-secondary);font-size:.85rem;font-weight:400;margin-left:8px}.autocomplete-suggestions{background:var(--bg-primary);border:2px solid var(--border-color);border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:none;box-shadow:var(--shadow-lg);left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.autocomplete-suggestion{border-bottom:1px solid var(--border-color);cursor:pointer;padding:var(--space-3) var(--space-4);transition:background-color var(--transition-fast)}.autocomplete-suggestion:hover{background-color:var(--primary-50)}.autocomplete-suggestion:last-child{border-bottom:none}.suggestion-name{color:var(--text-primary);font-weight:500;margin-bottom:2px}.loading-indicator,.suggestion-lecturers{color:var(--text-secondary);font-size:.85rem}.loading-indicator{background:var(--bg-primary);border-radius:4px;padding:2px 6px;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.course-input::placeholder{color:var(--text-tertiary);font-weight:400}.course-input:hover{background-color:var(--bg-secondary);border-color:var(--primary-200)}.course-input:focus{background-color:var(--bg-secondary);border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-100)}.input-group{margin-bottom:var(--space-4);position:relative}.input-label{color:var(--text-secondary);display:block;font-size:.875rem;font-weight:600;letter-spacing:.05em;margin-bottom:var(--space-2);text-transform:uppercase}.sessions-container{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-top:var(--space-4);padding:var(--space-5)}.session-header{margin-bottom:var(--space-5);text-align:center}.session-header h4{color:var(--text-primary);font-size:1.1rem;font-weight:700;margin:0 0 var(--space-1) 0}.session-note{color:var(--text-secondary);font-size:.875rem;font-style:italic;margin:0}.session-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:var(--space-5);padding:var(--space-4)}.session-section:last-child{margin-bottom:0}.session-type-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-3)}.session-type-title{color:var(--text-primary);font-size:1rem;font-weight:700;margin:0}.add-slot-btn,.session-actions,.session-type-title{align-items:center;display:flex;gap:var(--space-2)}.add-slot-btn{background:linear-gradient(135deg,var(--success-500),var(--success-600));border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:var(--space-2) var(--space-4);transition:all var(--transition-fast)}.add-slot-btn:hover{background:linear-gradient(135deg,var(--success-600),var(--success-500));box-shadow:var(--shadow-sm);transform:translateY(-1px)}.delete-section-btn{align-items:center;background:linear-gradient(135deg,var(--error-500),var(--error-600));border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:var(--space-2);padding:var(--space-2) var(--space-4);transition:all var(--transition-fast)}.delete-section-btn:hover{background:linear-gradient(135deg,var(--error-600),var(--error-500));box-shadow:var(--shadow-sm);transform:translateY(-1px)}.delete-section-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.time-slots-container{display:flex;flex-direction:column;gap:var(--space-4)}.time-slot-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-4);position:relative}.time-slot-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.time-slot-number{align-items:center;color:var(--text-primary);display:flex;font-size:.875rem;font-weight:600;gap:var(--space-2)}.remove-slot-btn{align-items:center;background:var(--error-500);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:24px;justify-content:center;transition:all var(--transition-fast);width:24px}.remove-slot-btn:hover{background:var(--error-600);transform:scale(1.1)}.time-selector-row{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:1.2fr 1fr 1fr;margin-bottom:var(--space-3)}.selector-group{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.selector-group label{color:var(--text-secondary);font-size:.8rem;font-weight:600;letter-spacing:.05em;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.day-selector,.time-selector{background-color:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:.875rem;font-weight:500;min-width:0;padding:var(--space-2) var(--space-3);transition:all var(--transition-fast)}.day-selector:hover,.time-selector:hover{border-color:var(--primary-200)}.day-selector:focus,.time-selector:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--primary-100)}.time-selector:disabled{background-color:var(--gray-100);border-color:var(--gray-200);color:var(--text-tertiary);cursor:not-allowed}.time-preview{background:linear-gradient(135deg,var(--success-50),var(--success-25));border:1px solid var(--success-200);color:var(--success-700);font-size:.875rem;font-weight:600;overflow-wrap:break-word;padding:var(--space-3);text-align:center;word-break:break-word}.error-message,.time-preview{border-radius:var(--radius-md);margin-top:var(--space-2)}.error-message{padding:var(--space-2) var(--space-3)}.no-sessions-message{background:var(--gray-50);border:1px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.875rem;font-style:italic;padding:var(--space-4);text-align:center}.validation-warning{background:var(--warning-50);border:1px solid var(--warning-200);border-radius:var(--radius-md);color:var(--warning-700);font-weight:600;margin-top:var(--space-3);padding:var(--space-4);text-align:center}.remove-course-btn{background:#ff4757;border-radius:50%;box-shadow:0 3px 10px #ff475780;color:#fff;font-size:20px;font-weight:700;height:28px;line-height:1;opacity:.9;position:absolute;right:var(--space-3);top:var(--space-3);transition:all var(--transition-fast);width:28px;z-index:100}.course-block:hover .remove-course-btn{opacity:1}.course-block.collapsed .remove-course-btn{font-size:1rem;height:24px;right:var(--space-2);top:var(--space-2);width:24px}.remove-course-btn:hover{background:#ff3742;box-shadow:0 5px 15px #ff4757b3;transform:scale(1.15)}.edit-sessions-container{align-items:center;display:flex;justify-content:flex-end;margin-bottom:20px;margin-top:2px;min-height:32px;position:relative}.expand-toggle-btn{border-radius:var(--radius-md);font-size:.875rem;gap:var(--space-2);padding:var(--space-2) var(--space-4);white-space:nowrap;z-index:50}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.course-block{animation:slideInLeft .4s ease-out}.time-slot-item{animation:slideInLeft .3s ease-out}@media (max-width:1100px){.time-selector-row{gap:var(--space-2);grid-template-columns:1.3fr .85fr .85fr}.selector-group label{font-size:.75rem}.day-selector,.time-selector{font-size:.8rem;padding:var(--space-2)}}@media (max-width:768px){.course-block{margin-bottom:var(--space-4)}.course-block,.sessions-container{padding:var(--space-4)}.session-type-header{align-items:stretch;flex-direction:column;gap:var(--space-3)}.session-actions{flex-wrap:wrap;justify-content:center}.add-slot-btn,.delete-section-btn{flex:1 1;justify-content:center;min-width:120px}.time-selector-row{gap:var(--space-3);grid-template-columns:1fr}.day-selector,.time-selector{font-size:.9rem;padding:var(--space-2)}}@media (max-width:480px){.course-block,.session-section,.sessions-container,.time-slot-item{padding:var(--space-3)}.time-slot-header{align-items:stretch;flex-direction:column;gap:var(--space-2)}.remove-slot-btn{align-self:flex-end}.session-actions{flex-direction:column;gap:var(--space-2)}.add-slot-btn,.delete-section-btn{width:100%}}.course-header{flex-direction:column;gap:var(--space-3)}.course-block.collapsed .course-header{gap:var(--space-2)}.course-block.collapsed .input-group{margin-bottom:var(--space-2)}.course-block.collapsed .course-input{font-size:.9rem;margin-bottom:var(--space-2);padding:var(--space-2)}.course-summary{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);font-size:.85rem;margin-top:var(--space-1);padding:var(--space-2)}.summary-content{display:flex;flex-direction:column;gap:var(--space-1)}.summary-item{align-items:center;display:flex;font-size:.8rem;gap:var(--space-2);line-height:1.3}.summary-label{color:var(--text-secondary);font-weight:600;min-width:80px}.summary-value{color:var(--text-primary);flex:1 1}.summary-item.no-sessions .summary-value{color:var(--text-secondary);font-style:italic}.expand-toggle-btn:hover{box-shadow:0 4px 12px #3b82f64d}.modal-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-container{animation:slideInUp .4s ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-height:90vh;max-width:500px;overflow-y:auto;position:relative;width:90%}.modal-header{align-items:center;background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:var(--space-6)}.modal-title{color:var(--text-primary);font-weight:700;gap:var(--space-2);margin:0}.modal-close,.modal-title{align-items:center;display:flex;font-size:1.5rem}.modal-close{background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;height:40px;justify-content:center;padding:var(--space-2);transition:all var(--transition-fast);width:40px}.modal-close:hover{background:var(--error-100);color:var(--error-600);transform:scale(1.1)}.modal-form{padding:var(--space-6)}.form-group input,.form-group textarea{background-color:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-family:inherit;font-size:1rem;padding:var(--space-3);resize:vertical;transition:all var(--transition-fast);width:100%}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-tertiary)}.form-group input:hover,.form-group textarea:hover{background-color:var(--bg-secondary);border-color:var(--primary-200)}.form-group input:focus,.form-group textarea:focus{background-color:var(--bg-secondary);border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-100)}.checkbox-label{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:var(--space-3)}.checkbox-label input[type=checkbox]{display:none}.checkbox-custom{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-sm);flex-shrink:0;height:20px;position:relative;transition:all var(--transition-fast);width:20px}.checkbox-label input[type=checkbox]:checked+.checkbox-custom{background:var(--primary-500);border-color:var(--primary-500)}.checkbox-label input[type=checkbox]:checked+.checkbox-custom:after{color:#fff;content:"✓";font-size:.75rem;font-weight:700;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.error-message{border:1px solid var(--error-200);font-size:.875rem;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3)}.error-message:before{font-size:1em}.modal-actions{border-top:1px solid var(--border-color);display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-6);padding-top:var(--space-4)}.cancel-button,.save-button{align-items:center;border:none;border-radius:var(--radius-lg);cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-5);transition:all var(--transition-fast)}.cancel-button{background:var(--gray-200);color:var(--text-secondary)}.cancel-button:hover:not(:disabled){background:var(--gray-300);transform:translateY(-1px)}.save-button{background:linear-gradient(135deg,var(--success-500),var(--success-600))}.save-button:hover:not(:disabled){background:linear-gradient(135deg,var(--success-600),var(--success-500));box-shadow:var(--shadow-md)}.save-button:disabled{opacity:.6}@media (max-width:768px){.modal-container{margin:var(--space-4);width:95%}.modal-form,.modal-header{padding:var(--space-4)}.modal-title{font-size:1.25rem}.modal-actions{flex-direction:column}.cancel-button,.save-button{justify-content:center;width:100%}}@media (max-width:480px){.modal-container{border-radius:0;height:100vh;max-height:none;width:100%}}.skeleton-loader-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);min-height:600px;overflow:hidden;padding:var(--space-8);position:relative}.skeleton-header{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-8)}.skeleton-title{flex:1 1}.skeleton-title-text{border-radius:var(--radius-md);height:28px;margin-bottom:var(--space-2);width:200px}.skeleton-subtitle,.skeleton-title-text{animation:shimmer 2s infinite;background:var(--gray-200)}.skeleton-subtitle{animation-delay:.2s;border-radius:var(--radius-sm);height:16px;width:150px}.skeleton-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.skeleton-button{animation:shimmer 2s infinite;background:var(--gray-200);border-radius:var(--radius-lg);height:40px;width:120px}.skeleton-button:nth-child(2){animation-delay:.3s}.skeleton-button:nth-child(3){animation-delay:.6s}.progress-section{background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border:2px solid var(--primary-200);border-radius:var(--radius-xl);margin-bottom:var(--space-8);overflow:hidden;padding:var(--space-6);position:relative}.progress-section:before{animation:progressShine 3s infinite;background:linear-gradient(90deg,#0000,#fff6,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}.progress-header{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-4)}.progress-title{align-items:center;color:var(--primary-700);display:flex;font-size:1.25rem;font-weight:700;gap:var(--space-2);margin:0}.progress-title:before{animation:pulse 2s infinite;content:"⚡";font-size:1.5rem}.progress-stats{align-items:center;display:flex;font-weight:600;gap:var(--space-4)}.progress-percentage{color:var(--primary-600);font-size:1.5rem;font-weight:800}.estimated-time{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:.875rem;padding:var(--space-1) var(--space-3)}.progress-bar-container{margin-bottom:var(--space-4)}.progress-bar{background:var(--gray-200);height:8px;width:100%}.progress-bar,.progress-fill{border-radius:var(--radius-lg);overflow:hidden;position:relative}.progress-fill{background:linear-gradient(90deg,var(--primary-500),var(--primary-400));height:100%;transition:width .5s ease-out}.progress-fill:after{animation:progressGlow 2s infinite;background:linear-gradient(90deg,#0000,#fff9,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.current-step{gap:var(--space-3)}.current-step,.step-indicator{align-items:center;display:flex}.step-indicator{gap:var(--space-2)}.step-dot{animation:pulse 2s infinite;background:var(--primary-500);border-radius:50%;height:12px;width:12px}.step-line{background:var(--primary-300);height:2px;overflow:hidden;position:relative;width:30px}.step-line:after{animation:stepProgress 2s infinite;background:var(--primary-500);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}.step-text{color:var(--primary-700);font-size:.875rem;font-weight:600}.skeleton-table-container{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--space-8);overflow:hidden}.skeleton-table{background:var(--bg-secondary);border-collapse:initial;border-spacing:0;width:100%}.skeleton-table th{background:var(--gray-100);border-bottom:2px solid var(--border-color);padding:var(--space-4);position:-webkit-sticky;position:sticky;top:0;z-index:10}.skeleton-table td{border:1px solid var(--border-color);min-height:60px;padding:var(--space-3);position:relative;vertical-align:middle}.skeleton-time-cell,.skeleton-time-header{background:var(--gray-50);border-right:2px solid var(--border-color)}.skeleton-text{animation:shimmer 2s infinite;background:var(--gray-200);border-radius:var(--radius-sm)}.skeleton-text-sm{height:16px;width:60px}.skeleton-text-xs{height:12px;width:50px}.skeleton-empty-cell{background:var(--gray-50);position:relative}.skeleton-empty-shimmer{animation:shimmer 3s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;left:0;position:absolute;right:0;top:0}.skeleton-class-cell{animation:fadeInScale .6s ease-out forwards;background:var(--primary-100);border:2px solid var(--primary-200);opacity:0;transform:scale(.95)}.skeleton-class-cell.skeleton-lecture{background:var(--primary-100);border-color:var(--primary-300)}.skeleton-class-cell.skeleton-ta{background:var(--success-100);border-color:var(--success-300)}.skeleton-class-content{display:flex;flex-direction:column;gap:var(--space-2);height:100%;justify-content:center;padding:var(--space-2)}.skeleton-class-name{background:var(--primary-300);height:16px;width:80%}.skeleton-class-name,.skeleton-class-type{animation:shimmer 2s infinite;border-radius:var(--radius-sm)}.skeleton-class-type{animation-delay:.3s;background:var(--primary-200);height:12px;width:60%}.skeleton-ta .skeleton-class-name{background:var(--success-300)}.skeleton-ta .skeleton-class-type{background:var(--success-200)}.loading-steps{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:var(--space-6)}.step-item{align-items:center;animation:fadeInUp .6s ease-out forwards;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;gap:var(--space-3);opacity:0;padding:var(--space-4);transform:translateY(20px);transition:all var(--transition-fast)}.step-item:first-child{animation-delay:.2s}.step-item:nth-child(2){animation-delay:.4s}.step-item:nth-child(3){animation-delay:.6s}.step-item:nth-child(4){animation-delay:.8s}.step-item:hover{border-color:var(--primary-200);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.step-icon{align-items:center;animation:bounce 2s infinite;background:var(--primary-50);border-radius:var(--radius-md);display:flex;font-size:1.5rem;height:40px;justify-content:center;width:40px}.step-item span{color:var(--text-secondary);font-size:.875rem;font-weight:500}.skeleton-class-name,.skeleton-class-type,.skeleton-text{background:linear-gradient(90deg,var(--gray-200) 0,var(--gray-300) 50%,var(--gray-200) 100%);background-repeat:no-repeat;background-size:200px 100%}@keyframes progressShine{0%{left:-100%}to{left:100%}}@keyframes progressGlow{0%,to{transform:translateX(-100%)}50%{transform:translateX(100%)}}@keyframes stepProgress{0%{left:-100%}to{left:100%}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-3px)}60%{transform:translateY(-2px)}}@media (max-width:1024px){.skeleton-loader-container{padding:var(--space-6)}.skeleton-header{align-items:stretch;flex-direction:column;text-align:center}.skeleton-actions{justify-content:center}.skeleton-table{font-size:.875rem}.skeleton-table td,.skeleton-table th{padding:var(--space-2)}}@media (max-width:768px){.skeleton-loader-container{border-radius:var(--radius-lg);padding:var(--space-4)}.progress-header{align-items:stretch;flex-direction:column;gap:var(--space-2);text-align:center}.progress-stats{justify-content:center}.skeleton-table{font-size:.75rem}.skeleton-table td,.skeleton-table th{padding:var(--space-1) var(--space-2)}.loading-steps{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.skeleton-loader-container *,.skeleton-loader-container :after,.skeleton-loader-container :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.weekly-scheduler-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-top:var(--space-12);min-height:600px;overflow-x:auto;padding:var(--space-6);position:relative;width:100%;z-index:5}.scheduler-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-8)}.header-content{display:flex;flex:1 1;flex-direction:column;gap:var(--space-2)}.scheduler-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:1.75rem;font-weight:700;margin:0}.schedule-source{margin-top:var(--space-2)}.source-info{display:flex;flex-direction:column;gap:var(--space-1)}.source-badge{align-items:center;background:linear-gradient(135deg,var(--success-100),var(--success-50));border:1px solid var(--success-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--success-700);display:inline-flex;font-size:.75rem;font-weight:600;gap:var(--space-1);letter-spacing:.05em;padding:var(--space-1) var(--space-3);text-transform:uppercase;width:-webkit-fit-content;width:fit-content}.edit-hint{color:var(--text-secondary);font-size:.8rem;font-style:italic;line-height:1.3;margin-top:var(--space-1)}.back-button{background:var(--gray-100);font-weight:600}.back-button:hover{background:var(--primary-50);border-color:var(--primary-200)}.scheduler-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.action-button{align-items:center;border:none;border-radius:var(--radius-lg);cursor:pointer;display:flex;font-family:inherit;font-size:.875rem;font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-5);transition:all var(--transition-fast)}.button-save{background:linear-gradient(135deg,var(--success-500),var(--success-600));box-shadow:var(--shadow-sm);color:#fff}.button-save:hover{background:linear-gradient(135deg,var(--success-600),var(--success-500));box-shadow:var(--shadow-md);transform:translateY(-1px)}.button-calendar{background:linear-gradient(135deg,var(--warning-500),var(--warning-600));box-shadow:var(--shadow-sm);color:#fff}.button-calendar:hover{background:linear-gradient(135deg,var(--warning-600),var(--warning-500));box-shadow:var(--shadow-md);transform:translateY(-1px)}.button-download{background:linear-gradient(135deg,var(--primary-500),var(--primary-600));box-shadow:var(--shadow-sm);color:#fff}.button-download:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.button-share{background:linear-gradient(135deg,#25d366,#128c7e);box-shadow:var(--shadow-sm);color:#fff}.button-share:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.button-cancel{background:linear-gradient(135deg,var(--error-500),var(--error-600));box-shadow:var(--shadow-sm);color:#fff}.button-cancel:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.drag-mode-info{background:linear-gradient(135deg,var(--primary-50),var(--primary-100));border:2px solid var(--primary-200);border-radius:var(--radius-lg);margin-bottom:var(--space-6);padding:var(--space-4);text-align:center}.drag-mode-info p{color:var(--primary-800);margin:var(--space-1) 0}.drag-mode-info strong{color:var(--primary-900)}.highlight-mode-info{background:linear-gradient(135deg,var(--warning-50),var(--warning-100));border:2px solid var(--warning-200);border-radius:var(--radius-lg);margin-bottom:var(--space-6);padding:var(--space-4);text-align:center}.highlight-mode-info p{color:var(--warning-800);margin:var(--space-1) 0}.highlight-mode-info strong{color:var(--warning-900)}.highlighted-course{border:2px solid #3b82f699!important;box-shadow:0 0 15px #3b82f666,inset 0 0 15px #3b82f61a!important;position:relative;z-index:10}.class-content{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;position:relative;text-align:center}.highlight-indicator{animation:sparkle 1.5s ease-in-out infinite}.drag-indicator,.highlight-indicator{display:block;font-size:.8em;margin-top:2px}.drag-indicator{animation:spin 2s linear infinite}@keyframes sparkle{0%,to{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.empty-state{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;min-height:400px;text-align:center}.empty-state-icon{font-size:4rem;margin-bottom:var(--space-4);opacity:.5}.empty-state-title{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:var(--space-2)}.empty-state-description{font-size:1rem;line-height:1.6;max-width:400px}.table-container{box-sizing:border-box;margin-top:var(--space-4);max-width:100%;overflow-x:auto}#schedule-table,.table-container{border-radius:var(--radius-lg);width:100%}#schedule-table{background:var(--bg-secondary);border-collapse:initial;border-spacing:0;box-shadow:var(--shadow-md);font-family:var(--font-sans);font-size:.875rem;min-width:700px;overflow:hidden;text-align:center}#schedule-table th{background:linear-gradient(135deg,var(--gray-100),var(--gray-50));border-bottom:2px solid var(--border-color);color:var(--text-primary);font-size:.875rem;font-weight:700;letter-spacing:.05em;padding:var(--space-4);position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0;z-index:10}#schedule-table th:first-child{background:linear-gradient(135deg,var(--primary-100),var(--primary-50));color:var(--primary-800);font-weight:800}#schedule-table td{background-color:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-weight:500;min-height:60px;padding:var(--space-3);position:relative;transition:all var(--transition-fast);vertical-align:middle}#schedule-table td:first-child{background:linear-gradient(135deg,var(--gray-50),var(--bg-secondary));border-right:2px solid var(--border-color);color:var(--text-secondary);font-weight:700}#schedule-table td:empty{background:var(--gray-50);position:relative}#schedule-table td:empty:hover{background:var(--primary-50)}#schedule-table td[style*=background-color]{border:2px solid #fff3;color:#fff!important;font-weight:700;overflow:hidden;position:relative;text-shadow:0 1px 2px #0000004d}#schedule-table td[style*=background-color]:before{background:linear-gradient(135deg,#ffffff1a,#fff0);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.clickable-cell{cursor:pointer;position:relative;transition:all .2s ease}.clickable-cell:hover{box-shadow:var(--shadow-lg);filter:brightness(1.05);transform:scale(1.02);z-index:5}.dragging{animation:pulse 1.5s infinite;border:3px dashed var(--primary-500)!important;opacity:.7}.available-slot{animation:availableSlotPulse 2s infinite;background:linear-gradient(135deg,var(--success-100),var(--success-50))!important;border:2px dashed var(--success-500)!important;cursor:pointer;position:relative}.available-slot.original-option{animation:originalOptionPulse 2s infinite;background:linear-gradient(135deg,var(--primary-100),var(--primary-50))!important;border:2px dashed var(--primary-500)!important}@keyframes availableSlotPulse{0%,to{background:linear-gradient(135deg,var(--success-100),var(--success-50));border-color:var(--success-500)}50%{background:linear-gradient(135deg,var(--success-200),var(--success-100));border-color:var(--success-600)}}@keyframes originalOptionPulse{0%,to{background:linear-gradient(135deg,var(--primary-100),var(--primary-50));border-color:var(--primary-500)}50%{background:linear-gradient(135deg,var(--primary-200),var(--primary-100));border-color:var(--primary-600)}}.available-slot:hover{background:linear-gradient(135deg,var(--success-200),var(--success-100))!important;border-color:var(--success-600)!important;box-shadow:var(--shadow-lg);transform:scale(1.02)}.available-slot.original-option:hover{background:linear-gradient(135deg,var(--primary-200),var(--primary-100))!important;border-color:var(--primary-600)!important;box-shadow:var(--shadow-lg);transform:scale(1.02)}.available-slot-content{align-items:center;color:var(--success-700);display:flex;font-size:.875rem;font-weight:600;height:100%;justify-content:center}.original-option .available-slot-content{color:var(--primary-700)}.move-here-text{text-shadow:0 1px 2px #fffc}.popup-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-action-row{align-items:center;display:flex;gap:12px;justify-content:space-between;padding-top:var(--space-2)}.secondary-action{background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;color:var(--text-primary);cursor:pointer;font-weight:600;padding:10px 14px}.secondary-action:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.popup-content{animation:popupSlideIn .3s ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-height:80vh;max-width:400px;overflow-y:auto;width:90%}@keyframes popupSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.popup-header{align-items:center;background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:var(--space-6)}.popup-header h3{color:var(--text-primary);font-size:1.25rem;font-weight:700;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;padding:var(--space-1);transition:all var(--transition-fast);width:32px}.close-button:hover{background:var(--error-100);color:var(--error-600)}.popup-body{padding:var(--space-6)}.detail-item{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:var(--space-3) 0}.detail-item:last-child{border-bottom:none}.detail-label{color:var(--text-secondary);font-size:.875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.detail-value{color:var(--text-primary);font-size:1rem;font-weight:500}@media (max-width:1024px){.weekly-scheduler-container{padding:var(--space-6)}.scheduler-header{align-items:stretch;flex-direction:column;text-align:center}.header-content{text-align:center}.header-content,.source-info{align-items:center}.scheduler-actions{justify-content:center}#schedule-table{font-size:.75rem}#schedule-table td,#schedule-table th{padding:var(--space-2)}}@media (max-width:768px){.weekly-scheduler-container{border-radius:var(--radius-lg);padding:var(--space-4)}.scheduler-title{font-size:1.5rem}.action-button{font-size:.8rem;padding:var(--space-2) var(--space-4)}#schedule-table{font-size:.7rem}#schedule-table td,#schedule-table th{padding:var(--space-1) var(--space-2)}.popup-content{margin:var(--space-4);width:95%}.popup-body,.popup-header{padding:var(--space-4)}.drag-mode-info{font-size:.875rem;padding:var(--space-3)}}.loading-schedule{align-items:center;display:flex;flex-direction:column;gap:var(--space-4);justify-content:center;min-height:400px}.loading-schedule .loading-spinner{border-width:4px;height:40px;width:40px}.loading-text{color:var(--text-secondary);font-weight:500}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}#schedule-table{animation:fadeInScale .5s ease-out}@media print{.constraints-display,.drag-mode-info,.enhanced-view-section,.popup-overlay,.scheduler-actions{display:none!important}.weekly-scheduler-container{background:#fff!important;border:none;box-shadow:none;margin:0;max-width:none!important;min-height:auto!important;padding:10px;width:100%!important}#schedule-table{border-collapse:collapse!important;box-shadow:none;font-size:10px!important;max-width:100%!important;min-width:100%!important;page-break-inside:avoid;width:100%!important}#schedule-table th{background:#f8f9fa!important;border:1px solid #dee2e6!important;color:#212529!important;font-size:9px!important;font-weight:700!important;padding:8px 4px!important;text-align:center!important}#schedule-table td{word-wrap:break-word!important;background:#fff!important;border:1px solid #dee2e6!important;font-size:8px!important;max-width:80px!important;padding:6px 3px!important;vertical-align:top!important}#schedule-table td[style*=background-color]{background:#e3f2fd!important;color:#1565c0!important;font-weight:700!important}.course-block{font-size:7px!important;line-height:1.2!important;padding:2px!important}}.constraints-display{animation:slideInFromTop .5s ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);margin:var(--space-8) 0 var(--space-8) 0;min-height:200px;overflow:hidden;padding:var(--space-5);position:relative;z-index:10}.constraints-display.collapsed{min-height:180px;padding-bottom:calc(var(--space-12) + var(--space-4));transition:all var(--transition-fast)}.constraints-display.collapsed:hover{border-color:var(--primary-300);box-shadow:var(--shadow-xl);transform:translateY(-3px);z-index:20}.constraints-display.expanded{background:var(--bg-secondary);border:2px solid var(--primary-300);margin:var(--space-10) 0 var(--space-12) 0;min-height:300px;overflow-y:visible;padding:var(--space-6) var(--space-5) var(--space-8) var(--space-5);position:relative;z-index:25}.constraints-display:before{animation:gradientShift 3s ease-in-out infinite;background:linear-gradient(90deg,var(--primary-500),var(--success-500),var(--warning-500),var(--primary-500));background-size:200% 100%;content:"";height:4px;left:0;position:absolute;right:0;top:0}@keyframes gradientShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.constraints-header{align-items:flex-start;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-3)}.constraints-display.collapsed .constraints-header{margin-bottom:var(--space-2);padding-bottom:var(--space-1)}.constraints-display.expanded .constraints-header{border-bottom:2px solid var(--primary-300);margin-bottom:var(--space-6);padding-bottom:var(--space-4);padding-right:var(--space-32)}.constraints-title-section{flex:1 1}.constraints-title{-webkit-text-fill-color:#0000;align-items:center;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));-webkit-background-clip:text;background-clip:text;color:var(--text-primary);display:flex;font-size:1.5rem;font-weight:700;gap:var(--space-2);margin:0 0 var(--space-0) 0}.constraints-subtitle{color:var(--text-secondary);font-size:.875rem;font-style:italic;line-height:1.4;margin:0}.constraints-summary{background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border:1px solid var(--primary-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;justify-content:center;margin-bottom:var(--space-1);margin-top:var(--space-3);min-height:80px;padding:var(--space-4)}.constraints-summary .summary-text{color:var(--primary-700);display:block;font-size:.95rem;font-weight:600;line-height:1.4;margin-bottom:var(--space-2)}.constraints-preview{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.constraint-preview-item{align-items:center;background:var(--primary-100);border:1px solid var(--primary-200);border-radius:var(--radius-md);display:inline-flex;font-size:.85rem;gap:var(--space-1);padding:var(--space-1) var(--space-2)}.preview-icon{flex-shrink:0;font-size:1rem;text-align:center;width:18px}.preview-text{color:var(--text-primary);font-size:.85rem;font-weight:500}.constraint-preview-more{align-items:center;background:var(--gray-100);border:1px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);display:inline-flex;font-size:.8rem;font-style:italic;padding:var(--space-1) var(--space-2)}.expand-toggle-btn{align-items:center;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:var(--space-1);justify-content:center;min-height:36px;min-width:120px;padding:var(--space-2) var(--space-3);position:absolute;right:var(--space-4);top:var(--space-4);transition:all var(--transition-fast);width:auto;z-index:100}.expand-toggle-btn:hover{background:linear-gradient(135deg,var(--primary-600),var(--primary-700));box-shadow:none!important;transform:translateY(-1px)}.expand-toggle-btn:after,.expand-toggle-btn:before{box-shadow:none!important;content:none!important;display:none!important;filter:none!important}.expand-toggle-btn:active,.expand-toggle-btn:focus,.expand-toggle-btn:focus-visible{box-shadow:none!important;filter:none!important;outline:none!important}.expand-toggle-btn:active{transform:translateY(0)}.constraints-list{display:flex;flex-direction:column;gap:var(--space-4);max-height:none;min-height:0;overflow-y:visible;padding-right:0}.constraint-item{align-items:flex-start;background:linear-gradient(135deg,var(--gray-50),var(--bg-secondary));border:2px solid var(--border-color);border-radius:var(--radius-xl);display:flex;gap:var(--space-4);overflow:hidden;padding:var(--space-5);position:relative;transition:all var(--transition-fast)}.constraint-item.time-constraint{background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border-color:var(--primary-200)}.constraint-item.day-constraint{background:linear-gradient(135deg,var(--warning-50),var(--bg-secondary));border-color:var(--warning-200)}.constraint-item.ta-constraint{background:linear-gradient(135deg,var(--success-50),var(--bg-secondary));border-color:var(--success-200)}.constraint-item.gap-constraint{background:linear-gradient(135deg,#f0f9ff,var(--bg-secondary));border-color:#06b6d4}.constraint-item:before{content:"";height:3px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity var(--transition-fast)}.constraint-item.time-constraint:before,.constraint-item:before{background:linear-gradient(90deg,var(--primary-500),var(--primary-400))}.constraint-item.day-constraint:before{background:linear-gradient(90deg,var(--warning-500),var(--warning-400))}.constraint-item.ta-constraint:before{background:linear-gradient(90deg,var(--success-500),var(--success-400))}.constraint-item.gap-constraint:before{background:linear-gradient(90deg,#06b6d4,#0891b2)}.constraint-item:hover{border-color:var(--primary-300);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.constraint-item:hover:before{opacity:1}.constraint-icon{align-items:center;border:2px solid var(--primary-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);display:flex;flex-shrink:0;font-size:2rem;height:56px;justify-content:center;width:56px}.constraint-icon,.constraint-item.time-constraint .constraint-icon{background:linear-gradient(135deg,var(--primary-100),var(--primary-50))}.constraint-item.time-constraint .constraint-icon{border-color:var(--primary-200)}.constraint-item.day-constraint .constraint-icon{background:linear-gradient(135deg,var(--warning-100),var(--warning-50));border-color:var(--warning-200)}.constraint-item.ta-constraint .constraint-icon{background:linear-gradient(135deg,var(--success-100),var(--success-50));border-color:var(--success-200)}.constraint-item.gap-constraint .constraint-icon{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-color:#06b6d4}.constraint-content{display:flex;flex:1 1;flex-direction:column;gap:var(--space-2)}.constraint-main{align-items:flex-start;display:flex;gap:var(--space-3);justify-content:space-between}.constraint-text{color:var(--text-primary);font-size:1.1rem;font-weight:700;line-height:1.3}.constraint-type-badge{background:linear-gradient(135deg,var(--gray-100),var(--gray-50));border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:var(--space-1) var(--space-3);text-transform:uppercase;white-space:nowrap}.constraint-item.time-constraint .constraint-type-badge{background:linear-gradient(135deg,var(--primary-100),var(--primary-50));border-color:var(--primary-200);color:var(--primary-700)}.constraint-item.day-constraint .constraint-type-badge{background:linear-gradient(135deg,var(--warning-100),var(--warning-50));border-color:var(--warning-200);color:var(--warning-700)}.constraint-item.ta-constraint .constraint-type-badge{background:linear-gradient(135deg,var(--success-100),var(--success-50));border-color:var(--success-200);color:var(--success-700)}.constraint-item.gap-constraint .constraint-type-badge{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-color:#06b6d4;color:#0891b2}.constraint-description{color:var(--text-secondary);font-size:.875rem;font-style:italic;line-height:1.4;margin-top:var(--space-1)}.constraint-actions{align-items:flex-start;display:flex;flex-shrink:0;gap:var(--space-2)}.delete-btn,.edit-btn{align-items:center;background:none;border:none;border-radius:var(--radius-lg);cursor:pointer;display:flex;font-size:1.1rem;height:40px;justify-content:center;padding:var(--space-2);transition:all var(--transition-fast);width:40px}.edit-btn:hover{background:var(--primary-100);transform:scale(1.1)}.delete-btn:hover{background:var(--error-100);transform:scale(1.1)}.edit-form{animation:slideInFromTop .3s ease-out;background:var(--bg-tertiary);border:2px solid var(--primary-200);border-radius:var(--radius-lg);margin-top:var(--space-4);padding:var(--space-5)}.edit-form-content{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-4)}.form-group{gap:var(--space-2)}.form-group label{color:var(--text-secondary)}.form-group input,.form-group select{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-family:inherit;font-size:.95rem;padding:var(--space-3) var(--space-4);transition:all var(--transition-fast)}.form-group input:focus,.form-group select:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100)}.edit-form-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.cancel-btn,.save-btn{align-items:center;border:none;border-radius:var(--radius-lg);cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-5);transition:all var(--transition-fast)}.save-btn{background:linear-gradient(135deg,var(--success-500),var(--success-600));color:#fff}.save-btn:hover{background:linear-gradient(135deg,var(--success-600),var(--success-500));box-shadow:var(--shadow-md);transform:translateY(-1px)}.cancel-btn{background:var(--gray-200);color:var(--text-secondary)}.cancel-btn:hover{background:var(--gray-300);transform:translateY(-1px)}.add-form{animation:slideInFromTop .3s ease-out;background:linear-gradient(135deg,var(--success-50),var(--bg-secondary));border:2px solid var(--success-200);border-radius:var(--radius-xl);margin-top:var(--space-5);padding:var(--space-6)}.add-form-header h4{align-items:center;color:var(--text-primary);display:flex;font-size:1.25rem;font-weight:700;gap:var(--space-2);margin:0 0 var(--space-4) 0}.add-form-header h4:before{content:"➕";font-size:1.5rem}.add-form-content{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-5)}.add-form-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.add-constraint-btn{align-items:center;background:linear-gradient(135deg,var(--success-500),var(--success-600));border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;display:flex;font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-6);transition:all var(--transition-fast)}.add-constraint-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--success-600),var(--success-500));box-shadow:var(--shadow-md);transform:translateY(-1px)}.add-constraint-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.cancel-add-btn{background:var(--gray-200);border:none;border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;font-weight:600;padding:var(--space-3) var(--space-6);transition:all var(--transition-fast)}.cancel-add-btn:hover{background:var(--gray-300);transform:translateY(-1px)}.constraints-controls{align-items:center;border-top:2px solid var(--border-color);display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-8);margin-top:var(--space-6);padding-top:var(--space-5)}.add-new-btn{align-items:center;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;display:flex;font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-6);transition:all var(--transition-fast)}.add-new-btn:hover{background:linear-gradient(135deg,var(--primary-600),var(--primary-500));box-shadow:var(--shadow-md);transform:translateY(-1px)}.regenerate-btn{align-items:center;background:linear-gradient(135deg,var(--warning-500),var(--warning-600));border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;display:flex;font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-6);transition:all var(--transition-fast)}.regenerate-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--warning-600),var(--warning-500));box-shadow:var(--shadow-md);transform:translateY(-1px)}.regenerate-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.raw-entities{border-top:1px solid var(--border-color);margin-top:var(--space-6);padding-top:var(--space-4)}.entities-summary{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;font-size:.875rem;font-weight:600;padding:var(--space-3);transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.entities-summary:hover{background:var(--primary-50);border-color:var(--primary-200);color:var(--primary-700)}.entities-list{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.entity-item{align-items:center;background:var(--gray-50);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;font-size:.875rem;justify-content:space-between;padding:var(--space-3) var(--space-4)}.entity-text{background:var(--bg-secondary);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-weight:500;padding:var(--space-1) var(--space-2)}.entity-label{background:var(--primary-100);border-radius:var(--radius-lg);color:var(--primary-700);font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:var(--space-1) var(--space-3);text-transform:uppercase}.original-text-section{border-top:1px solid var(--border-color);margin-top:var(--space-4);padding-top:var(--space-4)}.original-text-summary{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;font-size:.875rem;font-weight:600;padding:var(--space-3);transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.original-text-summary:hover{background:var(--success-50);border-color:var(--success-200);color:var(--success-700)}.original-text-content{background:var(--gray-50);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-top:var(--space-4);padding:var(--space-4)}.original-text{background:var(--bg-secondary);border-left:4px solid var(--primary-500);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-mono);font-size:.875rem;line-height:1.6;padding:var(--space-3)}@media (max-width:768px){.constraints-display{margin-bottom:var(--space-4);padding:var(--space-4)}.constraints-header{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.constraints-title{font-size:1.25rem}.constraint-item{gap:var(--space-3);padding:var(--space-4)}.constraint-icon{font-size:1.5rem;height:48px;width:48px}.constraint-main{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.constraint-text{font-size:1rem}.constraints-controls{flex-direction:column;gap:var(--space-3)}.add-new-btn,.regenerate-btn{justify-content:center;width:100%}.add-form-actions,.edit-form-actions{flex-direction:column}.add-constraint-btn,.cancel-add-btn,.cancel-btn,.save-btn{justify-content:center;width:100%}}@keyframes constraintSuccess{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.constraint-item.success{animation:constraintSuccess .3s ease-out}.constraints-display:empty{display:none}@media (prefers-contrast:high){.constraint-icon,.constraint-item{border-width:3px}}@media (prefers-reduced-motion:reduce){.add-form,.constraint-item,.constraints-display,.edit-form{animation:none}.add-new-btn:hover,.constraint-item:hover,.regenerate-btn:hover{transform:none}}.schedule-error-modal-overlay{align-items:center;animation:modalFadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.schedule-error-modal{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-height:90vh;max-width:540px;overflow-y:auto;position:relative;width:100%}.schedule-error-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;padding:24px 24px 16px;position:relative}.error-icon{flex-shrink:0;font-size:28px;margin-right:12px}.error-title{color:#dc2626;flex-grow:1;font-size:20px;font-weight:600;line-height:1.3;margin:0}.modal-close-btn{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:32px;justify-content:center;padding:4px;transition:all .2s ease;width:32px}.modal-close-btn:hover{background:#f3f4f6;color:#374151}.schedule-error-modal-body{padding:24px}.error-description{background:#fef2f2;border:1px solid #fecaca;border-left:4px solid #dc2626;border-radius:8px;color:#374151;font-size:16px;line-height:1.5;margin:0 0 20px;padding:16px}.error-suggestions{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:20px;padding:20px}.error-suggestions h4{align-items:center;color:#1e40af;display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 12px}.error-suggestions ul{list-style-type:disc;margin:0;padding-left:20px}.error-suggestions li{color:#4b5563;line-height:1.4;margin:8px 0}.schedule-error-modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px 24px}.modal-btn{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:80px;padding:10px 20px;transition:all .2s ease}.modal-btn-secondary{background:#f9fafb;border:1px solid #d1d5db;color:#374151}.modal-btn-secondary:hover{background:#f3f4f6;border-color:#9ca3af}.modal-btn-primary{background:#2563eb;color:#fff}.modal-btn-primary:hover{background:#1d4ed8}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:600px){.schedule-error-modal-overlay{padding:16px}.schedule-error-modal{border-radius:12px;max-width:none;width:100%}.schedule-error-modal-header{padding:20px 20px 16px}.error-title{font-size:18px}.schedule-error-modal-body{padding:20px}.error-description{font-size:15px;padding:14px}.error-suggestions{padding:16px}.error-suggestions h4{font-size:15px}.schedule-error-modal-footer{flex-direction:column-reverse;padding:16px 20px 20px}.modal-btn{padding:12px 20px;width:100%}}.scheduler-page{flex:1 1;margin:0 auto;max-width:1600px;padding:var(--space-4);width:100%}.scheduler-content{grid-gap:var(--space-5);display:grid;gap:var(--space-5);grid-template-columns:minmax(360px,1.1fr) 2fr;height:calc(100vh - 120px);overflow:hidden}@media (max-width:1400px){.scheduler-content{gap:var(--space-4);grid-template-columns:minmax(380px,1.15fr) 1.85fr}}@media (max-width:1200px){.scheduler-content{gap:var(--space-4);grid-template-columns:minmax(360px,1.4fr) 1.6fr}}.left-panel{overflow-x:hidden}.left-panel,.right-panel{display:flex;flex-direction:column;overflow-y:auto;padding-right:var(--space-2)}.right-panel{gap:0;min-width:0;overflow-x:auto}.course-scheduler{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);height:-webkit-fit-content;height:fit-content;max-width:100%;overflow-x:hidden;padding:var(--space-5)}.scheduler-header-section{margin-bottom:var(--space-8)}.course-scheduler h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:2rem;font-weight:700;margin:0 0 var(--space-2) 0;text-align:center}.user-welcome{color:var(--text-secondary);font-size:.875rem;margin:0;text-align:center}.user-welcome strong{color:var(--primary-600)}.schedule-preference{margin-bottom:var(--space-6)}.schedule-preference label{color:var(--text-primary);display:block;font-size:.875rem;font-weight:600;letter-spacing:.05em;margin-bottom:var(--space-2);text-transform:uppercase}.loaded-schedule-info{background:#f8f9fa;border-radius:8px;box-shadow:0 3px 10px #4caf5026;font-size:14px;margin-bottom:20px;overflow:hidden;padding:16px;position:relative}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.loaded-schedule-label{align-items:center;display:flex;font-size:14px;gap:8px;margin-bottom:8px}.loaded-schedule-label:before{content:"📋";font-size:18px}.loaded-schedule-info strong{color:#1565c0;display:block;font-size:16px;margin-bottom:12px}.loaded-schedule-actions{display:flex;justify-content:flex-end;margin-top:12px}.schedule-preference select{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:1rem;padding:var(--space-3) var(--space-4);transition:all var(--transition-fast);width:100%}.schedule-preference select:hover{border-color:var(--primary-300)}.schedule-preference select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-100)}.scheduler-settings{background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:var(--space-5);max-width:100%;overflow:hidden;padding:var(--space-4)}.settings-row{grid-gap:var(--space-3);align-items:end;display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}@media (max-width:1300px){.settings-row{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}}@media (max-width:1100px){.settings-row{gap:var(--space-3);grid-template-columns:1fr 1fr}}@media (max-width:900px){.settings-row{gap:var(--space-2);grid-template-columns:1fr}}.setting-group{display:flex;flex-direction:column}.setting-group label{color:var(--text-secondary);font-size:.7rem;font-weight:600;letter-spacing:.05em;margin-bottom:var(--space-1);overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.compact-select{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-size:.8rem;min-width:0;padding:var(--space-2);transition:all var(--transition-fast);width:100%}.compact-select:hover{border-color:var(--primary-200)}.compact-select:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--primary-100);outline:none}.autocomplete-status{background:var(--success-50);border-radius:var(--radius-md);color:var(--success-700);font-size:.75rem;font-weight:500;margin-top:var(--space-2);overflow:hidden;padding:var(--space-2);text-align:center;text-overflow:ellipsis;white-space:nowrap}.loaded-schedule-info{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #4caf50;border-radius:var(--radius-md);display:flex;font-size:.875rem;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.loaded-schedule-label{color:#2e7d32;flex:1 1;font-weight:600}.clear-loaded-button{align-items:center;background:#ff5252;border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;height:24px;justify-content:center;padding:var(--space-1) var(--space-2);transition:all var(--transition-fast);width:24px}.clear-loaded-button:hover{background:#d32f2f;transform:scale(1.1)}.courses-section{margin-bottom:var(--space-5);max-width:100%;overflow:hidden}.courses-header{align-items:center;border-bottom:2px solid var(--border-color);display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:space-between;margin-bottom:var(--space-3);padding-bottom:var(--space-2)}.courses-header h3{color:var(--text-primary);flex-shrink:0;font-size:1.1rem;font-weight:700;margin:0}.add-course-button{align-items:center;background:linear-gradient(135deg,var(--success-500),var(--success-600));border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:.8rem;font-weight:600;gap:var(--space-1);padding:var(--space-2) var(--space-3);transition:all var(--transition-fast);white-space:nowrap}.add-course-button:hover:not(:disabled){background:linear-gradient(135deg,var(--success-600),var(--success-500));box-shadow:var(--shadow-md);transform:translateY(-1px)}.add-course-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.courses-list{gap:var(--space-3);max-width:100%}.constraints-section-compact{background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:var(--space-5);max-width:100%;overflow:hidden;padding:var(--space-4);transition:all var(--transition-fast)}.constraints-section-compact:hover{border-color:var(--primary-200)}.constraints-section-compact h3{color:var(--text-primary);font-size:.95rem;font-weight:600;margin:0 0 var(--space-2) 0}.constraints-input-compact{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:.8rem;line-height:1.4;min-height:70px;padding:var(--space-3);resize:vertical;transition:all var(--transition-fast);width:100%}.constraints-input-compact:hover{border-color:var(--primary-200)}.constraints-input-compact:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--primary-100);outline:none}.constraints-input-compact::placeholder{color:var(--text-tertiary);font-style:italic}.generate-schedule-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);box-sizing:border-box;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:700;gap:var(--space-2);justify-content:center;min-height:48px;padding:var(--space-3) var(--space-4);transition:all var(--transition-fast);width:100%}.generate-schedule-button:hover:not(:disabled){box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}.generate-schedule-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.constraints-section{background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-lg);margin:var(--space-8) 0;padding:var(--space-6);transition:all var(--transition-fast)}.constraints-section:hover{border-color:var(--primary-200)}.constraints-section label{color:var(--text-primary);display:block;font-size:.875rem;font-weight:600;letter-spacing:.05em;margin-bottom:var(--space-3);text-transform:uppercase}.constraints-input{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:.95rem;line-height:1.6;min-height:120px;padding:var(--space-4);resize:vertical;transition:all var(--transition-fast);width:100%}.constraints-input:hover{border-color:var(--primary-200)}.constraints-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-100)}.constraints-input::placeholder{color:var(--text-tertiary);line-height:1.5}.button-group{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-8)}.add-button,.submit-button{border:none;border-radius:var(--radius-lg);cursor:pointer;font-family:inherit;font-size:1rem;font-weight:600;overflow:hidden;padding:var(--space-4) var(--space-6);position:relative;transition:all var(--transition-fast)}.add-button{background:linear-gradient(135deg,var(--success-500),var(--success-600));box-shadow:var(--shadow-md);color:#fff}.add-button:hover{background:linear-gradient(135deg,var(--success-600),var(--success-500));box-shadow:var(--shadow-lg);transform:translateY(-2px)}.add-button:active{transform:translateY(0)}.submit-button{align-items:center;border-radius:8px;display:flex;font-size:16px;gap:8px;padding:12px 24px}.submit-button:hover:not(:disabled){box-shadow:0 4px 12px #667eea66}.submit-button:disabled{opacity:.6;transform:none}.error-message{align-items:flex-start;background:var(--error-50);border:1px solid var(--error-500);border-radius:var(--radius-lg);color:var(--error-600);gap:var(--space-3);margin-top:var(--space-6);padding:var(--space-4);text-align:left}.error-message:before{content:"⚠️";flex-shrink:0;font-size:1.2em}.loading-spinner{margin-right:var(--space-2)}.imported-courses-info{align-items:center;background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:1px solid #2196f3;border-radius:var(--radius-md);display:flex;flex-wrap:wrap;font-size:.875rem;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.imported-courses-label{color:#1565c0;font-weight:600}.semester-info{color:#1976d2;font-size:.8rem}.import-stats{color:#1565c0;font-size:.8rem;font-weight:500;margin-left:auto}.left-panel::-webkit-scrollbar,.right-panel::-webkit-scrollbar{width:8px}.left-panel::-webkit-scrollbar-track,.right-panel::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:var(--radius-md)}.left-panel::-webkit-scrollbar-thumb,.right-panel::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-md);-webkit-transition:background var(--transition-fast);transition:background var(--transition-fast)}.left-panel::-webkit-scrollbar-thumb:hover,.right-panel::-webkit-scrollbar-thumb:hover{background:var(--primary-300)}.left-panel,.right-panel{scrollbar-color:var(--border-color) var(--bg-tertiary);scrollbar-width:thin}@media (max-width:1024px){.scheduler-content{gap:var(--space-6);grid-template-columns:1fr;height:auto;overflow:visible}.left-panel,.right-panel{overflow-y:visible;padding-right:0}}@media (max-width:768px){.scheduler-page{padding:var(--space-4)}.course-scheduler{padding:var(--space-6);position:static;top:auto}.course-scheduler h2{font-size:1.75rem}.settings-row{gap:var(--space-3);grid-template-columns:1fr}.setting-group{min-width:100%}.courses-header{align-items:stretch;flex-direction:column;gap:var(--space-3)}.add-course-button{justify-content:center;width:100%}.generate-schedule-button{font-size:1rem;padding:var(--space-4)}.imported-courses-info,.loaded-schedule-info{align-items:stretch;flex-direction:column;gap:var(--space-2)}.clear-loaded-button{align-self:flex-end;width:auto}.import-stats{margin-left:0;text-align:center}}@media (max-width:480px){.scheduler-page{padding:var(--space-2)}.course-scheduler{border-radius:var(--radius-lg)}.constraints-section-compact,.course-scheduler,.scheduler-settings{padding:var(--space-3)}.setting-group label{font-size:.65rem}.compact-select{font-size:.75rem;padding:var(--space-1) var(--space-2)}.courses-header h3{font-size:1rem}.constraints-section-compact h3{font-size:.9rem}}.course-scheduler>*{animation:fadeInUp .6s ease-out forwards}.course-scheduler>:nth-child(2){animation-delay:.1s}.course-scheduler>:nth-child(3){animation-delay:.2s}.course-scheduler>:nth-child(4){animation-delay:.3s}.course-scheduler>:nth-child(5){animation-delay:.4s}.enhanced-view-section{border-bottom:1px solid var(--border-color);display:flex;justify-content:center;margin-bottom:var(--space-4);padding:var(--space-3) 0}.enhanced-view-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:10px;overflow:hidden;padding:14px 24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.enhanced-view-button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.enhanced-view-button:hover{box-shadow:0 8px 25px #667eea66;filter:brightness(1.1);transform:translateY(-2px)}.enhanced-view-button:hover:before{left:100%}.enhanced-view-button:active{transform:translateY(-1px)}@media (max-width:768px){.enhanced-view-button{font-size:15px;padding:12px 20px}}.schedule-viewer{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:20px 0;padding:24px}.schedule-viewer-header{align-items:center;border-bottom:2px solid #f1f5f9;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.header-back-button{margin-right:16px}.header-back-button button{align-items:center;background:#3b82f6;background:var(--primary-500,#3b82f6);border:none;border-radius:8px;box-shadow:0 2px 8px #3b82f633;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:600;gap:8px;padding:12px 20px;transition:all .2s ease}.header-back-button button:hover{background:#2563eb;background:var(--primary-600,#2563eb);box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.schedule-viewer-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#1e293b;font-size:28px;font-weight:700;margin:0}.schedule-stats{display:flex;gap:24px}.stat{align-items:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-direction:column;padding:12px 16px}.stat-number{color:#3b82f6;font-size:24px;font-weight:700}.stat-label{color:#64748b;font-size:12px;letter-spacing:.5px}.schedule-content{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 350px;min-height:850px}.no-schedule{align-items:center;color:#64748b;display:flex;flex-direction:column;grid-column:1/-1;justify-content:center;padding:60px 20px;text-align:center}.no-schedule-icon{font-size:64px;margin-bottom:16px;opacity:.5}.no-schedule h3{color:#374151;font-size:24px;margin:0 0 8px}.no-schedule p{font-size:16px;margin:0}.schedule-grid-container{background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;height:100%;min-height:850px;overflow:auto}.schedule-grid{display:grid;grid-template-columns:80px repeat(6,1fr);height:100%;min-height:850px}.time-column{background:#f8fafc;border-right:2px solid #e2e8f0;display:flex;flex-direction:column}.time-header{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:2px solid #e2e8f0;height:50px}.time-slot{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;height:30px;padding:0 8px;position:relative}.time-slot.hour-mark{background:#f1f5f9;border-bottom:2px solid #cbd5e1}.time-label{color:#64748b;font-size:11px;font-weight:500;text-align:center;transform:rotate(-90deg);white-space:nowrap;writing-mode:horizontal-tb}.day-column{border-right:1px solid #e5e7eb;display:flex;flex-direction:column;position:relative}.day-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:2px solid #e2e8f0;color:#fff;display:flex;font-size:14px;font-weight:600;height:50px;justify-content:center;letter-spacing:.5px}.empty-slot{background:#fff;border-bottom:1px solid #f1f5f9;height:30px;transition:background-color .2s ease}.empty-slot:nth-child(odd){background:#fafafa}.empty-slot:hover{background:#f0f9ff}.course-block{border:2px solid #0000;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:2px;overflow:hidden;padding:8px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.course-block:before{background:linear-gradient(135deg,#fff3,#fff0);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.course-block:hover{border-color:#ffffff4d;box-shadow:0 8px 25px #0003;filter:brightness(1.1);transform:translateY(-2px)}.course-block.highlighted{border:2px solid #fbbf24;box-shadow:0 8px 30px #00000040;filter:brightness(1.15);transform:scale(1.05);z-index:10}.course-info{color:#fff;font-size:11px;line-height:1.3;position:relative;z-index:1}.course-name{font-size:12px;font-weight:700;margin-bottom:4px;text-shadow:0 1px 2px #0000004d}.course-details{display:flex;flex-direction:column;gap:2px}.course-type{background:#fff3;border-radius:4px;font-size:10px;font-weight:500;padding:2px 6px;width:-webkit-fit-content;width:fit-content}.course-time{font-weight:500;opacity:.9}.course-lecturer,.course-location{font-size:10px;margin-top:2px;opacity:.85}.course-list-container{background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;display:flex;flex-direction:column;height:100%;max-height:850px;overflow:hidden;padding:20px}.course-list-container h3{border-bottom:2px solid #e2e8f0;color:#374151;font-size:20px;font-weight:600;margin:0 0 16px;padding-bottom:12px;text-align:center}.course-list{display:flex;flex:1 1;flex-direction:column;gap:12px;margin-right:-8px;max-height:calc(100% - 60px);overflow-x:hidden;overflow-y:auto;padding-right:8px}.course-list::-webkit-scrollbar{width:6px}.course-list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.course-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}.course-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.course-card{border:2px solid #e5e7eb;cursor:pointer;overflow:hidden;padding:16px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.course-card:before{background:var(--course-color);content:"";height:100%;left:0;opacity:.7;position:absolute;top:0;transition:width .3s ease;width:4px}.course-card:hover{border-color:var(--course-color);box-shadow:0 8px 25px #0000001a}.course-card:hover:before{width:8px}.course-card.hovered{border-color:#fbbf24;box-shadow:0 8px 25px #fbbf2433;transform:translateY(-2px)}.course-card.selected{background:linear-gradient(135deg,#fff,#f8fafc);border-color:var(--course-color);box-shadow:0 8px 25px #00000026;transform:translateY(-2px)}.course-card.selected:before{opacity:1;width:8px}.course-card-header{align-items:center;display:flex;margin-bottom:12px}.course-color-indicator{border-radius:50%;box-shadow:0 2px 4px #0003;height:12px;margin-right:12px;width:12px}.course-title{flex-grow:1}.course-title h4{color:#1e293b;font-size:16px;font-weight:600;line-height:1.2;margin:0 0 4px}.course-type-badges{display:flex;flex-wrap:wrap;gap:6px}.course-type-badge{background:var(--course-color);border-radius:6px;color:#fff;font-size:11px;font-weight:500;letter-spacing:.5px;padding:2px 8px;text-transform:uppercase}.course-detail{align-items:center;color:#64748b;display:flex;font-size:14px;margin-bottom:8px}.detail-icon{font-size:16px;margin-right:8px}.course-sessions{border-top:1px solid #f1f5f9;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px}.session-info{align-items:center;background:#f8fafc;border-left:3px solid var(--course-color);border-radius:8px;display:flex;flex-wrap:wrap;font-size:13px;gap:8px;padding:6px 12px}.session-type{background:var(--course-color);border-radius:4px;color:#fff;font-size:10px;font-weight:600;min-width:60px;padding:2px 6px;text-align:center;text-transform:uppercase}.session-day{color:#374151;font-weight:600;min-width:45px}.session-time{color:#64748b;font-family:SF Mono,Monaco,Cascadia Code,monospace;font-weight:500}.session-location{color:#6b7280;font-size:12px;margin-left:auto}.course-list-container::-webkit-scrollbar{width:6px}.course-list-container::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.course-list-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.course-list-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width:1200px){.schedule-content{grid-template-columns:1fr 300px}.course-list-container{padding:16px}}@media (max-width:968px){.schedule-content{gap:16px;grid-template-columns:1fr}.course-list-container{max-height:400px}.schedule-grid{grid-template-columns:60px repeat(6,1fr)}.time-label{font-size:10px}.day-header{font-size:12px;height:40px}.empty-slot,.time-header,.time-slot{height:25px}}@media (max-width:600px){.schedule-viewer{padding:16px}.schedule-viewer-header{flex-direction:column;gap:16px;text-align:center}.schedule-viewer-header h2{font-size:24px}.schedule-stats{gap:16px}.schedule-grid{grid-template-columns:50px repeat(6,1fr)}.course-name{font-size:10px}.course-info{font-size:9px}.course-card{padding:12px}.course-title h4{font-size:14px}}.course-block.selected-for-move{box-shadow:0 0 0 4px #3b82f61a;cursor:move;outline:3px solid #3b82f6;outline-offset:2px;z-index:10}.empty-slot.can-drop{background:#3b82f60d;border:2px dashed #3b82f6;cursor:pointer;transition:all .2s ease}.empty-slot.can-drop:hover{background:#3b82f61a;border-color:#2563eb}.empty-slot.invalid-drop{background:#ef44440d;border:1px dashed #ef4444;cursor:not-allowed}.empty-slot.invalid-drop:hover{background:#ef444414;border-color:#dc2626}.course-block{cursor:pointer;transition:all .2s ease}.course-block:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.schedule-viewer.has-selection{position:relative}.course-selection-status{animation:slideIn .3s ease;background:#3b82f6;border-radius:8px;box-shadow:0 4px 12px #3b82f64d;color:#fff;font-weight:600;padding:12px 20px;position:fixed;right:20px;top:20px;z-index:1000}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.course-selection-status button{background:#fff3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;margin-left:12px;padding:4px 8px}.course-selection-status button:hover{background:#ffffff4d}.schedule-viewer-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.page-header{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000001a;justify-content:space-between;margin-bottom:24px;padding:20px 24px}.header-left,.page-header{align-items:center;display:flex}.header-left{gap:16px}.back-button{align-items:center;background:var(--bg-tertiary);border:2px solid var(--primary-200);color:var(--primary-600);display:flex;font-family:inherit;font-size:.9rem;font-weight:500;gap:var(--space-2);position:relative;transition:all var(--transition-fast)}.back-button:hover{background:#e2e8f0;color:#475569;transform:translateX(-2px)}.page-title h1{color:#1e293b;font-size:28px;font-weight:700;margin:0 0 4px}.page-title p{color:#64748b;font-size:16px;margin:0}.header-actions{display:flex;gap:12px}.edit-button,.share-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s ease}.edit-button{background:#3b82f6;color:#fff}.edit-button:hover{background:#2563eb;transform:translateY(-1px)}.share-button{background:#10b981;color:#fff}.share-button:hover{background:#059669;transform:translateY(-1px)}.schedule-content{overflow:hidden}.loading-container,.schedule-content{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000001f}.loading-container{min-height:60vh;padding:60px 40px;text-align:center}.loading-spinner{border:4px solid #f1f5f9;border-top-color:#3b82f6;height:48px;margin-bottom:24px;width:48px}.loading-container h3{color:#1e293b;font-size:24px;font-weight:600;margin:0 0 8px}.loading-container p{color:#64748b;font-size:16px;margin:0}.error-container{align-items:center;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000001f;display:flex;flex-direction:column;justify-content:center;min-height:60vh;padding:60px 40px;text-align:center}.error-icon{font-size:64px;margin-bottom:24px;opacity:.7}.error-container h3{color:#dc2626;font-size:24px;font-weight:600;margin:0 0 8px}.error-container p{color:#64748b;font-size:16px;margin:0 0 24px;max-width:400px}@media (max-width:768px){.schedule-viewer-page{padding:16px}.page-header{align-items:stretch;flex-direction:column;gap:16px;padding:16px}.header-left{justify-content:flex-start}.header-actions{justify-content:center}.page-title h1{font-size:24px}.page-title p{font-size:14px}.edit-button,.share-button{flex:1 1;justify-content:center}}@media (max-width:480px){.header-left{align-items:flex-start;flex-direction:column;gap:12px}.back-button{align-self:flex-start}.header-actions{flex-direction:column}.error-container,.loading-container{padding:40px 20px}.error-container h3,.loading-container h3{font-size:20px}.error-container p,.loading-container p{font-size:14px}}.schedule-name-input{align-items:center;display:flex}.schedule-name-field{border:2px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:14px;font-weight:500;min-width:200px;padding:10px 12px;transition:all .2s ease}.schedule-name-field:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.schedule-name-field::placeholder{color:#94a3b8}.save-button{align-items:center;background:#059669;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s ease}.save-button:hover:not(:disabled){background:#047857;transform:translateY(-1px)}.save-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.save-button.saving{animation:pulse 2s infinite}.login-prompt-button{align-items:center;background:#fef3c7;border:2px solid #f59e0b;border-radius:8px;color:#d97706;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s ease}.login-prompt-button:hover{background:#f59e0b;color:#fff;transform:translateY(-1px)}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.error-message{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;display:flex;font-weight:500;gap:8px;margin-bottom:20px;padding:12px 16px}.error-icon{font-size:16px}@media (max-width:768px){.header-actions{flex-wrap:wrap;gap:8px}.schedule-name-field{font-size:12px;min-width:150px}.edit-button,.save-button,.share-button{font-size:12px;padding:8px 12px}}.about-page{background:linear-gradient(135deg,var(--primary-50) 0,var(--bg-primary) 100%);min-height:calc(100vh - 80px);padding:var(--space-8) 0}.about-container{margin:0 auto;max-width:1200px;padding:0 var(--space-6)}.about-header{margin-bottom:var(--space-16);text-align:center}.about-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:3.5rem;font-weight:800;line-height:1.2;margin:0 0 var(--space-4) 0}.about-subtitle{color:var(--text-secondary);font-size:1.25rem;line-height:1.6;margin:0 auto;max-width:600px}.about-content{grid-gap:var(--space-8);display:grid;gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:var(--space-16)}.about-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-8);text-align:center;transition:all var(--transition-fast)}.about-section:hover{border-color:var(--primary-200);box-shadow:var(--shadow-xl);transform:translateY(-4px)}.section-icon{display:block;font-size:3rem;margin-bottom:var(--space-4)}.about-section h2{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin:0 0 var(--space-4) 0}.about-section p{color:var(--text-secondary);line-height:1.6;margin:0}.features-grid{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:var(--space-16)}.feature-card{background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border:1px solid var(--primary-100);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;transition:all var(--transition-fast)}.feature-card:hover{border-color:var(--primary-200);box-shadow:var(--shadow-md);transform:translateY(-2px)}.feature-card h3{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0 0 var(--space-2) 0}.feature-card p{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin:0}.team-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:var(--space-16);padding:var(--space-10);text-align:center}.team-section h2{color:var(--text-primary);font-size:2rem;font-weight:700;margin:0 0 var(--space-4) 0}.team-section p{color:var(--text-secondary);font-size:1.1rem;line-height:1.6;margin:0 auto var(--space-8) auto;max-width:800px}.stats-row{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:var(--space-8)}.stat{text-align:center}.stat-number{color:var(--primary-600);font-size:2.5rem}.stat-label{font-size:.875rem}.cta-section{background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);color:#fff;padding:var(--space-10);text-align:center}.cta-section h2{font-size:2rem;font-weight:700;margin:0 0 var(--space-4) 0}.cta-section p{font-size:1.1rem;margin:0 0 var(--space-6) 0;margin-bottom:var(--space-6);margin-left:auto;margin-right:auto;max-width:600px;opacity:.9}.cta-button{background:#fff;border:none;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);color:var(--primary-600);cursor:pointer;font-size:1.1rem;font-weight:700;padding:var(--space-4) var(--space-8);transition:all var(--transition-fast)}.cta-button:hover{background:var(--gray-50);box-shadow:var(--shadow-xl);transform:translateY(-2px)}@media (max-width:768px){.about-page{padding:var(--space-4) 0}.about-container{padding:0 var(--space-4)}.about-title{font-size:2.5rem}.about-subtitle{font-size:1.1rem}.about-content{gap:var(--space-6);grid-template-columns:1fr}.about-section{padding:var(--space-6)}.features-grid{gap:var(--space-4);grid-template-columns:1fr}.team-section{padding:var(--space-6)}.team-section h2{font-size:1.75rem}.stats-row{gap:var(--space-4);grid-template-columns:repeat(3,1fr)}.stat-number{font-size:2rem}.cta-section{padding:var(--space-6)}.cta-section h2{font-size:1.75rem}}@media (max-width:480px){.about-title{font-size:2rem}.stats-row{gap:var(--space-3);grid-template-columns:1fr}.stat-number{font-size:1.75rem}}.about-section,.cta-section,.feature-card,.team-section{animation:fadeInUp .6s ease-out forwards}.about-section:nth-child(2){animation-delay:.1s}.about-section:nth-child(3){animation-delay:.2s}.about-section:nth-child(4){animation-delay:.3s}.about-section:nth-child(5){animation-delay:.4s}.contact-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:80px 20px 40px}.contact-container{margin:0 auto;max-width:1200px}.contact-header{margin-bottom:3rem;text-align:center}.contact-header h1{color:#fff;font-size:2.5rem;font-weight:700;margin-bottom:.5rem;text-shadow:2px 2px 4px #0000004d}.contact-header p{color:#ffffffe6;font-size:1.2rem;margin:0 auto;max-width:600px}.contact-content{grid-gap:3rem;align-items:start;display:grid;gap:3rem;grid-template-columns:1fr 2fr}.contact-info{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:20px;padding:2rem}.contact-info h3{color:#fff;font-size:1.5rem;margin-bottom:1.5rem;text-align:center}.info-section{margin-bottom:2rem}.info-section h4{align-items:center;color:#fff;display:flex;font-size:1.1rem;gap:.5rem;margin-bottom:.5rem}.info-section p{color:#fffc;font-size:.95rem;line-height:1.5}.contact-form{background:#fff;border-radius:20px;box-shadow:0 10px 30px #0003;padding:2.5rem}.form-row{grid-gap:1.5rem;gap:1.5rem;margin-bottom:1.5rem}.form-group{display:flex;flex-direction:column}.form-group label{color:#333;font-size:.95rem;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:2px solid #e1e5e9;border-radius:10px;font-family:inherit;font-size:1rem;padding:.75rem;transition:all .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group textarea{min-height:120px;resize:vertical}.form-group input::placeholder,.form-group textarea::placeholder{color:#999}.contact-form>.form-group,.status-message{margin-bottom:1.5rem}.status-message{border-radius:10px;font-weight:500;padding:1rem;text-align:center}.status-message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.status-message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem;transform:translateY(0);transition:all .3s ease;width:100%}.submit-button:hover:not(:disabled){box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}.submit-button:active{transform:translateY(0)}.submit-button:disabled{cursor:not-allowed;opacity:.7}@media (max-width:768px){.contact-page{padding:60px 15px 30px}.contact-header h1{font-size:2rem}.contact-header p{font-size:1rem}.contact-content{gap:2rem;grid-template-columns:1fr}.contact-form{padding:1.5rem}.form-row{gap:1rem;grid-template-columns:1fr}.contact-info{order:2;padding:1.5rem}.info-section{margin-bottom:1.5rem}}@media (max-width:480px){.contact-page{padding:50px 10px 20px}.contact-header h1{font-size:1.8rem}.contact-form,.contact-info{padding:1rem}}.form-group input,.form-group select,.form-group textarea{animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.university-selector-container{background:var(--bg-primary);margin:0 auto;max-width:1200px;min-height:100vh;padding:var(--space-8)}.university-selector-header{margin-bottom:var(--space-8);text-align:center}.university-selector-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:2.5rem;font-weight:700;margin-bottom:var(--space-4)}.university-selector-header p{color:var(--text-secondary);font-size:1.125rem;line-height:1.6;margin:0 auto;max-width:600px}.search-section{margin-bottom:var(--space-8)}.search-controls{align-items:center;display:flex;gap:var(--space-4);margin:0 auto;max-width:800px}.search-bar{flex:1 1;position:relative}.country-filter{flex-shrink:0}.country-select{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-xl);color:var(--text-primary);cursor:pointer;font-size:1rem;min-width:180px;padding:var(--space-4) var(--space-6);transition:all .3s ease}.country-select:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #3b82f61a;outline:none}.university-search-input{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-xl);color:var(--text-primary);font-size:1rem;padding:var(--space-4) var(--space-6);transition:all .3s ease;width:100%}.university-search-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #3b82f61a;outline:none}.universities-grid{grid-gap:var(--space-4);border-radius:var(--radius-lg);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-bottom:var(--space-8);max-height:60vh;overflow-y:auto;padding:var(--space-2)}.university-card{align-items:flex-start;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-xl);cursor:pointer;display:flex;gap:var(--space-4);padding:var(--space-6);transition:all .3s ease}.university-card:hover{border-color:var(--primary-300);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.university-card.selected{background:linear-gradient(135deg,#3b82f60d,#3b82f605);border-color:var(--primary-500);box-shadow:0 0 0 3px #3b82f61a}.university-logo{flex-shrink:0}.logo-image{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-lg);height:60px;object-fit:contain;padding:4px;width:60px}.logo-placeholder{align-items:center;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border-radius:var(--radius-lg);color:#fff;display:flex;font-size:1.5rem;font-weight:700;height:60px;justify-content:center;width:60px}.university-info{flex:1 1}.university-name{color:var(--text-primary);font-size:1.25rem;font-weight:600;line-height:1.4;margin-bottom:var(--space-2)}.university-location{color:var(--text-secondary);font-size:.875rem;margin-bottom:var(--space-3)}.university-features{display:flex;flex-wrap:wrap;gap:var(--space-2)}.feature-badge{border-radius:var(--radius-full);font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:var(--space-1) var(--space-3);text-transform:uppercase}.feature-badge.api-available{background:var(--success-100);color:var(--success-700)}.feature-badge.manual-import{background:var(--warning-100);color:var(--warning-700)}.no-results{background:var(--bg-secondary);border:2px dashed var(--border-color);border-radius:var(--radius-xl);padding:var(--space-12) var(--space-6);text-align:center}.no-results-icon{font-size:4rem;margin-bottom:var(--space-4);opacity:.5}.no-results h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:var(--space-2)}.no-results p{margin-bottom:var(--space-4)}.no-results p,.no-results ul{color:var(--text-secondary);line-height:1.6}.no-results ul{margin:0 auto var(--space-6);max-width:300px;text-align:left}.add-university-btn{background:linear-gradient(135deg,var(--primary-600),var(--primary-500));border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;font-weight:600;padding:var(--space-3) var(--space-6);transition:all .3s ease}.add-university-btn:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.university-details{background:var(--bg-secondary);border:2px solid var(--primary-200);border-radius:var(--radius-xl);margin-top:var(--space-8);padding:var(--space-8)}.details-header h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:var(--space-6);text-align:center}.import-methods{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:var(--space-8)}.import-method{border:2px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;transition:all .3s ease}.import-method:hover{border-color:var(--primary-300)}.import-method.selected{background:linear-gradient(135deg,#3b82f60d,#3b82f605);border-color:var(--primary-500)}.import-method label{cursor:pointer;display:block;padding:var(--space-6)}.import-method input[type=radio]{display:none}.method-content{align-items:flex-start;display:flex;gap:var(--space-4)}.method-icon{flex-shrink:0;font-size:2rem}.method-info h4{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:var(--space-2)}.method-info p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--space-2)}.not-available{color:var(--error-600);font-size:.875rem;font-weight:500}.semester-selection{background:var(--bg-primary);border-radius:var(--radius-lg);margin-bottom:var(--space-6);padding:var(--space-6)}.semester-selection h4{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:var(--space-4)}.semester-inputs{display:flex;gap:var(--space-4)}.semester-select,.year-input{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);flex:1 1;font-size:1rem;padding:var(--space-3) var(--space-4)}.semester-select:focus,.year-input:focus{border-color:var(--primary-500);outline:none}.continue-section{text-align:center}.continue-btn:hover:not(:disabled){box-shadow:var(--shadow-lg);transform:translateY(-2px)}.continue-btn:disabled{cursor:not-allowed;opacity:.6}.universities-stats{color:var(--text-secondary);font-size:.875rem;margin-bottom:var(--space-6);padding:var(--space-2);text-align:center}.country-flag{margin-right:var(--space-2)}.loading-state{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center}.loading-spinner{border-top:3px solid var(--border-color);border:3px solid var(--border-color);margin-bottom:var(--space-4)}@media (max-width:768px){.university-selector-container{padding:var(--space-4)}.university-selector-header h1{font-size:2rem}.search-controls{flex-direction:column;gap:var(--space-3)}.country-select{min-width:0;min-width:auto;width:100%}.universities-grid{gap:var(--space-3);grid-template-columns:1fr;max-height:50vh}.university-card{padding:var(--space-4)}.import-methods{grid-template-columns:1fr}.semester-inputs{flex-direction:column}.continue-btn{min-width:0;min-width:auto;width:100%}}.course-catalog-container{background:var(--bg-primary);margin:0 auto;max-width:1400px;min-height:100vh;padding:var(--space-8)}.catalog-header{margin-bottom:var(--space-8)}.back-button{background:none;border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:.875rem;margin-bottom:var(--space-4);padding:var(--space-2) var(--space-4)}.back-button:hover{border-color:var(--primary-300);color:var(--primary-600)}.catalog-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:2.5rem;font-weight:700;margin-bottom:var(--space-2)}.catalog-header p{color:var(--text-secondary);font-size:1.125rem}.search-and-filters{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);margin-bottom:var(--space-8);padding:var(--space-6)}.search-bar{margin-bottom:var(--space-4)}.course-search-input{background:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--radius-xl);color:var(--text-primary);font-size:1rem;padding:var(--space-4) var(--space-6);transition:all .3s ease;width:100%}.course-search-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #3b82f61a;outline:none}.filters{display:flex;flex-wrap:wrap;gap:var(--space-4)}.filter-select{background:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;font-size:.875rem;padding:var(--space-3) var(--space-4)}.filter-select:focus{border-color:var(--primary-500);outline:none}.selected-courses-summary{background:linear-gradient(135deg,#3b82f60d,#3b82f605);border:2px solid var(--primary-200);border-radius:var(--radius-xl);margin-bottom:var(--space-8);padding:var(--space-6)}.selected-courses-summary h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:var(--space-4)}.selected-courses-list{display:flex;flex-wrap:wrap;gap:var(--space-3)}.selected-course-item{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;font-size:.875rem;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.section-info{color:var(--text-secondary);font-size:.75rem}.remove-course-btn{align-items:center;background:var(--error-100);border:none;border-radius:var(--radius-full);color:var(--error-600);cursor:pointer;display:flex;font-size:.875rem;height:20px;justify-content:center;transition:all .3s ease;width:20px}.remove-course-btn:hover{background:var(--error-200)}.no-courses-selected{color:var(--text-secondary);font-style:italic}.courses-list{display:flex;flex-direction:column;gap:var(--space-6)}.course-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--space-6)}.course-card:hover{box-shadow:var(--shadow-lg)}.course-info{margin-bottom:var(--space-6)}.course-header{flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.course-title{color:var(--text-primary);font-size:1.25rem;line-height:1.4}.course-credits{background:var(--primary-100);border-radius:var(--radius-full);color:var(--primary-700);flex-shrink:0;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:var(--space-1) var(--space-3);text-transform:uppercase}.course-description{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--space-3)}.course-meta{display:flex;flex-wrap:wrap;gap:var(--space-4)}.department,.professor{color:var(--text-secondary);font-size:.875rem}.course-sections h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin-bottom:var(--space-4)}.section-card{background:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;margin-bottom:var(--space-3);padding:var(--space-4);transition:all .3s ease}.section-card:hover{border-color:var(--primary-300);box-shadow:var(--shadow-md)}.section-card.selected{background:linear-gradient(135deg,#3b82f60d,#3b82f605);border-color:var(--primary-500)}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.section-number{color:var(--text-primary);font-weight:600}.enrollment-badge{border-radius:var(--radius-full);font-size:.75rem;font-weight:600;padding:var(--space-1) var(--space-2)}.enrollment-badge.success{background:var(--success-100);color:var(--success-700)}.enrollment-badge.warning{background:var(--warning-100);color:var(--warning-700)}.enrollment-badge.error{background:var(--error-100);color:var(--error-700)}.section-details{display:flex;flex-direction:column;gap:var(--space-1)}.section-times{color:var(--text-primary);font-size:.875rem;font-weight:500}.section-location,.section-professor{color:var(--text-secondary);font-size:.875rem}.continue-section{background:var(--bg-secondary);border-top:1px solid var(--border-color);bottom:0;display:flex;justify-content:center;left:0;padding:var(--space-4);position:fixed;right:0;z-index:100}.continue-btn{background:linear-gradient(135deg,var(--primary-600),var(--primary-500));border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;font-size:1.125rem;font-weight:600;min-width:250px;padding:var(--space-4) var(--space-8);transition:all .3s ease}.continue-btn:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.loading-state{padding:var(--space-12);text-align:center}.loading-spinner{border-top:4px solid var(--border-color);border:4px solid var(--border-color);border-top-color:var(--primary-500);height:50px;margin:0 auto var(--space-6);width:50px}.loading-state h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:var(--space-2)}.loading-state p{color:var(--text-secondary);font-size:1rem}@media (max-width:768px){.course-catalog-container{padding:var(--space-4)}.catalog-header h1{font-size:2rem}.filters{flex-direction:column}.filter-select{width:100%}.course-header{align-items:flex-start;flex-direction:column}.course-meta{flex-direction:column;gap:var(--space-1)}.section-header{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.continue-btn{min-width:0;min-width:auto;width:100%}.continue-section{padding:var(--space-4) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom))}}.bar-ilan-catalog-container{direction:ltr;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1200px;padding:20px}.catalog-header{align-items:center;background:linear-gradient(135deg,#036,#004d99);border-radius:12px;box-shadow:0 4px 15px #0033664d;color:#fff;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px}.back-button{background:#fff3;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:10px 15px;transition:all .3s ease}.back-button:hover{background:#ffffff4d;transform:translateY(-1px)}.header-content{flex-grow:1;text-align:center}.header-content h1{direction:rtl;font-size:28px;font-weight:600;margin:0}.header-content h2{font-size:20px;font-weight:400;margin:5px 0;opacity:.9}.header-content p{font-size:16px;margin:10px 0 0;opacity:.8}.language-toggle{background:#ffffff1a;border-radius:8px;display:flex;overflow:hidden}.lang-btn{background:#0000;border:none;color:#fff;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .3s ease}.lang-btn.active{background:#ffffff4d;font-weight:700}.lang-btn:hover{background:#fff3}.catalog-controls{align-items:end;background:#f8f9fa;border-radius:10px;display:flex;gap:20px;margin-bottom:25px;padding:20px}.search-section{display:flex;flex:1 1;gap:10px}.search-input{border:2px solid #e0e0e0;border-radius:8px;flex:1 1;font-size:16px;padding:12px 15px;transition:border-color .3s ease}.search-input:focus{border-color:#004d99;box-shadow:0 0 0 3px #004d991a;outline:none}.search-button{background:#004d99;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;padding:12px 20px;transition:all .3s ease;white-space:nowrap}.search-button:hover{background:#036;box-shadow:0 4px 12px #004d994d;transform:translateY(-1px)}.department-filter{display:flex;flex-direction:column;gap:8px;min-width:200px}.department-filter label{color:#333;font-size:14px;font-weight:600}.department-select{background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:16px;padding:12px;transition:border-color .3s ease}.department-select:focus{border-color:#004d99;outline:none}.selected-summary{align-items:center;background:#e8f5e8;border:1px solid #4caf50;border-radius:10px;display:flex;justify-content:space-between;margin-bottom:20px;padding:15px 20px}.selected-summary p{color:#2e7d32;font-weight:600;margin:0}.continue-button{background:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s ease}.continue-button:hover{background:#45a049;box-shadow:0 4px 12px #4caf504d;transform:translateY(-1px)}.courses-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-top:20px}.course-card{background:#fff;border:2px solid #0000;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:20px;transition:all .3s ease}.course-card:hover{box-shadow:0 8px 24px #00000026;transform:translateY(-2px)}.course-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:15px}.course-code{background:#004d99;border-radius:6px;color:#fff;font-size:12px;font-weight:700;min-width:60px;padding:6px 12px;text-align:center}.course-credits{background:#f0f0f0;border-radius:4px;color:#666;font-size:11px;padding:4px 8px}.course-title{color:#333;font-size:18px;font-weight:600;line-height:1.3;margin:10px 0}.course-title.hebrew{direction:rtl;text-align:right}.course-lecturer{color:#666;font-size:14px;font-style:italic;margin-bottom:15px}.course-lecturer.hebrew{direction:rtl;text-align:right}.course-description{color:#777;font-size:13px;line-height:1.4;margin-bottom:15px;max-height:60px;overflow:hidden}.course-description.hebrew{direction:rtl;text-align:right}.sections-list{margin-top:15px}.sections-title{border-bottom:1px solid #e0e0e0;color:#333;font-size:14px;font-weight:600;margin-bottom:10px;padding-bottom:5px}.section-item{align-items:center;background:#f9f9f9;border-radius:8px;display:flex;font-size:13px;justify-content:space-between;margin-bottom:8px;padding:10px;transition:all .2s ease}.section-item:hover{background:#f0f0f0}.section-info{flex:1 1}.section-type{color:#004d99;font-weight:600;margin-bottom:3px}.section-schedule{color:#666;font-size:12px}.section-location{color:#999;font-size:11px;margin-top:2px}.section-select-btn{background:#004d99;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px;transition:all .2s ease;white-space:nowrap}.section-select-btn:hover{background:#036}.section-select-btn.selected{background:#4caf50}.section-select-btn.selected:hover{background:#45a049}.loading-container{align-items:center;display:flex;flex-direction:column;gap:15px;height:300px;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-top-color:#004d99;height:40px;width:40px}.loading-text{color:#666;font-size:16px}.no-courses{color:#666;font-size:18px;padding:60px 20px;text-align:center}.no-courses-icon{color:#ccc;font-size:48px;margin-bottom:15px}@media (max-width:768px){.catalog-header{flex-direction:column;gap:15px;text-align:center}.back-button{align-self:flex-start}.catalog-controls{flex-direction:column;gap:15px}.department-filter{min-width:0;min-width:auto}.courses-grid{grid-template-columns:1fr}.selected-summary{flex-direction:column;gap:10px;text-align:center}}.hebrew-text{direction:rtl;text-align:right}.english-text{direction:ltr;text-align:left}.enrollment-status{align-items:center;display:flex;font-size:11px;gap:5px;margin-top:3px}.enrollment-indicator{border-radius:50%;height:8px;width:8px}.enrollment-available{background:#4caf50}.enrollment-limited{background:#ff9800}.enrollment-full{background:#f44336}.auth-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.auth-container{animation:slideInUp .4s ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-height:90vh;max-width:480px;overflow-y:auto;position:relative;width:90%}.auth-header{background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border-bottom:1px solid var(--border-color);padding:var(--space-8) var(--space-8) var(--space-6) var(--space-8);position:relative;text-align:center}.auth-close{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;padding:var(--space-2);position:absolute;right:var(--space-4);top:var(--space-4);transition:all var(--transition-fast);width:40px}.auth-close:hover{background:var(--error-100);color:var(--error-600);transform:scale(1.1)}.auth-logo{margin-bottom:var(--space-4)}.auth-logo-icon{font-size:3rem;margin-bottom:var(--space-2)}.auth-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:1.75rem;font-weight:700;margin:0 0 var(--space-2) 0}.auth-subtitle{color:var(--text-secondary);font-size:.95rem;line-height:1.5;margin:0}.auth-tabs{background:var(--bg-tertiary);border-radius:var(--radius-lg);display:flex;margin:0 var(--space-8);margin-bottom:var(--space-6);padding:var(--space-1)}.auth-tab{background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:.875rem;font-weight:600;letter-spacing:.05em;padding:var(--space-3) var(--space-4);text-transform:uppercase;transition:all var(--transition-fast)}.auth-tab.active{background:var(--bg-secondary);box-shadow:var(--shadow-sm);color:var(--primary-600)}.auth-tab:hover:not(.active){background:#ffffff80;color:var(--text-primary)}.auth-form{padding:0 var(--space-8) var(--space-8) var(--space-8)}.form-row{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr;margin-bottom:var(--space-4)}.form-group{margin-bottom:var(--space-5)}.form-group label{color:var(--text-primary);display:block;font-size:.875rem;font-weight:600;letter-spacing:.05em;margin-bottom:var(--space-2);text-transform:uppercase}.form-group input{background-color:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-family:inherit;font-size:1rem;padding:var(--space-4);transition:all var(--transition-fast);width:100%}.form-group input::placeholder{color:var(--text-tertiary)}.form-group input:hover{background-color:var(--bg-secondary);border-color:var(--primary-200)}.form-group input:focus{background-color:var(--bg-secondary);border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-100)}.form-group input.error{background-color:var(--error-50);border-color:var(--error-500)}.form-group input.error:focus{border-color:var(--error-500);box-shadow:0 0 0 3px var(--error-100)}.password-input-container{position:relative}.password-toggle{background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:1.2rem;padding:var(--space-1);position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);transition:all var(--transition-fast)}.password-toggle:hover{background:var(--gray-100);color:var(--text-primary)}.password-requirements{margin-top:var(--space-2)}.password-requirements small{color:var(--text-tertiary);font-size:.8rem;line-height:1.4}.auth-error{color:var(--error-600);display:block;font-size:.8rem;font-weight:500;margin-top:var(--space-1)}.general-error{align-items:center;background:var(--error-50);border:1px solid var(--error-200);border-radius:var(--radius-lg);display:flex;font-size:.875rem;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.general-error:before{content:"⚠️";font-size:1.1em}.auth-submit{align-items:center;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:700;gap:var(--space-2);justify-content:center;letter-spacing:.05em;margin-bottom:var(--space-6);padding:var(--space-4) var(--space-6);text-transform:uppercase;transition:all var(--transition-fast);width:100%}.auth-submit:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-600),var(--primary-500));box-shadow:var(--shadow-lg);transform:translateY(-2px)}.auth-submit:active:not(:disabled){transform:translateY(0)}.auth-submit:disabled{cursor:not-allowed;opacity:.7;transform:none}.auth-footer{border-top:1px solid var(--border-color);padding-top:var(--space-4);text-align:center}.auth-footer p{color:var(--text-secondary);font-size:.9rem;margin:0}.auth-link{background:none;border:none;color:var(--primary-600);cursor:pointer;font-size:inherit;font-weight:600;text-decoration:underline;transition:color var(--transition-fast)}.auth-link:hover{color:var(--primary-700)}@media (max-width:768px){.auth-container{margin:var(--space-4);width:95%}.auth-header{padding:var(--space-6) var(--space-6) var(--space-4) var(--space-6)}.auth-title{font-size:1.5rem}.auth-subtitle{font-size:.875rem}.auth-tabs{margin:0 var(--space-6)}.auth-form{padding:0 var(--space-6) var(--space-6) var(--space-6)}.form-row{gap:0;grid-template-columns:1fr}.form-group input{font-size:.95rem;padding:var(--space-3)}.auth-submit{font-size:1rem;padding:var(--space-3) var(--space-5)}}@media (max-width:480px){.auth-container{border-radius:0;height:100vh;max-height:none;width:100%}.auth-header{padding:var(--space-5) var(--space-5) var(--space-3) var(--space-5)}.auth-logo-icon{font-size:2.5rem}.auth-title{font-size:1.25rem}.auth-tabs{margin:0 var(--space-5)}.auth-form{padding:0 var(--space-5) var(--space-5) var(--space-5)}}@keyframes successPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.auth-submit.success{animation:successPulse .3s ease-out}.auth-container:focus-within .auth-close{opacity:.7}@media (prefers-contrast:high){.auth-container{border:2px solid var(--text-primary)}.auth-tab.active{border:2px solid var(--primary-600)}.form-group input:focus{border-width:3px}}@media (prefers-reduced-motion:reduce){.auth-container,.auth-overlay,.auth-submit,.loading-spinner{animation:none}.auth-submit:hover:not(:disabled){transform:none}}.profile-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.profile-container{animation:slideInUp .4s ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-height:90vh;max-width:600px;overflow-y:auto;position:relative;width:90%}.profile-header{background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border-bottom:1px solid var(--border-color);padding:var(--space-8);position:relative;text-align:center}.profile-close{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;padding:var(--space-2);position:absolute;right:var(--space-4);top:var(--space-4);transition:all var(--transition-fast);width:40px}.profile-close:hover{background:var(--error-100);color:var(--error-600);transform:scale(1.1)}.profile-avatar{margin-bottom:var(--space-4)}.avatar-circle{align-items:center;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border:4px solid var(--bg-secondary);border-radius:50%;box-shadow:var(--shadow-lg);color:#fff;display:flex;font-size:1.75rem;font-weight:700;height:80px;justify-content:center;margin:0 auto;width:80px}.profile-name{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin:0 0 var(--space-1) 0}.profile-username{color:var(--text-secondary);font-size:1rem;font-weight:500;margin:0}.profile-content{padding:var(--space-6) var(--space-8)}.profile-section{margin-bottom:var(--space-8)}.profile-section:last-child{margin-bottom:0}.section-title{color:var(--text-primary);font-size:1.1rem;font-size:.875rem;font-weight:700;letter-spacing:.05em;margin:0 0 var(--space-4) 0;text-transform:uppercase}.info-grid{display:flex;flex-direction:column;gap:var(--space-4)}.info-item{align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;justify-content:space-between;padding:var(--space-3) var(--space-4)}.info-label{color:var(--text-secondary);font-size:.875rem;font-weight:600}.info-value{color:var(--text-primary);font-size:.875rem;font-weight:500;text-align:right}.stats-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr}.stat-card{align-items:center;background:linear-gradient(135deg,var(--primary-50),var(--bg-secondary));border:1px solid var(--primary-200);border-radius:var(--radius-lg);display:flex;gap:var(--space-3);padding:var(--space-4);transition:all var(--transition-fast)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{align-items:center;background:var(--primary-100);border-radius:var(--radius-md);display:flex;font-size:1.5rem;height:40px;justify-content:center;width:40px}.stat-card.success .stat-icon{background:var(--success-50)}.stat-card.warning .stat-icon{background:var(--warning-50)}.stat-card.info .stat-icon{background:#f0f9ff}.stat-content{flex:1 1}.stat-number{color:var(--text-primary);font-size:1.25rem;font-weight:800;line-height:1;margin-bottom:var(--space-1)}.stat-label{color:var(--text-secondary);font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.stat-change{color:var(--success-600);font-size:.8rem;font-weight:500}.preferences-grid{display:flex;flex-direction:column;gap:var(--space-3)}.preference-item{align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;justify-content:space-between;padding:var(--space-3) var(--space-4)}.preference-label{color:var(--text-secondary);font-size:.875rem;font-weight:600}.preference-value{background:var(--primary-100);border-radius:var(--radius-md);color:var(--text-primary);color:var(--primary-700);font-size:.875rem;font-size:.75rem;font-weight:500;letter-spacing:.05em;padding:var(--space-1) var(--space-3);text-transform:uppercase}.profile-actions{border-top:1px solid var(--border-color);padding:var(--space-6) var(--space-8) var(--space-8) var(--space-8)}.logout-btn{align-items:center;background:linear-gradient(135deg,var(--error-500),var(--error-600));border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:var(--space-2);justify-content:center;padding:var(--space-4) var(--space-6);transition:all var(--transition-fast);width:100%}.logout-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--error-600),var(--error-500));box-shadow:var(--shadow-lg);transform:translateY(-2px)}.logout-btn:disabled{cursor:not-allowed;opacity:.7;transform:none}.loading-spinner{border:2px solid #ffffff4d;border-top-color:#fff;height:16px;width:16px}@media (max-width:768px){.profile-container{margin:var(--space-4);width:95%}.profile-header{padding:var(--space-6)}.profile-content{padding:var(--space-5) var(--space-6)}.profile-actions{padding:var(--space-5) var(--space-6) var(--space-6) var(--space-6)}.stats-grid{grid-template-columns:1fr}.avatar-circle{font-size:1.5rem;height:60px;width:60px}.profile-name{font-size:1.25rem}}@media (max-width:480px){.profile-container{border-radius:0;height:100vh;max-height:none;width:100%}.profile-header{padding:var(--space-5)}.profile-content{padding:var(--space-4) var(--space-5)}.profile-actions{padding:var(--space-4) var(--space-5) var(--space-5) var(--space-5)}.info-item,.preference-item{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.info-value,.preference-value{text-align:left}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}:root{--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-200:#bfdbfe;--primary-300:#93c5fd;--primary-400:#60a5fa;--primary-500:#3b82f6;--primary-600:#2563eb;--primary-700:#1d4ed8;--primary-800:#1e40af;--primary-900:#1e3a8a;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--success-50:#f0fdf4;--success-500:#22c55e;--success-600:#16a34a;--error-50:#fef2f2;--error-500:#ef4444;--error-600:#dc2626;--warning-50:#fffbeb;--warning-500:#f59e0b;--warning-600:#d97706;--bg-primary:var(--gray-50);--bg-secondary:#fff;--bg-tertiary:var(--gray-100);--text-primary:var(--gray-900);--text-secondary:var(--gray-600);--text-tertiary:var(--gray-500);--border-color:var(--gray-200);--border-focus:var(--primary-500);--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"JetBrains Mono","Fira Code",Consolas,"Liberation Mono",Menlo,Courier,monospace;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-normal:250ms cubic-bezier(0.4,0,0.2,1);--transition-slow:350ms cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#eff6ff,#f9fafb);background:linear-gradient(135deg,var(--primary-50) 0,var(--bg-primary) 100%);color:#111827;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-family:var(--font-sans);font-size:16px;line-height:1.6;margin:0;min-height:100vh;padding:0}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f3f4f6;background:var(--gray-100)}::-webkit-scrollbar-thumb{background:#d1d5db;background:var(--gray-300);border-radius:.5rem;border-radius:var(--radius-md)}::-webkit-scrollbar-thumb:hover{background:#9ca3af;background:var(--gray-400)}:focus{outline:2px solid #3b82f6;outline:2px solid var(--primary-500);outline-offset:2px}::selection{background-color:#bfdbfe;background-color:var(--primary-200);color:#1e3a8a;color:var(--primary-900)}.app-wrapper{background:linear-gradient(135deg,var(--primary-50) 0,var(--bg-primary) 100%);display:flex;flex-direction:column;min-height:100vh}.app-layout{display:flex;flex:1 1}.main-content{flex:1 1;overflow-y:auto}.app-loading{align-items:center;background:var(--bg-primary);display:flex;flex-direction:column;gap:var(--space-4);justify-content:center;min-height:100vh}.app-loading .loading-spinner{border-width:4px;height:40px;width:40px}.app-loading p{color:var(--text-secondary);font-weight:500}.loading-spinner{animation:spin 1s ease-in-out infinite;border:2px solid var(--primary-200);border-radius:50%;border-top-color:var(--primary-600);display:inline-block;height:20px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1024px){.app-layout{flex-direction:column}}@media (max-width:768px){.app-loading .loading-spinner{border-width:3px;height:32px;width:32px}}
/*# sourceMappingURL=main.c46fb102.css.map*/