.major-section{background:#fff;padding:1rem;border-radius:var(--radius);margin-bottom:2rem;box-shadow:var(--shadow-soft);transition:var(--transition)}.major-section h2{margin-bottom:.8rem;font-weight:600;color:var(--mq-red);font-size:1.2rem}.major-cards{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:10px;padding-bottom:5px}.major-card{flex:0 0 160px;border:2px solid #ddd;border-radius:var(--radius);padding:.8rem 1rem;cursor:pointer;background:var(--mq-light);transition:var(--transition);box-shadow:var(--shadow-soft);font-size:.9rem;text-align:center}.major-card:hover{border-color:var(--mq-red);background-color:#ffe4e6;transform:translateY(-2px)}.major-card.selected{border-color:var(--mq-red);background-color:#ffd6dc;box-shadow:var(--shadow-hover)}*{margin:0;padding:0;box-sizing:border-box;font-family:Inter,Segoe UI,Arial,sans-serif;scroll-behavior:smooth}:root{--mq-red: #a7192f;--mq-dark: #821226;--mq-light: #fff5f6;--text-dark: #222;--text-muted: #555;--shadow-soft: 0 8px 24px rgba(0,0,0,.08);--shadow-hover: 0 12px 30px rgba(0,0,0,.15);--radius: 14px;--transition: all .3s ease}body,html,#root,.App{height:100%;background:linear-gradient(135deg,#fff,#f8f8f8);color:var(--text-dark);line-height:1.5;font-size:1rem}.App{display:flex;flex-direction:column;min-height:100vh}.header-banner{display:flex;align-items:center;justify-content:center;position:relative;padding:1.5rem 2rem;background:linear-gradient(90deg,var(--mq-red),var(--mq-dark));color:#fff;box-shadow:0 4px 16px #a7192f66;z-index:10}.header-banner .logo{position:absolute;left:2rem;width:85px;height:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.3));transition:transform .3s ease}.header-banner .logo:hover{transform:scale(1.1)}.header-banner h1{text-align:center;font-size:2rem;font-weight:700;letter-spacing:1px;text-shadow:0 2px 6px rgba(0,0,0,.2)}main{flex:1;padding:3rem 2rem;background:linear-gradient(to bottom right,#fafafa,#f1f1f1);display:flex;flex-direction:column;gap:2rem}.input-wrapper{position:relative;width:100%;max-width:520px}.input-wrapper input{width:100%;padding:.9rem 1.2rem;font-size:1.05rem;border-radius:var(--radius);border:1.5px solid #ddd;background:#fffffff2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:var(--shadow-soft);transition:var(--transition)}.input-wrapper input:focus{outline:none;border-color:var(--mq-red);box-shadow:0 0 0 4px #a7192f26}.suggestions-container{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;z-index:10;max-height:220px;overflow-y:auto;border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow-soft)}.suggestion-item{padding:.7rem 1rem;cursor:pointer;transition:var(--transition)}.suggestion-item:hover{background:var(--mq-red);color:#fff}.search-section{display:flex;justify-content:center;align-items:center;flex-direction:column;gap:1rem;width:100%}button{display:inline-block;margin-top:1rem;margin-bottom:3rem;padding:.7rem 1.4rem;background:var(--mq-red);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-size:1rem;font-weight:500;letter-spacing:.3px;transition:var(--transition);box-shadow:var(--shadow-soft);text-align:center;width:auto}button:hover{background:var(--mq-dark);transform:translateY(-2px);box-shadow:var(--shadow-hover)}.course-details,.study-plan,.semester-section,.unit-load-selection{background:#fff;padding:1.5rem;border-radius:var(--radius);margin-bottom:2rem;box-shadow:var(--shadow-soft);transition:var(--transition)}.course-details:hover,.study-plan:hover,.semester-section:hover,.unit-load-selection:hover{transform:translateY(-3px)}.course-details h2,.study-plan h3,.semester-section h2{margin-bottom:1rem;font-weight:600;color:var(--mq-red)}.course-details table{width:100%;border-collapse:collapse;margin-top:1rem;border-radius:var(--radius);overflow:hidden}.course-details th,.course-details td{border:1px solid #eee;padding:.8rem 1rem;text-align:left;font-size:.95rem}.course-details th{position:sticky;top:0;background-color:var(--mq-red);color:#fff;text-transform:uppercase;letter-spacing:.5px;font-weight:600;z-index:2}.course-details tbody tr:nth-child(2n){background-color:#fafafa}.course-details tbody tr:hover{background-color:#fff2f3;transition:var(--transition)}.semester-badge-wrapper{display:flex;flex-direction:column;gap:.3rem}.semester-badge{display:inline-block;background-color:var(--mq-red);color:#fff;padding:.25rem .7rem;border-radius:20px;font-size:.8rem;box-shadow:0 2px 6px #a7192f40;transition:transform .15s ease}.semester-badge:hover{transform:scale(1.05)}.toggle-checkbox:checked~.units-table-wrapper{display:block}.course-title{display:inline-block;vertical-align:middle;box-sizing:none}.toggle-p{vertical-align:middle;box-sizing:none;float:right;margin-right:10px;font-weight:700}.toggle-checkbox:hover{background:var(--mq-dark);transform:translateY(-1px);cursor:pointer}.toggle-checkbox{float:right;vertical-align:middle;box-sizing:none;width:25px;height:25px}.units-table-wrapper{display:none;overflow-y:auto;margin-top:1rem;border-radius:var(--radius);box-shadow:var(--shadow-soft)}.units-table{width:100%;border-collapse:collapse;table-layout:fixed}.units-table th,.units-table td{border:1px solid #eee;padding:.8rem;text-align:left;font-size:.95rem;word-wrap:break-word}.units-table th{position:sticky;top:0;background:var(--mq-red);color:#fff;font-weight:600;text-transform:uppercase;letter-spacing:.5px;z-index:2}.semester-selection,.unit-load-selection{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.5rem}.semester-selection label,.unit-load-selection label{cursor:pointer;display:flex;align-items:center;gap:.4rem;background:var(--mq-light);padding:.5rem 1rem;border-radius:var(--radius);border:1px solid #ddd;transition:var(--transition)}.semester-selection label:hover,.unit-load-selection label:hover{background-color:#ffe4e6;border-color:var(--mq-red)}.semester-selection input[type=radio]:checked+span,.unit-load-selection input[type=radio]:checked+span{font-weight:600;color:var(--mq-red)}footer{background:var(--mq-dark);color:#fff;text-align:center;padding:1.2rem;flex-shrink:0;font-size:.95rem;letter-spacing:.3px;box-shadow:0 -2px 10px #0000001a}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:200}.modal-content{background:#fff;padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow-hover);max-width:420px;width:90%;text-align:center;animation:fadeInUp .35s ease}.modal-content h2{color:var(--mq-red);margin-bottom:1rem;font-size:1.5rem}.modal-content ul{list-style:none;padding:0;margin-bottom:1.5rem}.modal-content li{padding:.5rem 0;color:var(--text-dark);border-bottom:1px solid #eee;transition:background .2s ease}.modal-content li:last-child{border-bottom:none}.modal-content li:hover{background-color:#ffe4e6;border-radius:var(--radius)}.modal-content .close-btn{background:var(--mq-red);color:#fff;font-weight:600;padding:.6rem 1.5rem;border:none;border-radius:var(--radius);cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-soft)}.modal-content .close-btn:hover{background:var(--mq-dark);transform:translateY(-2px)}.major-selector{margin:20px 0}.major-selector h3{margin-bottom:10px;font-size:1.2rem;font-weight:700}.majors-list{display:flex;flex-wrap:wrap;gap:10px}.major-btn{padding:8px 12px;border:1px solid #0072c6;background-color:#fff;color:#0072c6;border-radius:5px;cursor:pointer;transition:all .2s ease}.major-btn:hover{background-color:#0072c6;color:#fff}.major-btn.selected{background-color:#0072c6;color:#fff;font-weight:700;border:1px solid #005a9e}.suggestions-container{position:absolute;background-color:#fff;border:1px solid #ccc;width:100%;max-height:250px;overflow-y:auto;z-index:1000;box-shadow:0 2px 6px #00000026;border-radius:5px}.suggestion-item{padding:10px;cursor:pointer;border-bottom:1px solid #f0f0f0}.suggestion-item:hover{background-color:#f0f8ff}.header-lines{position:absolute;right:2rem;top:50%;transform:translateY(-50%);z-index:150}.menu-toggle-btn{display:flex;flex-direction:column;justify-content:space-between;width:28px;height:20px;background:none;border:none;cursor:pointer;padding:0;z-index:150}.menu-toggle-btn span{display:block;height:3px;background-color:#fff;border-radius:2px;transition:all .3s ease}.menu-toggle-btn.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.menu-toggle-btn.open span:nth-child(2){opacity:0}.menu-toggle-btn.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.header-lines .dropdown-menu{position:absolute;right:0;top:35px;background:#fff;border-radius:8px;box-shadow:0 6px 20px #00000026;display:flex;flex-direction:column;width:auto;min-width:120px;padding:.25rem 0;z-index:100}.header-lines .dropdown-menu button{padding:.6rem 1rem;border:none;background:none;text-align:left;font-size:.95rem;color:var(--text-dark);cursor:pointer;transition:all .2s ease}.header-lines .dropdown-menu button:hover{background-color:var(--mq-red);color:#fff}@media(max-width:700px){.header-lines{right:1rem}.header-lines .dropdown-menu{min-width:110px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.major-cards{flex-wrap:wrap;justify-content:center}.major-card{flex:0 0 45%;margin-bottom:8px}.header-lines{right:1rem}main{padding:2rem 1rem}.modal-content{width:95%;padding:1.5rem}}.download-btn{display:inline-block;padding:.5rem 1rem;font-size:.9rem;font-weight:500;background:var(--mq-red);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;transition:all .25s ease;box-shadow:var(--shadow-soft);text-align:center;width:auto}.download-btn:hover{background:var(--mq-dark);transform:translateY(-1px)}.study-plan{max-width:900px;margin:2rem auto;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.plan-title{text-align:center;margin-bottom:1.5rem;color:#2c3e50;font-size:2rem}.semesters-container{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.semester-card{background:#f9f9f9;border-radius:12px;box-shadow:0 4px 8px #0000001a;padding:1rem;transition:transform .2s}.semester-card:hover{transform:translateY(-5px)}.semester-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.session-badge{padding:.25rem .6rem;border-radius:6px;font-weight:700;color:#fff;font-size:.85rem}.sem-1 .session-badge{background-color:#3498db}.sem-2 .session-badge{background-color:#e67e22}.sem-3 .session-badge{background-color:#9b59b6}.unit-table{width:100%;border-collapse:collapse}.unit-table th,.unit-table td{border:1px solid #ddd;padding:.6rem .8rem;text-align:left}.unit-table th{background-color:#2c3e50;color:#fff}.unit-table tr:nth-child(2n){background-color:#f2f2f2}.unit-table tbody tr.unit-essential{background-color:#90ee90!important}.unit-table tbody tr.unit-elective{background-color:#ffd580!important}.unit-table tbody tr.unit-flexible{background-color:#d3d3d3!important}.unit-table tbody tr.unit-hsc-satisfied{border-left:4px solid #4169E1}.color-legend{margin-top:2rem;padding:1rem;background:#f9f9f9;border-radius:8px;box-shadow:0 2px 4px #0000001a}.color-legend h3{margin-bottom:1rem;font-size:1.2rem;color:#2c3e50}.legend-items{display:flex;flex-wrap:wrap;gap:1.5rem}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-color{width:30px;height:20px;border:1px solid #ddd;border-radius:3px;display:inline-block}.legend-color.unit-essential{background-color:#90ee90}.legend-color.unit-elective{background-color:#ffd580}.legend-color.unit-flexible{background-color:#d3d3d3}.legend-color.unit-hsc-satisfied{background-color:#fff;border-left:4px solid #4169E1}.legend-label{font-size:.95rem;color:#333}.plan-summary{margin-top:2rem;text-align:center;font-size:1.1rem}.plan-summary .complete{color:green}.plan-summary .in-progress{color:orange}.requirements-summary{margin-top:2rem;padding:1.5rem;background:#f9f9f9;border-radius:var(--radius);box-shadow:var(--shadow-soft)}.requirements-summary h3{margin-bottom:1rem;color:var(--mq-red);font-size:1.3rem}.requirement-item{padding:1rem;margin-bottom:.75rem;background:#fff;border-radius:8px;border-left:4px solid #ddd;transition:var(--transition)}.requirement-item.complete{border-left-color:#4caf50}.requirement-item.incomplete{border-left-color:#ff9800}.requirement-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.requirement-name{font-weight:600;color:var(--text-dark)}.requirement-status{font-size:1.2rem}.requirement-progress{font-size:.9rem;color:var(--text-muted)}.loading{text-align:center;font-size:1.2rem;color:#555}.error{text-align:center;font-size:1.1rem;color:var(--mq-red);padding:1rem;background:#ffe6e6;border-radius:var(--radius);margin:1rem 0}@media(max-width:768px){.header-banner{flex-direction:column;padding:1rem;text-align:center}.header-banner .logo{position:static;margin-bottom:.5rem;width:70px}.header-banner h1{font-size:1.5rem}.header-lines{position:absolute;top:1rem;right:1rem;transform:none}main{padding:1.5rem 1rem}.search-section{flex-direction:column}.input-wrapper{max-width:100%}.semesters-container{grid-template-columns:1fr;gap:1rem}.units-table-wrapper,.semester-card .unit-table{overflow-x:auto}.units-table,.semester-card .unit-table{min-width:600px}.major-cards{flex-wrap:wrap;justify-content:center}.major-card{flex-basis:calc(50% - 10px)}.semester-selection,.unit-load-selection{justify-content:center}}@media(max-width:480px){.header-banner h1{font-size:1.2rem}.major-card{flex-basis:100%}.course-details,.study-plan,.semester-section,.unit-load-selection{padding:1rem}}
