:root{--primary: #6366f1;--primary-light: #818cf8;--secondary: #10b981;--bg-dark: #080808;--bg-card: rgba(18, 18, 18, .92);--text-main: #f8fafc;--text-dim: #888888;--border: rgba(255, 255, 255, .09);--btn-action-bg: #ffffff;--btn-action-text: #000000;--font-heading: "Outfit", sans-serif;--font-body: "Inter", sans-serif}body.light-mode{--bg-dark: #f1f5f9;--bg-card: rgba(255, 255, 255, .92);--text-main: #0f172a;--text-dim: #64748b;--border: rgba(15, 23, 42, .1);--btn-action-bg: #0f172a;--btn-action-text: #ffffff}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background-color:var(--bg-dark);color:var(--text-main);background:var(--bg-dark);min-height:100vh;padding:1rem;transition:background .3s ease,color .25s ease}.container{max-width:1400px;margin:0 auto}h1,h2,h3{font-family:var(--font-heading)}.tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid var(--border);padding-bottom:.5rem;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-ms-overflow-style:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:.6rem 1.2rem;border-radius:.75rem;cursor:pointer;font-weight:600;color:var(--text-dim);transition:all .3s;flex-shrink:0;font-size:.9rem}.tab.active{background:#166534;color:#fff}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:1.5rem;padding:1.5rem;height:100%}.grid-layout{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 1024px){.grid-layout{grid-template-columns:1fr 1fr}}@media (min-width: 1280px){.grid-layout{grid-template-columns:1fr 1fr 1fr}}input{background:rgba(255,255,255,.06);border:1px solid var(--border);color:var(--text-main);padding:.75rem 1rem;border-radius:.75rem;width:100%;outline:none;transition:background .3s,color .25s}body.light-mode input{background:rgba(15,23,42,.06)}select option{background:#1e1e1e;color:#f8fafc}body.light-mode select option{background:#ffffff;color:#0f172a}.btn-primary{background:var(--btn-action-bg);color:var(--btn-action-text);padding:1rem;border-radius:.75rem;border:none;font-weight:700;cursor:pointer;transition:all .3s ease;font-family:var(--font-heading);display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;font-size:1rem}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #6366f166;filter:brightness(1.1)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:rgba(255,255,255,.05);border:1px solid var(--border);color:#fff;padding:.75rem 1.5rem;border-radius:.75rem;font-weight:600;cursor:pointer;transition:all .3s;width:100%}.btn-secondary:hover{background:rgba(255,255,255,.1);border-color:#fff3}.btn-theme{background:rgba(255,255,255,.07);border:1px solid var(--border);color:var(--text-main);padding:.3rem .8rem;border-radius:2rem;cursor:pointer;font-size:.78rem;font-weight:600;display:inline-flex;align-items:center;gap:.4rem;transition:all .25s ease;font-family:var(--font-body);white-space:nowrap}.btn-theme:hover{background:rgba(255,255,255,.14)}body.light-mode .btn-theme{background:rgba(15,23,42,.07)}body.light-mode .btn-theme:hover{background:rgba(15,23,42,.13)}.subject-item{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:1rem;padding:1rem;margin-bottom:1rem;transition:all .3s}.subject-item.passed{border-left:4px solid var(--secondary);background:rgba(16,185,129,.05)}.subject-item.available{border-left:4px solid var(--primary)}.subject-item.locked{opacity:.5}.btn-check{width:24px;height:24px;border-radius:6px;border:2px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center}.btn-check.active{background:var(--secondary);border-color:var(--secondary)}.eval-row{display:grid;grid-template-columns:1fr 80px 80px 40px;gap:.5rem;margin-top:.5rem;align-items:center}@media (max-width: 480px){.eval-row{grid-template-columns:1fr 60px 60px 30px;gap:.25rem}.eval-row input{padding:.2rem .3rem;font-size:.7rem}}.badge{padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:700}.badge-prereq{background:rgba(239,68,68,.2);color:#f87171}.badge-passed{background:rgba(16,185,129,.2);color:#34d399}.avg-circle{width:150px;height:150px;border-radius:50%;border:8px solid rgba(255,255,255,.05);display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto 1.5rem;background:radial-gradient(circle,rgba(99,102,241,.1) 0%,transparent 70%)}.hidden{display:none}.min-h-screen{min-height:100vh}.flex{display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.p-4{padding:1rem}.max-w-md{max-width:28rem}.w-full{width:100%}.p-8{padding:2rem}.space-y-6>*+*{margin-top:1.5rem}.text-center{text-align:center}.mb-8{margin-bottom:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-bold{font-weight:700}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-indigo-400{--tw-gradient-from: #818cf8;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(129, 140, 248, 0))}.to-emerald-400{--tw-gradient-to: #34d399}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.text-transparent{color:transparent}.text-gray-400{color:#9ca3af}.mt-2{margin-top:.5rem}.space-y-4>*+*{margin-top:1rem}.block{display:block}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.text-gray-300{color:#d1d5db}.mb-1{margin-bottom:.25rem}.bg-white\/5{background-color:#ffffff0d}.border-white\/10{border-color:#ffffff1a}.rounded-lg{border-radius:.5rem}.p-3{padding:.75rem}@media (max-width: 640px){header{flex-direction:column;align-items:flex-start!important;gap:1rem}header div:last-child{text-align:left!important;width:100%;padding-top:1rem;border-top:1px solid var(--border)}h1{font-size:1.8rem!important}.avg-circle{width:120px;height:120px}.avg-circle span:first-child{font-size:2rem!important}.glass-card{padding:1rem}.subject-item{padding:.75rem}}.text-white{color:#fff}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.pt-4{padding-top:1rem}.hover\:text-white:hover{color:#fff}.gap-2{gap:.5rem}.disabled\:opacity-50:disabled{opacity:.5}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .6s ease-out forwards}
