@import"https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";#root{min-height:100vh}::selection{background:#ffcdb2;color:#4a4238}:root{--color-bg-primary: #f8f9ff;--color-bg-secondary: #f1f3fd;--color-bg-card: #ffffff;--color-bg-card-hover: #f8f9ff;--color-cream: #e8eaf8;--color-cream-dark: #d0d4f0;--color-peach: #c7d2fe;--color-coral: #a5b4fc;--color-rose: #818cf8;--color-mauve: #6366f1;--color-primary: #4f46e5;--color-primary-hover: #4338ca;--color-primary-light: #eef2ff;--color-accent-primary: #4f46e5;--color-accent-secondary: #6366f1;--color-accent-tertiary: #818cf8;--color-accent-highlight: #4f46e5;--color-accent: #4f46e5;--color-border-focus: #4f46e5;--color-success: #059669;--color-success-bg: #ecfdf5;--color-warning: #d97706;--color-warning-bg: #fffbeb;--color-error: #dc2626;--color-error-bg: #fef2f2;--color-text-primary: #111827;--color-text-secondary: #374151;--color-text-muted: #6b7280;--color-border: #e5e7eb;--color-bg-hover: #f5f6ff;--color-bg-input: #ffffff;--font-display: "DM Sans", system-ui, sans-serif;--font-body: "Nunito", system-ui, sans-serif;--font-primary: "Nunito", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.75rem;--text-4xl: 2rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-full: 9999px;--shadow-sm: 0 1px 4px rgba(79, 70, 229, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 16px rgba(79, 70, 229, .08), 0 2px 6px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 32px rgba(79, 70, 229, .1), 0 4px 12px rgba(0, 0, 0, .05);--shadow-card: 0 2px 12px rgba(79, 70, 229, .07), 0 1px 4px rgba(0, 0, 0, .04);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--transition-bounce: .4s cubic-bezier(.68, -.55, .265, 1.55)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.7;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.25;color:var(--color-text-primary)}.app{min-height:100vh;display:flex;flex-direction:column;position:relative}.app-landing{min-height:100vh}.app-background{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.app-background:before{content:"";position:absolute;inset:0;background:url(/student-bg.png) center/cover no-repeat;opacity:.08;z-index:-1}.gradient-orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.5;animation:float 25s ease-in-out infinite}.orb-1{width:500px;height:500px;background:radial-gradient(circle,var(--color-peach),transparent);top:-150px;right:-100px;animation-delay:0s}.orb-2{width:400px;height:400px;background:radial-gradient(circle,var(--color-cream),transparent);bottom:-100px;left:-100px;animation-delay:-8s}.orb-3{width:300px;height:300px;background:radial-gradient(circle,var(--color-warning),transparent);top:40%;left:30%;animation-delay:-16s}@keyframes float{0%,to{transform:translate(0) scale(1)}25%{transform:translate(20px,-20px) scale(1.03)}50%{transform:translate(-15px,15px) scale(.97)}75%{transform:translate(-20px,-15px) scale(1.02)}}.app-header{position:sticky;top:0;z-index:100;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--spacing-md) var(--spacing-xl);background:#f8f9ffeb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--color-border)}.header-brand{display:flex;align-items:center;gap:var(--spacing-md)}.logo-icon{color:var(--color-accent-highlight);filter:drop-shadow(0 2px 4px rgba(244,162,97,.3))}.logo-img{width:100px;height:100px;object-fit:contain;margin:-30px 0}.brand-text h1{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:800;color:var(--color-accent-primary);letter-spacing:-.02em}.beta-tag{display:inline-block;font-size:.65rem;font-weight:700;background:var(--color-primary-light);color:var(--color-primary);border:1px solid rgba(79,70,229,.25);padding:2px 7px;border-radius:6px;margin-left:6px;vertical-align:middle;text-transform:uppercase;letter-spacing:.06em}.brand-text .tagline{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:500}.header-nav{display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm)}.nav-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:10px 24px;background:transparent;border:2px solid var(--color-border);border-radius:12px;color:var(--color-text-primary);font-family:var(--font-display);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all .2s ease}.nav-btn:hover{border-color:var(--color-accent-primary);color:var(--color-accent-primary);transform:translateY(-2px)}.nav-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 4px 14px #4f46e54d}.app-main{flex:1;padding:var(--spacing-md) var(--spacing-xl);position:relative;z-index:1;max-width:1600px;margin:0 auto;width:100%}.error-banner{background:var(--color-error-bg);border:2px solid var(--color-error);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-lg);color:var(--color-error);text-align:center;font-weight:600}.subject-selector{margin-bottom:var(--spacing-md)}.subject-cards{display:flex;gap:8px;flex-wrap:wrap}.subject-card{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--color-bg-card);border:2px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);font-family:var(--font-body)}.subject-card:hover{border-color:var(--color-accent-primary);color:var(--color-accent-primary)}.subject-card.active{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff}.subject-card.classroom-card{background:linear-gradient(135deg,#fff8f0,#ffecd2);border:2px solid var(--color-accent-primary);color:var(--color-accent-primary);position:relative}.subject-card.classroom-card:after{content:"★";position:absolute;top:-6px;right:-6px;background:var(--color-accent-primary);color:#fff;font-size:var(--text-xs);width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center}.subject-card.classroom-card:hover{background:linear-gradient(135deg,#ffecd2,#ffd8b0);transform:translateY(-2px);box-shadow:0 4px 12px #f4a26140}.subject-card.classroom-card.active{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff}.subject-card.classroom-card.active:after{background:#fff;color:var(--color-accent-primary)}.subject-icon{font-size:var(--text-lg);display:flex;align-items:center}.subject-icon-img{width:20px;height:20px;object-fit:contain;border-radius:4px}.subject-name{font-weight:600}.subject-count{font-size:var(--text-xs);opacity:.7}.grade-selector{margin-top:8px;position:relative}.grade-dropdown-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 14px;background:var(--color-bg-card);border:2px solid var(--color-border);border-radius:12px;cursor:pointer;font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);font-family:var(--font-body);transition:all .2s ease}.grade-dropdown-toggle:hover{border-color:var(--color-accent-primary)}.grade-dropdown-toggle .chevron{transition:transform .2s ease}.grade-dropdown-toggle .chevron.open{transform:rotate(180deg)}.grade-list{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-bg-card);border:2px solid var(--color-border);border-radius:12px;overflow:hidden;z-index:10;box-shadow:0 8px 24px #00000014;max-height:280px;overflow-y:auto}.grade-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 14px;background:none;border:none;cursor:pointer;font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);font-family:var(--font-body);transition:background .15s ease}.grade-item:hover{background:var(--color-bg-secondary)}.grade-item.active{background:var(--color-accent-primary);color:#fff;font-weight:600}.grade-count{font-size:var(--text-xs);opacity:.6}.question-upload-section{margin-top:8px}.upload-toggle-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border:none;border-radius:12px;cursor:pointer;font-size:var(--text-sm);font-weight:700;letter-spacing:.5px;color:#fff;font-family:var(--font-body);transition:all .2s ease;box-shadow:0 3px 10px #f4a2614d}.upload-toggle-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #f4a26166}.upload-panel{margin-top:8px;background:var(--color-bg-card);border:2px solid var(--color-border);border-radius:12px;padding:var(--spacing-md);overflow:hidden}.upload-form h4{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:var(--text-sm);color:var(--color-text-primary)}.upload-select,.upload-textarea,.upload-input{width:100%;padding:8px 12px;border:2px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:var(--font-body);background:var(--color-bg-secondary);color:var(--color-text-primary);margin-bottom:8px;box-sizing:border-box}.upload-textarea{resize:vertical;min-height:60px}.upload-error{color:var(--color-error);font-size:var(--text-sm);margin:0 0 6px}.upload-submit-btn{padding:8px 16px;background:var(--color-accent-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;cursor:pointer;font-family:var(--font-body);transition:all .2s ease}.upload-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #f4a2614d}.upload-submit-btn:disabled{opacity:.5;cursor:not-allowed}.upload-pdf-row{display:flex;flex-direction:column;gap:4px}.upload-file-input{display:none}.upload-pdf-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:linear-gradient(135deg,var(--color-accent-secondary),var(--color-accent-primary));color:#fff;border:2px dashed rgba(255,255,255,.4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;cursor:pointer;font-family:var(--font-body);transition:all .2s ease}.upload-pdf-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f4a2614d}.upload-pdf-btn.uploading{opacity:.8;cursor:wait}.upload-pdf-hint{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center}.upload-divider{display:flex;align-items:center;gap:10px;margin:4px 0;font-size:var(--text-xs);color:var(--color-text-muted)}.upload-divider:before,.upload-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.upload-success{color:var(--color-success);font-size:var(--text-sm);margin:0 0 6px;font-weight:600}.my-questions-list{margin-top:12px;border-top:1px solid var(--color-border);padding-top:12px}.my-questions-list h4{margin:0 0 8px;font-size:var(--text-sm);color:var(--color-text-secondary)}.my-question-item{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--color-border)}.my-question-text{font-size:var(--text-sm);color:var(--color-text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-question-delete{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:4px;border-radius:6px;transition:color .15s ease;flex-shrink:0}.my-question-delete:hover{color:var(--color-error)}.practice-view{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.practice-left{display:flex;flex-direction:column;gap:var(--spacing-md)}.practice-right{display:flex;flex-direction:column;overflow:hidden}.question-card{background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);padding:var(--spacing-lg);box-shadow:var(--shadow-card);transition:all var(--transition-base)}.question-card:hover{border-color:var(--color-peach);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.question-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.question-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:var(--radius-lg);box-shadow:none}.question-book-icon{width:52px;height:52px;object-fit:contain;border-radius:var(--radius-sm)}.question-header h2{flex:1;font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-accent-primary)}.question-controls{display:flex;align-items:center;gap:var(--spacing-sm)}.mode-toggle{display:flex;background:var(--color-cream);border-radius:var(--radius-md);padding:2px;border:2px solid var(--color-cream-dark)}.mode-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all .2s ease}.mode-btn:hover{color:var(--color-accent)}.mode-btn.active{background:var(--color-accent);color:#fff}.nav-buttons{display:flex;gap:4px}.btn-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-cream);border:2px solid var(--color-cream-dark);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-bounce)}.btn-icon:hover:not(:disabled){background:var(--color-accent-highlight);border-color:var(--color-accent-highlight);color:#fff;transform:scale(1.05)}.btn-icon.btn-refresh:hover:not(:disabled){transform:rotate(180deg)}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.question-content{min-height:100px}.question-text{font-size:var(--text-lg);line-height:1.8;color:var(--color-text-primary);margin-bottom:var(--spacing-lg);font-weight:500}.question-meta{display:flex;gap:var(--spacing-md)}.question-id,.question-topic{font-size:var(--text-sm);padding:var(--spacing-xs) var(--spacing-md);background:var(--color-cream);border-radius:var(--radius-full);color:var(--color-text-muted);font-weight:600}.question-placeholder{min-height:100px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-style:italic}.answer-input-container{background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-card);transition:all var(--transition-base)}.answer-input-container.focused{border-color:var(--color-accent-highlight);box-shadow:0 0 0 4px #f4a26133}.answer-label{display:block;font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;margin-bottom:var(--spacing-md);color:var(--color-accent-primary)}.answer-input-wrapper{display:flex;flex-direction:column;gap:var(--spacing-md)}.answer-textarea{width:100%;min-height:120px;padding:var(--spacing-lg);background:var(--color-bg-secondary);border:2px solid var(--color-cream);border-radius:var(--radius-lg);color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--text-base);line-height:1.7;resize:vertical;transition:all var(--transition-fast)}.answer-textarea:focus{outline:none;border-color:var(--color-accent-tertiary);background:#fff}.answer-textarea::placeholder{color:var(--color-text-muted)}.answer-textarea:disabled{opacity:.6;cursor:not-allowed}.submit-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:linear-gradient(135deg,var(--color-accent-highlight),var(--color-coral));border:none;border-radius:var(--radius-full);color:#fff;font-family:var(--font-body);font-size:var(--text-base);font-weight:700;cursor:pointer;transition:all var(--transition-bounce);align-self:flex-end;box-shadow:0 4px 15px #f4a2614d}.submit-btn:hover:not(:disabled){transform:translateY(-3px) scale(1.02);box-shadow:0 6px 20px #f4a26166}.submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.answer-submit-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-top:var(--spacing-md)}.answer-hint{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500;margin:0}.mc-choices{display:flex;flex-direction:column;gap:8px}.mc-choice{display:block;width:100%;text-align:left;padding:12px 16px;background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:12px;font-size:var(--text-base);font-weight:500;font-family:var(--font-body);color:var(--color-text-primary);cursor:pointer;transition:all .15s ease}.mc-choice:hover:not(:disabled){border-color:var(--color-accent-primary);background:var(--color-bg-card)}.mc-choice.selected{border-color:var(--color-accent-primary);background:var(--color-accent-primary);color:#fff;font-weight:600}.mc-choice:disabled{opacity:.6;cursor:not-allowed}.analysis-result{background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);padding:var(--spacing-xl);height:100%;overflow-y:auto;box-shadow:var(--shadow-card)}.analysis-result.result-correct{border-color:var(--color-success);background:linear-gradient(180deg,var(--color-success-bg),var(--color-bg-card))}.analysis-result.result-partial{border-color:var(--color-warning);background:linear-gradient(180deg,var(--color-warning-bg),var(--color-bg-card))}.analysis-result.result-incorrect{border-color:var(--color-error);background:linear-gradient(180deg,var(--color-error-bg),var(--color-bg-card))}.result-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:2px dashed var(--color-cream)}.correctness-icon.correct{color:var(--color-success)}.correctness-icon.partial{color:var(--color-warning)}.correctness-icon.incorrect{color:var(--color-error)}.result-header h3{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:800}.result-section{margin-bottom:var(--spacing-lg)}.result-section h4{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-base);font-weight:700;margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.result-section.correct-parts h4{color:var(--color-success)}.result-section.misconceptions h4{color:var(--color-error)}.result-section.suggestions h4{color:var(--color-accent-highlight)}.result-section ul{list-style:none;padding-left:var(--spacing-lg)}.result-section li{position:relative;padding:var(--spacing-xs) 0;color:var(--color-text-secondary);line-height:1.6;font-weight:500}.result-section li:before{content:"✦";position:absolute;left:calc(-1 * var(--spacing-lg));color:var(--color-accent-tertiary);font-size:var(--text-sm)}.result-section.correct-parts li:before{content:"✓";color:var(--color-success)}.result-section.misconceptions li:before{content:"✗";color:var(--color-error)}.result-section.suggestions li:before{content:"💡"}.result-section li.misconception{color:var(--color-error);background:var(--color-error-bg);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin:var(--spacing-xs) 0}.result-section .explanation{color:var(--color-text-secondary);line-height:1.8;font-weight:500}.result-section.collapsible{border:2px solid var(--color-cream);border-radius:var(--radius-lg);overflow:hidden}.collapsible-header{width:100%;display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-cream);border:none;color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.collapsible-header:hover{background:var(--color-cream-dark)}.collapsible-header span{flex:1;text-align:left}.collapsible-content{padding:var(--spacing-md);background:var(--color-bg-card);border-top:2px solid var(--color-cream);overflow:hidden}.collapsible-content p{color:var(--color-text-secondary);line-height:1.8;font-weight:500}.collapsible-content.reference p{font-style:italic;color:var(--color-accent-secondary);background:var(--color-bg-secondary);padding:var(--spacing-md);border-radius:var(--radius-md)}.analysis-placeholder{height:100%;display:flex;align-items:center;justify-content:center;background:var(--color-bg-card);border:3px dashed var(--color-cream);border-radius:var(--radius-xl)}.placeholder-content{text-align:center;padding:var(--spacing-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.placeholder-icon{width:600px;max-width:100%;height:auto;object-fit:contain;margin-bottom:-20px;animation:icon-sway 3s ease-in-out infinite;transition:animation .3s ease}.placeholder-icon.analyzing-spin{animation:analyze-spin .6s ease-in-out infinite}@keyframes icon-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes analyze-spin{0%{transform:rotate(0) scale(1)}25%{transform:rotate(15deg) scale(1.05)}50%{transform:rotate(0) scale(1)}75%{transform:rotate(-15deg) scale(1.05)}to{transform:rotate(0) scale(1)}}.cursor-blink{display:inline-block;margin-left:1px;animation:cursor-blink .8s step-end infinite;color:var(--color-primary);font-weight:300}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.loading-dots:after{content:"";display:inline-block;animation:loading-dots 1.4s infinite}@keyframes loading-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}to{content:""}}.explanation-loading{color:var(--color-text-secondary);font-style:italic}.placeholder-content h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-accent-primary);margin-bottom:var(--spacing-sm)}.placeholder-content p{color:var(--color-text-muted);max-width:280px;font-weight:500}.chat-view{height:calc(100vh - 200px);max-width:900px;margin:0 auto}.chat-panel{display:flex;flex-direction:column;height:100%;background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg)}.chat-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:linear-gradient(135deg,var(--color-peach),var(--color-coral));color:#fff}.chat-header h3{flex:1;font-family:var(--font-display);font-size:var(--text-xl);font-weight:700}.chat-header .sparkle{animation:wiggle 2s ease-in-out infinite}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.chat-context{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-warning-bg);color:var(--color-accent-primary);font-size:var(--text-sm);font-weight:600}.chat-messages{flex:1;overflow-y:auto;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md);background:var(--color-bg-secondary)}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--color-text-muted);gap:var(--spacing-md)}.chat-empty svg{color:var(--color-peach)}.chat-empty p{font-size:var(--text-lg);color:var(--color-text-secondary);font-weight:600}.chat-empty .hint{font-size:var(--text-sm);max-width:280px;font-weight:500}.chat-message{display:flex;gap:var(--spacing-md);max-width:85%}.chat-message.user{align-self:flex-end;flex-direction:row-reverse}.message-avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);flex-shrink:0}.chat-message.assistant .message-avatar{background:linear-gradient(135deg,var(--color-peach),var(--color-coral));color:#fff}.chat-message.user .message-avatar{background:var(--color-cream);color:var(--color-accent-primary);border:2px solid var(--color-cream-dark)}.message-content{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-xl);line-height:1.7;font-weight:500}.chat-message.assistant .message-content{background:#fff;border:2px solid var(--color-cream);border-bottom-left-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.chat-message.user .message-content{background:linear-gradient(135deg,var(--color-accent-highlight),var(--color-coral));color:#fff;border-bottom-right-radius:var(--radius-sm);box-shadow:0 4px 12px #f4a2614d}.message-meta{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm);font-size:var(--text-xs)}.intent-badge{padding:2px 10px;background:var(--color-cream);border-radius:var(--radius-full);color:var(--color-accent-primary);font-weight:600}.confidence{color:var(--color-text-muted);font-weight:500}.typing-indicator{display:flex;gap:6px;padding:var(--spacing-sm)}.typing-indicator span{width:10px;height:10px;background:var(--color-peach);border-radius:50%;animation:bounce 1.4s ease-in-out infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-10px)}}.chat-input-container{display:flex;gap:var(--spacing-sm);padding:var(--spacing-md);background:#fff;border-top:2px solid var(--color-cream)}.chat-input{flex:1;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-secondary);border:2px solid var(--color-cream);border-radius:var(--radius-full);color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--text-base);font-weight:500;resize:none;overflow:hidden;transition:all var(--transition-fast)}.chat-input::-webkit-scrollbar{display:none}.chat-input{-ms-overflow-style:none;scrollbar-width:none}.chat-input:focus{outline:none;border-color:var(--color-accent-highlight);background:#fff}.chat-input::placeholder{color:var(--color-text-muted)}.chat-send-btn{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-highlight),var(--color-coral));border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all var(--transition-bounce);box-shadow:0 4px 12px #f4a2614d}.chat-send-btn:hover:not(:disabled){transform:scale(1.1);box-shadow:0 6px 16px #f4a26166}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.app-footer{padding:var(--spacing-sm) var(--spacing-lg);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;border-top:2px solid var(--color-cream);background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--spacing-xs);align-items:center;flex-shrink:0}.app-footer strong{color:var(--color-accent-highlight)}.footer-disclaimer{padding:var(--spacing-sm) var(--spacing-md);background:#f4a2611a;border-radius:var(--radius-md);color:var(--color-accent-highlight);font-size:var(--text-sm);white-space:nowrap}.footer-bottom{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);font-size:var(--text-sm)}.footer-bottom a{color:var(--color-text-muted);text-decoration:none;transition:color .2s ease}.footer-bottom a:hover{color:var(--color-accent);text-decoration:underline}.footer-divider{color:var(--color-cream-dark)}.footer-copyright{color:var(--color-text-muted)}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:1024px){.app-header{grid-template-columns:auto 1fr auto;padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-sm)}.logo-img{width:60px;height:60px;margin:-15px 0}.brand-text h1{font-size:var(--text-xl)}.brand-text .tagline{display:none}.header-nav{gap:4px}.nav-btn{padding:8px 12px;font-size:var(--text-sm);gap:4px}.nav-btn span{display:none}.header-right{gap:var(--spacing-sm)}.lang-toggle-btn{padding:4px 8px;font-size:var(--text-xs)}.btn-auth{padding:6px 12px;font-size:var(--text-sm)}.placeholder-icon{width:400px}.practice-view{grid-template-columns:1fr}.practice-right{min-height:400px}}.desktop-only{display:inline}.mobile-only{display:none}@media(max-width:768px){.desktop-only{display:none}.mobile-only{display:inline}html,body,.app{overflow-x:hidden}.app-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.header-brand{flex:1;min-width:0}.header-nav{order:2;width:100%;justify-content:center}.header-right{flex-shrink:0}.nav-btn{flex:1;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm)}.nav-btn span{display:none}.app-main{padding:var(--spacing-md);overflow-x:hidden}.question-card,.answer-input-container{padding:var(--spacing-md)}.question-controls{flex-wrap:wrap;justify-content:flex-end}.question-controls .mode-toggle{flex-shrink:0}.question-controls .nav-buttons{width:100%;justify-content:flex-end;margin-top:var(--spacing-xs)}.question-controls .btn-refresh{flex-shrink:0}.chat-message{max-width:95%}.logo-img{width:50px;height:50px;margin:-10px 0}.brand-text h1{font-size:var(--text-lg)}.brand-text .tagline{display:none}.footer-disclaimer{white-space:normal;text-align:center;padding:var(--spacing-sm);font-size:var(--text-xs)}.footer-bottom{flex-wrap:wrap;gap:var(--spacing-xs);font-size:var(--text-xs)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-cream);border-radius:5px}::-webkit-scrollbar-thumb{background:var(--color-cream-dark);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--color-accent-tertiary)}[data-theme=ocean]{--color-bg-primary: #e8f4f8;--color-bg-secondary: #d4eef4;--color-bg-card: #ffffff;--color-cream: #a8dadc;--color-cream-dark: #8ecae6;--color-peach: #89c2d9;--color-coral: #61a5c2;--color-accent-primary: #1d3557;--color-accent-secondary: #457b9d;--color-accent-tertiary: #5a9aba;--color-accent-highlight: #2a9d8f;--color-text-primary: #1d3557;--color-text-secondary: #457b9d;--color-text-muted: #6b8a9e;--color-border: #a8dadc}[data-theme=forest]{--color-bg-primary: #f0f7f4;--color-bg-secondary: #e4f1ea;--color-bg-card: #ffffff;--color-cream: #b7e4c7;--color-cream-dark: #95d5b2;--color-peach: #74c69d;--color-coral: #52b788;--color-accent-primary: #2d6a4f;--color-accent-secondary: #40916c;--color-accent-tertiary: #52b788;--color-accent-highlight: #40916c;--color-text-primary: #1b4332;--color-text-secondary: #2d6a4f;--color-text-muted: #5a8a6f;--color-border: #b7e4c7}[data-theme=sunset]{--color-bg-primary: #fff5f5;--color-bg-secondary: #ffe8e8;--color-bg-card: #ffffff;--color-cream: #ffc8c8;--color-cream-dark: #ffb0b0;--color-peach: #ff9b9b;--color-coral: #ff8a8a;--color-accent-primary: #c94c4c;--color-accent-secondary: #d66b6b;--color-accent-tertiary: #e88888;--color-accent-highlight: #e07a5f;--color-text-primary: #5c2727;--color-text-secondary: #8b4444;--color-text-muted: #b37070;--color-border: #ffc8c8}[data-theme=lavender]{--color-bg-primary: #f5f3ff;--color-bg-secondary: #ede9fe;--color-bg-card: #ffffff;--color-cream: #ddd6fe;--color-cream-dark: #c4b5fd;--color-peach: #a78bfa;--color-coral: #8b5cf6;--color-accent-primary: #5b21b6;--color-accent-secondary: #7c3aed;--color-accent-tertiary: #a78bfa;--color-accent-highlight: #7c3aed;--color-text-primary: #3b1e6d;--color-text-secondary: #5b3e8a;--color-text-muted: #8b74b2;--color-border: #ddd6fe}.header-right{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-md)}.lang-toggle-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.lang-toggle-btn:hover{border-color:var(--color-accent-primary);color:var(--color-accent-primary)}.auth-buttons{display:flex;gap:var(--spacing-sm)}.btn-auth{padding:10px 24px;border-radius:12px;font-family:var(--font-body);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all .2s ease}.btn-login{background:transparent;border:2px solid var(--color-border);color:var(--color-text-primary)}.btn-login:hover{border-color:var(--color-accent-primary);color:var(--color-accent-primary);transform:translateY(-2px)}.btn-signup{background:var(--color-accent-primary);border:2px solid var(--color-accent-primary);color:#fff;box-shadow:0 4px 14px #00000026}.btn-signup:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0003}.user-menu{position:relative}.user-avatar-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs);background:transparent;border:none;cursor:pointer}.user-avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-peach),var(--color-coral));border-radius:50%;color:#fff;font-weight:700;font-size:var(--text-base);box-shadow:var(--shadow-sm)}.user-avatar.large{width:48px;height:48px;font-size:var(--text-xl)}.chevron{color:var(--color-text-muted);transition:transform var(--transition-fast)}.chevron.open{transform:rotate(180deg)}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:240px;background:var(--color-bg-card);border:2px solid var(--color-cream);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;z-index:200}.dropdown-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--color-bg-secondary)}.user-info{display:flex;flex-direction:column}.user-name{font-weight:700;color:var(--color-text-primary)}.user-email{font-size:var(--text-sm);color:var(--color-text-muted)}.dropdown-divider{height:1px;background:var(--color-cream)}.dropdown-item{width:100%;display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:transparent;border:none;color:var(--color-text-secondary);font-family:var(--font-body);font-size:var(--text-base);font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-align:left}.dropdown-item:hover{background:var(--color-cream);color:var(--color-accent-primary)}.dropdown-item.logout{color:var(--color-error)}.dropdown-item.logout:hover{background:var(--color-error-bg)}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:300}.auth-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:420px;max-height:85vh;display:flex;flex-direction:column;background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);z-index:301;box-sizing:border-box;overflow:hidden}.auth-modal-content{padding:var(--spacing-2xl);overflow-y:auto;flex:1}.auth-modal::-webkit-scrollbar,.auth-modal-content::-webkit-scrollbar{width:6px}.auth-modal::-webkit-scrollbar-track,.auth-modal-content::-webkit-scrollbar-track{background:var(--color-cream);border-radius:3px}.auth-modal::-webkit-scrollbar-thumb,.auth-modal-content::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:3px}.modal-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-cream);border:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.modal-close:hover{background:var(--color-error-bg);color:var(--color-error)}.modal-header{text-align:center;margin-bottom:var(--spacing-xl)}.modal-header h2{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:800;color:var(--color-accent-primary);margin-bottom:var(--spacing-sm)}.modal-header p{color:var(--color-text-muted)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:600;color:var(--color-text-secondary)}.form-group input{padding:var(--spacing-md);background:var(--color-bg-secondary);border:2px solid var(--color-cream);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text-primary);transition:all var(--transition-fast)}.form-group input:focus{outline:none;border-color:var(--color-accent-highlight);background:#fff}.form-hint{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.password-hint{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--spacing-xs)}.auth-error{background:var(--color-error-bg);border:2px solid var(--color-error);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);color:var(--color-error);font-weight:500;text-align:center}.signup-confirmations{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-cream);border-radius:var(--radius-md)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--text-sm);line-height:1.5}.checkbox-label input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.checkbox-text{color:var(--color-text-secondary)}.btn-submit{padding:var(--spacing-md) var(--spacing-xl);background:linear-gradient(135deg,var(--color-accent-highlight),var(--color-coral));border:none;border-radius:var(--radius-md);color:#fff;font-family:var(--font-body);font-size:var(--text-base);font-weight:700;cursor:pointer;transition:all var(--transition-bounce);margin-top:var(--spacing-md)}.btn-submit:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f4a26166}.modal-footer{text-align:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-cream);color:var(--color-text-muted)}.btn-link{background:none;border:none;color:var(--color-accent-highlight);font-weight:600;cursor:pointer;margin-left:var(--spacing-xs)}.btn-link:hover{text-decoration:underline}.profile-page{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-xl)}.profile-header-card{display:flex;align-items:center;gap:var(--spacing-xl);padding:var(--spacing-xl);background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}.profile-avatar-large{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-peach),var(--color-coral));border-radius:50%;color:#fff;font-size:var(--text-4xl);font-weight:700;box-shadow:var(--shadow-md)}.profile-info h1{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:800;color:var(--color-accent-primary)}.profile-info p{color:var(--color-text-muted)}.profile-role-badge{display:inline-block;margin-top:var(--spacing-xs);padding:3px 12px;border-radius:100px;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.profile-role-badge.teacher{background:#e8f4fd;color:#1976d2}.teacher-profile-actions{display:flex;gap:var(--spacing-sm)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl)}.stats-card{background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-card)}.stats-card h3{display:flex;align-items:center;gap:var(--spacing-sm);font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-accent-primary);margin-bottom:var(--spacing-lg)}.pie-chart-container{display:flex;justify-content:center;margin-bottom:var(--spacing-lg)}.pie-chart{width:180px;height:180px;border-radius:50%;position:relative;box-shadow:var(--shadow-md)}.pie-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:100px;background:var(--color-bg-card);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.pie-total{font-size:var(--text-4xl);font-weight:800;color:var(--color-accent-primary)}.pie-label{font-size:var(--text-xs);color:var(--color-text-muted)}.pie-legend{display:flex;flex-direction:column;gap:var(--spacing-sm)}.legend-item{display:flex;align-items:center;gap:var(--spacing-sm)}.legend-color{width:16px;height:16px;border-radius:4px}.legend-color.correct{background:var(--color-success)}.legend-color.partial{background:var(--color-warning)}.legend-color.incorrect{background:var(--color-error)}.legend-label{flex:1;font-weight:500;color:var(--color-text-secondary)}.legend-value{font-weight:600;color:var(--color-text-primary)}.stat-items{display:flex;flex-direction:column;gap:var(--spacing-md)}.stat-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-lg)}.stat-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:#fff}.stat-icon.correct{background:var(--color-success)}.stat-icon.partial{background:var(--color-warning)}.stat-icon.incorrect{background:var(--color-error)}.stat-content{display:flex;flex-direction:column}.stat-value{font-size:var(--text-2xl);font-weight:800;color:var(--color-text-primary)}.stat-label{font-size:var(--text-sm);color:var(--color-text-muted)}.history-card{background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-card)}.history-card h3{display:flex;align-items:center;gap:var(--spacing-sm);font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-accent-primary);margin-bottom:var(--spacing-sm)}.history-hint{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-cream-light);border-radius:var(--radius-md);border-left:3px solid var(--color-accent)}.history-empty{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-muted)}.history-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:400px;overflow-y:auto}.history-item{display:grid;grid-template-columns:100px 1fr auto;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-lg);border-left:4px solid var(--color-cream)}.history-item.yes{border-left-color:var(--color-success)}.history-item.partial{border-left-color:var(--color-warning)}.history-item.no{border-left-color:var(--color-error)}.history-result{display:flex;align-items:center;gap:var(--spacing-xs)}.result-icon.correct{color:var(--color-success)}.result-icon.partial{color:var(--color-warning)}.result-icon.incorrect{color:var(--color-error)}.result-label{font-size:var(--text-sm);font-weight:600}.history-question{min-width:0}.history-question .question-text{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-question .user-answer{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-time{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.settings-page{max-width:800px;margin:0 auto}.settings-header{margin-bottom:var(--spacing-2xl)}.settings-header h1{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:800;color:var(--color-accent-primary);margin-bottom:var(--spacing-sm)}.settings-header p{color:var(--color-text-muted)}.settings-section{background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-card)}.settings-section h2{display:flex;align-items:center;gap:var(--spacing-sm);font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-accent-primary);margin-bottom:var(--spacing-sm)}.section-description{color:var(--color-text-muted);margin-bottom:var(--spacing-lg)}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-md)}.theme-option{background:var(--color-bg-secondary);border:3px solid var(--color-cream);border-radius:var(--radius-lg);padding:var(--spacing-md);cursor:pointer;transition:all var(--transition-bounce)}.theme-option:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.theme-option.active{border-color:var(--color-accent-highlight);box-shadow:0 0 0 3px #f4a26133}.theme-preview{display:flex;height:40px;border-radius:var(--radius-sm);overflow:hidden;margin-bottom:var(--spacing-sm)}.theme-color{flex:1}.theme-info{display:flex;align-items:center;justify-content:space-between}.theme-name{font-weight:600;color:var(--color-text-primary)}.theme-check{color:var(--color-accent-highlight)}.danger-section{border-color:var(--color-error)}.danger-section h2{color:var(--color-error)}.btn-danger{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:var(--color-error-bg);border:2px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-family:var(--font-body);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-danger:hover{background:var(--color-error);color:#fff}@media(max-width:768px){.stats-grid{grid-template-columns:1fr}.profile-header-card{flex-direction:column;text-align:center}.history-item{grid-template-columns:1fr;gap:var(--spacing-sm)}.history-time{text-align:right;font-size:var(--text-xs)}.history-hint{font-size:var(--text-xs);padding:var(--spacing-xs) var(--spacing-sm)}.history-question .question-text,.history-question .user-answer{font-size:var(--text-sm)}.profile-avatar-large{width:60px;height:60px;font-size:var(--text-2xl)}.profile-info h1{font-size:var(--text-xl)}.pie-chart{width:120px;height:120px}.pie-center{width:70px;height:70px}.pie-total{font-size:var(--text-xl)}.pie-label{font-size:var(--text-xs)}.legend-item{font-size:var(--text-sm)}.stat-value{font-size:var(--text-xl)}.review-mistakes-btn{padding:10px 16px!important;font-size:var(--text-sm)!important}.auth-buttons{flex-direction:row}.btn-auth{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-sm)}.chat-view{height:calc(100vh - 160px)}.practice-view{min-height:auto}.analysis-placeholder{min-height:200px}.review-page{padding:0 var(--spacing-sm);display:flex;flex-direction:column;align-items:stretch}.review-page .back-button{margin-bottom:var(--spacing-md);align-self:flex-start}.review-header{flex-direction:column;text-align:center;padding:var(--spacing-md);align-items:center;justify-content:center}.review-icon{width:48px;height:48px;margin:0 auto var(--spacing-sm) auto}.review-title{text-align:center;width:100%;display:flex;flex-direction:column;align-items:center}.review-title h1{font-size:var(--text-xl);text-align:center;margin:0 auto}.review-title p{text-align:center;margin:0 auto}.review-item-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);padding-right:var(--spacing-md)}.review-item-header .expand-btn{display:none}.review-item-status{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-sm);width:auto;justify-content:flex-start}.review-item-status .status-label{font-size:var(--text-sm)}.review-item-question{width:100%;margin-top:var(--spacing-xs)}.review-item-question p{font-size:var(--text-sm);line-height:1.5}.review-item-question .tap-hint{display:block;font-size:var(--text-xs);color:var(--color-accent);margin-top:var(--spacing-xs);font-style:italic}.review-item.expanded .tap-hint{display:none}.review-item{position:relative}.review-item-expanded{padding:var(--spacing-md)}.retry-input textarea{font-size:16px}.retry-input .btn-retry{width:100%;margin-top:var(--spacing-sm)}.btn-try-again{width:100%;margin-top:var(--spacing-md)}}.quick-stats .review-mistakes-btn{width:100%;margin-top:var(--spacing-lg)}.review-page{max-width:800px;margin:0 auto}.review-page .back-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-card);border:2px solid var(--color-cream);border-radius:var(--radius-md);color:var(--color-accent);font-size:var(--text-base);font-weight:600;cursor:pointer;margin-bottom:var(--spacing-lg);transition:all var(--transition-fast)}.review-page .back-button:hover{background:var(--color-cream-light);border-color:var(--color-accent)}.review-header{display:flex;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl)}.review-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-secondary) 100%);color:#fff;border-radius:var(--radius-lg)}.review-title h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-accent-primary);margin-bottom:var(--spacing-xs)}.review-title p{color:var(--color-text-muted)}.review-empty{text-align:center;padding:var(--spacing-2xl);background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl)}.review-empty .empty-icon{font-size:4rem;margin-bottom:var(--spacing-lg)}.review-empty h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-success);margin-bottom:var(--spacing-sm)}.review-empty p{color:var(--color-text-muted);margin-bottom:var(--spacing-lg)}.review-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.review-item{background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);overflow:hidden;transition:all var(--transition-normal)}.review-item.expanded{border-color:var(--color-accent)}.review-item-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-fast)}.review-item-header:hover{background:var(--color-cream-light)}.review-item-status{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.review-item-status .status-label{font-size:var(--text-sm);font-weight:600}.review-item.no .review-item-status{color:var(--color-error)}.review-item.partial .review-item-status{color:var(--color-warning)}.review-item-question{flex:1;min-width:0}.review-item-question p{color:var(--color-text-primary);line-height:1.5}.review-item-question .tap-hint{display:none}.expand-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.expand-btn:hover{background:var(--color-accent-secondary)}.review-item-expanded{padding:0 var(--spacing-lg) var(--spacing-lg);border-top:1px solid var(--color-cream);overflow:hidden}.previous-answer{padding:var(--spacing-md);background:var(--color-cream-light);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.previous-answer .label{font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted);display:block;margin-bottom:var(--spacing-xs)}.previous-answer p{color:var(--color-text-primary)}.retry-input{display:flex;flex-direction:column;gap:var(--spacing-md)}.retry-input textarea{width:100%;padding:var(--spacing-md);border:2px solid var(--color-cream);border-radius:var(--radius-md);font-family:var(--font-primary);font-size:var(--text-base);resize:vertical;transition:border-color var(--transition-fast)}.retry-input textarea:focus{outline:none;border-color:var(--color-accent)}.retry-input .btn-retry{display:flex!important;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-secondary) 100%);color:#fff!important;border:none;border-radius:var(--radius-md);font-weight:600;font-size:var(--text-base);cursor:pointer;transition:all var(--transition-fast);align-self:flex-end;box-shadow:0 4px 12px #f4a2614d}.retry-input .btn-retry span{display:inline!important;color:#fff!important;visibility:visible!important;opacity:1!important}.retry-input .btn-retry:hover:not(:disabled){background:linear-gradient(135deg,var(--color-accent-secondary) 0%,var(--color-accent) 100%);transform:translateY(-2px);box-shadow:0 6px 16px #f4a26166}.retry-input .btn-retry:disabled{opacity:.5;cursor:not-allowed;transform:none}.retry-result{padding:var(--spacing-lg);border-radius:var(--radius-md);background:var(--color-cream-light)}.retry-result.yes{background:#4caf501a;border:2px solid var(--color-success)}.retry-result.partial{background:#ffc1071a;border:2px solid var(--color-warning)}.retry-result.no{background:#f443361a;border:2px solid var(--color-error)}.retry-result-header{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:700;margin-bottom:var(--spacing-md)}.retry-result.yes .retry-result-header{color:var(--color-success)}.retry-result.partial .retry-result-header{color:var(--color-warning)}.retry-result.no .retry-result-header{color:var(--color-error)}.retry-result-content p{margin-bottom:var(--spacing-sm)}.retry-result-content .suggestions{margin-top:var(--spacing-md)}.retry-result-content .suggestions ul{margin-top:var(--spacing-xs);padding-left:var(--spacing-lg)}.retry-result-content .suggestions li{margin-bottom:var(--spacing-xs)}.btn-try-again{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:transparent;color:var(--color-accent);border:2px solid var(--color-accent);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-try-again:hover{background:var(--color-accent);color:#fff}.data-license-page{max-width:800px;margin:0 auto}.data-license-page .back-button{display:flex;align-items:center;gap:var(--spacing-sm);background:none;border:none;color:var(--color-accent);font-size:var(--text-base);font-weight:600;cursor:pointer;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-lg);transition:color .2s ease}.data-license-page .back-button:hover{color:var(--color-accent-highlight)}.license-content h1{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:800;color:var(--color-accent-primary);margin-bottom:var(--spacing-xl)}.license-section{background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);padding:var(--spacing-xl);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-card)}.section-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);color:var(--color-accent-highlight)}.section-header h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-accent-primary);margin:0}.section-content{color:var(--color-text-primary);line-height:1.8}.section-content p{margin-bottom:var(--spacing-sm)}.source-link{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-accent);text-decoration:none;font-size:var(--text-sm);transition:color .2s ease}.source-link:hover{color:var(--color-accent-highlight);text-decoration:underline}.changes-list{list-style:none;padding:0;margin:var(--spacing-md) 0 0 0}.changes-list li{position:relative;padding-left:var(--spacing-lg);margin-bottom:var(--spacing-sm);color:var(--color-text-secondary)}.changes-list li:before{content:"•";position:absolute;left:0;color:var(--color-accent-highlight);font-weight:700}.footer-link{color:var(--color-text-muted);text-decoration:none;transition:color .2s ease;cursor:pointer}.footer-link:hover{color:var(--color-accent);text-decoration:underline}.privacy-policy-page,.terms-page{max-width:800px;margin:0 auto}.privacy-policy-page .back-button,.terms-page .back-button{display:flex;align-items:center;gap:var(--spacing-sm);background:none;border:none;color:var(--color-accent);font-size:var(--text-base);font-weight:600;cursor:pointer;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-lg);transition:color .2s ease}.privacy-policy-page .back-button:hover,.terms-page .back-button:hover{color:var(--color-accent-highlight)}.policy-content,.terms-content{padding-bottom:var(--spacing-xl)}.policy-content h1,.terms-content h1{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:800;color:var(--color-accent-primary);margin-bottom:var(--spacing-sm)}.last-updated{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--spacing-xl)}.policy-section,.terms-section{background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);padding:var(--spacing-xl);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-card)}.policy-section .section-content h3,.terms-section .section-content h3{font-size:var(--text-base);font-weight:600;color:var(--color-accent-primary);margin:var(--spacing-md) 0 var(--spacing-sm) 0}.policy-section .section-content ul,.terms-section .section-content ul{list-style:none;padding:0;margin:var(--spacing-sm) 0}.policy-section .section-content li,.terms-section .section-content li{position:relative;padding-left:var(--spacing-lg);margin-bottom:var(--spacing-sm);color:var(--color-text-secondary);line-height:1.6}.policy-section .section-content li:before,.terms-section .section-content li:before{content:"•";position:absolute;left:0;color:var(--color-accent-highlight);font-weight:700}.policy-section .section-content li strong,.terms-section .section-content li strong{color:var(--color-text-primary)}.contact-email{display:inline-block;background:var(--color-bg);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-top:var(--spacing-sm)}.contact-email strong{color:var(--color-accent)}@media(max-width:768px){.privacy-policy-page,.terms-page{padding:0 var(--spacing-sm)}.policy-content h1,.terms-content h1{font-size:var(--text-2xl)}.policy-section,.terms-section{padding:var(--spacing-md)}.policy-section .section-header h2,.terms-section .section-header h2{font-size:var(--text-lg)}}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gradient-background)}.loading-content{text-align:center;padding:var(--spacing-2xl)}.loading-spinner{width:300px;height:300px;object-fit:contain;animation:bounce-spin 1.5s ease-in-out infinite;margin-bottom:var(--spacing-lg)}@media(max-width:768px){.loading-spinner{width:200px;height:200px}}@keyframes bounce-spin{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-15px) rotate(10deg)}50%{transform:translateY(0) rotate(0)}75%{transform:translateY(-10px) rotate(-10deg)}}.loading-content h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-accent-primary);margin-bottom:var(--spacing-sm)}.loading-content p{color:var(--color-text-muted);font-size:var(--text-base)}.login-reminder-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:400px;background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);padding:var(--spacing-2xl);box-shadow:var(--shadow-lg);z-index:301;text-align:center}.reminder-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.login-reminder-modal h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-accent-primary);margin-bottom:var(--spacing-sm)}.login-reminder-modal p{color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.reminder-buttons{display:flex;gap:var(--spacing-md);justify-content:center;margin-bottom:var(--spacing-md)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:var(--spacing-sm) var(--spacing-xl);background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;font-family:var(--font-display);font-weight:700;letter-spacing:-.01em;cursor:pointer;transition:all var(--transition-bounce);box-shadow:0 2px 10px #4f46e54d}.btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 6px 18px #4f46e566}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:var(--spacing-sm) var(--spacing-xl);background:var(--color-cream);border:2px solid var(--color-cream-dark);border-radius:var(--radius-md);color:var(--color-text-secondary);font-weight:600;cursor:pointer;transition:all var(--transition-bounce)}.btn-secondary:hover{background:var(--color-cream-dark);color:var(--color-text-primary)}.btn-skip{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;padding:var(--spacing-sm)}.btn-skip:hover{color:var(--color-text-secondary);text-decoration:underline}.contact-page{max-width:600px;margin:0 auto;padding:var(--spacing-xl)}.contact-page .back-button{display:flex;align-items:center;gap:var(--spacing-sm);background:none;border:none;color:var(--color-accent);font-size:var(--text-base);font-weight:600;cursor:pointer;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-lg);transition:color .2s ease}.contact-page .back-button:hover{color:var(--color-accent-highlight)}.contact-content{background:var(--color-bg-card);border:3px solid var(--color-cream);border-radius:var(--radius-xl);padding:var(--spacing-xl) var(--spacing-xl) calc(var(--spacing-xl) * 1.5);text-align:center}.contact-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);background:var(--color-cream);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-accent-primary)}.contact-content h1{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:800;color:var(--color-accent-primary);margin-bottom:var(--spacing-md)}.contact-intro{color:var(--color-text-secondary);font-size:var(--text-lg);line-height:1.6;margin-bottom:var(--spacing-xl)}.contact-email-box{background:var(--color-bg-secondary);border:2px dashed var(--color-cream-dark);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.contact-label{display:block;color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--spacing-sm)}.contact-email-row{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);flex-wrap:wrap}.contact-email{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:600;color:var(--color-accent-primary);-webkit-user-select:all;user-select:all}.copy-button{display:flex;align-items:center;gap:var(--spacing-xs);background:var(--color-accent-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.copy-button:hover{background:var(--color-accent-secondary);transform:scale(1.05)}.contact-note{color:var(--color-text-muted);font-size:var(--text-sm)}@media(max-width:768px){.contact-page{padding:var(--spacing-md)}.contact-content{padding:var(--spacing-lg)}.contact-content h1{font-size:var(--text-2xl)}.contact-email{font-size:var(--text-base)}}.landing-view{padding:0;display:flex;flex-direction:column;align-items:center}.landing-hero{display:flex;align-items:center;justify-content:center;gap:48px;max-width:1100px;width:100%;margin:0 auto;min-height:calc(100vh - 100px);padding:var(--spacing-xl) 0;padding:32px}.landing-hero-text{flex:1;min-width:0}.landing-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;background:var(--color-primary-light);color:var(--color-primary);border-radius:20px;font-size:var(--text-sm);font-weight:700;font-family:var(--font-display);letter-spacing:.01em;margin-bottom:20px;border:1px solid rgba(79,70,229,.2)}.landing-title{font-family:var(--font-display);font-size:3.2rem;font-weight:800;line-height:1.1;margin:0 0 16px;color:var(--color-text-primary);letter-spacing:-.03em}.landing-tagline{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:800;color:var(--color-primary);margin:0 0 12px;letter-spacing:-.02em}.landing-subtitle{font-size:var(--text-lg);color:var(--color-text-secondary);margin:0 0 32px;font-weight:400;line-height:1.65;max-width:480px}.landing-cta-row{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.landing-cta-primary{padding:14px 32px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-family:var(--font-display);font-size:var(--text-base);font-weight:700;letter-spacing:-.01em;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 18px #4f46e566}.landing-cta-primary:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 8px 26px #4f46e573}.landing-cta-secondary{padding:14px 32px;background:transparent;color:var(--color-text-primary);border:2px solid #9da5c8;border-radius:var(--radius-md);font-family:var(--font-display);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all .2s ease}.landing-cta-secondary:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.landing-teacher-confirm{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1.5px solid #9da5c8;border-radius:var(--radius-md);color:var(--color-text-secondary);font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;cursor:pointer;padding:10px 20px;letter-spacing:.02em;transition:color .2s;text-decoration:underline;text-underline-offset:3px}.landing-teacher-confirm:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.landing-trust-row{display:flex;gap:20px;flex-wrap:wrap}.landing-trust-item{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500}.landing-hero-visual{flex:0 0 420px;max-width:420px}.landing-hero-img{width:100%;height:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.trust-stats{display:flex;justify-content:center;gap:var(--spacing-2xl);width:100%;max-width:900px;margin:0 auto;padding:var(--spacing-2xl) var(--spacing-xl);border-top:1.5px solid #8892c8;border-bottom:1.5px solid #8892c8}.trust-stat{display:flex;flex-direction:column;align-items:center;gap:4px}.trust-stat-number{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:800;color:var(--color-accent-primary)}.trust-stat-label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500}.trust-safety{display:flex;justify-content:center;gap:var(--spacing-xl);width:100%;max-width:1100px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-2xl)}.safety-badge{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--color-bg-card);border:2px solid var(--color-cream);border-radius:var(--radius-lg);flex:1;box-shadow:var(--shadow-card);transition:all .2s ease}.safety-badge:hover{border-color:var(--color-peach);transform:translateY(-2px)}.safety-icon{font-size:var(--text-4xl);line-height:1;flex-shrink:0}.safety-icon-img{width:48px;height:48px;object-fit:cover;border-radius:10px;flex-shrink:0;background:#000}.safety-title{font-weight:700;font-size:var(--text-base);color:var(--color-text-primary);margin-bottom:4px}.safety-desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5}.landing-section-divider{width:80%;max-width:800px;height:2px;background:linear-gradient(to right,transparent,#8892c8 20%,#8892c8 80%,transparent);margin:0 auto}.landing-story{max-width:680px;margin:0 auto;padding:72px 32px;text-align:center}.story-eyebrow{font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary);margin-bottom:24px}.story-headline{font-family:var(--font-display);font-size:2rem;font-weight:800;line-height:1.2;letter-spacing:-.03em;color:var(--color-text-primary);margin-bottom:24px}.story-body{font-size:var(--text-lg);line-height:1.75;color:var(--color-text-secondary);margin-bottom:32px}.story-body em{font-style:normal;font-weight:600;color:var(--color-text-primary)}.story-kicker{display:inline-block;font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;color:var(--color-primary);background:var(--color-primary-light);padding:12px 28px;border-radius:var(--radius-md);letter-spacing:-.01em}.landing-founder{padding:0 32px 72px;max-width:720px;margin:0 auto}.founder-card{display:flex;gap:32px;align-items:center;background:var(--color-bg-card);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-lg);padding:36px;box-shadow:var(--shadow-card)}.founder-photo{width:88px;height:88px;border-radius:50%;object-fit:cover;flex-shrink:0;border:3px solid var(--color-primary-light)}.founder-text{flex:1}.founder-message{font-size:var(--text-base);line-height:1.75;color:var(--color-text-secondary);margin-bottom:16px}.founder-message em{font-style:normal;font-weight:600;color:var(--color-text-primary)}.founder-byline{display:flex;align-items:center;gap:10px}.founder-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);color:var(--color-text-primary)}.founder-divider{width:1px;height:12px;background:var(--color-border)}.founder-title{font-size:var(--text-sm);color:var(--color-text-muted)}@media(max-width:600px){.founder-card{flex-direction:column;text-align:center;padding:24px 20px}.founder-byline{justify-content:center;flex-wrap:wrap}.landing-story{padding:48px 20px}.story-headline{font-size:var(--text-3xl)}}@media(max-width:768px){.trust-stats{flex-wrap:wrap;gap:var(--spacing-lg)}.trust-stat{flex:1 1 40%}.trust-safety{flex-direction:column}.landing-hero{min-height:auto;padding:var(--spacing-lg) 0}}@media(max-width:1024px){.trust-safety{flex-direction:column;max-width:500px;margin:0 auto;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.trust-stats{flex-wrap:wrap;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}}.landing-features{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px;margin:0 auto;padding:20px 32px 60px}.landing-feature-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:16px;padding:28px 24px;transition:all .2s ease}.landing-feature-card:hover{border-color:var(--color-accent-primary);box-shadow:0 8px 24px #0000000f;transform:translateY(-4px)}.feature-icon{font-size:var(--text-4xl);margin-bottom:12px}.landing-feature-card h3{font-size:var(--text-lg);font-weight:700;color:var(--color-text-primary);margin:0 0 8px}.landing-feature-card p{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5;margin:0}@media(max-width:900px){.landing-hero{flex-direction:column;text-align:center;padding:40px 20px 24px}.landing-subtitle{max-width:none}.landing-cta-row,.landing-trust-row{justify-content:center}.landing-hero-visual{flex:none;max-width:320px;width:100%}.landing-features{grid-template-columns:repeat(2,1fr);padding:12px 20px 40px}.landing-title{font-size:var(--text-4xl)}}@media(max-width:520px){.landing-features{grid-template-columns:1fr}}.join-classroom-card{background:var(--color-bg-card);border:2px solid var(--color-cream);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-card)}.join-classroom-card h3{display:flex;align-items:center;gap:var(--spacing-sm);margin:0 0 var(--spacing-xs) 0;font-size:var(--text-lg);color:var(--color-text-primary)}.join-hint{font-size:var(--text-sm);color:var(--color-text-muted);margin:0 0 var(--spacing-md) 0}.join-form{display:flex;gap:var(--spacing-sm);align-items:center}.join-input{flex:1;max-width:200px;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;background:var(--color-bg-input);color:var(--color-text-primary);text-align:center}.join-input:focus{border-color:var(--color-accent-primary);outline:none}.join-btn{display:flex;align-items:center;gap:var(--spacing-xs);white-space:nowrap}.join-status{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500}.join-status.success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.join-status.error{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error)}.role-toggle{display:flex;gap:0;border:2px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.role-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all .2s ease;color:var(--color-text-muted)}.role-btn.active{background:var(--color-accent-primary);color:#fff}.role-btn:hover:not(.active){background:var(--color-bg-hover)}.courses-page{max-width:900px;margin:0 auto;padding:20px 16px 60px}.courses-header{margin-bottom:32px}.courses-header h2{font-size:var(--text-3xl);font-weight:800;margin:0 0 6px;color:var(--color-text-primary)}.courses-subtitle{font-size:var(--text-base);color:var(--color-text-secondary);margin:0}.courses-grid{display:flex;flex-direction:column;gap:16px}.course-card{background:var(--color-bg-card);border-radius:var(--radius-lg);border:2px solid var(--color-cream);overflow:hidden;transition:all .2s ease;box-shadow:var(--shadow-card)}.course-card:hover{border-color:var(--color-peach);box-shadow:var(--shadow-lg)}.course-card-top{display:flex;align-items:center;gap:18px;padding:22px 24px;cursor:pointer;transition:background .15s}.course-card-top:hover{background:var(--color-bg-secondary)}.course-icon-wrap{width:64px;height:64px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.course-icon-img{width:38px;height:38px;object-fit:contain}.course-card-info{flex:1;min-width:0}.course-card-info h3{margin:0 0 4px;font-size:var(--text-lg);font-weight:700;color:var(--color-text-primary)}.course-subtitle-text{margin:0 0 10px;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.4}.course-meta{display:flex;gap:16px;flex-wrap:wrap}.course-meta-item{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500}.course-expand-icon{flex-shrink:0;color:var(--color-text-muted);transition:transform .2s}.course-expand-icon .rotated{transform:rotate(90deg)}.course-coming-soon{display:inline-block;margin:0 24px 16px;padding:4px 14px;border:1.5px solid;border-radius:20px;font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.course-lessons{border-top:1px solid var(--color-cream)}.lesson-row{display:flex;align-items:center;gap:14px;padding:14px 24px;border-bottom:1px solid var(--color-cream);transition:background .12s}.lesson-row:last-child{border-bottom:none}.lesson-row:hover{background:var(--color-bg-secondary)}.lesson-row.locked{opacity:.6}.lesson-num{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--color-cream);border-radius:50%;font-size:var(--text-sm);font-weight:700;color:var(--color-text-secondary);flex-shrink:0}.lesson-info{flex:1;display:flex;align-items:center;justify-content:space-between;gap:10px}.lesson-title{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary)}.lesson-duration{font-size:var(--text-xs);color:var(--color-text-muted);flex-shrink:0}.lesson-status{width:50px;display:flex;justify-content:center;flex-shrink:0}.lesson-free-badge{padding:2px 10px;background:var(--color-success-bg);color:var(--color-success);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:700;text-transform:uppercase}.lesson-lock-icon{color:var(--color-text-muted)}@media(max-width:640px){.course-card-top{flex-direction:column;align-items:flex-start;gap:12px}.course-expand-icon{display:none}.lesson-row{padding:12px 16px}}.teacher-dashboard{max-width:1000px;margin:0 auto;padding:var(--spacing-lg)}.teacher-welcome{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);flex-wrap:wrap}.teacher-welcome h2{font-size:var(--text-2xl);font-weight:700;color:var(--color-text-primary);margin:0}.teacher-welcome-sub{font-size:var(--text-sm);color:var(--color-text-muted);margin:var(--spacing-xs) 0 0}.teacher-detail-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.teacher-detail-title{display:flex;flex-direction:column;gap:var(--spacing-xs)}.teacher-detail-title h2{font-size:var(--text-2xl);font-weight:700;color:var(--color-text-primary);margin:0}.invite-code-chip{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:100px;padding:4px 14px;font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease;width:fit-content}.invite-code-chip:hover{background:var(--color-bg-hover)}.invite-code-chip strong{font-family:var(--font-mono);color:var(--color-accent-primary);letter-spacing:.12em}.invite-code-label{color:var(--color-text-muted)}.btn-back{display:flex;align-items:center;gap:var(--spacing-xs);background:var(--color-bg-card);border:2px solid var(--color-cream);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all .2s ease}.btn-back:hover{background:var(--color-bg-hover)}.invite-code-display{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:100px;padding:4px 14px;font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.invite-code-display:hover{background:var(--color-bg-hover)}.invite-code-display strong{font-family:var(--font-mono);color:var(--color-accent-primary);letter-spacing:.12em}.teacher-error{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--color-error-bg);border:2px solid var(--color-error);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);color:var(--color-error);font-size:var(--text-sm)}.teacher-error button{margin-left:auto;background:none;border:none;color:var(--color-error);cursor:pointer;font-weight:600;text-decoration:underline}.teacher-loading{text-align:center;padding:var(--spacing-xl);color:var(--color-text-muted)}.teacher-empty{text-align:center;padding:48px var(--spacing-lg);color:var(--color-text-muted);background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:2px dashed var(--color-border)}.teacher-empty svg{opacity:.4}.teacher-empty h3{margin-top:var(--spacing-md);color:var(--color-text-secondary);font-size:var(--text-lg)}.teacher-empty p{font-size:var(--text-sm);max-width:320px;margin:var(--spacing-xs) auto 0;line-height:1.5}.teacher-create-form{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.teacher-create-form input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);margin-bottom:var(--spacing-md);background:var(--color-bg-input);color:var(--color-text-primary)}.form-actions{display:flex;gap:var(--spacing-sm)}.classroom-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md)}.classroom-card{background:var(--color-bg-card);border:2px solid var(--color-cream);border-top:4px solid var(--color-accent-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);cursor:pointer;transition:all .25s ease;box-shadow:var(--shadow-card)}.classroom-card:hover{border-color:var(--color-peach);box-shadow:var(--shadow-lg)}.classroom-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.classroom-card-header h3{margin:0;font-size:var(--text-lg);color:var(--color-text-primary)}.btn-icon-danger{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all .2s ease}.btn-icon-danger:hover{background:var(--color-error-bg);border-color:var(--color-error);color:var(--color-error)}.classroom-card-stats{display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-md)}.classroom-stat-item{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--color-text-muted)}.classroom-stat-num{font-weight:700;color:var(--color-text-primary);font-size:var(--text-lg)}.classroom-card-code{display:flex;align-items:center;gap:var(--spacing-xs);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted)}.classroom-card-code strong{font-family:var(--font-mono);color:var(--color-accent-primary);letter-spacing:.12em;font-size:var(--text-sm)}.teacher-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:4px}.tab-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border:none;background:none;font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-md);transition:all .2s ease;flex:1;justify-content:center}.tab-btn:hover{color:var(--color-text-primary);background:#00000008}.tab-btn.active{color:var(--color-accent-primary);background:var(--color-bg-card);box-shadow:0 1px 3px #00000014}.tab-content{min-height:300px}.tab-description{padding:12px 16px;background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--text-sm);line-height:1.55;color:var(--color-text-primary);margin-bottom:16px;border-left:3px solid var(--color-accent-primary)}.assignment-upload-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.stat-card{background:var(--color-bg-card);border:2px solid var(--color-cream);border-radius:var(--radius-lg);padding:var(--spacing-lg);text-align:center;box-shadow:var(--shadow-card);position:relative;overflow:hidden}.stat-card>.stat-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);margin:0 auto var(--spacing-sm);background:var(--color-bg-secondary);color:var(--color-accent-primary)}.stat-card--students>.stat-icon{background:#e8f4fd;color:#2196f3}.stat-card--attempts>.stat-icon{background:#fff3e0;color:#ff9800}.stat-card--rate>.stat-icon{background:#e8f5e9;color:#4caf50}.stat-card--questions>.stat-icon{background:#f3e5f5;color:#9c27b0}.stat-card>.stat-value{font-size:var(--text-4xl);font-weight:700;color:var(--color-text-primary)}.stat-card>.stat-label{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--spacing-xs);text-transform:uppercase;letter-spacing:.05em}.performance-table-wrapper{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);overflow-x:auto}.performance-table-wrapper h3{margin:0 0 var(--spacing-md) 0;font-size:var(--text-lg);color:var(--color-text-primary)}.performance-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.performance-table th,.performance-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}.performance-table th{font-weight:600;color:var(--color-text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em}.performance-table tbody tr{transition:background .15s ease}.performance-table tbody tr:hover{background:var(--color-bg-secondary)}.td-correct{color:var(--color-success);font-weight:600}.td-partial{color:var(--color-warning);font-weight:600}.td-incorrect{color:var(--color-error);font-weight:600}.student-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.student-card{display:flex;align-items:center;gap:var(--spacing-md);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-lg);transition:all .2s ease}.student-card:hover{border-color:var(--color-peach);box-shadow:var(--shadow-card)}.student-avatar{width:40px;height:40px;border-radius:50%;background:var(--color-accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-lg);flex-shrink:0}.student-info{flex:1}.student-name{font-weight:600;color:var(--color-text-primary)}.student-email{font-size:var(--text-sm);color:var(--color-text-muted)}.student-stats-mini{display:flex;gap:var(--spacing-sm);font-size:var(--text-sm)}.stat-correct{color:var(--color-success)}.stat-partial{color:var(--color-warning)}.stat-incorrect{color:var(--color-error)}.questions-toolbar{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-wrap:wrap}.upload-btn{display:flex;align-items:center;gap:var(--spacing-xs);cursor:pointer}.upload-status{font-size:var(--text-sm);color:var(--color-accent-primary);font-weight:600}.csv-hint{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-md)}.csv-hint code{background:var(--color-bg-secondary);padding:1px 6px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs)}.form-input-date{margin-top:var(--spacing-sm)}.form-section-label{margin:var(--spacing-sm) 0 var(--spacing-xs);font-weight:600;font-size:var(--text-sm);color:var(--color-text-primary)}.form-hint-text{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.4}.submissions-title{margin:var(--spacing-md) 0 var(--spacing-sm);font-size:var(--text-lg);color:var(--color-text-primary)}.add-question-form{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.add-question-form textarea,.add-question-form input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);background:var(--color-bg-input);color:var(--color-text-primary);font-family:inherit;resize:vertical}.questions-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.question-item{display:flex;align-items:flex-start;gap:var(--spacing-md);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-lg);transition:all .2s ease}.question-item:hover{border-color:var(--color-peach)}.question-item-content{flex:1}.question-item-text{font-weight:500;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);line-height:1.4}.question-item-answer{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.4}.question-topic-tag{display:inline-block;margin-top:var(--spacing-xs);padding:2px 8px;background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-accent-primary);font-weight:600}.assignments-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.assignment-card{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-card);border-radius:var(--radius-lg);border:2px solid var(--color-cream);transition:all .2s ease;box-shadow:var(--shadow-card)}.assignment-card:hover{border-color:var(--color-peach);box-shadow:var(--shadow-lg)}.assignment-info h4{margin:0 0 6px;font-size:var(--text-base)}.assignment-meta{display:flex;gap:16px;font-size:var(--text-sm);color:var(--color-text-secondary)}.assignment-actions{display:flex;gap:8px;align-items:center}.assignment-question-picker{max-height:250px;overflow-y:auto;border:2px solid var(--color-cream);border-radius:var(--radius-sm);padding:8px;display:flex;flex-direction:column;gap:6px}.picker-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:var(--text-sm);line-height:1.4;transition:background .15s}.picker-item:hover{background:var(--color-bg-secondary)}.picker-item.selected{background:var(--color-cream)}.picker-item input[type=checkbox]{margin-top:2px;flex-shrink:0;width:16px;height:16px}.picker-text{flex:1}.submissions-list{display:flex;flex-direction:column;gap:12px}.submission-card{background:var(--color-bg-card);border:2px solid var(--color-cream);border-radius:12px;overflow:hidden}.submission-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;cursor:pointer;transition:background .15s}.submission-header:hover{background:var(--color-bg-secondary)}.submission-student{display:flex;align-items:center;gap:12px}.submission-score{display:flex;align-items:center;gap:10px}.score-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:var(--text-sm);font-weight:600}.score-high{background:var(--color-success-bg);color:var(--color-success)}.score-mid{background:var(--color-warning-bg);color:var(--color-warning)}.score-low{background:var(--color-error-bg);color:var(--color-error)}.submission-answers{border-top:1px solid var(--color-cream);padding:12px 20px}.answer-row{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--color-cream)}.answer-row:last-child{border-bottom:none}.answer-q-num{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;font-size:var(--text-sm);flex-shrink:0;background:var(--color-cream);color:var(--color-text-secondary)}.grade-yes .answer-q-num{background:var(--color-success-bg);color:var(--color-success)}.grade-partial .answer-q-num{background:var(--color-warning-bg);color:var(--color-warning)}.grade-no .answer-q-num{background:var(--color-error-bg);color:var(--color-error)}.answer-detail{flex:1;font-size:var(--text-sm);line-height:1.5}.answer-question-text{font-weight:600;margin-bottom:4px}.answer-ref,.answer-student{margin-bottom:4px;color:var(--color-text-primary)}.answer-grades{display:flex;gap:16px;margin:8px 0 6px;font-size:var(--text-sm)}.grade-label{color:var(--color-text-secondary)}.g-yes{color:var(--color-success)}.g-partial{color:var(--color-warning)}.g-no{color:var(--color-error)}.grade-actions{display:flex;gap:6px;margin-top:6px}.grade-btn{padding:4px 14px;border-radius:6px;border:2px solid var(--color-border);background:var(--color-bg-card);cursor:pointer;font-size:var(--text-xs);font-weight:500;transition:all .15s}.grade-btn:hover{border-color:var(--color-text-muted)}.grade-btn-yes.active{background:var(--color-success);color:#fff;border-color:var(--color-success)}.grade-btn-partial.active{background:var(--color-warning);color:#fff;border-color:var(--color-warning)}.grade-btn-no.active{background:var(--color-error);color:#fff;border-color:var(--color-error)}@media(max-width:768px){.teacher-dashboard{padding:var(--spacing-md)}.classroom-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.student-card{flex-direction:column;align-items:flex-start}.student-stats-mini{flex-wrap:wrap}.teacher-tabs{overflow-x:auto}.assignment-card{flex-direction:column;align-items:flex-start;gap:10px}.answer-row{flex-direction:column}}.student-assignments{margin-top:16px;padding:16px;background:#fffc;border-radius:var(--radius-md);border:2px solid var(--color-cream)}.student-assignments-loading,.student-assignments-empty{text-align:center;padding:30px 16px;color:var(--color-text-muted);font-size:var(--text-sm)}.student-assignments-empty svg{margin-bottom:8px;opacity:.5}.student-assignments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.student-assignment-card{padding:var(--spacing-md);background:var(--color-bg-card);border-radius:var(--radius-lg);border:2px solid var(--color-cream);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-card)}.student-assignment-card:hover{border-color:var(--color-peach);box-shadow:var(--shadow-lg)}.student-assignment-card.submitted{border-color:var(--color-success);background:var(--color-success-bg)}.sa-title{font-weight:600;font-size:var(--text-base);margin-bottom:6px}.sa-meta{font-size:var(--text-sm);color:var(--color-text-secondary);display:flex;gap:12px;margin-bottom:10px}.sa-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:600;padding:3px 10px;border-radius:12px}.submitted-badge{background:var(--color-success-bg);color:var(--color-success)}.pending-badge{background:var(--color-warning-bg);color:var(--color-warning)}.student-assignment-view{margin-top:16px;padding:20px;background:#ffffffe6;border-radius:var(--radius-md);border:2px solid var(--color-cream)}.assignment-locked-banner{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--color-success-bg);color:var(--color-success);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;margin-bottom:16px}.assignment-questions-list{display:flex;flex-direction:column;gap:14px}.assignment-q-item{display:flex;gap:12px;padding:14px;background:var(--color-bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--color-cream)}.assignment-q-num{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--color-cream);color:var(--color-accent-primary);border-radius:50%;font-weight:700;font-size:var(--text-sm);flex-shrink:0}.assignment-q-body{flex:1}.assignment-q-text{font-weight:600;font-size:var(--text-sm);margin-bottom:8px;line-height:1.45}.assignment-q-input{width:100%;border:2px solid var(--color-cream);border-radius:var(--radius-sm);padding:10px 12px;font-size:var(--text-sm);font-family:inherit;resize:vertical;box-sizing:border-box;transition:border-color .2s}.assignment-q-input:focus{border-color:var(--color-accent-highlight);outline:none}.assignment-q-locked{font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic}.assignment-submit-btn{margin-top:18px;display:flex;align-items:center;gap:6px;padding:10px 28px;font-size:var(--text-base)}.assignment-submit-result{margin-top:10px;padding:10px 16px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500}.assignment-submit-result.success{background:var(--color-success-bg);color:var(--color-success)}.assignment-submit-result.error{background:var(--color-error-bg);color:var(--color-error)}
