:root{--bg-primary: #0a0e1a;--bg-secondary: #111827;--bg-card: rgba(17, 24, 39, .7);--bg-card-hover: rgba(30, 41, 59, .8);--bg-glass: rgba(255, 255, 255, .03);--border-glass: rgba(255, 255, 255, .08);--border-glass-hover: rgba(255, 255, 255, .15);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-gradient: linear-gradient(135deg, #8b5cf6, #06b6d4);--accent-purple: #8b5cf6;--accent-cyan: #06b6d4;--accent-pink: #ec4899;--badge-today: #ef4444;--badge-soon: #f59e0b;--badge-upcoming: #22c55e;--badge-past: #64748b;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--shadow-card: 0 4px 24px rgba(0, 0, 0, .3);--shadow-glow: 0 0 40px rgba(139, 92, 246, .15);--shadow-glow-cyan: 0 0 40px rgba(6, 182, 212, .15);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 30% 20%,rgba(139,92,246,.06) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(6,182,212,.04) 0%,transparent 50%);z-index:-1;pointer-events:none}#root{min-height:100vh;display:flex;flex-direction:column}.navbar{position:sticky;top:0;z-index:100;background:#0a0e1ad9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-glass);padding:0 var(--space-xl)}.navbar-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:64px}.navbar-brand{display:flex;align-items:center;gap:var(--space-sm);font-weight:700;font-size:1.15rem;letter-spacing:-.02em}.navbar-brand .brand-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;color:#fff}.navbar-tabs{display:flex;gap:var(--space-xs);position:relative}.nav-tab{background:none;border:none;color:var(--text-muted);font-family:inherit;font-size:.875rem;font-weight:500;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;gap:var(--space-xs);position:relative}.nav-tab:hover{color:var(--text-secondary);background:#ffffff0a}.nav-tab.active{color:var(--text-primary);background:#ffffff0f}.nav-tab.active:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:60%;height:2px;background:var(--accent-gradient);border-radius:2px}.main-content{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:var(--space-2xl) var(--space-xl)}.page-header{margin-bottom:var(--space-2xl);animation:fadeSlideUp .5s ease}.page-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.03em;margin-bottom:var(--space-xs)}.page-header p{color:var(--text-secondary);font-size:.95rem}.hero-card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-xl);padding:var(--space-2xl);margin-bottom:var(--space-2xl);position:relative;overflow:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-card);animation:fadeSlideUp .5s ease}.hero-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent-gradient)}.hero-card:after{content:"";position:absolute;top:-80px;right:-80px;width:250px;height:250px;background:radial-gradient(circle,rgba(139,92,246,.08) 0%,transparent 70%);pointer-events:none}.hero-label{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-cyan);margin-bottom:var(--space-lg)}.hero-label .pulse-dot{width:8px;height:8px;background:var(--accent-cyan);border-radius:50%;animation:pulse 2s ease-in-out infinite}.hero-course{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:var(--space-sm)}.hero-meta{display:flex;flex-wrap:wrap;gap:var(--space-lg);color:var(--text-secondary);font-size:.875rem;margin-bottom:var(--space-xl)}.hero-meta-item{display:flex;align-items:center;gap:var(--space-xs)}.hero-countdown{display:flex;gap:var(--space-md);flex-wrap:wrap}.countdown-unit{background:#ffffff0a;border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);text-align:center;min-width:80px}.countdown-value{font-size:1.75rem;font-weight:800;letter-spacing:-.02em;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.countdown-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-top:2px}.countdown-seconds .countdown-value{animation:tick 1s steps(1) infinite}@keyframes tick{0%,to{opacity:1}50%{opacity:.6}}.hero-countdown.urgent .countdown-unit{border-color:#ef444440;background:#ef44440f}.hero-countdown.urgent .countdown-value{background:linear-gradient(135deg,#ef4444,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-countdown.urgent{animation:urgentPulse 2s ease-in-out infinite}@keyframes urgentPulse{0%,to{filter:drop-shadow(0 0 0px rgba(239,68,68,0))}50%{filter:drop-shadow(0 0 12px rgba(239,68,68,.4))}}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.section-title{font-size:1.1rem;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:var(--space-sm)}.section-count{background:#8b5cf626;color:var(--accent-purple);font-size:.75rem;font-weight:600;padding:2px 10px;border-radius:var(--radius-full)}.exam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--space-md);margin-bottom:var(--space-2xl)}.exam-card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-base);position:relative;overflow:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeSlideUp .4s ease both}.exam-card:hover{border-color:var(--border-glass-hover);background:var(--bg-card-hover);transform:translateY(-2px);box-shadow:var(--shadow-card)}.exam-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-md)}.exam-course-name{font-size:.95rem;font-weight:600;letter-spacing:-.01em;flex:1;margin-right:var(--space-sm)}.exam-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0}.exam-badge.today{background:#ef444426;color:var(--badge-today);animation:pulse-badge 2s ease-in-out infinite}.exam-badge.soon{background:#f59e0b26;color:var(--badge-soon)}.exam-badge.upcoming{background:#22c55e26;color:var(--badge-upcoming)}.exam-badge.past{background:#64748b26;color:var(--badge-past)}.exam-details{display:flex;flex-direction:column;gap:var(--space-xs)}.exam-detail{display:flex;align-items:center;gap:var(--space-sm);font-size:.825rem;color:var(--text-secondary)}.exam-detail svg{width:14px;height:14px;opacity:.6;flex-shrink:0}.exam-days-left{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-glass);font-size:.8rem;font-weight:500;color:var(--text-muted)}.exam-days-left strong{color:var(--text-primary)}.settings-search{position:relative;margin-bottom:var(--space-xl);animation:fadeSlideUp .4s ease}.settings-search svg{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--text-muted);width:18px;height:18px;pointer-events:none}.settings-search input{width:100%;background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:var(--space-md) var(--space-md) var(--space-md) 44px;font-family:inherit;font-size:.9rem;color:var(--text-primary);transition:all var(--transition-base);outline:none}.settings-search input::placeholder{color:var(--text-muted)}.settings-search input:focus{border-color:var(--accent-purple);box-shadow:0 0 0 3px #8b5cf61a}.course-list{display:flex;flex-direction:column;gap:var(--space-sm)}.course-item{display:flex;align-items:center;justify-content:space-between;background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);transition:all var(--transition-base);cursor:pointer;animation:fadeSlideUp .35s ease both}.course-item:hover{border-color:var(--border-glass-hover);background:var(--bg-card-hover)}.course-item.selected{border-color:#8b5cf64d;background:#8b5cf60d}.course-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.course-name{font-size:.9rem;font-weight:600}.course-meta{font-size:.78rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toggle-switch{position:relative;width:44px;height:24px;flex-shrink:0;margin-left:var(--space-md)}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff14;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base)}.toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:var(--text-muted);border-radius:50%;transition:all var(--transition-base)}.toggle-switch input:checked+.toggle-slider{background:var(--accent-gradient)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px);background:#fff}.empty-state{text-align:center;padding:var(--space-2xl) var(--space-xl);color:var(--text-muted);animation:fadeSlideUp .5s ease}.empty-state svg{width:56px;height:56px;margin-bottom:var(--space-lg);opacity:.3}.empty-state h3{font-size:1.1rem;font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-xs)}.empty-state p{font-size:.875rem;max-width:340px;margin:0 auto;line-height:1.5}.empty-state .go-settings-btn{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-lg);background:var(--accent-gradient);color:#fff;font-family:inherit;font-size:.85rem;font-weight:600;padding:var(--space-sm) var(--space-lg);border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base)}.empty-state .go-settings-btn:hover{opacity:.9;transform:scale(1.03)}.select-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md);padding:var(--space-sm) 0}.select-bar span{font-size:.8rem;color:var(--text-muted)}.select-bar button{font-family:inherit;font-size:.78rem;font-weight:600;color:var(--accent-purple);background:none;border:none;cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.select-bar button:hover{background:#8b5cf61a}.today-section{margin-bottom:var(--space-2xl);animation:fadeSlideUp .45s ease}.today-banner{background:linear-gradient(135deg,#ef444414,#ec48990f);border:1px solid rgba(239,68,68,.15);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-md)}.today-banner .today-icon{width:40px;height:40px;border-radius:var(--radius-sm);background:#ef444426;display:flex;align-items:center;justify-content:center;color:var(--badge-today);flex-shrink:0}.today-banner-text h3{font-size:.95rem;font-weight:600;margin-bottom:2px}.today-banner-text p{font-size:.8rem;color:var(--text-secondary)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.7}}.weekly-calendar{animation:fadeSlideUp .5s ease}.weekly-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.weekly-nav-center{display:flex;align-items:center;gap:var(--space-md)}.weekly-range{font-size:1rem;font-weight:700;letter-spacing:-.01em}.weekly-today-btn{background:#8b5cf61f;border:1px solid rgba(139,92,246,.25);color:var(--accent-purple);font-family:inherit;font-size:.72rem;font-weight:600;padding:4px 12px;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.weekly-today-btn:hover{background:#8b5cf633}.calendar-nav{background:#ffffff0d;border:1px solid var(--border-glass);border-radius:var(--radius-sm);color:var(--text-secondary);width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast)}.calendar-nav:hover{background:#ffffff1a;color:var(--text-primary)}.weekly-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-sm)}.weekly-day{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition-base);min-height:120px;display:flex;flex-direction:column}.weekly-day:hover{border-color:var(--border-glass-hover)}.weekly-day.today{border-color:#8b5cf659;box-shadow:0 0 20px #8b5cf614}.weekly-day.has-exams{border-color:#06b6d433}.weekly-day.past{opacity:.5}.weekly-day-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-glass);background:#ffffff05}.weekly-day-name{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.weekly-day-num{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.weekly-day-num.today-num{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:800}.weekly-day-exams{padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-xs);flex:1}.weekly-no-exam{color:var(--text-muted);font-size:.75rem;text-align:center;opacity:.4;padding:var(--space-sm) 0}.weekly-exam-item{background:#06b6d40f;border-left:2px solid var(--accent-cyan);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:var(--space-xs) var(--space-sm);transition:background var(--transition-fast)}.weekly-exam-item:hover{background:#06b6d41f}.weekly-exam-item.unselected{background:#ffffff05;border-left:2px dashed var(--text-muted);opacity:.45}.weekly-exam-item.unselected:hover{opacity:.7;background:#ffffff0a}.weekly-exam-name{font-size:.72rem;font-weight:600;color:var(--text-primary);line-height:1.3;margin-bottom:2px}.weekly-exam-meta{display:flex;align-items:center;gap:3px;font-size:.62rem;color:var(--text-muted)}.weekly-exam-meta svg{flex-shrink:0;opacity:.6}@media(max-width:768px){.main-content{padding:var(--space-xl) var(--space-md)}.navbar{padding:0 var(--space-sm)}.navbar-inner{padding:0;height:56px}.navbar-brand span{display:none}.exam-grid{grid-template-columns:1fr}.hero-card{padding:var(--space-lg);border-radius:var(--radius-lg)}.hero-course{font-size:1.15rem}.hero-meta{flex-direction:column;gap:var(--space-xs);font-size:.8rem}.hero-label{margin-bottom:var(--space-md)}.countdown-unit{min-width:70px;padding:var(--space-sm) var(--space-md)}.countdown-value{font-size:1.35rem}.countdown-label{font-size:.6rem}.page-header h1{font-size:1.35rem}.page-header p{font-size:.85rem}.course-meta{white-space:normal;line-height:1.4}.course-item{padding:var(--space-md)}.course-name{font-size:.85rem}.course-meta{font-size:.73rem}.exam-card{padding:var(--space-md)}.exam-course-name{font-size:.88rem}.exam-detail{font-size:.78rem}.section-title{font-size:1rem}.today-banner{padding:var(--space-md)}.today-banner-text h3{font-size:.85rem}.today-banner-text p{font-size:.75rem}.select-bar{flex-wrap:wrap;gap:var(--space-xs)}.weekly-grid{grid-template-columns:1fr;gap:var(--space-sm)}.weekly-day{min-height:auto}.weekly-day-header{padding:var(--space-sm) var(--space-md)}.weekly-nav-center{flex-direction:column;gap:var(--space-xs)}.weekly-range{font-size:.85rem;text-align:center}.weekly-exam-name{font-size:.8rem}.weekly-exam-meta{font-size:.7rem}.weekly-no-exam{display:none}}@media(max-width:420px){.main-content{padding:var(--space-md) var(--space-sm)}.hero-card{padding:var(--space-md)}.hero-course{font-size:1.05rem}.hero-countdown{gap:var(--space-sm)}.countdown-unit{min-width:60px;padding:var(--space-xs) var(--space-sm)}.countdown-value{font-size:1.2rem}.nav-tab{font-size:.8rem;padding:var(--space-xs) var(--space-sm)}.nav-tab svg{width:14px;height:14px}.settings-search input{font-size:.85rem;padding:var(--space-sm) var(--space-sm) var(--space-sm) 38px}.settings-search svg{width:16px;height:16px;left:var(--space-sm)}}
