@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@500;600;700;800&display=swap";:root{--bg-dark:#0a0a0c;--glass-surface:#191c2366;--glass-border:#ffffff14;--glass-highlight:#ffffff26;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-blue:#3b82f6;--accent-purple:#8b5cf6;--accent-glow:#3b82f666;--live-color:#10b981;--live-glow:#10b98180;--live-gradient:linear-gradient(135deg, #10b98133, #10b9810d);--completed-color:#ef4444;--completed-bg:#ef444408}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-primary);background-image:radial-gradient(circle at 10% 20%,#3b82f626,#0000 40%),radial-gradient(circle at 90% 80%,#8b5cf626,#0000 40%),radial-gradient(circle,#10b9810d,#0000 50%);background-attachment:fixed;min-height:100vh;font-family:Inter,sans-serif;line-height:1.6}h1,h2,h3{font-family:Outfit,sans-serif}.app-container{flex-direction:column;max-width:900px;min-height:100vh;margin:0 auto;padding:3rem 1.5rem;display:flex}.header{text-align:center;z-index:50;flex-direction:column;align-items:center;margin-bottom:4rem;animation:.8s ease-out fadeInDown;display:flex;position:relative}.app-logo{object-fit:cover;border:1px solid #ffffff1a;border-radius:20px;width:80px;height:80px;margin-bottom:1rem;animation:4s ease-in-out infinite float;box-shadow:0 10px 30px #10b98133}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.header h1{background:linear-gradient(135deg,#fff 0%,#a5b4fc 100%);-webkit-text-fill-color:transparent;letter-spacing:-1px;filter:drop-shadow(0 4px 12px #a5b4fc33);-webkit-background-clip:text;margin-bottom:1.5rem;font-size:3.5rem;font-weight:800}.section-selector{background:var(--glass-surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:100px;justify-content:center;align-items:center;gap:1rem;width:fit-content;margin:0 auto 1.5rem;padding:.5rem 1.5rem;display:flex;box-shadow:0 8px 32px #0000004d}.section-selector label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-size:.9rem;font-weight:500}.add-timetable-btn{color:#fff;cursor:pointer;background:#3b82f626;border:1px solid #3b82f64d;border-radius:100px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 15px #3b82f633}.add-timetable-btn:hover{background:var(--accent-blue);transform:translateY(-2px);box-shadow:0 8px 25px #3b82f666}.custom-select-container{width:180px;position:relative}.custom-select-trigger{color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;justify-content:space-between;align-items:center;padding:.2rem .5rem;font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:700;display:flex}.custom-select-trigger .chevron{color:var(--accent-blue);transition:transform .3s}.custom-select-trigger .chevron.open{transform:rotate(180deg)}.custom-select-dropdown{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);z-index:100;background:#141820f2;border-radius:16px;width:220px;animation:.2s ease-out forwards dropdownFadeIn;position:absolute;top:calc(100% + 15px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 10px 40px #00000080}.custom-select-option{color:var(--text-secondary);cursor:pointer;text-align:center;padding:.8rem 1.2rem;font-family:Inter,sans-serif;font-weight:600;transition:all .2s}.custom-select-option:hover{color:var(--text-primary);background:#ffffff0d}.custom-select-option.selected{background:var(--accent-blue);color:#fff}@keyframes dropdownFadeIn{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.subtitle{color:var(--text-secondary);font-size:1.2rem;font-weight:500}.hero-cards-container{gap:2rem;width:100%;margin-bottom:3rem;display:flex}@media (width<=480px){.hero-cards-container{flex-direction:column}}.next-class-card{background:var(--glass-surface);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:32px;flex:1;padding:2.5rem;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 20px 40px #0006,inset 0 1px #ffffff1a}.next-class-card.secondary{opacity:.8;filter:blur(.5px);transform:scale(.95)}.next-class-card.secondary:hover{opacity:1;filter:blur();transform:scale(1)}.next-class-card:before{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff0d 0%,#0000 100%);height:100%;position:absolute;top:0;left:0;right:0}.next-class-card.ongoing{border-color:var(--live-color);box-shadow:0 20px 50px #10b98126,inset 0 0 20px #10b9810d}.status-badge{text-transform:uppercase;letter-spacing:1.5px;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:100px;margin-bottom:1.5rem;padding:.5rem 1.2rem;font-size:.75rem;font-weight:700;display:inline-block}.next-class-card.ongoing .status-badge{background:var(--live-color);color:#000;border-color:var(--live-color);box-shadow:0 0 15px var(--live-glow)}.course-title{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;font-size:2.2rem;font-weight:800;line-height:1.2;display:flex}.course-title.no-class{color:var(--text-secondary);margin-bottom:0;font-size:1.8rem;font-weight:500}.course-details{flex-wrap:wrap;gap:2rem;margin-bottom:.5rem;display:flex}.course-details p{color:var(--text-primary);align-items:center;gap:.5rem;font-size:1.1rem;font-weight:500;display:flex}.course-details span{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-size:.85rem}.time-message{color:var(--text-secondary);margin-top:1.5rem;font-size:1.5rem;font-weight:700}.next-class-card.ongoing .time-message{color:var(--live-color)}.progress-bar-container{background:#ffffff1a;border-radius:10px;width:100%;height:6px;margin-top:1.5rem;overflow:hidden;box-shadow:inset 0 1px 3px #00000080}.progress-bar-fill{background:var(--live-color);height:100%;box-shadow:0 0 10px var(--live-glow);border-radius:10px;transition:width 1s linear}.schedule-section{margin-top:5rem}.schedule-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2rem;display:flex}.schedule-header h2{font-size:2rem;font-weight:700}.day-tabs{background:var(--glass-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:16px;gap:.5rem;padding:.4rem;display:flex}.day-tab{color:var(--text-secondary);cursor:pointer;letter-spacing:.5px;background:0 0;border:none;border-radius:12px;padding:.6rem 1.2rem;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1)}.day-tab:hover{color:var(--text-primary);background:#ffffff0d}.day-tab.active{color:#000;background:#fff;box-shadow:0 4px 15px #fff3}.day-tab.today{color:var(--live-color);border-bottom:2px solid var(--live-color);border-radius:12px 12px 4px 4px}.day-tab.today.active{background:var(--live-color);color:#000;box-shadow:0 4px 15px var(--live-glow);border-bottom:none;border-radius:12px}.selected-day-title{color:var(--accent-blue);text-transform:uppercase;letter-spacing:1px;margin-bottom:1.5rem;font-size:1.2rem}.timeline{flex-direction:column;gap:1.2rem;display:flex}.timeline-item{background:var(--glass-surface);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);opacity:0;border-radius:24px;padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);animation:.6s cubic-bezier(.2,.8,.2,1) forwards slideUpFade;display:flex;position:relative;overflow:hidden;transform:translateY(30px)}.timeline-item:hover{border-color:var(--glass-highlight);background:#1e232d99;transform:translateY(-4px)scale(1.01);box-shadow:0 10px 30px #0000004d}.time-block{border-right:1px solid var(--glass-border);flex-direction:column;justify-content:center;min-width:110px;margin-right:1.5rem;padding-right:1.5rem;display:flex}.start-time{color:var(--text-primary);font-family:Outfit,sans-serif;font-size:1.4rem;font-weight:700}.end-time{color:var(--text-secondary);font-family:Inter,sans-serif;font-size:.95rem;font-weight:500}.class-info{flex-direction:column;flex:1;justify-content:center;display:flex}.class-header-row{align-items:center;gap:1rem;margin-bottom:.4rem;display:flex}.class-info h3{color:#fff;font-size:1.4rem;font-weight:600}.type-pill{color:var(--text-secondary);background:#ffffff1a;border:1px solid #ffffff1a;border-radius:6px;padding:2px 8px;font-size:.7rem;font-weight:700}.class-info .teacher{color:var(--text-secondary);align-items:center;gap:.5rem;margin-bottom:.3rem;font-size:1rem;display:flex}.class-info .room{color:#fff;background:#f59e0b33;border:1px solid #f59e0b80;border-radius:8px;margin-top:.2rem;padding:4px 10px;font-size:.9rem;font-weight:700;display:inline-block;box-shadow:0 4px 10px #f59e0b26}.timeline-item.free-block{opacity:.7;background:0 0;border-style:dashed;border-color:#ffffff1a}.timeline-item.free-block:hover{box-shadow:none;background:#ffffff05;transform:none}.timeline-item.lunch-block{background:#f59e0b0d;border-color:#f59e0b33}.timeline-item.lunch-block:hover{border-color:#f59e0b66;transform:translateY(-2px);box-shadow:0 4px 20px #f59e0b1a}.timeline-item.completed-class{background:var(--completed-bg);opacity:.6;border-color:#ef444426}.timeline-item.completed-class:hover{box-shadow:none;opacity:.8;transform:none}.timeline-item.completed-class .class-info h3,.timeline-item.completed-class .start-time{color:var(--text-secondary);-webkit-text-decoration:line-through #ef444499;text-decoration:line-through #ef444499}.timeline-item.active-class{background:var(--live-gradient);border-color:var(--live-color);box-shadow:0 10px 30px #10b9811a}.timeline-item.active-class:after{content:"";background:var(--live-color);width:4px;height:100%;box-shadow:0 0 10px var(--live-glow);position:absolute;top:0;left:0}.active-badge{background:var(--live-color);color:#000;letter-spacing:1px;border-radius:100px;padding:4px 10px;font-size:.75rem;font-weight:800;animation:2s infinite pulse;position:absolute;top:1.2rem;right:1.5rem}@keyframes slideUpFade{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{box-shadow:0 0 #10b98166}70%{box-shadow:0 0 0 10px #10b98100}to{box-shadow:0 0 #10b98100}}.footer{text-align:center;border-top:1px solid var(--glass-border);margin-top:6rem;padding-top:2rem}.footer p{color:var(--text-secondary);font-size:.9rem}.footer strong{color:var(--text-primary)}.upload-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;animation:.3s ease-out fadeIn;display:flex;position:fixed;inset:0}.upload-modal{background:var(--glass-surface);border:1px solid var(--glass-border);text-align:center;border-radius:24px;width:90%;max-width:500px;padding:2.5rem;animation:.4s ease-out slideUpFade;position:relative;box-shadow:0 20px 50px #00000080}.close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:2rem;transition:color .2s;position:absolute;top:1rem;right:1.5rem}.close-btn:hover{color:#fff}.dropzone{border:2px dashed #fff3;border-radius:16px;margin:2rem 0;padding:3rem 1rem;transition:all .3s;position:relative}.dropzone:hover{border-color:var(--accent-blue);background:#ffffff0d}.dropzone input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.empty-state{color:var(--text-secondary);flex-direction:column;align-items:center;gap:1rem;display:flex}.file-info{color:var(--live-color);flex-direction:column;align-items:center;gap:1rem;font-weight:600;display:flex}.upload-btn{background:var(--accent-blue);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:1rem;font-size:1.1rem;font-weight:700;transition:all .3s}.upload-btn:disabled{color:var(--text-secondary);cursor:not-allowed;background:#ffffff1a}.upload-btn:not(:disabled):hover{background:#2563eb;border-color:#3b82f666;transform:translateY(-5px);box-shadow:0 15px 40px #3b82f640}.hero-room-badge{color:#f59e0b;letter-spacing:.5px;background:#f59e0b33;border:1px solid #f59e0b80;border-radius:6px;padding:2px 10px;font-family:Outfit,sans-serif;font-weight:700;display:inline-block;box-shadow:0 4px 10px #f59e0b26}.course-title{justify-content:center;align-items:center;gap:.5rem;font-size:2rem;display:flex}.status-text{justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-weight:600;display:flex}.status-text.uploading{color:var(--accent-blue)}.status-text.success{color:var(--live-color)}.status-text.error{color:var(--completed-color)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
