:root{--primary: #4facfe;--primary-light: #6fc0ff;--primary-dark: #3a8fd9;--primary-glow: rgba(79, 172, 254, .3);--accent: #00f2fe;--accent-warm: #f093fb;--success: #4ade80;--warning: #fbbf24;--error: #ef4444;--bg-primary: #0f0f1a;--bg-secondary: #161625;--bg-tertiary: #1e1e32;--bg-elevated: #252540;--bg-hover: #2a2a45;--text-primary: #e8e8f0;--text-secondary: #a0a0b8;--text-tertiary: #6b6b85;--text-inverse: #0f0f1a;--border-color: rgba(255, 255, 255, .08);--border-focus: var(--primary);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px var(--primary-glow);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans SC", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}.gradient-primary{background:linear-gradient(135deg,#4facfe,#00f2fe)}.gradient-warm{background:linear-gradient(135deg,#f093fb,#f5576c)}.gradient-dark{background:linear-gradient(180deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;min-height:100dvh;overflow:hidden;-webkit-font-smoothing:antialiased}#app{display:flex;flex-direction:column;height:100vh;height:100dvh;position:relative}.app-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);padding-top:calc(var(--safe-top) + var(--space-3));background:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:100;flex-shrink:0}.header-left,.header-right{display:flex;align-items:center;gap:var(--space-2)}.app-title{font-size:var(--text-lg);font-weight:700;display:flex;align-items:center;gap:var(--space-2);background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-emoji{font-size:1.4rem;-webkit-text-fill-color:initial}.icon-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar{position:fixed;top:0;left:-300px;width:300px;height:100%;background:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:200;transition:left var(--transition-base);display:flex;flex-direction:column}.sidebar.open{left:0}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:190;opacity:0;pointer-events:none;transition:opacity var(--transition-base)}.sidebar-overlay.visible{opacity:1;pointer-events:auto}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);padding-top:calc(var(--safe-top) + var(--space-4));border-bottom:1px solid var(--border-color)}.sidebar-header h2{font-size:var(--text-base);color:var(--text-secondary)}.session-list{flex:1;overflow-y:auto;padding:var(--space-2)}.session-item{padding:var(--space-3);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);margin-bottom:var(--space-1)}.session-item:hover{background:var(--bg-hover)}.session-item.active{background:var(--bg-elevated);border-left:3px solid var(--primary)}.session-item .session-title{font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-item .session-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.sidebar-footer{padding:var(--space-4);border-top:1px solid var(--border-color)}.study-stats-mini{font-size:var(--text-xs);color:var(--text-tertiary);text-align:center}.empty-state{text-align:center;color:var(--text-tertiary);padding:var(--space-8);font-size:var(--text-sm)}.welcome-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:var(--space-8);text-align:center}.welcome-screen.hidden{display:none}.welcome-logo{font-size:4rem;margin-bottom:var(--space-4);animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.welcome-title{font-size:var(--text-2xl);font-weight:700;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-2)}.welcome-subtitle{color:var(--text-secondary);margin-bottom:var(--space-8)}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);width:100%;max-width:400px}.quick-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);transition:all var(--transition-fast);text-align:center}.quick-btn:hover{background:var(--bg-elevated);border-color:var(--primary);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.input-area{padding:var(--space-3) var(--space-4);padding-bottom:calc(var(--safe-bottom) + var(--space-3));background:var(--bg-secondary);border-top:1px solid var(--border-color);flex-shrink:0}.input-container{display:flex;align-items:flex-end;gap:var(--space-2);max-width:800px;margin:0 auto;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3);transition:border-color var(--transition-fast)}.input-container:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.message-input{flex:1;background:none;border:none;color:var(--text-primary);font-size:var(--text-base);font-family:var(--font-sans);resize:none;outline:none;max-height:120px;line-height:1.5;padding:var(--space-2) 0}.message-input::placeholder{color:var(--text-tertiary)}.input-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.voice-btn{width:44px;height:44px;border-radius:50%;border:none;background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:all var(--transition-fast)}.voice-btn:hover{background:var(--primary-dark);color:#fff}.voice-btn.recording{background:var(--error);color:#fff;animation:pulse-btn 1.5s ease-in-out infinite}@keyframes pulse-btn{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.pulse-ring{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:2px solid var(--primary);opacity:0;pointer-events:none}.voice-btn.recording .pulse-ring{animation:pulse-ring 1.5s ease-out infinite}@keyframes pulse-ring{0%{transform:scale(1);opacity:.6}to{transform:scale(1.5);opacity:0}}.send-btn{width:44px;height:44px;border-radius:50%;border:none;background:var(--primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.send-btn:disabled{background:var(--bg-elevated);color:var(--text-tertiary);cursor:not-allowed}.send-btn:not(:disabled):hover{background:var(--primary-light);box-shadow:var(--shadow-glow);transform:scale(1.05)}.mode-selector{position:relative}.mode-current{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.mode-current:hover{border-color:var(--primary);color:var(--primary)}.mode-dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:150;min-width:180px;display:none}.mode-dropdown.show{display:block}.mode-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);cursor:pointer;transition:background var(--transition-fast);font-size:var(--text-sm);color:var(--text-primary)}.mode-option:first-child{border-radius:var(--radius-md) var(--radius-md) 0 0}.mode-option:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}.mode-option:hover{background:var(--bg-hover)}.mode-option.active{color:var(--primary);background:#4facfe1a}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.hidden{display:none!important}@media(min-width:768px){.quick-actions{grid-template-columns:repeat(4,1fr);max-width:600px}.input-container{padding:var(--space-3) var(--space-4)}}.chat-main{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.message-list{flex:1;overflow-y:auto;padding:var(--space-4);scroll-behavior:smooth}.message-list:empty{display:none}.message-bubble{display:flex;gap:var(--space-3);margin-bottom:var(--space-5);max-width:800px;margin-left:auto;margin-right:auto;animation:fadeInUp .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-bubble.user{flex-direction:row-reverse}.message-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;margin-top:2px}.message-bubble.assistant .message-avatar{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%)}.message-bubble.user .message-avatar{background:var(--bg-elevated)}.message-content{flex:1;min-width:0}.message-text{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-base);line-height:1.7;word-break:break-word}.message-bubble.user .message-text{background:var(--primary);color:#fff;border-bottom-right-radius:var(--space-1)}.message-bubble.assistant .message-text{background:var(--bg-tertiary);color:var(--text-primary);border-bottom-left-radius:var(--space-1)}.message-text strong{color:var(--primary-light);font-weight:600}.message-bubble.user .message-text strong{color:#fff}.message-text code{background:#0003;padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:.9em}.message-text blockquote{border-left:3px solid var(--primary);padding-left:var(--space-3);margin:var(--space-2) 0;color:var(--text-secondary)}.message-text em{font-style:italic}.message-text p{margin-bottom:var(--space-2)}.message-text p:last-child{margin-bottom:0}.message-text ul,.message-text ol{margin:var(--space-2) 0;padding-left:var(--space-5)}.message-text ul{list-style-type:disc}.message-text ol{list-style-type:decimal}.message-text li{margin-bottom:var(--space-1)}.message-text li:last-child{margin-bottom:0}.message-text hr{border:none;border-top:1px solid var(--border-color);margin:var(--space-3) 0}.message-text h1,.message-text h2,.message-text h3,.message-text h4,.message-text h5,.message-text h6{margin:var(--space-3) 0 var(--space-2) 0;font-weight:600;line-height:1.3}.message-time{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1);text-align:right}.message-bubble.assistant .message-time{text-align:left}.message-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.msg-action-btn{background:none;border:1px solid var(--border-color);color:var(--text-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast)}.msg-action-btn:hover{border-color:var(--primary);color:var(--primary)}.question-card{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-5);margin:var(--space-3) 0;transition:border-color var(--transition-base)}.question-card:hover{border-color:var(--primary)}.question-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.question-type-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:#4facfe26;color:var(--primary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.question-difficulty{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full)}.difficulty-easy{background:#4ade8026;color:var(--success)}.difficulty-medium{background:#fbbf2426;color:var(--warning)}.difficulty-hard{background:#ef444426;color:var(--error)}.question-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--space-3)}.question-stem{font-size:var(--text-base);line-height:1.8;margin-bottom:var(--space-4);white-space:pre-wrap}.question-options{display:flex;flex-direction:column;gap:var(--space-2)}.option-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-sm)}.option-item:hover:not(.disabled){background:var(--bg-hover);border-color:var(--primary)}.option-item.selected{border-color:var(--primary);background:#4facfe1a}.option-item.correct{border-color:var(--success);background:#4ade801a}.option-item.wrong{border-color:var(--error);background:#ef44441a}.option-item.disabled{cursor:default;opacity:.7}.option-key{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--bg-elevated);color:var(--text-secondary);font-weight:600;font-size:var(--text-sm);flex-shrink:0}.option-item.selected .option-key{background:var(--primary);color:#fff}.option-item.correct .option-key{background:var(--success);color:#fff}.option-item.wrong .option-key{background:var(--error);color:#fff}.option-text{flex:1;line-height:1.6;padding-top:2px}.question-reveal{margin-top:var(--space-4);padding:var(--space-4);background:#4facfe0d;border-radius:var(--radius-md);border-left:3px solid var(--primary);display:none}.question-reveal.show{display:block;animation:fadeInUp .3s ease}.reveal-title{font-weight:600;color:var(--primary);margin-bottom:var(--space-2);font-size:var(--text-sm)}.reveal-text{font-size:var(--text-sm);line-height:1.8;color:var(--text-secondary)}.typing-indicator{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);margin-bottom:var(--space-4);max-width:800px;margin-left:auto;margin-right:auto}.typing-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);display:flex;align-items:center;justify-content:center;font-size:1.2rem}.typing-dots{display:flex;gap:4px;padding:var(--space-3) var(--space-4);background:var(--bg-tertiary);border-radius:var(--radius-lg);border-bottom-left-radius:var(--space-1)}.typing-dots span{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary);animation:typing-bounce 1.4s ease-in-out infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-8px);opacity:1}}.tts-play-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;font-size:var(--text-sm);transition:color var(--transition-fast)}.tts-play-btn:hover{color:var(--primary)}.tts-play-btn.playing{color:var(--primary);animation:pulse-btn 1s ease-in-out infinite}@media(max-width:480px){.message-bubble{gap:var(--space-2)}.message-avatar{width:30px;height:30px;font-size:1rem}.message-text{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.question-card{padding:var(--space-3)}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity var(--transition-fast)}.modal.hidden{display:none!important}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:modalEnter .3s ease}@keyframes modalEnter{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.modal-header{padding:var(--space-4);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-header h3{font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.close-btn{background:none;border:none;color:var(--text-secondary);font-size:1.2rem;cursor:pointer;padding:var(--space-1);transition:color var(--transition-fast)}.close-btn:hover{color:var(--error)}.modal-body{flex:1;overflow-y:auto;padding:var(--space-4)}.wrong-note-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-3);position:relative;transition:all var(--transition-fast)}.wrong-note-item:hover{border-color:var(--error)}.wrong-note-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--space-2);display:flex;justify-content:space-between;align-items:center}.wrong-note-stem{font-size:var(--text-sm);color:var(--text-primary);line-height:1.6;margin-bottom:var(--space-3);white-space:pre-wrap}.wrong-note-answers{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);font-size:var(--text-xs);margin-bottom:var(--space-3);padding:var(--space-2);background:var(--bg-elevated);border-radius:var(--radius-sm)}.user-ans{color:var(--error)}.correct-ans{color:var(--success);font-weight:700}.wrong-note-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.master-btn{background:#4ade8026;border:1px solid var(--success);color:var(--success);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast)}.master-btn:hover{background:var(--success);color:#fff;box-shadow:0 0 10px #4ade8066}
