body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);color:#2d3748;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;min-height:100vh}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 20px #0000001a;color:#fff;margin-bottom:2rem;padding:2rem 1rem}.header-content{margin:0 auto;max-width:1400px;text-align:center}.app-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;text-shadow:0 2px 4px #0000001a}.app-header p{font-size:1.2rem;margin-bottom:2rem;opacity:.9}.quick-stats{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center}.stat-item{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:12px;display:flex;flex-direction:column;padding:1rem 1.5rem}.stat-number{font-size:2rem;font-weight:700;line-height:1}.stat-label{font-size:.875rem;margin-top:.25rem;opacity:.8}.progress-steps{margin:0 auto 2rem;max-width:1200px;padding:0 1rem}.step-container{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;justify-content:center;margin-bottom:1rem;padding:1.5rem}.step,.step-container{align-items:center;display:flex}.step{flex-direction:column;gap:.5rem;opacity:.5;transition:opacity .3s ease}.step.active{opacity:1}.step-number{align-items:center;background:#e2e8f0;border-radius:50%;color:#4a5568;display:flex;font-weight:600;height:40px;justify-content:center;transition:all .3s ease;width:40px}.step.active .step-number{background:#667eea;color:#fff;transform:scale(1.1)}.step-text{color:#4a5568;font-size:.875rem;font-weight:500;text-align:center}.step-line{background:#e2e8f0;height:2px;margin:0 1rem;width:60px}.cgpa-calculator{margin:0 auto;max-width:1200px;padding:0 1rem}.calculator-content{display:flex;flex-direction:column;gap:2rem}.semester-section{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 20px #00000014;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.semester-section:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-2px)}.semester-input-section{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-bottom:1px solid #e2e8f0;padding:2rem}.semester-title{margin-bottom:2rem}.semester-header-with-collapse{display:flex;justify-content:space-between;margin-bottom:.5rem}.semester-title h2{color:#2d3748;font-size:1.75rem;font-weight:600}.collapse-semester-btn{align-items:center;background:#667eea1a;border:2px solid #667eea4d;border-radius:50%;color:#667eea;cursor:pointer;display:flex;font-size:.875rem;height:36px;justify-content:center;transition:all .2s ease;width:36px}.collapse-semester-btn:hover{background:#667eea;color:#fff;transform:scale(1.05)}.semester-help{align-items:center;display:flex;gap:.5rem}.help-text{color:#718096;font-size:1rem;font-style:italic}.courses-input{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.course-input{background:#fff;border:2px solid #e2e8f0;border-radius:12px;padding:1.5rem;transition:border-color .2s ease,box-shadow .2s ease}.course-input:hover{border-color:#cbd5e0;box-shadow:0 2px 10px #0000000d}.course-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.course-header h4{color:#2d3748;font-size:1.25rem;font-weight:600}.input-row{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr}.input-group{gap:.75rem}.input-group,.input-group label{display:flex;flex-direction:column}.input-group label{gap:.25rem}.label-text{color:#2d3748;font-size:1rem;font-weight:600}.label-help{color:#718096;font-size:.875rem;font-weight:400}.input-group input,.input-group select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:1rem;transition:all .2s ease}.input-group input:focus,.input-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.input-group input.has-value,.input-group select.has-value{background:#f0fff4;border-color:#48bb78}.input-hint{color:#718096;font-size:.75rem;margin-top:.25rem}.course-preview{background:linear-gradient(135deg,#e6fffa,#b2f5ea);border-left:4px solid #38b2ac;border-radius:8px;margin-top:1rem;padding:1rem}.preview-text{color:#234e52;font-size:.875rem}.remove-btn{align-items:center;background:#fed7d7;border:2px solid #feb2b2;border-radius:8px;color:#c53030;cursor:pointer;display:flex;font-size:1rem;height:36px;justify-content:center;transition:all .2s ease;width:36px}.remove-btn:hover{background:#fc8181;color:#fff;transform:scale(1.05)}.course-fields{display:flex;flex-direction:column;gap:1.5rem}.full-width{width:100%}.course-title{color:#2d3748;font-size:.875rem;font-weight:600;line-height:1.2}.add-course-btn,.add-semester-btn{align-items:center;background:linear-gradient(135deg,#48bb78,#38a169);border:none;border-radius:12px;box-shadow:0 2px 10px #48bb784d;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:1rem 2rem;transition:all .2s ease}.add-course-btn:hover,.add-semester-btn:hover{box-shadow:0 4px 20px #48bb7866;transform:translateY(-2px)}.add-semester-btn{align-self:center;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #667eea4d;font-size:1.1rem;padding:1.25rem 2.5rem}.add-semester-btn:hover{box-shadow:0 4px 20px #667eea66}.btn-icon{font-size:1.2rem}.semester-table{padding:2rem}.semester-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.semester-header h3{color:#2d3748;font-size:1.5rem;font-weight:600}.remove-semester-btn{align-items:center;background:#fed7d7;border:2px solid #feb2b2;border-radius:8px;color:#c53030;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.75rem 1rem;transition:all .2s ease}.remove-semester-btn:hover{background:#fc8181;color:#fff}.results-summary{margin-bottom:2rem}.summary-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.summary-card{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:12px;display:flex;gap:1rem;padding:1.5rem;transition:all .2s ease}.summary-card:hover{box-shadow:0 4px 15px #0000001a;transform:translateY(-2px)}.card-icon{font-size:2rem}.card-content{display:flex;flex-direction:column}.card-number{color:#2d3748;font-size:1.5rem;font-weight:700;line-height:1}.card-label{color:#718096;font-size:.875rem;margin-top:.25rem}.gpa-card{background:linear-gradient(135deg,#f0f4ff,#e0e7ff);border-color:#667eea}.gpa-card.excellent{background:linear-gradient(135deg,#f0fff4,#c6f6d5);border-color:#48bb78}.gpa-card.very-good{background:linear-gradient(135deg,#ebf8ff,#bee3f8);border-color:#4299e1}.gpa-card.good{background:linear-gradient(135deg,#fffaf0,#fbd38d);border-color:#ed8936}.gpa-card.fair{background:linear-gradient(135deg,ivory,#faf089);border-color:#ecc94b}.gpa-card.needs-improvement{background:linear-gradient(135deg,#fff5f5,#fed7d7);border-color:#f56565}.table-container{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 10px #0000000d;overflow:hidden}.table-header{background:#f7fafc;border-bottom:1px solid #e2e8f0;padding:1rem 1.5rem}.table-header h4{color:#2d3748;font-size:1.1rem;font-weight:600}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid #e2e8f0;padding:1rem 1.5rem;text-align:left}th{background:#f7fafc;color:#4a5568;font-size:.875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}td{color:#2d3748}.course-cell{align-items:center;display:flex;gap:.5rem}.course-number{font-weight:500}.points-cell,.units-cell{color:#4a5568;font-weight:600}.grade-cell{border-radius:20px;display:inline-block;font-size:.875rem;font-weight:600;padding:.25rem .75rem}.grade-a{background:#c6f6d5;color:#22543d}.grade-b{background:#bee3f8;color:#2a4365}.grade-c{background:#fbd38d;color:#744210}.grade-d{background:#faf089;color:#744210}.grade-e,.grade-f{background:#fed7d7;color:#742a2a}.totals-row{background:#f7fafc;font-weight:600}.totals-row td{border-bottom:none;color:#2d3748}.no-courses{padding:3rem 2rem;text-align:center}.empty-state{margin:0 auto;max-width:400px}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h4{color:#2d3748;font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.empty-state p{color:#718096;line-height:1.6;margin-bottom:1.5rem}.empty-hint{background:#f0f4ff;border-left:4px solid #667eea;border-radius:8px;color:#553c9a;font-size:.875rem;padding:1rem}.cgpa-summary{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:2.5rem;text-align:center}.cgpa-summary h2{color:#2d3748;font-size:2rem;font-weight:600;margin-bottom:2rem}.performance-card{background:linear-gradient(135deg,#f0f4ff,#e0e7ff);border:2px solid #c3dafe;border-radius:16px;padding:2rem}.cgpa-display{margin-bottom:2rem}.cgpa-label{color:#4a5568;font-size:1.1rem;margin-bottom:1rem}.cgpa-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:4rem;font-weight:700;line-height:1;margin-bottom:1rem}.grade-badge{border-radius:25px;display:inline-block;font-size:1rem;font-weight:600;padding:.5rem 1.5rem}.performance-details{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-label{color:#4a5568;font-size:.875rem}.detail-value{color:#2d3748;font-size:1.1rem;font-weight:600}.app-actions{padding:2rem;text-align:center}.reset-btn{align-items:center;background:linear-gradient(135deg,#f56565,#e53e3e);border:none;border-radius:12px;box-shadow:0 2px 10px #f565654d;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;padding:1rem 2rem;transition:all .2s ease}.reset-btn:hover{box-shadow:0 4px 20px #f5656566;transform:translateY(-2px)}.semester-actions{padding:2rem}.modal-overlay,.semester-actions{display:flex;justify-content:center}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.modal{animation:modalSlideIn .3s ease;background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000004d;max-width:400px;padding:2rem;text-align:center;width:100%}.modal-icon{font-size:3rem;margin-bottom:1rem}.modal h3{color:#2d3748;font-size:1.5rem;font-weight:600;margin-bottom:1rem}.modal p{color:#4a5568;line-height:1.6;margin-bottom:2rem}.modal-actions{display:flex;gap:1rem;justify-content:center}.cancel-btn,.confirm-btn{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.cancel-btn{background:#e2e8f0;color:#4a5568}.cancel-btn:hover{background:#cbd5e0}.confirm-btn{background:#e53e3e;color:#fff}.confirm-btn:hover{background:#c53030;transform:translateY(-1px)}.welcome-modal{animation:modalSlideIn .3s ease;background:#fff;border-radius:20px;box-shadow:0 20px 40px #0000004d;max-width:600px;padding:2.5rem;text-align:center;width:100%}.welcome-header{margin-bottom:2rem}.welcome-header h3{color:#2d3748;font-size:2rem;font-weight:600;margin-bottom:1rem}.welcome-header p{color:#4a5568;font-size:1.1rem;line-height:1.6}.welcome-steps{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem;text-align:left}.welcome-step{align-items:flex-start;background:#f7fafc;border-left:4px solid #667eea;border-radius:12px;display:flex;gap:1rem;padding:1.5rem}.step-icon{flex-shrink:0;font-size:2rem}.step-content h4{color:#2d3748;font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.step-content p{color:#4a5568;line-height:1.5;margin:0}.welcome-actions{text-align:center}.get-started-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem 2rem;transition:all .2s ease}.get-started-btn:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.collapsed-semester-header{background:#f8fafc;border-bottom:1px solid #e2e8f0}.expand-semester-btn{align-items:center;background:none;border:none;cursor:pointer;display:flex;gap:1rem;padding:1.5rem 2rem;text-align:left;transition:all .2s ease;width:100%}.expand-semester-btn:hover{background:#edf2f7;transform:translateX(4px)}.expand-icon{flex-shrink:0;font-size:1rem;transition:transform .2s ease}.semester-info{display:flex;flex:1 1;flex-direction:column;gap:.5rem}.semester-name{color:#2d3748;font-size:1.25rem;font-weight:600}.semester-summary{align-items:center;display:flex;font-size:.875rem;gap:1rem}.course-count{background:#e2e8f0;color:#718096}.course-count,.gpa-display{border-radius:12px;padding:.25rem .75rem}.gpa-display{background:#e0e7ff;color:#667eea;font-weight:600}.semester-actions-collapsed{align-items:center;display:flex;gap:.5rem}.remove-semester-collapsed{align-items:center;background:#fed7d7;border:2px solid #feb2b2;border-radius:50%;color:#c53030;cursor:pointer;display:flex;font-size:.875rem;height:32px;justify-content:center;transition:all .2s ease;width:32px}.remove-semester-collapsed:hover{background:#fc8181;color:#fff;transform:scale(1.05)}.year-grouping-modal{animation:modalSlideIn .3s ease;background:#fff;border-radius:20px;box-shadow:0 20px 40px #0000004d;max-width:550px;padding:2.5rem;width:100%}.grouping-benefits{background:#f0f4ff;border:2px solid #c3dafe;border-radius:12px;display:flex;justify-content:space-around;margin:2rem 0;padding:1.5rem}.benefit-item{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:.5rem;text-align:center}.benefit-icon{font-size:2rem}.benefit-item span:last-child{color:#4a5568;font-size:.875rem;font-weight:500}.year-naming-content{margin:2rem 0}.input-section{margin-bottom:2rem}.input-section label{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.year-name-input{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:1rem;transition:all .2s ease}.year-name-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.suggestions{text-align:center}.suggestions-label{color:#4a5568;font-weight:500;margin-bottom:1rem}.suggestion-buttons{display:flex;flex-wrap:wrap;justify-content:center}.suggestion-btn{background:#f7fafc;border:2px solid #e2e8f0;border-radius:20px;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .2s ease}.suggestion-btn:hover{background:#667eea;border-color:#667eea;color:#fff}.skip-btn{background:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;color:#4a5568;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.skip-btn:hover{background:#edf2f7;border-color:#cbd5e0}.show-calculations-btn,.show-cgpa-calc-btn{align-items:center;background:linear-gradient(135deg,#4299e1,#3182ce);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.75rem 1rem;transition:all .2s ease}.show-calculations-btn:hover,.show-cgpa-calc-btn:hover{background:linear-gradient(135deg,#3182ce,#2c5282);transform:translateY(-1px)}.header-actions{align-items:center;display:flex;gap:1rem}.cgpa-calculation-toggle{margin-top:1.5rem;text-align:center}.calculations-section{background:#f8fafc;border:2px solid #e2e8f0;border-left:6px solid #4299e1;border-radius:12px;margin:2rem 0;padding:2rem}.calculations-header{margin-bottom:2rem;text-align:center}.calculations-header h4{color:#2d3748;font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.calculations-header p{color:#4a5568;font-size:1rem;line-height:1.6}.calculation-steps{display:flex;flex-direction:column;gap:2rem}.step-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:1.5rem}.step-section h5{align-items:center;color:#2d3748;display:flex;font-size:1.25rem;font-weight:600;gap:.5rem;margin-bottom:1rem}.step-section h5:before{content:"📝";font-size:1.5rem}.step-explanation{color:#4a5568;line-height:1.6;margin-bottom:1.5rem}.course-calculations{display:flex;flex-direction:column;gap:.75rem}.course-calculation{background:#f7fafc;border-left:4px solid #4299e1;border-radius:8px;padding:1rem}.calculation-row{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between}.course-name{color:#2d3748;font-weight:600;min-width:100px}.calculation-formula{background:#fff;border:1px solid #e2e8f0;border-radius:4px;color:#4a5568;font-family:Courier New,monospace;padding:.5rem}.totals-calculation{display:flex;flex-direction:column;gap:1rem}.total-row{align-items:center;background:#edf2f7;border-radius:8px;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;padding:1rem}.total-row span:first-child{color:#2d3748;font-weight:600}.calculation-breakdown{background:#fff;border:1px solid #cbd5e0;border-radius:4px;color:#4a5568;font-family:Courier New,monospace;padding:.5rem}.final-step{background:linear-gradient(135deg,#e6fffa,#b2f5ea);border-color:#38b2ac;border-width:2px}.final-step h5:before{content:"🏆"}.final-calculation{text-align:center}.formula-display{background:#fff;border:2px solid #38b2ac;border-radius:12px;margin-bottom:1rem;padding:1.5rem}.formula{color:#2d3748;font-family:Courier New,monospace;font-size:1.25rem}.final-gpa{color:#38b2ac;font-size:1.5rem;font-weight:700}.grade-meaning{display:flex;justify-content:center}.calculation-note{align-items:flex-start;background:linear-gradient(135deg,#fff5f5,#fed7d7);border:2px solid #fc8181;border-radius:12px;display:flex;gap:1rem;margin-top:1rem;padding:1.5rem}.note-icon{flex-shrink:0;font-size:2rem}.note-content{color:#742a2a;line-height:1.6}.app-header{padding:1rem}.app-header h1{font-size:1.75rem}.quick-stats{gap:.75rem}.stat-item{padding:.75rem 1rem;width:100%}.step-container{overflow-x:auto;padding:.75rem}.step-line{margin:0 .25rem;width:20px}.input-row{gap:.75rem;grid-template-columns:1fr}.semester-header{align-items:stretch;flex-direction:column;gap:.75rem}.semester-header-with-collapse{align-items:center;flex-direction:row}.summary-cards{gap:.75rem;grid-template-columns:1fr}.cgpa-value{font-size:2.5rem}.performance-details{grid-template-columns:1fr}.modal-actions{flex-direction:column;gap:.75rem}.welcome-steps{gap:1rem;text-align:center}.welcome-step{flex-direction:column;padding:.75rem;text-align:center}.grouping-benefits{flex-direction:column;gap:.75rem}.suggestion-buttons{align-items:center;flex-direction:column;gap:.5rem}.suggestion-btn{max-width:200px;width:100%}.expand-semester-btn{padding:.75rem}.semester-info{gap:.25rem}.semester-summary{align-items:flex-start;flex-direction:column;gap:.5rem}.step-content h4{font-size:1rem}.step-content p{font-size:.875rem}@media (min-width:481px){.app-header{padding:1.5rem 1rem}.app-header h1{font-size:2rem}.quick-stats{gap:1rem}.stat-item{padding:.75rem 1rem;width:auto}.step-container{padding:1rem}.step-line{margin:0 .5rem;width:30px}.summary-cards{gap:1rem;grid-template-columns:repeat(2,1fr)}.welcome-step{padding:1rem}}@media (min-width:769px){.app-header{padding:2rem 1rem}.app-header h1{font-size:2.5rem}.input-row{gap:2rem;grid-template-columns:1fr 1fr}.semester-header{align-items:center;flex-direction:row;gap:1.5rem}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.cgpa-value{font-size:4rem}.modal-actions,.welcome-step{flex-direction:row}.welcome-step{text-align:left}.grouping-benefits{flex-direction:row}.suggestion-buttons{flex-direction:row;flex-wrap:wrap}.semester-summary{align-items:center;flex-direction:row}}.table-container{-webkit-overflow-scrolling:touch;overflow-x:auto}table{min-width:600px}.cgpa-calculator{padding:0 .5rem}.cgpa-summary,.semester-input-section,.semester-table{padding:1rem}.welcome-modal,.year-grouping-modal{margin:.5rem;max-height:90vh;overflow-y:auto;padding:1rem}.welcome-header h3{font-size:1.25rem}.welcome-header p{font-size:.875rem}.semester-name{font-size:1rem}td,th{font-size:.875rem;padding:.75rem}@media screen and (max-width:480px){.table-responsive{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;display:block;overflow-x:auto;width:100%}.course-cell{min-width:150px}.grade-cell{min-width:80px}}@media print{.add-course-btn,.add-semester-btn,.app-actions,.collapse-semester-btn,.progress-steps,.remove-btn,.remove-semester-btn{display:none}.semester-section{border:1px solid #ccc;box-shadow:none}.cgpa-summary,.semester-section{break-inside:avoid;page-break-inside:avoid}body{background:#fff}}button:focus,input:focus,select:focus{outline:2px solid #667eea;outline-offset:2px}@media (prefers-contrast:high){.course-input,.summary-card{border-width:3px}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.academic-year-section{background:#fff;border:2px solid #667eea;border-radius:16px;box-shadow:0 4px 20px #00000014;margin-bottom:2rem;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.academic-year-section:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-2px)}.year-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem}.year-title-section{align-items:center;display:flex;gap:1rem}.collapse-toggle{align-items:center;background:#fff3;border:none;border-radius:50%;cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s ease;width:40px}.collapse-toggle:hover{background:#ffffff4d;transform:scale(1.05)}.collapse-icon{font-size:1.2rem;transition:transform .3s ease}.collapse-icon.collapsed{transform:rotate(-90deg)}.year-info h2{font-size:1.75rem;font-weight:600;margin-bottom:.5rem}.year-stats{font-size:.875rem;gap:.5rem;opacity:.9}.year-actions,.year-stats{align-items:center;display:flex}.year-actions{gap:1rem}.year-gpa-display{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:12px;padding:1rem 1.5rem;text-align:center}.year-gpa-display.excellent{background:#48bb784d;border-color:#48bb7880}.year-gpa-display.very-good{background:#4299e14d;border-color:#4299e180}.year-gpa-display.good{background:#ed89364d;border-color:#ed893680}.year-gpa-display.fair{background:#ecc94b4d;border-color:#ecc94b80}.year-gpa-display.needs-improvement{background:#f565654d;border-color:#f5656580}.gpa-label{display:block;font-size:.875rem;margin-bottom:.25rem;opacity:.9}.gpa-value{font-size:1.5rem;font-weight:700;line-height:1}.remove-year-btn{align-items:center;background:#fed7d7e6;border:2px solid #feb2b2cc;border-radius:8px;color:#c53030;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.75rem 1rem;transition:all .2s ease}.remove-year-btn:hover{background:#fc8181;border-color:#fc8181;color:#fff}.year-content{padding:0}.semester-in-year{border-bottom:1px solid #e2e8f0}.semester-in-year:last-child{border-bottom:none}.semester-table.in-year{border:none;border-radius:0;box-shadow:none}.app-footer{background:linear-gradient(135deg,#2d3748,#4a5568);border-top:1px solid #e2e8f0;color:#fff;margin-top:4rem;padding:2rem 1rem;text-align:center}.footer-content{flex-direction:column;gap:1rem;margin:0 auto;max-width:1200px}.footer-content,.footer-text{align-items:center;display:flex}.footer-text{color:#e2e8f0;flex-wrap:wrap;font-size:1rem;gap:.5rem;justify-content:center;margin:0}.footer-link{border-radius:4px;color:#90cdf4;font-weight:600;padding:.25rem .5rem;position:relative;text-decoration:none;transition:all .2s ease}.footer-link:hover{background:#90cdf41a;color:#63b3ed;transform:translateY(-1px)}.footer-link:focus{outline:2px solid #90cdf4;outline-offset:2px}.footer-meta{align-items:center;color:#a0aec0;display:flex;font-size:.875rem;gap:.75rem}.footer-version{background:#90cdf433;border-radius:12px;color:#90cdf4;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.footer-separator{color:#718096}.footer-year{font-weight:500}@media (max-width:768px){.app-footer{margin-top:3rem;padding:1.5rem 1rem}.footer-text{font-size:.875rem;text-align:center}.footer-meta{font-size:.75rem;gap:.5rem}}@media (max-width:480px){.app-footer{margin-top:2rem;padding:1rem}.year-header{flex-direction:column}.footer-content{gap:.75rem}.footer-text{flex-direction:column;gap:.25rem}}@media print{.app-footer{background:#fff;border-top:2px solid #000;color:#000;margin-top:2rem;padding:1rem}.footer-link{color:#000;text-decoration:underline}.footer-version{background:#f0f0f0;color:#000}}@media (max-width:768px){.course-fields{gap:1rem}}@media (max-width:480px){.course-title{font-size:.8rem}}
/*# sourceMappingURL=main.539825fd.css.map*/