:root{--bg: #F8FAFC;--bg-elev-1: #FFFFFF;--bg-elev-2: #F1F5F9;--card: #FFFFFF;--card-border: #E2E8F0;--muted: #64748B;--text: #0F172A;--text-muted: #64748B;--text-on-brand: #FFFFFF;--brand: #0F172A;--brand-2: #334155;--accent: #3B82F6;--success: #10B981;--warning: #F59E0B;--error: #EF4444;--ring: rgba(15,23,42,.15);--shadow: 0 4px 24px rgba(0,0,0,.06);--glass: rgba(255,255,255,.85);--glass-border: #E2E8F0;--text-primary: var(--text);--text-secondary: var(--text-muted);--surface-primary: var(--bg-elev-1);--surface-secondary: var(--bg-elev-2);--accent-primary: var(--brand);--accent-secondary: var(--accent);--border-subtle: var(--card-border);--border-highlight: var(--brand);--system-success: var(--success);--system-warning: var(--warning);--system-danger: var(--error);--course-core: #0F172A;--course-elective: #6366F1;--course-gened: #10B981;--course-major: #64748B;--chart-1: #0F172A;--chart-2: #334155;--chart-3: #64748B;--chart-4: #94A3B8;--chart-5: #3B82F6;--chart-6: #10B981}[data-theme=dark]{color-scheme:dark;--bg: #0F172A;--bg-elev-1: #1E293B;--bg-elev-2: #334155;--card: rgba(30,41,59,.8);--card-border: rgba(148,163,184,.15);--muted: #94A3B8;--text: #F8FAFC;--text-muted: #94A3B8;--text-on-brand: #0F172A;--brand: #F8FAFC;--brand-2: #CBD5E1;--accent: #60A5FA;--success: #34D399;--warning: #FBBF24;--error: #F87171;--ring: rgba(248,250,252,.2);--shadow: 0 8px 32px rgba(0,0,0,.4);--glass: rgba(30,41,59,.85);--glass-border: rgba(148,163,184,.15);--text-primary: var(--text);--text-secondary: var(--text-muted);--surface-primary: var(--bg-elev-1);--surface-secondary: var(--bg-elev-2);--accent-primary: var(--brand);--accent-secondary: var(--accent);--border-subtle: var(--card-border);--border-highlight: var(--brand);--system-success: var(--success);--system-warning: var(--warning);--system-danger: var(--error);--course-core: #F8FAFC;--course-elective: #A5B4FC;--course-gened: #34D399;--course-major: #94A3B8;--chart-1: #F8FAFC;--chart-2: #CBD5E1;--chart-3: #94A3B8;--chart-4: #64748B;--chart-5: #60A5FA;--chart-6: #34D399}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg);color:var(--text);transition:background-color .2s ease,color .2s ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}.glass-card{background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--shadow);border-radius:20px;position:relative;overflow:hidden;transition:all .25s cubic-bezier(.4,0,.2,1)}.glass-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);opacity:0;transition:opacity .25s ease}.glass-card:hover{transform:translateY(-4px);box-shadow:var(--shadow),0 20px 40px -20px color-mix(in srgb,var(--brand) 30%,transparent)}.glass-card:hover:before{opacity:1}.glass-card-static{background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--shadow);border-radius:20px}@media(max-width:768px){.glass-card,.glass-card-static{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:16px}}.interactive-button{transition:all .2s cubic-bezier(.4,0,.2,1)}.interactive-button:hover:not(:disabled){transform:translateY(-1px)}.interactive-button:active:not(:disabled){transform:translateY(0) scale(.98)}.interactive-button:disabled{background-color:var(--bg-elev-2)!important;color:var(--text-muted)!important;cursor:not-allowed;opacity:.6}.interactive-input{transition:all .2s cubic-bezier(.4,0,.2,1);background-color:var(--bg-elev-2);border:1px solid var(--card-border);color:var(--text);border-radius:12px}.interactive-input:hover:not(:focus){border-color:color-mix(in srgb,var(--card-border) 150%,transparent)}.interactive-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--ring);background-color:var(--bg-elev-1)}.interactive-input::placeholder{color:var(--text-muted);opacity:.7}.form-input{width:100%;padding:.75rem 1rem;background-color:var(--bg-elev-2);border:1px solid var(--card-border);border-radius:.75rem;color:var(--text);font-size:.875rem;transition:all .2s ease}.form-input:hover:not(:focus):not(:disabled){border-color:var(--text-muted)}.form-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--ring);background-color:var(--bg-elev-1)}.form-input::placeholder{color:var(--text-muted);opacity:.6}.form-input:disabled{cursor:not-allowed;background-color:var(--bg-elev-2)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--card-border);border-radius:100px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}.gradient-text{background:linear-gradient(135deg,var(--brand),var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.gradient-bg{background:linear-gradient(135deg,var(--brand),var(--accent))}.gradient-border{position:relative}.gradient-border:before{content:"";position:absolute;inset:0;padding:1px;background:linear-gradient(135deg,var(--brand),var(--accent));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;border-radius:inherit;pointer-events:none}.gradient-spinner{background:conic-gradient(var(--brand),var(--accent),var(--brand))}.animated-gradient-text{background:linear-gradient(90deg,var(--brand),var(--accent),var(--success),var(--brand));background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:text-gradient-animation 8s ease-in-out infinite}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-ring{0%{transform:scale(.8);opacity:1}to{transform:scale(2);opacity:0}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes confetti-fall{0%{transform:translateY(-100%) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes text-gradient-animation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes fab-pulse{0%{transform:scale(.95);box-shadow:0 0 color-mix(in srgb,var(--brand) 70%,transparent)}70%{transform:scale(1);box-shadow:0 0 0 12px color-mix(in srgb,var(--brand) 0%,transparent)}to{transform:scale(.95);box-shadow:0 0 color-mix(in srgb,var(--brand) 0%,transparent)}}@keyframes draw-stroke{to{stroke-dashoffset:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{transform:scale(0);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.animate-fade-in{animation:fade-in .3s ease-out forwards}.animate-slide-up{animation:slide-up .4s cubic-bezier(.16,1,.3,1) forwards}.animate-slide-down{animation:slide-down .4s cubic-bezier(.16,1,.3,1) forwards}.animate-slide-in-right{animation:slide-in-right .4s cubic-bezier(.16,1,.3,1) forwards}.animate-slide-in-left{animation:slide-in-left .4s cubic-bezier(.16,1,.3,1) forwards}.animate-scale-in{animation:scale-in .3s cubic-bezier(.16,1,.3,1) forwards}.animate-bounce-in{animation:bounce-in .5s cubic-bezier(.68,-.55,.265,1.55) forwards}.animate-spin-slow{animation:spin-slow 20s linear infinite}.animate-pop-in{animation:pop-in .4s cubic-bezier(.68,-.55,.265,1.55) forwards}.animate-delay-100{animation-delay:.1s}.animate-delay-200{animation-delay:.2s}.animate-delay-300{animation-delay:.3s}.animate-delay-400{animation-delay:.4s}.animate-delay-500{animation-delay:.5s}.pulsing-fab{animation:fab-pulse 2s infinite;background:linear-gradient(135deg,var(--brand),var(--accent));color:#fff}.ai-aura-pulse{position:relative}.ai-aura-pulse:before{content:"";position:absolute;inset:-4px;background:linear-gradient(135deg,var(--brand),var(--accent));border-radius:inherit;opacity:.5;animation:pulse-ring 2s ease-out infinite}.glow-effect{box-shadow:0 0 20px color-mix(in srgb,var(--brand) 30%,transparent)}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px #00000026}.course-badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:100px}.course-badge-core{background:color-mix(in srgb,var(--course-core) 15%,transparent);color:var(--course-core)}.course-badge-elective{background:color-mix(in srgb,var(--course-elective) 15%,transparent);color:var(--course-elective)}.course-badge-gened{background:color-mix(in srgb,var(--course-gened) 15%,transparent);color:var(--course-gened)}.course-badge-major{background:color-mix(in srgb,var(--course-major) 15%,transparent);color:var(--course-major)}.skeleton{background:linear-gradient(90deg,var(--bg-elev-2) 0%,var(--bg-elev-1) 50%,var(--bg-elev-2) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}.loading-dots:after{content:"";animation:loading-dots 1.5s infinite}@keyframes loading-dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}@media print{.print-hide,.print-hidden,header,nav,aside,.sidebar,.mobile-sidebar,.notification-bell,.notification-popup,.feedback-widget,.chatbot,.modal-backdrop,.toast,.guided-tour,button:not(.print-show),.interactive-button:not(.print-show),.upgrade-prompt,.skeleton,footer{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body{background:#fff!important;color:#000!important;font-size:12pt!important;line-height:1.4!important;margin:0!important;padding:20px!important}.glass-card,.glass-card-static{background:#fff!important;box-shadow:none!important;border:1px solid #ccc!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-radius:8px!important;page-break-inside:avoid;margin-bottom:16px!important}.glass-card:hover,.glass-card-static:hover{transform:none!important;box-shadow:none!important}h1,h2,h3,h4,h5,h6{color:#000!important;page-break-after:avoid}h1{font-size:24pt!important}h2{font-size:18pt!important}h3{font-size:14pt!important}p,li{orphans:3;widows:3}.course-item,[class*=course-card]{background:#f9f9f9!important;border:1px solid #ddd!important;padding:8px 12px!important;margin:4px 0!important;border-radius:4px!important;page-break-inside:avoid}.semester-section,.timeline-node{page-break-inside:avoid;margin-bottom:24px!important}.gradient-text,.gradient-bg,.animated-gradient-text{background:none!important;-webkit-text-fill-color:#000!important;color:#000!important}a[href]:after{content:" (" attr(href) ")";font-size:10pt;color:#666}a[href^="#"]:after,a[href^=javascript]:after{content:""}.course-badge{border:1px solid currentColor!important;background:#fff!important}.progress-bar,[class*=progress]{background:#eee!important;border:1px solid #ccc!important}table{border-collapse:collapse!important;width:100%!important}th,td{border:1px solid #ccc!important;padding:8px!important;text-align:left!important}th{background:#f0f0f0!important;font-weight:700!important}main,.main-content,.dashboard-content{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.print-header{display:block!important;text-align:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #000}.print-header h1{margin:0 0 8px}.print-header .print-date{font-size:10pt;color:#666}.page-break-before{page-break-before:always}.page-break-after{page-break-after:always}.avoid-break{page-break-inside:avoid}.print-show{display:block!important}.print-show-inline{display:inline!important}.print-show-flex{display:flex!important}}.container-type-inline-size{container-type:inline-size}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}.content-grid{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}@media(min-width:640px){.content-grid{gap:1.5rem}}@container (inline-size >= 720px){.content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (inline-size >= 1120px){.content-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.text-meta{font-size:clamp(11px,.75vw,13px)}.text-body{font-size:clamp(14px,1vw,16px)}.text-title{font-size:clamp(16px,1.25vw,20px)}.text-heading{font-size:clamp(20px,1.5vw,28px)}.text-display{font-size:clamp(28px,2.5vw,48px)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.toast{position:fixed;bottom:24px;right:24px;padding:16px 20px;border-radius:12px;background:var(--bg-elev-1);border:1px solid var(--card-border);box-shadow:0 20px 40px -12px #0003;z-index:1000;animation:slide-up .3s ease-out,fade-in .3s ease-out}.toast-success{border-left:4px solid var(--success)}.toast-error{border-left:4px solid var(--error)}.toast-warning{border-left:4px solid var(--warning)}.toast-info{border-left:4px solid var(--brand)}.modal-backdrop{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;animation:fade-in .2s ease-out}.modal-content{animation:scale-in .3s cubic-bezier(.16,1,.3,1)}.confetti-container{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:100}.confetti-piece{position:absolute;width:10px;height:10px;animation:confetti-fall 3s linear forwards}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom,0px)}.safe-area-top{padding-top:env(safe-area-inset-top,0px)}@media(max-width:767px){button,a,[role=button]{min-height:44px}input,select,textarea{font-size:16px}.touch-target{min-width:44px;min-height:44px}}@media(max-width:639px){.glass-card{border-radius:16px;padding:16px}.modal-content{margin:8px;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px)}}.touch-pan-y{touch-action:pan-y;-webkit-overflow-scrolling:touch}
