@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--bg-color:#0f1115;--surface-color:#1e212899;--surface-border:#ffffff14;--primary:#6366f1;--primary-glow:#6366f166;--text-main:#f8fafc;--text-muted:#94a3b8;--success:#10b981;--warning:#f59e0b;--danger:#ef4444}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);background-image:radial-gradient(circle at 15%,#6366f114,#0000 25%),radial-gradient(circle at 85% 30%,#10b9810d,#0000 25%);min-height:100vh;font-family:Outfit,sans-serif;overflow-x:hidden}#root{max-width:1200px;margin:0 auto;padding:2rem}.glass-panel{background:var(--surface-color);-webkit-backdrop-filter:blur(12px);border:1px solid var(--surface-border);border-radius:16px;padding:1.5rem;box-shadow:0 8px 32px #0000004d}.glass-header{-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--surface-border);z-index:10;background:#0f1115cc;margin-bottom:2rem;padding:1rem 0;position:sticky;top:0}h1{background:linear-gradient(to right, #fff, var(--text-muted));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:2.5rem;font-weight:700}h2{color:var(--text-main);margin-bottom:1rem;font-size:1.5rem;font-weight:600}.text-gradient{background:linear-gradient(to right, var(--primary), #a855f7);-webkit-text-fill-color:transparent;-webkit-background-clip:text}select{appearance:none;border:1px solid var(--surface-border);color:var(--text-main);cursor:pointer;background-color:#0003;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1em;border-radius:8px;outline:none;padding:.5rem 2rem .5rem 1rem;font-family:inherit;font-size:.9rem;transition:all .2s}select:focus,select:hover{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}select option{background-color:var(--bg-color);color:var(--text-main)}.summary-inputs{gap:.75rem;display:grid}.summary-label{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.summary-input{width:100%;color:var(--text-main);background:#ffffff0f;border:1px solid #ffffff1f;border-radius:10px;padding:.7rem .9rem;font-family:inherit;font-size:.95rem}.summary-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #6366f11f}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:inherit;font-size:1rem;font-weight:600;transition:all .3s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary), #818cf8);color:#fff;box-shadow:0 4px 15px var(--primary-glow)}.btn-primary:hover{box-shadow:0 6px 20px var(--primary-glow);transform:translateY(-2px)}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.p-4{padding:1rem}.w-full{width:100%}.text-sm{font-size:.875rem}.text-muted{color:var(--text-muted)}.grid-cols-2{grid-template-columns:repeat(1,1fr);gap:1.5rem;display:grid}@media (width>=768px){.grid-cols-2{grid-template-columns:repeat(2,1fr)}}.section-grid{align-items:start}.scroll-section{min-height:0;max-height:calc(100vh - 180px);padding-right:.75rem;overflow-y:auto}.scroll-section::-webkit-scrollbar{width:10px}.scroll-section::-webkit-scrollbar-track{background:#ffffff0f;border-radius:999px}.scroll-section::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:999px}.scroll-section::-webkit-scrollbar-thumb:hover{background:#ffffff47}.course-row{border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem;transition:background-color .2s;display:flex}.course-row:hover{background-color:#ffffff08;border-color:#ffffff0d}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.2rem .5rem;font-size:.7rem;font-weight:600}.badge-core{color:#818cf8;background:#6366f126}.badge-elective{color:#34d399;background:#10b98126}.summary-card{text-align:center;border:1px solid var(--surface-border);background:linear-gradient(145deg,#1e2128cc,#0f1115e6);border-radius:16px;flex-direction:column;justify-content:center;padding:1.5rem;display:flex}.summary-value{margin:.5rem 0;font-size:3rem;font-weight:700;line-height:1.1}.stats-panel{width:100%;margin-bottom:1.25rem}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.stats-item{background:#ffffff0f;border:1px solid #ffffff14;border-radius:12px;padding:.9rem 1rem}.stats-value{margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.stats-label{color:var(--text-muted);font-size:.85rem}.grade-counts{width:100%}.grades-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.grade-count{color:var(--text-main);background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;padding:.75rem .9rem;font-size:.95rem}.pdf-container{color:#000!important;background-color:#fff!important;width:1000px!important;padding:40px!important}.pdf-container .glass-panel{box-shadow:none;color:#000;background:#fff;border:1px solid #ccc;border-radius:0;margin-bottom:1rem}.pdf-container h1,.pdf-container h2,.pdf-container .text-gradient,.pdf-container .text-muted{color:#000!important;-webkit-text-fill-color:black!important;background:0 0!important}.pdf-container select{display:none}.pdf-container .grade-display{font-weight:700;display:inline-block}.pdf-container .pdf-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.pdf-container .pdf-stats-item{background:#f5f5f5;border:1px solid #ddd;border-radius:12px;padding:1rem}.pdf-container .pdf-grade-counts{margin-top:16px}.pdf-container .pdf-grades-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.pdf-container .pdf-grade-count{color:#000;background:#fafafa;border:1px solid #ddd;border-radius:10px;padding:.85rem;font-size:.95rem}
