:root{--bg-color: #0f172a;--panel-bg: #1e293b;--panel-bg-alt: #162032;--border-color: #334155;--text-main: #f8fafc;--text-muted: #94a3b8;--accent: #3b82f6;--accent-hover: #2563eb;--danger: #ef4444;--danger-hover: #dc2626;font-family:Outfit,Poppins,system-ui,-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.app-container{max-width:1600px;margin:0 auto;padding:2rem;width:100%}header{margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem;background:#1e293bb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);padding:1rem 1.5rem;border-radius:20px;box-shadow:0 10px 30px -10px #00000080;position:relative;z-index:50}h1{font-size:2.5rem;font-weight:800;background:linear-gradient(to right,#60a5fa 20%,#a78bfa,#f472b6,#a78bfa,#60a5fa);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem;animation:wave 5s linear infinite;display:inline-block;cursor:pointer}@keyframes wave{to{background-position:200% center}}h1:hover{filter:brightness(1.2)}.header-subtitle{color:var(--text-muted);font-size:.9rem}.creator-link{color:var(--accent);text-decoration:none;font-weight:700;transition:color .2s,text-decoration .2s}.creator-link:hover{color:var(--accent-hover);text-decoration:underline}.header-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.timetable-wrapper{overflow-x:auto;border-radius:12px;border:1px solid var(--border-color);background-color:var(--panel-bg);box-shadow:0 10px 25px -5px #00000080;margin-bottom:2rem;-webkit-overflow-scrolling:touch}.timetable-wrapper::-webkit-scrollbar{height:10px;width:10px}.timetable-wrapper::-webkit-scrollbar-track{background:#0f172a;border-radius:0 0 12px 12px}.timetable-wrapper::-webkit-scrollbar-thumb{background:#475569;border-radius:6px;border:2px solid #0f172a}.timetable-wrapper::-webkit-scrollbar-thumb:hover{background:#64748b}.timetable-grid{display:grid;grid-template-columns:135px repeat(var(--cols, 12),minmax(110px,1fr));grid-template-rows:60px repeat(5,minmax(90px,auto));min-width:calc(135px + (var(--cols, 12) * 110px));background-color:var(--panel-bg);border-radius:8px}.header-cell{background-color:#0f172a;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);padding:.5rem;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;color:var(--text-muted);text-align:center;position:sticky;top:0;z-index:10;transition:opacity .3s ease}.day-cell{background-color:var(--panel-bg);border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);padding:1rem;display:flex;align-items:center;justify-content:center;font-weight:600;transition:opacity .3s ease}.is-horizontally-scrolled .header-cell:first-child{opacity:.15;pointer-events:none}.is-horizontally-scrolled .day-cell:hover,.is-horizontally-scrolled .header-cell:first-child:hover{opacity:.9;pointer-events:auto}.grid-cell{border-right:1px dashed #334155;border-bottom:1px solid var(--border-color);transition:background-color .2s;cursor:pointer}.grid-cell:hover{background-color:#3b82f61a}.subject-item{position:relative;margin:4px;border-radius:12px;padding:8px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;cursor:grab;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s,filter .2s;color:#fff;border:1px solid rgba(255,255,255,.3);z-index:2;box-shadow:0 4px 15px #0003,inset 0 1px 1px #fff3;overflow:hidden;touch-action:none}.subject-item:active{cursor:grabbing}.resize-handle{position:absolute;top:0;bottom:0;width:12px;cursor:ew-resize;z-index:10;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s,background-color .2s}.subject-item:hover .resize-handle{opacity:1}.resize-handle:hover{background-color:#ffffff1a}.resize-handle.left{left:0}.resize-handle.right{right:0}.resize-handle:after{content:"";width:3px;height:16px;background-color:#fff9;border-radius:2px}.resize-handle:hover:after{background-color:#fff}.subject-item:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 20px #0006,inset 0 1px 1px #ffffff4d;z-index:10;filter:brightness(1.1)}.type-badge{position:absolute;top:4px;right:4px;background-color:#fff3;color:#fff;padding:2px 6px;border-radius:4px;font-size:.65rem;font-weight:600;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.subject-name{font-weight:700;font-size:.95rem;margin-bottom:2px;line-height:1.2}.subject-section{font-size:.75rem;background-color:#0000004d;padding:2px 6px;border-radius:4px;margin-bottom:4px;font-weight:600}.subject-details{font-size:.75rem;opacity:.9;line-height:1.2}.empty-state-overlay{display:flex;align-items:center;justify-content:center;height:100%;width:100%;pointer-events:none;z-index:1}.empty-state-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#1e293b99;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);padding:3rem;border-radius:24px;box-shadow:0 20px 40px -10px #0009;transform:translateY(-20px)}.icon-wrapper{background:#3b82f626;padding:1rem;border-radius:50%;margin-bottom:1rem;color:#60a5fa}.empty-state-content h3{font-size:1.5rem;font-weight:700;margin-bottom:.5rem;background:linear-gradient(135deg,#f8fafc,#94a3b8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.empty-state-content p{color:var(--text-muted);max-width:300px;line-height:1.5}.modal-overlay{position:fixed;inset:0;background-color:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;animation:fadeIn .2s forwards;padding:1rem}@keyframes fadeIn{to{opacity:1}}.modal-content{background-color:var(--panel-bg);border:1px solid var(--border-color);border-radius:16px;width:100%;max-width:650px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000080;transform:scale(.95);animation:scaleUp .2s forwards}@keyframes scaleUp{to{transform:scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem 1rem;border-bottom:1px solid var(--border-color)}.modal-body{padding:1.5rem 2rem;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.modal-body::-webkit-scrollbar{display:none}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1rem 2rem 1.5rem;border-top:1px solid var(--border-color);background-color:#1a2332;border-bottom-left-radius:16px;border-bottom-right-radius:16px}.modal-title{font-size:1.35rem;font-weight:600;color:var(--text-main)}.close-button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:6px;transition:all .2s;display:flex;align-items:center;justify-content:center}.close-button:hover{background-color:#ffffff1a;color:var(--text-main)}.form-group{margin-bottom:1.25rem;position:relative}.form-group label{display:block;font-size:.85rem;font-weight:500;color:var(--text-muted);margin-bottom:.5rem}.form-control{width:100%;background-color:#0f172a;border:1px solid var(--border-color);color:var(--text-main);padding:.75rem 1rem;border-radius:8px;font-size:.95rem;transition:border-color .2s;font-family:inherit;scrollbar-width:thin;scrollbar-color:#475569 transparent}.form-control::-webkit-scrollbar{width:6px;height:6px}.form-control::-webkit-scrollbar-track{background:transparent}.form-control::-webkit-scrollbar-thumb{background:#475569;border-radius:10px}.form-control::-webkit-scrollbar-thumb:hover{background:#64748b}select.form-control{appearance:auto}.form-control:focus{outline:none;border-color:var(--accent)}.form-row{display:flex;gap:1rem}.form-row>.form-group{flex:1}.sessions-container{margin-top:2rem;border-top:1px solid var(--border-color);padding-top:1.5rem}.sessions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.sessions-header h3{font-size:1.1rem;font-weight:600}.session-box{background-color:var(--panel-bg-alt);border:1px solid var(--border-color);padding:1rem;border-radius:12px;margin-bottom:1rem;position:relative}.session-box-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-weight:600;color:var(--accent);border-bottom:1px solid rgba(255,255,255,.05);padding-bottom:.5rem}.remove-session-btn{background:none;border:none;color:var(--danger);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;transition:all .2s}.remove-session-btn:hover{background-color:#ef44441a}.color-picker{display:flex;gap:.5rem;flex-wrap:wrap}.color-option{width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .2s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:#fff;box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px #fff}.custom-color-wrapper{position:relative;width:32px;height:32px;border-radius:50%;cursor:pointer;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);transition:transform .2s,box-shadow .2s}.custom-color-wrapper:hover{transform:scale(1.1)}.custom-color-wrapper.selected{box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px #fff}.custom-color-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.btn{padding:.75rem 1.25rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;border:none;font-family:inherit;font-size:.95rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-secondary{background-color:transparent;color:var(--text-main);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:#ffffff0d}.btn-primary{background-color:var(--accent);color:#fff}.btn-primary:hover{background-color:var(--accent-hover)}.btn-danger{background-color:var(--danger);color:#fff;margin-right:auto}.btn-danger:hover{background-color:var(--danger-hover)}.btn-danger-outline{background-color:transparent;color:var(--danger);border:1px solid var(--danger)}.btn-danger-outline:hover{background-color:#ef44441a}.dropdown-container{position:relative;display:inline-block}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background-color:var(--panel-bg);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 10px 15px -3px #00000080;min-width:180px;display:flex;flex-direction:column;z-index:50;overflow:hidden;animation:fadeIn .15s forwards}.dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:none;border:none;width:100%;text-align:left;color:var(--text-main);font-size:.9rem;cursor:pointer;transition:background-color .2s}.dropdown-item:hover{background-color:#ffffff0d}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:.5rem}.text-sm{font-size:.875rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.font-semibold{font-weight:600}@media(max-width:768px){.app-container{padding:1rem}header{flex-direction:column;align-items:flex-start}.hide-on-mobile{display:none}.header-actions{width:100%;justify-content:flex-end;gap:.5rem}.header-actions>.btn,.header-actions .dropdown-container>.btn{flex:none;width:44px;height:44px;padding:0;justify-content:center;border-radius:10px}.header-actions .dropdown-container{flex:none}.add-subject-btn{flex-basis:auto!important}.form-row{flex-direction:row;gap:.75rem;flex-wrap:wrap}.form-row>.form-group:first-child{flex:3 1 0;min-width:0}.form-row>.form-group:last-child{flex:1 1 70px;min-width:70px}.session-box .form-row{flex-direction:column;gap:0}.session-box .form-row.time-row{flex-direction:row;gap:.5rem}.session-box .form-row.time-row .form-group{flex:1;min-width:0}.dropdown-container{flex:none}.dropdown-container>.btn{width:44px;height:44px}.dropdown-menu{left:auto;right:0;min-width:180px;z-index:100}.modal-overlay{align-items:flex-end;padding:0}.modal-content{margin:0;max-height:90vh;border-radius:20px 20px 0 0;box-shadow:0 -10px 40px #00000080;animation:slideUp .3s cubic-bezier(.16,1,.3,1) forwards;transform:translateY(100%)}.modal-body{padding:1rem}.modal-header,.modal-footer{padding:1.25rem 1rem}.modal-footer .btn{padding:.6rem .8rem;font-size:.9rem;flex:1;justify-content:center}.session-box{padding:.85rem}.color-picker{gap:.4rem}.color-option,.custom-color-wrapper{width:28px;height:28px}.resize-handle{opacity:.6;width:20px}.resize-handle:after{height:24px;width:4px}}@keyframes slideUp{to{transform:translateY(0)}}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-input-wrapper .form-control{padding-right:2.5rem}.search-icon{position:absolute;right:1rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.subject-dropdown{position:absolute;top:100%;left:0;right:0;background:#1e293b;border:1px solid #3b82f6;border-radius:12px;max-height:250px;overflow-y:auto;z-index:2000;margin-top:.5rem;box-shadow:0 10px 40px #0009;animation:fadeIn .2s ease-out;scrollbar-width:none;-ms-overflow-style:none}.subject-dropdown::-webkit-scrollbar{width:6px}.subject-option{padding:.8rem 1rem;cursor:pointer;transition:all .2s ease;font-size:.9rem;color:var(--text-secondary);border-bottom:1px solid rgba(255,255,255,.05)}.subject-option:last-child{border-bottom:none}.subject-option:hover{background:#3b82f626;color:var(--text-primary);padding-left:1.25rem}.subject-no-results{padding:1rem;color:var(--text-muted);text-align:center;font-style:italic;font-size:.9rem}.custom-entry{background:#1a2b42;color:#60a5fa;font-weight:600;border-bottom:1px solid rgba(59,130,246,.3);position:sticky;top:0;z-index:20;display:flex;align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.custom-entry:hover{background:#1e3352!important}.mr-2{margin-right:.5rem}.subject-dropdown::-webkit-scrollbar{width:5px}.subject-dropdown::-webkit-scrollbar-track{background:transparent}.subject-dropdown::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.subject-dropdown::-webkit-scrollbar-thumb:hover{background:#fff3}.landing-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;width:100%;position:relative;overflow:hidden;background-color:var(--bg-color);padding:2rem;z-index:1}.gradient-bg{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:-1}.gradient-sphere{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:float 20s infinite linear alternating}.sphere-1{width:500px;height:500px;background:radial-gradient(circle,#3b82f6cc,#3b82f600 70%);top:-100px;left:-100px;animation:float1 15s ease-in-out infinite alternate}.sphere-2{width:600px;height:600px;background:radial-gradient(circle,#a855f799,#a855f700 70%);bottom:-200px;right:-100px;animation:float2 18s ease-in-out infinite alternate}.sphere-3{width:400px;height:400px;background:radial-gradient(circle,#ec489980,#ec489900 70%);top:30%;left:50%;transform:translate(-50%);animation:float3 22s ease-in-out infinite alternate}@keyframes float1{0%{transform:translate(0) scale(1)}to{transform:translate(100px,50px) scale(1.2)}}@keyframes float2{0%{transform:translate(0) scale(1)}to{transform:translate(-100px,-50px) scale(1.1)}}@keyframes float3{0%{transform:translate(-50%) scale(1)}to{transform:translate(calc(-50% + 50px),100px) scale(1.3)}}.landing-content{text-align:center;max-width:800px;margin-top:5vh;display:flex;flex-direction:column;align-items:center}.badge{display:inline-flex;align-items:center;gap:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);padding:8px 16px;border-radius:99px;color:var(--text-muted);font-size:.9rem;font-weight:500;margin-bottom:2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.landing-title{font-size:clamp(3rem,8vw,5rem);font-weight:800;line-height:1.1;color:#fff;margin-bottom:1.5rem;letter-spacing:-.02em}.text-gradient{background:linear-gradient(135deg,#60a5fa,#d8b4fe,#f472b6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:inline-block}.landing-subtitle{font-size:clamp(1.1rem,3vw,1.3rem);color:var(--text-muted);max-width:600px;margin:0 auto 3rem;line-height:1.6}.btn-glow{position:relative;display:inline-flex;align-items:center;gap:12px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;padding:1rem 2rem;font-size:1.2rem;font-weight:600;border:none;border-radius:100px;cursor:pointer;transition:all .3s ease;overflow:hidden;box-shadow:0 10px 25px -5px #3b82f680}.btn-glow:hover{transform:translateY(-2px);box-shadow:0 20px 30px -10px #8b5cf699}.btn-glow:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#fff3,#fff0);opacity:0;transition:opacity .3s ease}.btn-glow:hover:before{opacity:1}.arrow-icon{transition:transform .3s ease}.btn-glow:hover .arrow-icon{transform:translate(5px)}.app-preview{margin-top:4rem;width:100%;max-width:900px;perspective:1000px}.preview-window{background:#1e293bb3;border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 25px 50px -12px #000c,0 0 0 1px #ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);overflow:hidden;transform:rotateX(5deg) scale(.95);transition:transform .5s cubic-bezier(.175,.885,.32,1.275)}.app-preview:hover .preview-window{transform:rotateX(0) scale(1)}.window-header{padding:12px 16px;display:flex;gap:8px;background:#0003;border-bottom:1px solid rgba(255,255,255,.05)}.dot{width:12px;height:12px;border-radius:50%}.dot.red{background:#ef4444}.dot.yellow{background:#f59e0b}.dot.green{background:#10b981}.window-body{padding:2rem}.mock-grid{display:flex;flex-direction:column;gap:12px}.mock-item{height:24px;border-radius:6px;opacity:.8}.color-1{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.color-2{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.color-3{background:linear-gradient(90deg,#ec4899,#f472b6)}.color-4{background:linear-gradient(90deg,#10b981,#34d399)}.color-5{background:linear-gradient(90deg,#f59e0b,#fbbf24)}@media(max-width:768px){.landing-container{padding:1.5rem}.preview-window,.app-preview:hover .preview-window{transform:none}}
