@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root,[data-theme=light]{--bg-deep: #e8eff5;--bg-surface: #ffffff;--bg-glass: rgba(255, 255, 255, .9);--primary: #0ea5e9;--primary-glow: rgba(14, 165, 233, .1);--accent: #f43f5e;--text-main: #0f172a;--text-muted: #64748b;--border: #cbd5e1;--border-light: rgba(203, 213, 225, .6);--diff-easy: #10b981;--diff-medium: #f59e0b;--diff-hard: #f43f5e;--diff-easy-bg: rgba(16, 185, 129, .4);--diff-medium-bg: rgba(245, 158, 11, .4);--diff-hard-bg: rgba(244, 63, 94, .4);--status-success-bg: rgba(16, 185, 129, .4);--status-error-bg: rgba(244, 63, 94, .4);--shadow-sm: 0 2px 4px rgba(15, 23, 42, .05);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .08);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .1);--shadow-premium: 0 20px 25px -5px rgba(15, 23, 42, .1), 0 10px 10px -5px rgba(15, 23, 42, .04);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1)}[data-theme=dark]{--bg-deep: #0c1524;--bg-surface: #1e293b;--bg-glass: rgba(30, 41, 59, .8);--primary: #0ea5e9;--primary-glow: rgba(14, 165, 233, .15);--accent: #f43f5e;--text-main: #f8fafc;--text-muted: #94a3b8;--border: #334155;--border-light: rgba(51, 65, 85, .5);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5);--shadow-premium: 0 20px 25px -5px rgba(0, 0, 0, .5)}*{margin:0;padding:0;box-sizing:border-box;font-family:Plus Jakarta Sans,sans-serif}body{background:var(--bg-deep);background-image:url(/study-bg.png);background-size:cover;background-attachment:fixed;background-position:center;color:var(--text-main);min-height:100vh;overflow-x:hidden;font-size:16px;-webkit-text-size-adjust:100%;line-height:1.5}h1,h2,h3,h4,h5,h6{line-height:1.2;margin-bottom:.5em;font-weight:700}h1{font-size:clamp(2rem,5vw,3rem)}h2{font-size:clamp(1.5rem,4vw,2.25rem)}h3{font-size:clamp(1.25rem,3vw,1.75rem)}img,video,canvas,svg{max-width:100%;height:auto;display:block}button{min-height:44px;touch-action:manipulation}.glass{background:var(--bg-glass);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid var(--border-light);border-radius:20px;box-shadow:var(--shadow-md);transition:all var(--transition-normal)}.glass:hover{box-shadow:var(--shadow-lg);border-color:var(--border)}.glass-interactive{cursor:pointer}.glass-interactive:hover{transform:translateY(-2px);border-color:var(--primary)}.gradient-text{background:linear-gradient(135deg,#0ea5e9,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-accent{background:linear-gradient(135deg,#f43f5e,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,#6366f1 100%);color:#fff;border:none;padding:12px 24px;border-radius:12px;font-weight:600;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-normal);position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0ea5e959}.btn-primary:hover:before{left:100%}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:transparent;color:var(--text-main);border:2px solid var(--border);padding:12px 24px;border-radius:12px;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.btn-secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-glow)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-surface) 25%,#e2e8f0 50%,var(--bg-surface) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}.skeleton-text{height:16px;margin-bottom:8px}.skeleton-title{height:24px;width:60%;margin-bottom:12px}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.skeleton-card{height:120px;border-radius:16px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes glow{0%,to{box-shadow:0 0 5px var(--primary),0 0 10px var(--primary)}50%{box-shadow:0 0 20px var(--primary),0 0 30px var(--primary)}}.glow{animation:glow 2s ease-in-out infinite}.glow-hover:hover{box-shadow:0 0 20px #0ea5e966}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.float{animation:float 3s ease-in-out infinite}@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1);opacity:1}}.bounce-in{animation:bounceIn .6s ease-out}@keyframes slideInUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInDown{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInRight{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}.slide-in-up{animation:slideInUp .4s ease-out}.slide-in-down{animation:slideInDown .4s ease-out}.slide-in-left{animation:slideInLeft .4s ease-out}.slide-in-right{animation:slideInRight .4s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .3s ease-out}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.scale-in{animation:scaleIn .3s var(--transition-spring)}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;background-image:radial-gradient(circle,var(--primary) 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:scale(10);opacity:0;transition:transform .5s,opacity .5s}.ripple:active:after{transform:scale(0);opacity:.3;transition:0s}@keyframes progressFill{0%{width:0}}.progress-animated{animation:progressFill 1s ease-out}@keyframes typing{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.typing-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--primary);margin:0 2px}.typing-dot:nth-child(1){animation:typing 1s infinite 0s}.typing-dot:nth-child(2){animation:typing 1s infinite .15s}.typing-dot:nth-child(3){animation:typing 1s infinite .3s}.card-lift{transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card-lift:hover{transform:translateY(-4px);box-shadow:0 12px 30px -8px #0f172a26}.card-tilt{transition:transform var(--transition-normal);transform-style:preserve-3d}.card-tilt:hover{transform:perspective(1000px) rotateX(2deg) rotateY(-2deg) translateY(-4px)}.icon-bounce:hover{animation:bounceIn .4s ease-out}.icon-spin:hover{animation:spin .5s ease-out}.icon-pulse:hover{animation:pulse .5s ease-out}.stagger-children>*{opacity:0;animation:slideInUp .4s ease-out forwards}.stagger-children>*:nth-child(1){animation-delay:0s}.stagger-children>*:nth-child(2){animation-delay:.05s}.stagger-children>*:nth-child(3){animation-delay:.1s}.stagger-children>*:nth-child(4){animation-delay:.15s}.stagger-children>*:nth-child(5){animation-delay:.2s}.stagger-children>*:nth-child(6){animation-delay:.25s}.stagger-children>*:nth-child(7){animation-delay:.3s}.stagger-children>*:nth-child(8){animation-delay:.35s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-deep);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px;transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--primary)}::selection{background:var(--primary);color:#fff}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);padding:6px 12px;background:var(--text-main);color:#fff;font-size:12px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast)}.tooltip:hover:after{opacity:1;transform:translate(-50%) translateY(-4px)}.badge-pulse{position:relative}.badge-pulse:before{content:"";position:absolute;inset:-2px;border-radius:inherit;background:var(--accent);animation:pulse 1.5s ease-out infinite;z-index:-1}[data-theme=dark]{--bg-deep: #0c1524;--bg-surface: #1e293b;--bg-glass: rgba(30, 41, 59, .85);--primary-glow: rgba(14, 165, 233, .15);--text-main: #f1f5f9;--text-muted: #94a3b8;--border: #334155;--border-light: rgba(51, 65, 85, .5);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3);--shadow-premium: 0 20px 25px -5px rgba(0, 0, 0, .3), 0 10px 10px -5px rgba(0, 0, 0, .15)}[data-theme=dark] body{background-image:url(/study-bg-dark.png)}[data-theme=dark] .glass{border-color:#475569;box-shadow:0 4px 6px -1px #0000004d}[data-theme=dark] .skeleton{background:linear-gradient(90deg,#1e293b 25%,#334155,#1e293b 75%)}[data-high-contrast=true]{--bg-glass: var(--bg-surface);--border-light: var(--border);--text-muted: var(--text-main);--primary-glow: transparent;--shadow-sm: none;--shadow-md: none;--shadow-lg: none;--shadow-premium: none;--diff-easy-bg: var(--diff-easy);--diff-medium-bg: var(--diff-medium);--diff-hard-bg: var(--diff-hard);--status-success-bg: var(--diff-easy);--status-error-bg: var(--diff-hard);--border-light: black}[data-high-contrast=true] .glass{background:var(--bg-surface)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-width:2px!important;box-shadow:none!important}[data-high-contrast=true] .glass:hover{box-shadow:none!important;border-color:var(--primary)!important}[data-high-contrast=true] body{background-image:none!important;background-color:var(--bg-deep)!important}[data-high-contrast=true] .gradient-text,[data-high-contrast=true] .gradient-text-accent{background:none!important;-webkit-text-fill-color:initial!important;color:var(--primary)!important}[data-high-contrast=true] .btn-primary{background:var(--primary)!important;box-shadow:none!important;border:2px solid black}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-deep: #0c1524;--bg-surface: #1e293b;--bg-glass: rgba(30, 41, 59, .85);--primary-glow: rgba(14, 165, 233, .15);--text-main: #f1f5f9;--text-muted: #94a3b8;--border: #334155;--border-light: rgba(51, 65, 85, .5)}}@media(max-width:1279px){.glass{border-radius:14px}.container-grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:1023px){.sidebar-desktop{display:none}.main-area{margin-left:0!important;padding:16px}.grid-2col{grid-template-columns:1fr!important}.container-grid-3{grid-template-columns:repeat(2,1fr);gap:16px}.glass{padding:16px}.header-desktop{padding:12px 16px}.header-title{font-size:20px}}@media(max-width:767px){body{font-size:14px}.container-grid-3,.container-grid-2{grid-template-columns:1fr!important;gap:12px}.glass{border-radius:12px;padding:14px}h1{font-size:24px!important}h2{font-size:20px!important}h3{font-size:16px!important}.btn-primary,.btn-secondary{padding:10px 16px;font-size:13px;width:100%;justify-content:center}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--bg-surface);border-top:1px solid var(--border);padding:8px 16px;padding-bottom:env(safe-area-inset-bottom,8px);z-index:1000;justify-content:space-around}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;border-radius:8px;color:var(--text-muted);font-size:10px;transition:color var(--transition-fast)}.mobile-nav-item.active{color:var(--primary)}.main-content-mobile{padding-bottom:80px}.modal-content{width:100%!important;max-width:none!important;margin:0;border-radius:20px 20px 0 0;max-height:90vh}.tab-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-container::-webkit-scrollbar{display:none}}@media(max-width:479px){body{font-size:13px}.glass{border-radius:10px;padding:12px;border-width:1px}h1{font-size:22px!important}h2{font-size:18px!important}h3{font-size:15px!important}.content-padding{padding:12px}.section-gap{gap:12px}.stats-row{display:flex;overflow-x:auto;gap:12px;padding-bottom:8px;-webkit-overflow-scrolling:touch}.stats-row::-webkit-scrollbar{display:none}.stat-card{min-width:150px;flex-shrink:0}.flashcard{height:200px}.mindmap-container{min-height:300px}}@media(max-height:500px)and (orientation:landscape){.modal-content{max-height:100vh;border-radius:0}.mobile-nav{flex-direction:column;inset:0 auto 0 0;width:60px;padding:16px 8px}.main-content-mobile{padding-left:70px;padding-bottom:16px}}.responsive-padding{padding:32px}@media(max-width:1024px){.responsive-padding{padding:16px}}.hide-mobile{display:block}.show-mobile{display:none}@media(max-width:1024px){.hide-mobile{display:none!important}.show-mobile{display:block!important}}.hide-tablet{display:block}.show-tablet{display:none}@media(max-width:767px){.hide-mobile{display:none!important}.show-mobile{display:block!important}}@media(max-width:1023px){.hide-tablet{display:none!important}.show-tablet{display:block!important}}@media(hover:none)and (pointer:coarse){button,a,.clickable{min-height:44px;min-width:44px}.glass:hover{transform:none;box-shadow:0 4px 6px -1px #0f172a14}.card-lift:hover,.card-tilt:hover{transform:none}.scroll-container{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}}@media print{body{background:#fff;color:#000}.glass{box-shadow:none;border:1px solid #ddd}.sidebar-desktop,.mobile-nav,.no-print{display:none!important}.main-area{margin:0!important;padding:0!important}}.ai-layout-grid{display:grid;grid-template-columns:1fr 300px;gap:24px;min-height:0;flex:1}@media(max-width:1024px){.ai-layout-grid{grid-template-columns:1fr;gap:16px}}.ai-helper-layout{display:grid;grid-template-columns:1fr 300px;gap:24px}@media(min-width:1280px){.ai-helper-layout{grid-template-columns:1fr 320px}}@media(max-width:1024px){.ai-helper-layout{grid-template-columns:1fr}}.chat-container{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.chat-container::-webkit-scrollbar{width:6px}@media(max-width:480px){h1{font-size:1.5rem!important}h2{font-size:1.25rem!important}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0c1524;position:relative;overflow:hidden;padding:16px}.login-glass{width:100%;max-width:460px;padding:48px;position:relative;z-index:1;background:#1e293bb3;border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px -12px #00000080;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}@media(max-width:480px){.login-glass{padding:28px 20px}}.chat-container::-webkit-scrollbar-track{background:transparent}.chat-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.chat-container::-webkit-scrollbar-thumb:hover{background:var(--primary)}@media(min-width:1024px){.show-mobile{display:none!important}}@media(max-width:1023px){.hide-mobile{display:none!important}.show-mobile{display:flex!important}}.mobile-sidebar-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;opacity:0;pointer-events:none;transition:opacity .3s ease}.mobile-sidebar-overlay.open{opacity:1;pointer-events:auto}.mobile-sidebar-drawer{position:fixed;top:0;left:-280px;width:280px;height:100vh;background:var(--bg-surface);z-index:201;transition:transform .3s cubic-bezier(.4,0,.2,1);padding:20px;display:flex;flex-direction:column;box-shadow:10px 0 30px #0003}.mobile-sidebar-drawer.open{transform:translate(280px)}.dashboard-grid-layout{display:grid;grid-template-columns:1fr 380px;gap:24px;align-items:start}@media(max-width:1023px){.dashboard-grid-layout{grid-template-columns:1fr}}.course-icon{width:32px;height:32px}@media(max-width:767px){.course-icon{width:24px;height:24px}}.courses-search-filter-row{display:flex;gap:24px;align-items:center}@media(max-width:767px){.courses-search-filter-row{flex-direction:column;align-items:stretch;gap:12px}}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}:root{--glass-premium: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .12);--nebula-glow: 0 0 20px rgba(56, 189, 248, .15);--card-shadow: 0 8px 32px 0 rgba(31, 38, 135, .15)}.ai-helper-container{height:calc(100vh - 40px);display:flex;flex-direction:column;padding:0 12px 12px;position:relative;overflow:hidden;max-width:100%}.ai-helper-layout{display:grid;grid-template-columns:1fr 260px;gap:16px;min-height:0;flex:1;overflow:hidden;max-width:100%}.chat-main-column{display:flex;flex-direction:column;gap:12px;min-height:0;max-width:100%;overflow:hidden}.chat-window-glass{flex:1;overflow:hidden;display:flex;flex-direction:column;background:var(--bg-glass);border:1px solid var(--border-light);border-radius:24px;box-shadow:var(--shadow-lg);position:relative;z-index:5;min-height:0;max-width:100%;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.messages-viewport{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.message-wrapper{display:flex;width:100%;max-width:100%}.message-wrapper.user{justify-content:flex-end}.message-wrapper.ai{justify-content:flex-start}.message-bubble-container{display:flex;gap:10px;align-items:flex-end;min-width:0;width:auto;max-width:min(90%,900px)}.message-wrapper.user .message-bubble-container{flex-direction:row-reverse}.message-bubble{padding:10px 14px;border-radius:18px;line-height:1.5;font-size:13px;font-weight:500;overflow-wrap:break-word;word-break:break-word;min-width:0;max-width:100%;box-shadow:var(--shadow-sm)}.message-wrapper.user .message-bubble{border-radius:20px 20px 4px;background:linear-gradient(135deg,var(--primary) 0%,#4338ca 100%);color:#fff;box-shadow:0 10px 20px #6366f133}.message-wrapper.ai .message-bubble{border-radius:20px 20px 20px 4px;background:var(--bg-surface);color:var(--text-main);border:1px solid var(--border-light);transition:all .3s ease}.message-wrapper.ai:hover .message-bubble{border-color:var(--primary);box-shadow:var(--nebula-glow);transform:translate(4px)}.input-container{display:flex;gap:12px;align-items:center;background:var(--bg-glass);padding:10px;border-radius:22px;border:1px solid var(--border-light);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);max-width:100%;transition:all .3s cubic-bezier(.4,0,.2,1)}.input-container:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-glow),var(--shadow-xl);transform:translateY(-2px);background:var(--bg-surface)}.sidebar-column{display:flex;flex-direction:column;gap:16px;height:100%;overflow-y:auto;padding-right:4px}.sidebar-card-premium{background:var(--bg-glass);border:1px solid var(--border-light);border-radius:20px;padding:16px;box-shadow:var(--shadow-sm);transition:all .3s ease;position:relative;overflow:hidden}.sidebar-card-premium:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--primary);opacity:.5}.sidebar-card-premium:hover{transform:translateY(-4px);box-shadow:var(--shadow-md),var(--nebula-glow);border-color:var(--primary)}.messages-viewport::-webkit-scrollbar{width:6px}.messages-viewport::-webkit-scrollbar-track{background:transparent}.messages-viewport::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:10px}.messages-viewport::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.chips-container{padding:clamp(12px,2vw,20px) clamp(16px,3vw,32px);border-top:1px solid var(--border-light);display:flex;gap:10px;overflow-x:auto;background:var(--bg-glass-deep);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);-webkit-overflow-scrolling:touch}.chips-container::-webkit-scrollbar{display:none}@media(max-width:1200px){.ai-helper-layout{grid-template-columns:1fr 260px}}@media(max-width:1024px){.ai-helper-layout{grid-template-columns:1fr}.hide-tablet{display:none!important}.message-bubble-container{max-width:95%}}@media(max-width:768px){.ai-helper-container{height:calc(100vh - 140px);padding:0 12px 12px}.chat-window-glass{border-radius:16px}.hide-mobile{display:none!important}}@media(max-width:480px){.ai-helper-container{height:calc(100vh - 160px);padding:0 8px 8px}.message-bubble-container{max-width:100%}.message-bubble{font-size:13px;padding:12px 14px}}.analytics-container{max-width:1200px;margin:0 auto;padding:24px;color:var(--text-main);overflow-x:hidden}.analytics-header{margin-bottom:32px}.analytics-header-badge{display:flex;align-items:center;gap:10px;margin-bottom:10px}.analytics-header-icon{padding:7px;border-radius:10px;background:#6366f126;color:#6366f1;display:flex;align-items:center;justify-content:center}.analytics-header-label{font-size:12px;font-weight:800;color:#6366f1;text-transform:uppercase;letter-spacing:1.5px}.analytics-title{font-size:36px;font-weight:800;letter-spacing:-.5px;margin-bottom:6px}.analytics-subtitle{font-size:14px;color:var(--text-muted);line-height:1.5}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.glass-card{background:#ffffff0d;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:24px;display:flex;flex-direction:column;transition:border-color .3s ease,box-shadow .3s ease;overflow:hidden;position:relative}.glass-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);pointer-events:none}.glass-card:hover{border-color:#38bdf840;box-shadow:0 8px 32px #0000002e}.hero-card{grid-column:span 1;align-items:center;justify-content:center;text-align:center;min-height:160px;gap:4px}.hero-icon-wrap{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:4px}.hero-label{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px}.hero-value-row{display:flex;align-items:baseline;gap:4px}.hero-value{font-size:32px;font-weight:800;letter-spacing:-1px;line-height:1.1}.hero-unit{font-size:14px;font-weight:600;color:var(--text-muted)}.hero-subtitle{font-size:11px;color:var(--text-muted);font-weight:500}.hero-trend-up{color:#10b981}.hero-trend-down{color:#f43f5e}.grade-text{background:linear-gradient(135deg,#fbbf24,#f59e0b,#d97706);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-size:44px;font-weight:900;line-height:1.1}.card-title{font-size:13px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.card-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.card-title-row .card-title{margin-bottom:0}.trend-badge{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px}.trend-up{color:#10b981;background:#10b9811f}.trend-down{color:#f43f5e;background:#f43f5e1f}.radar-card,.trend-card{grid-column:span 2;min-height:380px}.chart-wrapper{flex:1;min-height:0}.focus-card{grid-column:span 2;min-height:280px}.weak-topics-list{display:flex;flex-direction:column;gap:10px}.weak-topic-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);transition:background .2s ease,border-color .2s ease}.weak-topic-item:hover{background:#ffffff12;border-color:#ffffff1a}.weak-topic-rank{width:28px;height:28px;border-radius:8px;background:#f43f5e1f;color:#f43f5e;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.weak-topic-info{flex:1;min-width:0}.weak-topic-name{font-size:14px;font-weight:700;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weak-topic-meta{font-size:11px;color:var(--text-muted);margin-bottom:6px}.mastery-bar-track{height:4px;border-radius:4px;background:#ffffff14;overflow:hidden}.mastery-bar-fill{height:100%;border-radius:4px}.weak-topic-score-col{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.weak-topic-score{font-size:16px;font-weight:800;color:var(--text-muted)}.revise-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:8px;background:linear-gradient(135deg,var(--primary) 0%,#6366f1 100%);color:#fff;font-size:11px;font-weight:700;border:none;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;white-space:nowrap}.revise-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #0ea5e94d}.variant-card{grid-column:span 2;min-height:280px}.study-time-card{grid-column:span 4;align-items:center;text-align:center;padding:28px 24px}.study-time-display{display:flex;flex-direction:column;align-items:center;gap:4px}.study-time-value{font-size:36px;font-weight:800;background:linear-gradient(135deg,#38bdf8,#6366f1);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-1px}.study-time-label{font-size:13px;color:var(--text-muted);font-weight:500}.custom-recharts-tooltip{background:#0f172aeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 14px;box-shadow:0 8px 24px #0000004d}.tooltip-label{font-weight:700;font-size:12px;color:#94a3b8;margin-bottom:2px}.tooltip-value{color:#38bdf8;font-weight:800;font-size:16px}@media(max-width:1200px){.bento-grid{grid-template-columns:repeat(2,1fr)}.hero-card{grid-column:span 1}.study-time-card{grid-column:span 2}}@media(max-width:768px){.bento-grid{grid-template-columns:1fr;gap:14px}.hero-card,.radar-card,.trend-card,.focus-card,.variant-card,.study-time-card{grid-column:span 1}.analytics-container{padding:16px}.analytics-title{font-size:28px}.radar-card,.trend-card{min-height:320px}.hero-card{min-height:130px}.hero-value{font-size:26px}.grade-text{font-size:36px}}.hub-container{max-width:1200px;margin:0 auto;padding:16px 16px 40px;color:var(--text-main)}.hub-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1.2fr);grid-template-rows:auto auto;gap:24px;width:100%}.hub-card{background:var(--bg-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-light);border-radius:20px;padding:24px;position:relative;overflow:hidden;transition:transform .3s ease,border-color .3s ease}.hub-card:hover{border-color:#6366f14d;box-shadow:0 12px 30px #00000026}.hub-card-title{font-size:14px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:20px;display:flex;align-items:center;gap:10px}.heatmap-section{grid-column:1 / 2;grid-row:2 / 3;min-height:280px}.heatmap-grid{display:grid;grid-template-rows:repeat(7,10px);grid-auto-flow:column;gap:3px;overflow-x:auto;overflow-y:hidden;padding-bottom:8px;height:100px;align-items:center}.heatmap-cell{width:12px;height:12px;border-radius:2px;transition:transform .1s}.heatmap-cell:hover{transform:scale(1.3);z-index:10;border:1px solid rgba(255,255,255,.5)}.cell-0{background:#ffffff1a;border:1px solid rgba(255,255,255,.05)}.cell-1{background:#0ea5e933}.cell-2{background:#0ea5e966}.cell-3{background:#0ea5e9b3;box-shadow:0 0 6px #0ea5e94d}.cell-4{background:#0ea5e9;box-shadow:0 0 12px #0ea5e999,0 0 4px #fff6;z-index:2}.leaderboard-section{grid-column:2 / 3;grid-row:1 / 3;height:100%;min-height:600px;display:flex;flex-direction:column}.leaderboard-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding-right:4px}.user-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;background:#ffffff08;transition:all .2s;min-width:0}.user-row.current-user{background:#0ea5e91a;border:1px solid rgba(14,165,233,.5);box-shadow:0 0 15px #0ea5e926}.rank-badge{font-size:14px;font-weight:800;width:24px;color:var(--text-muted)}.top-rank{color:#fbbf24;text-shadow:0 0 10px rgba(251,191,36,.4)}.user-name{flex:1;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-xp{font-size:13px;font-weight:800;color:var(--primary)}.timer-section{grid-column:1 / 2;grid-row:1 / 2;display:flex;align-items:center;justify-content:space-between;gap:40px}.nebula-link-card{background:linear-gradient(135deg,#fff6,#ffffff1a);border:1px solid var(--border-light)}.highlight-text{color:var(--primary);font-weight:600}.nebula-controls{display:flex;gap:16px;width:100%}.input-group{flex:1;display:flex;background:var(--bg-surface);border-radius:12px;padding:4px;border:1px solid var(--border-light)}.input-group input{flex:1;background:transparent;border:none;padding:10px 12px;color:var(--text-main);font-family:Space Mono,monospace;font-size:13px;outline:none;text-transform:uppercase}.btn-join{background:#0000000d;border:none;padding:0 16px;border-radius:8px;color:var(--text-muted);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.btn-join:hover:not(:disabled){background:#0000001a;color:var(--text-main)}.btn-join:disabled{opacity:.5;cursor:not-allowed}.divider-vertical{width:1px;background:linear-gradient(to bottom,transparent,var(--border-light),transparent)}.btn-create{flex:1;background:linear-gradient(135deg,#4f46e5,#7c3aed) 100%;border:none;border-radius:12px;padding:12px;color:#fff;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}.btn-create:hover{transform:translateY(-2px);box-shadow:0 8px 20px #7c3aed66}.btn-content{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:13px;position:relative;z-index:1}.connection-status{position:absolute;top:24px;right:24px;display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:6px 12px;border-radius:20px;background:var(--bg-surface);border:1px solid var(--border-light);color:var(--text-muted);box-shadow:var(--shadow-sm);z-index:2}.status-dot{width:6px;height:6px;border-radius:50%}.connection-status.online{color:#059669;border-color:#05966933;background:#0596690d}.connection-status.online .status-dot{background:#059669;box-shadow:0 0 8px #05966966;animation:statusPulse 2s infinite}.connection-status.offline{color:var(--text-muted)}.connection-status.offline .status-dot{background:var(--text-muted)}@keyframes statusPulse{0%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.nebula-bg-glow{position:absolute;top:-50%;right:-20%;width:300px;height:300px;background:radial-gradient(circle,rgba(124,58,237,.15) 0%,transparent 70%);pointer-events:none;z-index:0}@media(max-width:1024px){.hub-grid{grid-template-columns:1fr;grid-template-rows:auto auto auto}.heatmap-section{grid-column:1 / -1;grid-row:1}.timer-section{grid-column:1 / -1;grid-row:2;flex-direction:column;text-align:center;gap:20px}.nebula-controls{flex-direction:column}.divider-vertical{display:none}.connection-status{position:relative;top:auto;right:auto;margin-top:10px}.leaderboard-section{grid-column:1 / -1;grid-row:3;height:500px}}@media(max-width:768px){.timer-display{font-size:60px}.heatmap-grid{gap:2px}.heatmap-cell{width:10px;height:10px}}:root[data-theme=dark] .nebula-link-card{background:linear-gradient(145deg,#17171799,#1e1e28cc);border:1px solid rgba(139,92,246,.2)}:root[data-theme=dark] .highlight-text{color:#818cf8;text-shadow:0 0 10px rgba(129,140,248,.3)}:root[data-theme=dark] .input-group{background:#0000004d;border:1px solid rgba(255,255,255,.08)}:root[data-theme=dark] .input-group input{color:#fff}:root[data-theme=dark] .btn-join{background:#ffffff1a;color:#fffc}:root[data-theme=dark] .btn-join:hover:not(:disabled){background:#fff3;color:#fff}:root[data-theme=dark] .divider-vertical{background:linear-gradient(to bottom,transparent,rgba(255,255,255,.1),transparent)}:root[data-theme=dark] .connection-status{background:#0006;border:1px solid rgba(255,255,255,.1);color:#94a3b8}:root[data-theme=dark] .connection-status.online{color:#34d399;border-color:#34d3994d;background:#0003}:root[data-theme=dark] .connection-status.online .status-dot{background:#34d399;box-shadow:0 0 12px #34d39999}
