@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap";
:root{--bg-primary:#f5f5f2;--bg-secondary:linear-gradient(180deg, #dcf4f0eb 0%, #a5e1d7eb 100%);--bg-elevated:linear-gradient(180deg, #e1f6f2f5 0%, #afe8def5 100%);--bg-hover:#fff3;--bg-active:#ffffff4d;--bg-surface:#f5f5f2;--bg-surface-alt:#fbfbf8;--bg-overlay:#00000073;--glass-bg:#ffffffe0;--glass-bg-strong:#fffffff0;--glass-bg-hover:#fffffff7;--glass-bg-dark:#ffffffe6;--glass-bg-dark-strong:#fffffff5;--glass-blur:blur(28px);--glass-blur-strong:blur(36px);--glass-saturate:saturate(150%);--glass-frost:#ffffffdb;--glass-frost-strong:#ffffffed;--glass-frost-blur:blur(32px);--glass-texture:linear-gradient(to right, #00000005 1px, transparent 1px), linear-gradient(to bottom, #00000005 1px, transparent 1px), linear-gradient(to right, #fff6 1px, transparent 1px), linear-gradient(to bottom, #fff6 1px, transparent 1px);--glass-texture-size:8px 8px;--glass-pill-bg:#ffffffd9;--glass-pill-border:#fffc;--glass-pill-hover:#fffffff0;--glass-pill-shadow:0 2px 6px #0000000f, inset 0 1px 0 #ffffffb3;--glass-pill-bg-scrolled:#0000000a;--glass-pill-border-scrolled:#0000001a;--border:#5f3bf224;--border-light:#5f3bf214;--border-medium:#5f3bf233;--border-focus:#5f3bf2;--border-card:#5f3bf224;--border-glow:#5f3bf22e;--text-primary:#1a202c;--text-secondary:#2d3748;--text-muted:#5a6a85;--text-inverse:#fbfbf8;--hero-text:#fff;--hero-text-sub:#ffffffe6;--accent-primary:#5f3bf2;--accent-secondary:#4926d9;--accent-tertiary:#8c70ff;--accent-glow:#5f3bf214;--accent-glow-strong:#5f3bf229;--accent-gradient:linear-gradient(135deg, #5f3bf2 0%, #4926d9 100%);--accent-gradient-hover:linear-gradient(135deg, #8c70ff 0%, #5f3bf2 100%);--cta-light-bg:#fbfbf8;--cta-light-text:#1a1a1a;--cta-light-border:#0000001a;--cta-light-shadow:0 2px 4px #00000014, 0 0 0 1px #0000000f;--cta-light-shadow-hover:0 4px 12px #0000001f, 0 0 0 1px #00000014;--cta-dark-bg:#1a1a1a;--cta-dark-text:#fbfbf8;--cta-dark-border:#ffffff1a;--cta-dark-shadow:0 2px 4px #00000026;--cta-glass-bg:#fff3;--cta-glass-border:#fff6;--cta-glass-text:#1a1a1a;--cta-glass-shadow:0 2px 8px #00000014;--cta-glass-hover:#ffffff59;--rating-5:#22c55e;--rating-4:#84cc16;--rating-3:#eab308;--rating-2:#f97316;--rating-1:#dc2626;--rating-5-bg:#22c55e1f;--rating-4-bg:#84cc161f;--rating-3-bg:#eab3081f;--rating-2-bg:#f973161f;--rating-1-bg:#dc26261f;--success:#16a34a;--success-bg:#16a34a1a;--warning:#d97706;--warning-bg:#d977061a;--error:#dc2626;--error-bg:#dc26261a;--info:#2563eb;--info-bg:#2563eb1a;--font-primary:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--leading-tight:1.15;--leading-normal:1.5;--leading-relaxed:1.7;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 30px #0000001a;--shadow-xl:0 16px 50px #0000001f;--shadow-glow:0 0 20px var(--accent-glow);--shadow-glow-strong:0 0 40px var(--accent-glow-strong);--shadow-card:0 2px 8px #0000000f, 0 0 0 1px #ffffff73;--shadow-card-hover:0 8px 24px #0000001a, 0 0 0 1px #ffffff8c;--shadow-vignette:inset 0 0 60px #0000000a;--shadow-vignette-strong:inset 0 0 100px #0000000f;--shadow-inner-glow:inset 0 1px 0 #ffffffa6, inset 0 -1px 0 #0000000a;--shadow-glass-card:0 4px 16px #0000000f, 0 0 0 1px #ffffff80, inset 0 1px 0 #fff9;--shadow-glass-card-hover:0 8px 32px #0000001a, 0 0 0 1px #fff9, inset 0 1px 0 #ffffffb3;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-modal:400;--z-toast:500;--max-width:1280px;--navbar-height:72px;--sidebar-width:280px;--vit-primary:#5f3bf2;--vit-primary-light:#8c70ff;--vit-primary-dark:#4926d9;--vit-accent:#d97706;--vit-accent-light:#f59e0b;--vit-surface:#ededea;--vit-surface-alt:#fbfbf8;--vit-surface-card:#fff;--vit-surface-hover:#e4e4e0;--vit-surface-border:#5f3bf21f;--vit-muted:#ededea;--vit-muted-hover:#e4e4e0;--vit-text:#1a202c;--vit-text-dim:#2d3748;--vit-text-muted:#5a6a85;--vit-success:#16a34a;--vit-warning:#d97706;--vit-gold:#d97706;--vit-error:#dc2626;--vit-info:#2563eb;--vit-emerald:#16a34a;--vit-sky:#2563eb;--vit-violet:#5f3bf2;--vit-pink:#db2777;--vit-teal:#0d9488;--vit-orange:#ea580c;--vit-shadow-glow:0 4px 14px 0 #5f3bf21f;--modal-bg:linear-gradient(180deg, #e6f7f4f2 0%, #bee6deeb 100%);--search-dropdown-bg:#fffffff2;--footer-bg:#2e5b22;--hero-brand-bg:#ffffffd1;--hero-brand-border:#ffffffa6;--hero-brand-text:#0f172a;--hero-feature-bg:#ffffffa6;--hero-feature-border:#ffffffbf;--hero-feature-text:#202020d9;--notif-card-bg:#fff9;--notif-card-border:#ffffffb3;--notif-status-text:#2020208c;--notif-label-text:#202020d9}[data-theme=dark]{--bg-primary:#0a0f1d;--bg-secondary:linear-gradient(180deg, #0d1426f0 0%, #080c18f0 100%);--bg-elevated:linear-gradient(180deg, #141d33f5 0%, #0d1324f5 100%);--bg-hover:#ffffff14;--bg-active:#ffffff1f;--bg-surface:#0a0f1d;--bg-surface-alt:#101627;--bg-overlay:#000000bf;--glass-bg:#0d1426bf;--glass-bg-strong:#121b33e0;--glass-bg-hover:#16213dd1;--glass-bg-dark:#080c18cc;--glass-bg-dark-strong:#080c18eb;--glass-frost:#0d1426b3;--glass-frost-strong:#121c34d9;--glass-texture:linear-gradient(to right, #ffffff03 1px, transparent 1px), linear-gradient(to bottom, #ffffff03 1px, transparent 1px), linear-gradient(to right, #ffffff08 1px, transparent 1px), linear-gradient(to bottom, #ffffff08 1px, transparent 1px);--glass-pill-bg:#0d1426c7;--glass-pill-border:#ffffff0f;--glass-pill-hover:#121c34d9;--glass-pill-shadow:0 4px 20px #0006, inset 0 1px 0 #ffffff0d;--glass-pill-bg-scrolled:#ffffff0f;--glass-pill-border-scrolled:#ffffff1f;--border:#7c6ef733;--border-light:#7c6ef71a;--border-medium:#7c6ef74d;--border-focus:#7c6ef7;--border-card:#ffffff0f;--border-glow:#7c6ef738;--text-primary:#f3f4f6;--text-secondary:#e5e7eb;--text-muted:#9ca3af;--text-inverse:#0a0f1d;--accent-primary:#7c6ef7;--accent-secondary:#6355e6;--accent-tertiary:#a599ff;--accent-glow:#7c6ef726;--accent-glow-strong:#7c6ef74d;--accent-gradient:linear-gradient(135deg, #7c6ef7 0%, #6355e6 100%);--accent-gradient-hover:linear-gradient(135deg, #a599ff 0%, #7c6ef7 100%);--cta-light-bg:#f3f4f6;--cta-light-text:#111827;--cta-light-border:#ffffff14;--cta-light-shadow:0 4px 12px #0006;--cta-light-shadow-hover:0 6px 20px #00000080;--cta-dark-bg:#1f2937;--cta-dark-text:#f9fafb;--cta-dark-border:#ffffff14;--cta-dark-shadow:0 2px 4px #0006;--cta-glass-bg:#ffffff1a;--cta-glass-border:#fff3;--cta-glass-text:#f3f4f6;--cta-glass-shadow:0 4px 12px #0000004d;--cta-glass-hover:#ffffff2e;--rating-5-bg:#22c55e29;--rating-4-bg:#84cc1629;--rating-3-bg:#eab30829;--rating-2-bg:#f9731629;--rating-1-bg:#dc262629;--success:#22c55e;--success-bg:#22c55e26;--warning:#f59e0b;--warning-bg:#f59e0b26;--error:#ef4444;--error-bg:#ef444426;--info:#3b82f6;--info-bg:#3b82f626;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 8px 30px #0006;--shadow-xl:0 16px 50px #00000080;--shadow-card:0 4px 20px #00000040, 0 0 0 1px #ffffff0d;--shadow-card-hover:0 8px 32px #00000059, 0 0 0 1px #ffffff14;--shadow-vignette:inset 0 0 60px #0009;--shadow-vignette-strong:inset 0 0 100px #000c;--shadow-inner-glow:inset 0 1px 0 #ffffff0d, inset 0 -1px 0 #0003;--shadow-glass-card:0 4px 20px #0000004d, 0 0 0 1px #ffffff14, inset 0 1px 0 #ffffff0d;--shadow-glass-card-hover:0 8px 32px #0006, 0 0 0 1px #ffffff1a, inset 0 1px 0 #ffffff14;--vit-primary:#7c6ef7;--vit-primary-light:#a599ff;--vit-primary-dark:#6355e6;--vit-accent:#f59e0b;--vit-accent-light:#fbbf24;--vit-surface:#0d1424;--vit-surface-alt:#131b2e;--vit-surface-card:#1e293b;--vit-surface-hover:#1e293b;--vit-surface-border:#7c6ef733;--vit-muted:#0d1424;--vit-muted-hover:#1e293b;--vit-text:#f3f4f6;--vit-text-dim:#e5e7eb;--vit-text-muted:#9ca3af;--vit-success:#22c55e;--vit-warning:#f59e0b;--vit-gold:#f59e0b;--vit-error:#ef4444;--vit-info:#3b82f6;--vit-emerald:#22c55e;--vit-sky:#3b82f6;--vit-violet:#7c6ef7;--vit-pink:#ec4899;--vit-teal:#14b8a6;--vit-orange:#f97316;--vit-shadow-glow:0 4px 14px 0 #7c6ef733;--modal-bg:linear-gradient(180deg, #141c30fa 0%, #0d1424f5 100%);--search-dropdown-bg:#0d1426f5;--footer-bg:#0d130b;--hero-brand-bg:#0d1426cc;--hero-brand-border:#ffffff14;--hero-brand-text:#f3f4f6;--hero-feature-bg:#0d1426ad;--hero-feature-border:#ffffff14;--hero-feature-text:#e5e7eb;--notif-card-bg:#0d1426a6;--notif-card-border:#ffffff14;--notif-status-text:#f3f4f6b3;--notif-label-text:#f3f4f6}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth;background-color:var(--bg-primary);font-size:16px}body{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-normal);color:var(--text-primary);background-color:#0000;background-image:radial-gradient(#0000 50%,#0000000f 100%);background-attachment:fixed;min-height:100vh;position:relative}body:before{content:"";z-index:-2;opacity:.22;pointer-events:none;background-image:url(/hero-bg.png);background-position:bottom;background-size:cover;background-attachment:scroll;transition:opacity .4s ease-in-out;position:fixed;inset:0}body:after{content:"";z-index:-2;opacity:0;pointer-events:none;background-image:url(/hero-bg-dark.jpg);background-position:bottom;background-size:cover;background-attachment:scroll;transition:opacity .4s ease-in-out;position:fixed;inset:0}h1,h2,h3,h4,h5,h6{font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--text-primary)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{color:var(--text-secondary);line-height:var(--leading-relaxed)}a{color:var(--accent-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-secondary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#0000001f}::-webkit-scrollbar-thumb:hover{background:#0003}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}::selection{background:var(--accent-glow-strong);color:var(--text-primary)}img{max-width:100%;height:auto;display:block}button{cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none}input,textarea,select{font-family:inherit;font-size:inherit;color:var(--text-primary);background:var(--bg-elevated);background-image:var(--glass-texture);background-size:var(--glass-texture-size);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);-webkit-backdrop-filter:var(--glass-blur) var(--glass-saturate);background-position:0 0,0 0,1px 1px,1px 1px}input:focus,textarea:focus,select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow);outline:none}input::placeholder,textarea::placeholder{color:var(--text-muted)}.container{width:100%;max-width:var(--max-width);padding:0 var(--space-6);margin:0 auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.glass-pill{background:var(--glass-pill-bg);border:1px solid var(--glass-pill-border);-webkit-backdrop-filter:var(--glass-blur) var(--glass-saturate);box-shadow:var(--glass-pill-shadow)}.glass-panel{background:var(--glass-bg-dark);border:1px solid var(--border);-webkit-backdrop-filter:var(--glass-blur-strong) var(--glass-saturate)}.btn{border-radius:var(--radius-md);font-family:var(--font-primary);font-size:var(--text-base);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;letter-spacing:.15px;border:none;justify-content:center;align-items:center;gap:8px;height:41px;padding:10px 20px;font-weight:460;line-height:1;text-decoration:none;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn:active{transform:scale(.97)}.btn-primary{color:var(--cta-light-text);border:1px solid var(--cta-light-border);box-shadow:var(--cta-light-shadow);-webkit-backdrop-filter:blur(8px);background:#fbfbf8f2}.btn-primary:hover{box-shadow:var(--cta-light-shadow-hover);background:#fffffff2;transform:translateY(-1px)}[data-theme=dark] .btn-primary{color:var(--cta-dark-text);border:1px solid var(--cta-dark-border);box-shadow:var(--cta-dark-shadow);background:#1f2937f2}[data-theme=dark] .btn-primary:hover{background:#2a3646f2}.btn-secondary{background:var(--cta-dark-bg);color:var(--cta-dark-text);border:1px solid var(--cta-dark-border);box-shadow:var(--cta-dark-shadow)}.btn-secondary:hover{background:#2a2a2a;transform:translateY(-1px)}.btn-accent{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-sm), var(--shadow-glow)}.btn-accent:hover{background:var(--accent-gradient-hover);box-shadow:var(--shadow-md), var(--shadow-glow-strong);transform:translateY(-1px)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-medium)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#ef4444}.btn-sm{font-size:var(--text-sm);height:32px;padding:6px 14px}.btn-lg{font-size:var(--text-base);border-radius:var(--radius-md);height:46px;padding:12px 28px}.card{background:var(--glass-frost-strong);background-image:var(--glass-texture);background-size:var(--glass-texture-size);border:1px solid var(--border-glow);border-radius:var(--radius-lg);box-shadow:var(--shadow-glass-card);transition:all var(--transition-base);-webkit-backdrop-filter:var(--glass-blur) var(--glass-saturate);background-position:0 0,0 0,1px 1px,1px 1px}.card:hover{box-shadow:var(--shadow-glass-card-hover)}.card-glass{background:var(--glass-frost);-webkit-backdrop-filter:var(--glass-frost-blur) var(--glass-saturate);border:1px solid var(--border-glow);border-radius:var(--radius-lg);box-shadow:var(--shadow-glass-card)}.modal-backdrop{background:var(--bg-overlay);-webkit-backdrop-filter:blur(8px);z-index:var(--z-modal);padding:var(--space-6);animation:fadeIn var(--transition-fast);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--modal-bg);background-image:var(--glass-texture);background-size:var(--glass-texture-size);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:560px;max-height:90vh;animation:slideUp var(--transition-base);-webkit-backdrop-filter:blur(24px)saturate(140%);background-position:0 0,0 0,1px 1px,1px 1px;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (max-width:768px){:root{--text-4xl:1.875rem;--text-3xl:1.5rem;--text-2xl:1.25rem}.container{padding:0 var(--space-4)}button,a,[role=button]{touch-action:manipulation}}@media (max-width:480px){:root{--text-4xl:1.5rem;--text-3xl:1.25rem}}@media (max-width:640px){.modal-backdrop{align-items:flex-end;padding:0}.modal-content{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:100%;max-height:96dvh;animation:slideUp var(--transition-base)}input,textarea,select{font-size:16px}}.timetable-container{-webkit-overflow-scrolling:touch;border-radius:var(--radius-xl);border:1px solid var(--border-glow);background:var(--glass-frost);-webkit-backdrop-filter:var(--glass-frost-blur) var(--glass-saturate);box-shadow:var(--shadow-glass-card), var(--shadow-vignette);overflow-x:auto}.timetable-grid{background:var(--vit-surface-border);grid-template-columns:90px repeat(14,minmax(72px,1fr));gap:1px;width:max-content;min-width:100%;display:grid}.grid-header{background:var(--vit-surface-card);text-align:center;color:var(--vit-text-dim);text-transform:uppercase;letter-spacing:.05em;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:10px 4px;font-size:.7rem;font-weight:600;display:flex}.theory-header-title{border-left:3px solid var(--vit-sky);background:#0ea5e90a;flex-direction:column;justify-content:center;align-items:center;padding:8px 4px;display:flex}.lab-header-title{border-left:3px solid var(--vit-pink);background:#e11d480a;flex-direction:column;justify-content:center;align-items:center;padding:8px 4px;display:flex}.header-type-label{letter-spacing:.1em;font-size:.65rem;font-weight:800}.theory-header-title .header-type-label{color:var(--vit-sky)}.lab-header-title .header-type-label{color:var(--vit-pink)}.header-sub-label{color:var(--vit-text-dim);letter-spacing:.05em;margin-top:1px;font-size:.52rem;font-weight:500}.grid-header.period-header{gap:1px}.period-num{color:var(--vit-primary-light);font-size:.72rem;font-weight:700}.period-time{font-size:.55rem;font-family:var(--font-mono);color:var(--vit-text-dim);margin-top:1px;font-weight:500}.lunch-header{color:var(--vit-text-muted);letter-spacing:.08em;background:#ffffff05;font-size:.62rem;font-weight:700}.grid-day-label{background:var(--vit-surface-card);color:var(--vit-text);text-transform:uppercase;letter-spacing:.08em;border-left:3px solid var(--vit-primary);border-bottom:1px solid #ffffff05;justify-content:center;align-items:center;padding:12px 10px;font-size:.78rem;font-weight:700;display:flex}.grid-cell{background:var(--vit-muted);cursor:default;border-bottom:1px solid #ffffff05;justify-content:center;align-items:center;min-height:52px;padding:4px;transition:all .15s;display:flex;position:relative}.grid-cell:hover{background:var(--vit-muted-hover)}.grid-cell.occupied{cursor:pointer;position:relative}.grid-cell.occupied .slot-badge{border-radius:var(--radius-sm);color:#fff;text-align:center;text-shadow:0 1px 2px #0000004d;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:3px 4px;font-size:.6rem;font-weight:600;line-height:1.2;transition:transform .1s;display:flex}.grid-cell.occupied:active .slot-badge{transform:scale(.95)}.slot-badge .slot-name{font-size:.65rem;font-weight:700}.slot-badge .course-code{opacity:.85;font-size:.55rem;font-weight:500}.grid-cell.empty-cell{background:#ffffff03;justify-content:center;align-items:center;display:flex}.grid-cell.empty-cell:hover{background:#ffffff08}.slot-placeholder{color:var(--vit-text-muted);opacity:.3;letter-spacing:.02em;font-size:.62rem;font-weight:600;transition:all .2s}.grid-cell.empty-cell:hover .slot-placeholder{opacity:.8;color:var(--vit-primary-light);transform:scale(1.03)}.lunch-divider{color:var(--vit-text-muted);-webkit-user-select:none;user-select:none;background:#ffffff05;border-left:1.5px dashed #ffffff14;border-right:1.5px dashed #ffffff14;justify-content:center;align-items:center;font-size:.75rem;font-weight:800;transition:all .2s;display:flex}.lunch-divider:hover{color:var(--vit-primary-light);text-shadow:0 0 8px #7c6ef780;background:#ffffff0a}.grid-day-separator{background:linear-gradient(90deg, transparent, var(--vit-surface-border), transparent);grid-column:1/-1;height:2px}.schedule-tabs{background:var(--glass-frost);border-radius:var(--radius-lg);border:1px solid var(--border-glow);-webkit-backdrop-filter:var(--glass-blur) var(--glass-saturate);box-shadow:var(--shadow-glass-card), var(--shadow-vignette);gap:4px;padding:4px;display:flex}.schedule-tab{border-radius:var(--radius-md);font-family:var(--font-primary);cursor:pointer;color:var(--vit-text-dim);background:0 0;border:none;flex:1;padding:10px 20px;font-size:.85rem;font-weight:600;transition:all .2s;position:relative;overflow:hidden}.schedule-tab:hover{background:var(--vit-surface-hover);color:var(--vit-text)}.schedule-tab:active{transform:scale(.97)}.schedule-tab.active{background:var(--vit-primary);color:#fff;box-shadow:var(--shadow-glow)}.schedule-tab .tab-count{border-radius:var(--radius-full);background:#00000014;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;font-size:.7rem;font-weight:700;display:inline-flex}.schedule-tab.active .tab-count{background:#ffffff40}.glass-card{background:var(--glass-frost);border:1px solid var(--border-glow);border-radius:var(--radius-lg);-webkit-backdrop-filter:var(--glass-blur) var(--glass-saturate);box-shadow:var(--shadow-glass-card);transition:all .25s}.glass-card:hover{box-shadow:var(--shadow-glass-card-hover);background:var(--glass-frost-strong)}.glass-surface{background:var(--glass-frost);-webkit-backdrop-filter:var(--glass-frost-blur) var(--glass-saturate);border:1px solid var(--border-glow);border-radius:var(--radius-xl);box-shadow:var(--shadow-glass-card), var(--shadow-vignette)}.glass-surface-strong{background:var(--glass-frost-strong);-webkit-backdrop-filter:var(--glass-frost-blur) var(--glass-saturate);border:1px solid var(--border-glow);border-radius:var(--radius-xl);box-shadow:var(--shadow-glass-card), var(--shadow-vignette)}.search-container{width:100%;max-width:600px;position:relative}.search-input{border:1px solid var(--border-glow);border-radius:var(--radius-xl);background:var(--glass-frost);width:100%;color:var(--vit-text);font-family:var(--font-primary);text-align:left;box-shadow:var(--shadow-glass-card);-webkit-backdrop-filter:var(--glass-blur) var(--glass-saturate);outline:none;padding:14px 20px 14px 48px;font-size:.9rem;transition:all .2s}.search-input::placeholder{color:var(--vit-text-muted)}.search-input:focus{border-color:var(--vit-primary);box-shadow:0 0 0 3px var(--accent-glow)}.search-icon{color:var(--vit-text-muted);pointer-events:none;z-index:10;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.search-dropdown{background:var(--search-dropdown-bg);border:1px solid var(--border-glow);border-radius:var(--radius-lg);box-shadow:var(--shadow-glass-card-hover), var(--shadow-vignette);z-index:50;max-height:360px;-webkit-backdrop-filter:var(--glass-frost-blur) var(--glass-saturate);position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.search-result-item{cursor:pointer;border-bottom:1px solid var(--border-light);padding:12px 16px;transition:background .15s}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--bg-hover)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0006;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--modal-bg);border:1px solid var(--border);border-radius:var(--radius-xl);width:90%;max-width:560px;max-height:85vh;box-shadow:var(--shadow-xl);padding:28px;animation:.25s slideUp;overflow-y:auto}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{color:var(--vit-text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.form-input,.form-select,.form-textarea{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);width:100%;color:var(--vit-text);font-family:var(--font-primary);outline:none;padding:10px 14px;font-size:.85rem;transition:border-color .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--vit-primary)}.form-textarea{resize:vertical;min-height:80px}.form-select{cursor:pointer}.stars{gap:3px;display:flex}.star{color:#0000001f;transition:color .1s}.star.filled{color:var(--vit-gold)}.star.interactive{cursor:pointer}.star.interactive:hover{color:var(--vit-gold);transform:scale(1.15)}.grade-bar-container{flex-direction:column;gap:8px;display:flex}.grade-bar-row{align-items:center;gap:12px;display:flex}.grade-bar-label{text-align:center;width:24px;font-size:.85rem;font-weight:700}.grade-bar-track{background:var(--bg-hover);border-radius:var(--radius-sm);flex:1;height:28px;position:relative;overflow:hidden}.grade-bar-fill{border-radius:var(--radius-sm);color:#fff;text-shadow:0 1px 2px #0003;align-items:center;min-width:fit-content;height:100%;padding:0 10px;font-size:.7rem;font-weight:600;transition:width .6s cubic-bezier(.16,1,.3,1);display:flex}.grade-bar-range{color:var(--vit-text-dim);text-align:right;min-width:120px;font-size:.75rem}.review-card{border-radius:var(--radius-md);background:var(--glass-frost);border:1px solid var(--border-glow);-webkit-backdrop-filter:var(--glass-blur) var(--glass-saturate);box-shadow:var(--shadow-glass-card);padding:16px;transition:all .25s}.review-card:hover{box-shadow:var(--shadow-glass-card-hover);background:var(--glass-frost-strong)}.toast-clash{background:var(--bg-elevated)!important;color:var(--vit-text)!important;border:1px solid var(--vit-accent)!important;border-radius:var(--radius-md)!important;font-family:var(--font-primary)!important}.badge{border-radius:var(--radius-full);letter-spacing:.03em;align-items:center;padding:3px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.badge-morning{color:var(--vit-gold);background:#f59e0b1f}.badge-evening{color:var(--vit-violet);background:#7c6ef71f}.badge-theory{color:var(--vit-sky);background:#2563eb1f}.badge-lab{color:var(--vit-pink);background:#db27771f}.navbar{z-index:40;background:var(--glass-bg-dark);-webkit-backdrop-filter:var(--glass-blur) var(--glass-saturate);border-bottom:1px solid var(--border);height:var(--navbar-height);justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.navbar-brand{color:var(--vit-text);align-items:center;gap:10px;font-size:1.1rem;font-weight:800;text-decoration:none;display:flex}.navbar-brand .brand-accent{color:var(--vit-primary)}.faculty-header{align-items:flex-start;gap:20px;padding:24px;display:flex}.faculty-avatar{border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--vit-primary), var(--vit-accent));color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;font-size:1.5rem;font-weight:800;display:flex}.course-list-item{border-radius:var(--radius-md);background:var(--glass-frost);border:1px solid var(--border-glow);cursor:pointer;-webkit-backdrop-filter:var(--glass-blur) var(--glass-saturate);box-shadow:var(--shadow-inner-glow), var(--shadow-sm);justify-content:space-between;align-items:center;padding:10px 14px;transition:all .2s;display:flex}.course-list-item:hover{background:var(--glass-frost-strong);box-shadow:var(--shadow-glass-card);border-color:#7c6ef740}.course-list-item .color-dot{border-radius:var(--radius-full);flex-shrink:0;width:10px;height:10px}.timetable-actions{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:768px){.navbar{padding:0 16px}.timetable-grid{grid-template-columns:70px repeat(14,minmax(65px,1fr));width:max-content;min-width:100%}.grid-cell.occupied .remove-btn{opacity:1!important}.schedule-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%;overflow-x:auto}.schedule-tabs::-webkit-scrollbar{display:none}.schedule-tab{flex:none;padding:8px 12px;font-size:.78rem}.timetable-actions{flex-direction:column;gap:8px;width:100%}.timetable-actions button{justify-content:center;width:100%}.modal-content{width:95%;padding:20px}}@keyframes pulse-glow{0%,to{box-shadow:0 0 #7c6ef74d}50%{box-shadow:0 0 0 8px #7c6ef700}}.animate-pulse-glow{animation:2s infinite pulse-glow}.skeleton{background:linear-gradient(90deg, var(--bg-hover) 25%, var(--bg-primary) 50%, var(--bg-hover) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}.grid-cell.occupied:hover .remove-btn{opacity:1!important}nextjs-dev-indicator,nextjs-portal,#nextjs-dev-indicator,.__next-feedback{visibility:hidden!important;opacity:0!important;pointer-events:none!important;display:none!important}::-webkit-scrollbar{background:0 0;width:8px;height:8px}::-webkit-scrollbar-track{background:0 0!important}::-webkit-scrollbar-thumb{background-color:#7c6ef733;background-clip:padding-box;border:2px solid #0000;border-radius:9999px;transition:background-color .2s}::-webkit-scrollbar-thumb:hover{background-color:#7c6ef766}*{scrollbar-width:thin;scrollbar-color:#7c6ef733 transparent}[data-theme=dark] body{background-color:#0000!important}[data-theme=dark] body:before{opacity:0!important}[data-theme=dark] body:after{opacity:.55!important}.theme-light-image{pointer-events:auto;opacity:1!important;transition:opacity .4s ease-in-out!important}.theme-dark-image{pointer-events:none;opacity:0!important;transition:opacity .4s ease-in-out!important;display:block!important}[data-theme=dark] .theme-light-image{pointer-events:none;opacity:0!important}[data-theme=dark] .theme-dark-image{pointer-events:auto;opacity:1!important}
