@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}.type-pill.free-tag{color:var(--live-color);background:#10b98126;border-color:#10b98166}.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}}.app-container.stealth-mode{--bg-dark:#000;--glass-surface:#0a0a0c;--glass-border:#333;--glass-highlight:#222;--text-primary:#888;--text-secondary:#555;--accent-blue:#666;--accent-purple:#444;--live-color:#888;--live-glow:transparent;--live-gradient:#0f0f11;--completed-color:#444;--completed-bg:transparent}.stealth-mode *{box-shadow:none!important;text-shadow:none!important;background-image:none!important;animation:none!important}.stealth-mode body{background-image:none!important}.stealth-mode .active-badge{color:#888!important;background:0 0!important;border:1px solid #555!important;padding:1px 6px!important}.stealth-mode .app-logo{display:none!important}.stealth-mode h1{-webkit-text-fill-color:initial!important;color:#888!important;background:0 0!important;font-family:monospace!important;font-size:1.5rem!important}.stealth-mode .subtitle,.stealth-mode .header p,.stealth-mode .timeline-item.active-class:after{display:none!important}.stealth-mode .room{color:#888!important;background:0 0!important;border:1px solid #333!important}.blinking-cursor{animation:1s step-end infinite blink}@keyframes blink{0%,to{color:#0000}50%{color:#0f0}}.weekly-grid-container{border:1px solid var(--glass-border);background:var(--glass-surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;margin:1.5rem 0;overflow-x:auto}.weekly-grid-table{border-collapse:collapse;text-align:center;width:100%;font-size:.85rem}.weekly-grid-table th,.weekly-grid-table td{border:1px solid var(--glass-border);vertical-align:middle;min-width:110px;padding:.8rem}.weekly-grid-table th{color:var(--text-primary);background:#ffffff0d;font-family:Outfit,sans-serif;font-weight:700}.weekly-grid-time-col{color:var(--text-secondary);background:#ffffff05;font-weight:600;min-width:90px!important}.weekly-grid-break-row{color:#f59e0b;font-weight:700;background:#f59e0b0d!important}.weekly-grid-class-cell{text-align:left;background:#3b82f60d;border-left:3px solid var(--accent-blue)!important;padding:.5rem .8rem!important}.weekly-grid-class-cell.free-subject{background:#10b9810d;border-left-color:var(--live-color)!important}.weekly-grid-class-name{color:#fff;margin-bottom:.2rem;font-size:.9rem;font-weight:700}.weekly-grid-class-details{color:var(--text-secondary);font-size:.75rem;line-height:1.3}.vscode-container{color:#d4d4d4;text-align:left;background:#1e1e1e;flex-direction:column;height:100vh;font-family:Consolas,Courier New,monospace;font-size:.85rem;display:flex;overflow:hidden}.vscode-main{flex:1;display:flex;overflow:hidden}.vscode-sidebar{box-sizing:border-box;-webkit-user-select:none;user-select:none;background:#252526;border-right:1px solid #1e1e1e;flex-direction:column;width:220px;padding:.8rem;display:flex}.vscode-sidebar-title{text-transform:uppercase;color:#bbb;letter-spacing:.5px;margin-bottom:.8rem;font-size:.75rem;font-weight:700}.vscode-tree-item{color:#ccc;cursor:pointer;border-radius:3px;align-items:center;gap:.4rem;padding:.2rem .4rem;display:flex}.vscode-tree-item.active{color:#fff;background:#37373d}.vscode-editor-pane{flex-direction:column;flex:1;display:flex;overflow:hidden}.vscode-tabs{background:#2d2d2d;align-items:flex-end;height:35px;display:flex}.vscode-tab{color:#969696;cursor:pointer;box-sizing:border-box;background:#2d2d2d;border-right:1px solid #252526;align-items:center;gap:.5rem;height:100%;padding:.5rem 1rem;display:flex}.vscode-tab.active{color:#fff;background:#1e1e1e;border-top:1px solid #007acc}.vscode-code{text-align:left;flex:1;padding:1rem;line-height:1.5;display:flex;overflow-y:auto}.vscode-line-nums{color:#858585;text-align:right;-webkit-user-select:none;user-select:none;padding-right:1rem}.vscode-code-content{color:#d4d4d4;white-space:pre}.vscode-status-bar{color:#fff;-webkit-user-select:none;user-select:none;background:#007acc;justify-content:space-between;align-items:center;height:22px;padding:0 .5rem;font-size:.75rem;display:flex}.vsc-comment{color:#6a9955}.vsc-keyword{color:#569cd6}.vsc-string{color:#ce9178}.vsc-number{color:#b5cea8}.vsc-type{color:#4ec9b0}.vsc-property{color:#9cdcfe}.vsc-constant{color:#4fc1ff}.google-container{color:#bdc1c6;text-align:left;-webkit-user-select:none;user-select:none;background-color:#202124;flex-direction:column;min-height:100vh;font-family:Roboto,Arial,sans-serif;display:flex}.google-header{border-bottom:1px solid #3c4043;align-items:center;padding:1.2rem 2rem;display:flex}.google-logo{letter-spacing:-.5px;margin-right:2.5rem;font-family:Product Sans,Arial,sans-serif;font-size:1.6rem;font-weight:700}.google-search-bar{background:#303134;border:1px solid #0000;border-radius:24px;align-items:center;width:600px;padding:.5rem 1.2rem;display:flex;box-shadow:0 1px 6px #20212447}.google-search-bar input{color:#e8eaed;background:0 0;border:none;outline:none;width:100%;font-size:1rem}.google-results-info{color:#9aa0a6;padding:1.5rem 0 .5rem 11.5rem;font-size:.85rem}.google-results-list{flex-direction:column;gap:1.8rem;max-width:652px;margin-top:.5rem;padding-left:11.5rem;display:flex}.google-result-card{flex-direction:column;display:flex}.google-result-url{color:#bdc1c6;margin-bottom:.2rem;font-size:.75rem}.google-result-title{color:#8ab4f8;cursor:pointer;width:fit-content;margin-bottom:.3rem;font-size:1.25rem;text-decoration:none;display:inline-block}.google-result-title:hover{text-decoration:underline}.google-result-snippet{color:#bdc1c6;font-size:.875rem;line-height:1.58}.google-footer{color:#9aa0a6;background:#171717;border-top:1px solid #212121;justify-content:space-between;margin-top:auto;padding:1.2rem 11.5rem;font-size:.85rem;display:flex}
