:root{--primary-hue:250;--secondary-hue:174;--primary:hsl(var(--primary-hue), 85%, 60%);--primary-glow:hsla(var(--primary-hue), 85%, 60%, .15);--primary-hover:hsl(var(--primary-hue), 85%, 50%);--secondary:hsl(var(--secondary-hue), 85%, 50%);--secondary-glow:hsla(var(--secondary-hue), 85%, 50%, .15);--bg-app:#f9f9fb;--bg-sidebar:#f0f0f4;--bg-card:#ffffffb3;--bg-glass:#fff6;--border-color:#e3e3e8cc;--border-glow:hsla(var(--primary-hue), 85%, 60%, .1);--text-primary:#17171c;--text-secondary:#6d6d78;--text-muted:#a1a1aa;--text-on-primary:#fff;--shadow-sm:0 2px 8px #0000000a;--shadow-md:0 8px 30px #0000000f;--shadow-lg:0 16px 40px #0000001a;--shadow-inset:inset 0 2px 4px #00000005;--font-sans:"Plus Jakarta Sans", "Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;--sidebar-width:280px;--header-height:80px;--border-radius-lg:20px;--border-radius-md:14px;--border-radius-sm:8px;--transition-smooth:all .3s cubic-bezier(.25, .8, .25, 1);--transition-bounce:all .5s cubic-bezier(.175, .885, .32, 1.275)}[data-theme=dark]{--bg-app:#0d0d16;--bg-sidebar:#14141f;--bg-card:#181825bf;--bg-glass:#14141f73;--border-color:#272735b3;--border-glow:hsla(var(--primary-hue), 85%, 65%, .15);--text-primary:#f4f4f6;--text-secondary:#afafb6;--text-muted:#6d6d78;--shadow-sm:0 2px 8px #0003;--shadow-md:0 8px 30px #0000004d;--shadow-lg:0 16px 40px #0006;--shadow-inset:inset 0 2px 4px #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-primary);min-height:100vh;transition:background-color .3s,color .3s;overflow-x:hidden}#root{min-height:100vh;display:flex}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.glass-panel{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);transition:var(--transition-smooth)}.glass-panel:hover{box-shadow:var(--shadow-lg);border-color:var(--border-glow)}.app-container{width:100vw;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);z-index:100;height:100vh;transition:var(--transition-smooth);flex-direction:column;padding:2rem 1.5rem;display:flex;position:fixed;top:0;left:0}.logo-container{align-items:center;gap:.75rem;margin-bottom:3rem;padding-left:.5rem;display:flex}.logo-icon{background:linear-gradient(135deg, var(--primary), var(--secondary));border-radius:var(--border-radius-md);color:#fff;width:40px;height:40px;box-shadow:0 4px 15px var(--primary-glow);justify-content:center;align-items:center;font-size:1.5rem;font-weight:800;display:flex}.logo-text{letter-spacing:-.5px;background:linear-gradient(135deg, var(--text-primary), var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.5rem;font-weight:800}.nav-list{flex-direction:column;flex-grow:1;gap:.5rem;list-style:none;display:flex}.nav-item{width:100%}.nav-link{color:var(--text-secondary);border-radius:var(--border-radius-md);transition:var(--transition-smooth);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:1rem;width:100%;padding:.85rem 1rem;font-size:.95rem;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{color:var(--text-primary);background-color:var(--bg-card)}.nav-link.active{color:var(--text-on-primary);background:linear-gradient(135deg, var(--primary), hsl(var(--primary-hue), 85%, 55%));box-shadow:0 8px 20px var(--primary-glow)}.sidebar-footer{flex-direction:column;gap:1rem;margin-top:auto;display:flex}.theme-toggle-btn{border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:var(--transition-smooth);justify-content:center;align-items:center;gap:.5rem;padding:.75rem;font-weight:500;display:flex}.theme-toggle-btn:hover{background:var(--border-color)}.main-content{margin-left:var(--sidebar-width);min-height:100vh;max-width:calc(100vw - var(--sidebar-width));flex-direction:column;flex-grow:1;gap:2rem;padding:2.5rem;display:flex}.content-header{justify-content:space-between;align-items:center;display:flex}.header-title-section h1{letter-spacing:-.5px;color:var(--text-primary);margin-bottom:.25rem;font-size:2.2rem;font-weight:800}.header-title-section p{color:var(--text-secondary);font-size:.95rem}.user-profile-summary{border-radius:var(--border-radius-lg);background:var(--bg-card);border:1px solid var(--border-color);align-items:center;gap:1rem;padding:.5rem 1rem;display:flex}.user-avatar{background:linear-gradient(135deg, var(--secondary), var(--primary));color:#fff;border:2px solid var(--border-color);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1rem;font-weight:600;display:flex}.user-info{flex-direction:column;display:flex}.user-name{color:var(--text-primary);font-size:.95rem;font-weight:600}.user-role{color:var(--text-muted);font-size:.75rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;display:grid}.stat-card{align-items:center;gap:1.25rem;padding:1.5rem;display:flex}.stat-icon-container{border-radius:var(--border-radius-md);justify-content:center;align-items:center;width:54px;height:54px;font-size:1.5rem;display:flex}.stat-icon-container.primary{background-color:var(--primary-glow);color:var(--primary)}.stat-icon-container.secondary{background-color:var(--secondary-glow);color:var(--secondary)}.stat-details{flex-direction:column;display:flex}.stat-value{color:var(--text-primary);font-size:1.8rem;font-weight:800;line-height:1.1}.stat-label{color:var(--text-secondary);margin-top:.25rem;font-size:.85rem}.dashboard-split{grid-template-columns:1.6fr 1fr;gap:2rem;display:grid}@media (width<=1100px){.dashboard-split{grid-template-columns:1fr}}.section-card{flex-direction:column;gap:1.5rem;padding:1.75rem;display:flex}.section-header{justify-content:space-between;align-items:center;display:flex}.section-header h2{color:var(--text-primary);font-size:1.3rem;font-weight:700}.section-action{color:var(--primary);cursor:pointer;font-size:.85rem;font-weight:600;text-decoration:none}.section-action:hover{text-decoration:underline}.course-progress-list{flex-direction:column;gap:1.25rem;display:flex}.course-progress-item{border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-glass);transition:var(--transition-smooth);flex-direction:column;gap:.5rem;padding:1rem;display:flex}.course-progress-item:hover{border-color:var(--border-glow);transform:translateY(-2px)}.course-meta{justify-content:space-between;align-items:center;display:flex}.course-name{color:var(--text-primary);font-size:.95rem;font-weight:600}.course-pct{color:var(--primary);font-size:.85rem;font-weight:700}.progress-bar-container{background-color:var(--border-color);border-radius:4px;height:8px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--primary), var(--secondary));border-radius:4px;height:100%;transition:width .8s cubic-bezier(.1,.8,.25,1)}.ai-buddy-card{flex-direction:column;height:380px;padding:1.5rem;display:flex}.ai-messages-container{flex-direction:column;flex-grow:1;gap:.85rem;margin-bottom:1rem;padding-right:.5rem;display:flex;overflow-y:auto}.ai-message{border-radius:var(--border-radius-md);max-width:85%;padding:.75rem 1rem;font-size:.9rem;line-height:1.4;animation:.3s forwards slideIn}.ai-message.system{background-color:var(--border-color);color:var(--text-primary);border-bottom-left-radius:4px;align-self:flex-start}.ai-message.user{background-color:var(--primary);color:var(--text-on-primary);box-shadow:0 4px 12px var(--primary-glow);border-bottom-right-radius:4px;align-self:flex-end}.ai-input-wrapper{gap:.5rem;display:flex}.ai-input{border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary);transition:var(--transition-smooth);outline:none;flex-grow:1;padding:.75rem 1rem;font-size:.9rem}.ai-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.ai-send-btn{background:var(--primary);color:#fff;border-radius:var(--border-radius-md);cursor:pointer;transition:var(--transition-smooth);border:none;padding:.75rem 1.25rem;font-weight:600}.ai-send-btn:hover{background:var(--primary-hover);box-shadow:0 4px 12px var(--primary-glow)}.flashcards-container{flex-direction:column;justify-content:center;align-items:center;gap:2rem;min-height:450px;display:flex}.deck-selector{gap:1rem;margin-bottom:1rem;display:flex}.deck-chip{border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:var(--transition-smooth);border-radius:50px;padding:.5rem 1.25rem;font-weight:500}.deck-chip.active{background:var(--primary-glow);color:var(--primary);border-color:var(--primary)}.card-scene{perspective:1000px;cursor:pointer;width:450px;height:280px}@media (width<=600px){.card-scene{width:90vw;height:260px}}.flashcard{width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1);position:relative}.flashcard.flipped{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;border-radius:var(--border-radius-lg);width:100%;height:100%;box-shadow:var(--shadow-md);border:1px solid var(--border-color);flex-direction:column;justify-content:space-between;padding:2.5rem;display:flex;position:absolute}.card-face.front{background:linear-gradient(135deg, var(--bg-card), var(--bg-app));color:var(--text-primary)}.card-face.back{background:linear-gradient(135deg, var(--primary), hsl(var(--primary-hue), 90%, 65%));color:var(--text-on-primary);border-color:#0000;transform:rotateY(180deg)}.card-category{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);font-size:.75rem;font-weight:700}.card-face.back .card-category{color:#ffffffb3}.card-main-text{text-align:center;flex-grow:1;justify-content:center;align-items:center;font-size:1.4rem;font-weight:600;display:flex}.card-hint{text-align:center;color:var(--text-muted);font-size:.8rem}.card-face.back .card-hint{color:#ffffffb3}.card-controls{align-items:center;gap:1.5rem;display:flex}.control-btn{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;width:50px;height:50px;transition:var(--transition-smooth);border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;display:flex}.control-btn:hover{background:var(--border-color);transform:scale(1.05)}.courses-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;display:grid}.course-card{flex-direction:column;gap:1.5rem;padding:2rem;display:flex;position:relative;overflow:hidden}.course-card:before{content:"";background:linear-gradient(to bottom, var(--primary), var(--secondary));width:6px;height:100%;position:absolute;top:0;left:0}.course-header-row{justify-content:space-between;align-items:flex-start;display:flex}.course-title{color:var(--text-primary);font-size:1.25rem;font-weight:700}.course-instructor{color:var(--text-secondary);margin-top:.25rem;font-size:.85rem}.course-difficulty-badge{background:var(--primary-glow);color:var(--primary);border-radius:50px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.course-stats-bar{color:var(--text-muted);gap:1rem;font-size:.8rem;display:flex}.course-btn{border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-app);width:100%;color:var(--text-primary);cursor:pointer;text-align:center;transition:var(--transition-smooth);padding:.85rem;font-weight:600}.course-btn:hover{background:var(--primary);color:var(--text-on-primary);box-shadow:0 4px 15px var(--primary-glow);border-color:#0000}.analytics-grid{grid-template-columns:1fr;gap:2rem;display:grid}.chart-panel{padding:2rem}.chart-svg-container{width:100%;height:280px;margin-top:1.5rem}.chart-bars-group{border-bottom:2px solid var(--border-color);justify-content:space-between;align-items:flex-end;height:200px;margin-bottom:.75rem;padding:0 1rem;display:flex}.chart-bar-col{flex-direction:column;flex-grow:1;align-items:center;gap:.5rem;display:flex}.chart-bar-fill{background:linear-gradient(to top, var(--primary), var(--secondary));cursor:pointer;border-top-left-radius:6px;border-top-right-radius:6px;width:32px;transition:height 1s ease-in-out;position:relative}.chart-bar-fill:hover{filter:brightness(1.1)}.chart-tooltip{background:var(--text-primary);color:var(--bg-app);opacity:0;transition:var(--transition-smooth);pointer-events:none;white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:.75rem;font-weight:600;position:absolute;top:-35px}.chart-bar-fill:hover .chart-tooltip{opacity:1}.chart-label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.settings-form{flex-direction:column;gap:1.5rem;max-width:600px;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--text-primary);font-size:.9rem;font-weight:600}.form-group input,.form-group select{border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary);transition:var(--transition-smooth);outline:none;padding:.85rem 1rem;font-size:.95rem}.form-group input:focus,.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.save-settings-btn{border-radius:var(--border-radius-md);background:var(--primary);color:#fff;cursor:pointer;transition:var(--transition-smooth);box-shadow:0 4px 15px var(--primary-glow);border:none;align-self:flex-start;padding:.85rem 2rem;font-weight:600}.save-settings-btn:hover{background:var(--primary-hover)}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.sidebar{align-items:center;width:80px;padding:1.5rem .5rem}.logo-text,.nav-label,.sidebar-footer span,.theme-toggle-btn span{display:none}.logo-container{margin-bottom:2rem;padding-left:0}.main-content{max-width:calc(100vw - 80px);margin-left:80px;padding:1.5rem}.nav-link{justify-content:center;padding:.85rem}}
