*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--radius: .5rem;--sidebar-background: 0 0% 98%;--sidebar-foreground: 240 5.3% 26.1%;--sidebar-primary: 240 5.9% 10%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 220 13% 91%;--sidebar-ring: 217.2 91.2% 59.8% }.static{position:static}.mt-2{margin-top:.5rem}.hidden{display:none}.rounded{border-radius:.25rem}.border{border-width:1px}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.p-4{padding:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}img{-o-object-position:top;object-position:top}.fixed{position:fixed}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #6366f1;--primary-dark: #4f46e5;--secondary: #10b981;--warning: #f59e0b;--danger: #ef4444;--bg-dark: #0f172a;--bg-card: #1e293b;--bg-input: #334155;--text-primary: #f8fafc;--text-secondary: #94a3b8;--border: #334155}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-dark);color:var(--text-primary);line-height:1.6}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-dark);gap:16px}.loading-screen p{color:var(--text-secondary);font-size:16px}#root{min-height:100vh}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e293b);padding:20px}.login-card{background:var(--bg-card);border-radius:24px;padding:48px;width:100%;max-width:480px;box-shadow:0 25px 50px -12px #00000080;border:1px solid var(--border);position:relative}.login-header{text-align:center;margin-bottom:40px}.login-logo{color:var(--primary);margin-bottom:16px}.login-header h1{font-size:28px;font-weight:700;margin-bottom:8px;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-header p{color:var(--text-secondary);font-size:14px}.login-options{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.login-btn{display:flex;align-items:center;gap:16px;padding:20px 24px;background:var(--bg-input);border:2px solid var(--border);border-radius:16px;cursor:pointer;transition:all .3s ease;color:var(--text-primary)}.login-btn:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 10px 30px -10px #6366f14d}.login-btn.teacher:hover{border-color:var(--secondary);box-shadow:0 10px 30px -10px #10b9814d}.login-btn svg{flex-shrink:0}.login-btn-text{text-align:left}.login-btn-text .title{display:block;font-size:16px;font-weight:600;margin-bottom:4px}.login-btn-text .desc{font-size:12px;color:var(--text-secondary)}.login-form{margin-bottom:24px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-primary)}.form-group input,.form-group select{width:100%;padding:12px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:14px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6366f133}.form-group input::-moz-placeholder{color:var(--text-secondary)}.form-group input::placeholder{color:var(--text-secondary)}.role-selector{display:flex;gap:12px}.role-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:var(--bg-input);border:2px solid var(--border);border-radius:10px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s}.role-btn:hover{border-color:var(--primary);color:var(--text-primary)}.role-btn.active{border-color:var(--primary);background:#6366f126;color:var(--primary)}.hsk-select{width:100%;padding:12px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:14px;cursor:pointer}.submit-btn{width:100%;padding:14px;background:var(--primary);border:none;border-radius:10px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.submit-btn:hover:not(:disabled){background:var(--primary-dark)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.error-message{padding:12px;background:#ef444426;border:1px solid var(--danger);border-radius:8px;color:var(--danger);font-size:14px;margin-bottom:16px}.divider{display:flex;align-items:center;margin:24px 0;color:var(--text-secondary);font-size:14px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.divider span{padding:0 16px}.register-link{text-align:center;margin-bottom:24px;color:var(--text-secondary);font-size:14px}.register-link button{background:none;border:none;color:var(--primary);font-size:14px;cursor:pointer;padding:0;margin-left:4px}.register-link button:hover{text-decoration:underline}.demo-login{margin:20px 0;text-align:center}.demo-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 20px;background:linear-gradient(135deg,#6366f126,#10b98126);border:2px dashed var(--primary);border-radius:12px;color:var(--text-primary);font-size:15px;font-weight:500;cursor:pointer;transition:all .3s ease}.demo-btn:hover{background:linear-gradient(135deg,#6366f140,#10b98140);border-color:var(--secondary);transform:translateY(-2px)}.demo-btn svg{color:var(--secondary)}.login-features{display:flex;justify-content:center;gap:24px;flex-wrap:wrap}.login-features .feature{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.login-features .feature svg{color:var(--primary)}.role-selection-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:40px 20px}.role-selection-header{text-align:center;margin-bottom:60px}.role-selection-header .login-logo{color:var(--primary);margin-bottom:20px}.role-selection-header h1{font-size:36px;font-weight:700;margin-bottom:12px;background:linear-gradient(135deg,#6366f1,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.role-selection-header p{color:var(--text-secondary);font-size:18px}.role-selection-cards{display:flex;gap:40px;flex-wrap:wrap;justify-content:center;max-width:900px}.role-selection-card{background:var(--bg-card);border:2px solid var(--border);border-radius:24px;padding:40px;width:360px;text-align:center;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.role-selection-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary),var(--secondary));opacity:0;transition:opacity .3s ease}.role-selection-card:hover{transform:translateY(-8px);border-color:var(--primary);box-shadow:0 20px 40px #6366f133}.role-selection-card:hover:before{opacity:1}.role-selection-card.teacher-card:hover{border-color:var(--primary);box-shadow:0 20px 40px #6366f133}.role-selection-card.student-card:hover{border-color:var(--secondary);box-shadow:0 20px 40px #10b98133}.role-icon{width:100px;height:100px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;background:linear-gradient(135deg,#6366f133,#6366f11a)}.teacher-card .role-icon{background:linear-gradient(135deg,#6366f133,#6366f11a)}.teacher-card .role-icon svg{color:var(--primary)}.student-card .role-icon{background:linear-gradient(135deg,#10b98133,#10b9811a)}.student-card .role-icon svg{color:var(--secondary)}.role-selection-card h2{font-size:28px;font-weight:600;margin-bottom:20px}.role-selection-card ul{list-style:none;text-align:left;margin-bottom:30px}.role-selection-card li{padding:8px 0;color:var(--text-secondary);display:flex;align-items:center;gap:10px}.role-selection-card li:before{content:"✓";color:var(--secondary);font-weight:700}.teacher-card li:before{color:var(--primary)}.role-enter-btn{width:100%;padding:16px 32px;font-size:18px;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease}.role-enter-btn.teacher{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff}.role-enter-btn.teacher:hover{transform:scale(1.02);box-shadow:0 8px 20px #6366f166}.role-enter-btn.student{background:linear-gradient(135deg,var(--secondary),#059669);color:#fff}.role-enter-btn.student:hover{transform:scale(1.02);box-shadow:0 8px 20px #10b98166}.version-tag{margin-top:60px}.version-tag span{background:#6366f133;color:var(--primary);padding:8px 20px;border-radius:20px;font-size:14px;font-weight:500}.back-btn{position:absolute;top:20px;left:20px;background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:8px 16px;border-radius:8px;cursor:pointer;transition:all .3s ease}.back-btn:hover{background:var(--bg-input);color:var(--text-primary)}.app{display:flex;min-height:100vh}.sidebar{width:280px;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width .3s ease;position:fixed;height:100vh;z-index:100}.sidebar.collapsed{width:80px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border)}.logo{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:700;color:var(--primary)}.logo-icon{color:var(--primary)}.toggle-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:8px;border-radius:8px;transition:all .2s}.toggle-btn:hover{background:var(--bg-input);color:var(--text-primary)}.sidebar-nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:none;border:none;border-radius:12px;color:var(--text-secondary);cursor:pointer;transition:all .2s;font-size:14px;text-align:left;width:100%}.nav-item:hover{background:var(--bg-input);color:var(--text-primary)}.nav-item.active{background:var(--primary);color:#fff}.sidebar.collapsed .nav-item{justify-content:center;padding:12px}.sidebar-footer{padding:16px 12px;border-top:1px solid var(--border)}.sidebar-footer .nav-item.logout:hover{background:#ef44441a;color:var(--danger)}.main-content{flex:1;margin-left:280px;transition:margin-left .3s ease}.main-content.expanded{margin-left:80px}.top-header{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;background:var(--bg-card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.header-left h2{font-size:20px;font-weight:600}.header-right{display:flex;align-items:center;gap:16px}.logout-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.logout-btn:hover{background:var(--danger);border-color:var(--danger);color:#fff}.user-info{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--bg-input);border-radius:12px}.user-avatar{font-size:24px}.user-name{font-weight:500}.user-level{font-size:12px;padding:4px 8px;background:var(--primary);border-radius:6px}.content-area{padding:32px;min-height:calc(100vh - 73px)}.page-header{margin-bottom:32px}.page-header h1{font-size:28px;font-weight:700;margin-bottom:8px}.page-header p{color:var(--text-secondary)}.dashboard-grid{display:grid;gap:24px}.stats-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.stat-card.large{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;display:flex;align-items:center;gap:16px}.stat-card.large svg{color:var(--primary);flex-shrink:0}.stat-card.large .stat-info{display:flex;flex-direction:column}.stat-card.large .stat-value{font-size:28px;font-weight:700}.stat-card.large .stat-label{font-size:13px;color:var(--text-secondary)}.chart-section{display:grid;grid-template-columns:2fr 1fr;gap:24px}.chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px}.chart-card h3{font-size:16px;margin-bottom:20px}.pie-legend{display:flex;justify-content:center;gap:20px;margin-top:16px}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.legend-color{width:12px;height:12px;border-radius:4px}.quick-actions{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px}.quick-actions h3{font-size:16px;margin-bottom:20px}.action-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.action-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px;background:var(--bg-input);border:1px solid var(--border);border-radius:12px;color:var(--text-primary);cursor:pointer;transition:all .2s;font-size:13px}.action-btn:hover{border-color:var(--primary);transform:translateY(-2px)}.action-btn.primary{background:var(--primary);border-color:var(--primary)}.action-btn.primary:hover{background:var(--primary-dark)}.dashboard-grid.student{grid-template-columns:repeat(2,1fr)}.daily-task,.progress-overview,.quick-practice,.learning-chart{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px}.daily-task h3,.progress-overview h3,.quick-practice h3,.learning-chart h3{font-size:16px;margin-bottom:20px}.task-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-input);border-radius:10px;font-size:14px;color:var(--text-secondary)}.task-item.completed{color:var(--secondary)}.task-item.active{color:var(--primary);border:1px solid var(--primary)}.course-progress{display:flex;flex-direction:column;gap:16px}.course-item{display:flex;flex-direction:column;gap:8px}.course-info{display:flex;justify-content:space-between;font-size:13px}.course-title{color:var(--text-primary)}.course-percent{color:var(--text-secondary)}.progress-bar{height:8px;background:var(--bg-input);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:4px;transition:width .3s ease}.practice-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;background:var(--bg-input);border:1px solid var(--border);border-radius:12px;color:var(--text-primary);cursor:pointer;transition:all .2s}.practice-btn:hover{border-color:var(--secondary);transform:translateY(-2px)}.practice-btn svg{color:var(--secondary)}.agent-container{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:32px}.agent-header{display:flex;align-items:center;gap:20px;margin-bottom:32px}.agent-avatar{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.agent-avatar.preparation{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.agent-avatar.coach{background:linear-gradient(135deg,#10b981,#34d399)}.agent-avatar.assessment{background:linear-gradient(135deg,#f59e0b,#fbbf24)}.agent-avatar svg{color:#fff}.agent-info h2{font-size:24px;margin-bottom:4px}.agent-info p{color:var(--text-secondary);font-size:14px}.lesson-selector{margin-bottom:24px;padding:20px;background:var(--bg-card);border-radius:12px;border:1px solid var(--border)}.selector-label{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.textbook-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.textbook-tab{padding:8px 16px;background:var(--bg-input);border:2px solid var(--border);border-radius:8px;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.textbook-tab:hover{border-color:var(--primary);color:var(--text-primary)}.textbook-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.lesson-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.lesson-btn{display:flex;flex-direction:column;align-items:flex-start;padding:12px 16px;background:var(--bg-input);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s ease;min-width:140px}.lesson-btn:hover{border-color:var(--primary);background:#6366f11a}.lesson-btn.active{border-color:var(--primary);background:#6366f126;box-shadow:0 0 0 3px #6366f133}.lesson-btn.custom-btn{min-width:120px}.lesson-num{font-size:12px;font-weight:600;color:var(--primary);margin-bottom:4px}.lesson-title{font-size:13px;color:var(--text-primary);font-weight:500}.agent-input{margin-bottom:32px}.agent-input textarea{width:100%;padding:16px;background:var(--bg-input);border:1px solid var(--border);border-radius:12px;color:var(--text-primary);font-size:14px;resize:vertical;margin-bottom:16px}.agent-input textarea:focus{outline:none;border-color:var(--primary)}.generate-btn{display:flex;align-items:center;gap:8px;padding:14px 28px;background:var(--primary);border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s}.generate-btn:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-2px)}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.spin{animation:spin 1s linear infinite}.generated-plan{display:flex;flex-direction:column;gap:24px}.plan-section{background:var(--bg-input);border-radius:12px;padding:20px}.plan-section h3{display:flex;align-items:center;gap:8px;font-size:16px;margin-bottom:16px;color:var(--primary)}.vocab-list{display:flex;flex-wrap:wrap;gap:8px}.vocab-item{padding:8px 16px;background:var(--bg-card);border-radius:8px;font-size:14px}.grammar-list{list-style:none}.grammar-list li{padding:8px 0;border-bottom:1px solid var(--border)}.grammar-list li:last-child{border-bottom:none}.ppt-outline{display:flex;flex-direction:column;gap:12px}.slide-item{display:flex;gap:12px;align-items:flex-start}.slide-num{width:28px;height:28px;background:var(--primary);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.slide-content strong{display:block;margin-bottom:4px}.slide-content p{font-size:13px;color:var(--text-secondary)}.vocab-input{padding:8px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;font-size:14px;min-width:100px}.grammar-input,.culture-input{width:100%;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;font-size:14px;resize:vertical;font-family:inherit}.slide-title-input{display:block;width:100%;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;font-size:16px;font-weight:600;margin-bottom:8px;font-family:inherit}.slide-content-input{width:100%;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;font-size:14px;resize:vertical;font-family:inherit}.generate-ppt-btn.large{width:100%;padding:16px 24px;background:var(--primary);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .2s}.generate-ppt-btn.large:hover{opacity:.9}.generate-ppt-btn.large:disabled{opacity:.6;cursor:not-allowed}.materials-list{display:flex;flex-direction:column;gap:8px}.material-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-card);border-radius:8px}.material-type{padding:4px 8px;background:var(--primary);border-radius:4px;font-size:11px;text-transform:uppercase}.ppt-section{margin-top:20px}.ppt-tabs{display:flex;gap:8px;margin-bottom:16px}.ppt-tab{padding:8px 16px;border:1px solid var(--border);background:var(--bg-card);border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.ppt-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.ppt-generate{display:flex;flex-direction:column;gap:12px}.ppt-type-selector label{display:block;font-size:14px;margin-bottom:8px;color:var(--text-secondary)}.ppt-type-buttons{display:flex;flex-wrap:wrap;gap:8px}.ppt-type-btn{padding:8px 16px;border:1px solid var(--border);background:var(--bg-card);border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s}.ppt-type-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.generate-ppt-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.generate-ppt-btn:hover{opacity:.9}.generate-ppt-btn:disabled{opacity:.6;cursor:not-allowed}.examples-preview{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:1px solid #a5d6a7;border-radius:8px;padding:12px 16px;margin-bottom:12px}.examples-preview h4{display:flex;align-items:center;gap:6px;color:#2e7d32;font-size:14px;margin-bottom:4px}.examples-preview p{color:#558b2f;font-size:13px;margin:0}.examples-editor{background:linear-gradient(135deg,#f8f9ff,#f0f4ff);border:2px solid #a5b4fc;border-radius:12px;padding:16px;margin-top:16px}.examples-editor .plan-section{background:#fff;border-radius:8px;padding:16px;margin-bottom:12px}.example-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px;margin-bottom:12px}.example-header{margin-bottom:8px}.example-word-input{width:100%;padding:8px 12px;font-size:16px;font-weight:700;border:2px solid #ddd;border-radius:6px;background:#fff;color:#000}.example-word-input:focus{border-color:#4f46e5;outline:none}.example-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.example-row label{min-width:90px;font-weight:600;color:#333;font-size:13px}.example-row input{flex:1;padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px;color:#000}.example-row input:focus{border-color:#4f46e5;outline:none}.example-row input.translation-input{color:#666}.examples-list{margin:12px 0}.examples-list label{display:block;font-weight:600;color:#475569;font-size:13px;margin-bottom:8px}.example-sentence{display:flex;align-items:center;gap:8px;margin-bottom:8px;width:100%}.sentence-num{min-width:24px;font-weight:700;color:#4f46e5}.sentence-input{flex:2;padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px;color:#000;background:#fff;min-width:0}.translation-input{flex:1;padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:12px;color:#666;background:#fff;min-width:0}.practice-row{margin-top:12px;width:100%}.practice-row label{display:block;font-weight:600;color:#475569;font-size:13px;margin-bottom:6px}.practice-input{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px;resize:vertical;color:#000;background:#fff;box-sizing:border-box}.practice-input:focus{border-color:#4f46e5;outline:none}.examples-list{margin:12px 0;padding:8px;background:#fafafa;border-radius:6px;border:1px solid #e5e7eb}.ppt-optimizer{padding:16px 0}.optimizer-header h3{display:flex;align-items:center;gap:8px;font-size:16px;margin-bottom:8px}.optimizer-header p{font-size:14px;color:var(--text-secondary);margin-bottom:16px}.upload-zone{border:2px dashed var(--border);border-radius:12px;padding:32px;text-align:center;background:var(--bg-input)}.upload-icon{color:var(--text-secondary);margin-bottom:12px}.upload-zone p{font-size:14px;color:var(--text-secondary);margin-bottom:12px}.upload-btn{display:inline-block;padding:8px 16px;background:var(--primary);color:#fff;border-radius:8px;font-size:14px;cursor:pointer}.selected-file{display:flex;align-items:center;gap:8px;margin-top:12px;padding:8px 16px;background:var(--bg-card);border-radius:8px;font-size:14px}.process-btn{margin-top:16px;padding:12px 24px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer}.process-btn:disabled{opacity:.6;cursor:not-allowed}.processing-state{text-align:center;padding:32px}.processing-state p{margin-top:12px;font-size:14px}.slides-preview,.optimized-result{margin-top:16px}.slides-preview h4,.optimized-result h4{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:12px}.slides-list{display:flex;flex-direction:column;gap:12px;max-height:300px;overflow-y:auto}.optimize-btn,.generate-pptx-btn{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;padding:12px 24px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer}.download-section{display:flex;gap:12px;margin-top:16px}.download-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:#22c55e;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer}.reset-btn{padding:12px 24px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;font-size:14px;cursor:pointer}.error-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px;color:#ef4444}.error-state button{padding:8px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;cursor:pointer}.plan-error{display:flex;align-items:center;gap:10px;padding:12px 16px;margin:16px 0;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px}.plan-error button{margin-left:auto;padding:4px 12px;background:#fff;border:1px solid #fecaca;border-radius:4px;cursor:pointer;color:#dc2626}.prep-tabs-container{padding:0}.prep-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--border);padding-bottom:16px}.prep-tab{padding:12px 24px;border:1px solid var(--border);background:var(--bg-card);border-radius:12px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s}.prep-tab:hover{background:var(--bg-input)}.prep-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.prep-tab-content{flex:1}.optimize-container{background:var(--bg-input);border-radius:12px;padding:24px}.coach-controls{margin-bottom:32px}.scenario-selector,.difficulty-selector{margin-bottom:24px}.scenario-selector label,.difficulty-selector label{display:block;font-size:14px;margin-bottom:12px;color:var(--text-secondary)}.scenario-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.scenario-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;background:var(--bg-input);border:2px solid var(--border);border-radius:12px;color:var(--text-primary);cursor:pointer;transition:all .2s}.scenario-btn:hover{border-color:var(--secondary)}.scenario-btn.active{border-color:var(--secondary);background:#10b9811a}.scenario-icon{font-size:24px}.difficulty-selector input[type=range]{width:100%;margin-bottom:8px}.difficulty-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary)}.test-voice-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.test-voice-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:linear-gradient(135deg,var(--secondary),#059669);border:none;border-radius:8px;color:#fff;font-size:14px;cursor:pointer;transition:all .3s ease}.test-voice-btn:hover{transform:scale(1.02);box-shadow:0 4px 12px #10b98166}.chat-container{margin-bottom:32px}.chat-messages{height:300px;overflow-y:auto;padding:20px;background:var(--bg-input);border-radius:12px;margin-bottom:16px;display:flex;flex-direction:column;gap:16px}.message{display:flex;gap:12px;max-width:80%}.message.ai{align-self:flex-start}.message.user{align-self:flex-end;flex-direction:row-reverse}.message-avatar{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.message.ai .message-avatar{background:var(--secondary)}.message.user .message-avatar{background:var(--primary)}.message-content{padding:12px 16px;border-radius:12px;font-size:14px;line-height:1.5}.message.ai .message-content{background:var(--bg-card)}.message.user .message-content{background:var(--primary)}.voice-controls{display:flex;gap:12px}.record-btn,.send-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border-radius:12px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s}.record-btn{flex:1;background:var(--bg-input);border:2px solid var(--border);color:var(--text-primary)}.record-btn:hover{border-color:var(--danger)}.record-btn.recording{background:var(--danger);border-color:var(--danger);animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.send-btn{background:var(--primary);border:none;color:#fff}.send-btn:hover:not(:disabled){background:var(--primary-dark)}.send-btn:disabled{opacity:.5;cursor:not-allowed}.feedback-panel{background:var(--bg-input);border-radius:12px;padding:20px}.feedback-panel h4{margin-bottom:16px}.feedback-items{display:flex;flex-direction:column;gap:16px}.feedback-item{display:flex;align-items:center;gap:16px}.feedback-item .label{width:100px;font-size:14px}.feedback-item .progress-bar{flex:1;height:10px;background:var(--bg-card);border-radius:5px;overflow:hidden}.feedback-item .progress{height:100%;background:linear-gradient(90deg,var(--secondary),#34d399);border-radius:5px}.feedback-item .value{width:50px;text-align:right;font-size:14px;font-weight:600}.chat-start-overlay{display:flex;align-items:center;justify-content:center;min-height:300px;background:var(--bg-input);border-radius:12px;margin-bottom:16px}.start-prompt{text-align:center;padding:40px}.start-prompt .start-icon{color:var(--primary);margin-bottom:20px}.start-prompt h3{font-size:24px;margin-bottom:12px;color:var(--text-primary)}.start-prompt p{color:var(--text-secondary);margin-bottom:24px}.start-conversation-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 32px;background:linear-gradient(135deg,var(--primary),#059669);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #10b98166}.start-conversation-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98180}.chat-loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;background:var(--bg-input);border-radius:12px;margin-bottom:16px}.loading-spinner{width:50px;height:50px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.chat-loading-overlay p{color:var(--text-secondary);font-size:14px}.message.processing .message-content{display:flex;align-items:center;gap:12px}.typing-indicator{display:flex;gap:4px}.typing-indicator span{width:8px;height:8px;background:var(--text-secondary);border-radius:50%;animation:typing 1.4s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.6}30%{transform:translateY(-6px);opacity:1}}.processing-text{color:var(--text-secondary);font-size:12px}.feedback-item .progress{transition:width .8s cubic-bezier(.4,0,.2,1)}.feedback-item .progress.tone{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.feedback-item .progress.fluency{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.feedback-item .progress.vocabulary{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.feedback-item .progress.relevance{background:linear-gradient(90deg,#10b981,#34d399)}.interaction-count{margin-top:16px;text-align:center;color:var(--text-secondary);font-size:13px;padding-top:12px;border-top:1px solid var(--border)}.assessment-content{display:grid;grid-template-columns:250px 1fr;gap:24px}.student-selector h3{font-size:16px;margin-bottom:16px}.student-list{display:flex;flex-direction:column;gap:8px}.student-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-input);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s}.student-item:hover{border-color:var(--primary)}.student-item.active{border-color:var(--primary);background:#6366f11a}.student-avatar{font-size:24px}.student-info .name{display:block;font-weight:500}.student-info .level{font-size:12px;color:var(--text-secondary)}.report-content{display:flex;flex-direction:column;gap:24px}.report-header{display:flex;justify-content:space-between;align-items:center}.report-header h3{font-size:20px}.report-date{font-size:13px;color:var(--text-secondary)}.radar-chart{background:var(--bg-input);border-radius:12px;padding:20px}.radar-chart h4,.stats-grid,.diagnosis-section,.recommendations{margin-bottom:16px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat-card{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg-input);border-radius:10px}.stat-card svg{color:var(--primary)}.stat-info .stat-value{display:block;font-size:20px;font-weight:700}.stat-info .stat-label{font-size:12px;color:var(--text-secondary)}.diagnosis-section h4,.recommendations h4{margin-bottom:16px}.diagnosis-item{display:flex;gap:12px;padding:16px;background:var(--bg-input);border-radius:10px;margin-bottom:12px}.diagnosis-item svg{flex-shrink:0}.diagnosis-item.positive svg{color:var(--secondary)}.diagnosis-item.warning svg{color:var(--warning)}.diagnosis-item strong{display:block;margin-bottom:4px}.diagnosis-item p{font-size:13px;color:var(--text-secondary)}.recommendations ul{list-style:none}.recommendations li{padding:12px 16px;background:var(--bg-input);border-radius:8px;margin-bottom:8px;font-size:14px}.ai-report-section{margin-top:24px;padding:20px;background:linear-gradient(135deg,#6366f11a,#10b9811a);border:1px solid var(--primary);border-radius:12px}.ai-report-section h4{color:var(--primary);font-size:18px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.ai-section{margin-bottom:16px;padding:16px;background:var(--bg-card);border-radius:8px;border-left:3px solid var(--primary)}.ai-section h5{color:var(--text-primary);font-size:15px;margin-bottom:8px}.ai-section p{color:var(--text-secondary);font-size:14px;line-height:1.6}.ai-section ul{list-style:none;padding:0}.ai-section li{padding:8px 12px;color:var(--text-secondary);font-size:14px;margin-bottom:4px}.ai-section li:before{content:"• ";color:var(--primary)}.workflow-container h2{font-size:24px;margin-bottom:8px}.subtitle{color:var(--text-secondary);margin-bottom:32px}.workflow-list{display:flex;flex-direction:column;gap:20px}.workflow-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px}.workflow-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.workflow-title h3{font-size:18px;margin-bottom:4px}.workflow-title p{font-size:13px;color:var(--text-secondary)}.status-badge{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:500}.status-badge.active{background:#10b9811a;color:var(--secondary)}.status-badge.idle{background:var(--bg-input);color:var(--text-secondary)}.workflow-steps{display:flex;gap:8px;flex-wrap:wrap}.step{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-input);border-radius:8px;font-size:13px;color:var(--text-secondary)}.step.completed{color:var(--secondary)}.step.in_progress{color:var(--primary);background:#6366f11a}.step-indicator{display:flex;align-items:center;justify-content:center}.step-indicator .dot{width:8px;height:8px;background:var(--border);border-radius:50%}.step-indicator .pulse{width:8px;height:8px;background:var(--primary);border-radius:50%;animation:pulse 1.5s infinite}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.student-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;text-align:center}.student-avatar-large{font-size:48px;margin-bottom:12px}.student-card h3{font-size:18px;margin-bottom:8px}.hsk-badge{display:inline-block;padding:4px 12px;background:var(--primary);border-radius:20px;font-size:12px;margin-bottom:16px}.student-stats{display:flex;justify-content:center;gap:20px;margin-bottom:16px}.student-stats .stat{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.view-report-btn{padding:10px 20px;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);cursor:pointer;transition:all .2s}.view-report-btn:hover{border-color:var(--primary)}.add-student-section{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px}.exam-preparation{padding:0}.exam-preparation .class-selector{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px 24px;margin-bottom:24px}.exam-preparation .class-selector h3{font-size:16px;margin-bottom:12px;color:var(--text-secondary)}.class-tabs{display:flex;flex-wrap:wrap;gap:8px}.no-classes-tip{color:var(--text-secondary);font-size:14px;font-style:italic}.exam-preparation .error-vocab-stats{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px 24px;margin-bottom:24px}.exam-preparation .error-vocab-stats h3{font-size:16px;margin-bottom:16px;color:var(--text-secondary)}.error-vocab-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.error-vocab-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-input);border-radius:12px;transition:all .2s}.error-vocab-item:hover{background:#6366f11a}.error-rank{font-size:14px;font-weight:700;color:var(--primary);min-width:30px}.error-vocab-info{flex:1;display:flex;align-items:center;gap:12px}.error-vocab-info .vocab-word{font-size:18px;font-weight:600;color:var(--text-primary)}.error-vocab-info .vocab-pinyin,.error-vocab-info .vocab-meaning{font-size:14px;color:var(--text-secondary)}.error-student-count{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#ef444426;border-radius:20px;color:var(--danger);font-size:14px}.exam-preparation .generated-exercises{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px 24px}.exercises-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.exercises-header h3{font-size:18px;margin:0}.exercises-header-actions{display:flex;gap:8px}.regenerate-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:transparent;border:1px solid var(--primary);border-radius:8px;color:var(--primary);font-size:14px;cursor:pointer;transition:all .2s}.regenerate-btn:hover{background:#6366f11a}.exercises-list{display:flex;flex-direction:column;gap:16px}.exercise-card{background:var(--bg-input);border-radius:12px;padding:16px 20px}.exercise-number{font-size:14px;font-weight:600;color:var(--primary);margin-bottom:12px;display:flex;align-items:center;gap:10px}.exercise-type-label{font-size:12px;font-weight:500;color:#fff;background:var(--secondary);padding:2px 8px;border-radius:4px}.exercise-content .exercise-question{font-size:16px;color:var(--text-primary);margin-bottom:12px}.exercise-options{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.option-item{padding:8px 12px;background:var(--bg-card);border-radius:6px;font-size:14px;color:var(--text-secondary)}.exercise-answer{font-size:14px;color:var(--secondary);margin-bottom:8px}.exercise-explanation{font-size:13px;color:var(--text-secondary);margin-bottom:8px}.exercise-vocab{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#6366f126;border-radius:12px;font-size:12px;color:var(--primary)}.stats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.stats-header h3{font-size:16px;margin:0;color:var(--text-secondary)}.stats-actions{display:flex;gap:8px}.select-all-btn{padding:6px 14px;background:transparent;border:1px solid var(--primary);border-radius:8px;color:var(--primary);font-size:13px;cursor:pointer;transition:all .2s}.select-all-btn:hover{background:#6366f11a}.export-excel-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--primary);border:none;border-radius:8px;color:#fff;font-size:13px;cursor:pointer;transition:all .2s}.export-excel-btn:hover{opacity:.9}.error-vocab-item{cursor:pointer}.error-vocab-item.selected{background:#6366f126;border:1px solid var(--primary)}.error-vocab-checkbox{display:flex;align-items:center}.error-vocab-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary)}.error-students{font-size:12px;color:var(--text-secondary);max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exam-actions{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px 24px;margin-bottom:24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.exercise-type-selector{display:flex;align-items:center;gap:12px}.exercise-type-selector span{font-size:14px;color:var(--text-primary)}.exercise-type-selector select{padding:10px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:14px;cursor:pointer}.exercise-type-selector select:focus{outline:none;border-color:var(--primary)}.exercise-type-selector select option{color:#000;background:var(--bg-card)}.exercise-count-input{display:flex;align-items:center;gap:8px}.exercise-count-input span{font-size:14px;color:var(--text-primary)}.exercise-count-input input{width:60px;padding:8px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:#000;font-size:14px;text-align:center}.exercise-count-input input:focus{outline:none;border-color:var(--primary)}.action-buttons{display:flex;gap:12px;flex:1}.match-exam-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--secondary);border:none;border-radius:10px;color:#fff;font-size:14px;cursor:pointer;transition:all .2s}.match-exam-btn:hover:not(:disabled){background:var(--secondary-dark)}.match-exam-btn:disabled{opacity:.6;cursor:not-allowed}.generate-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--primary);border:none;border-radius:10px;color:#fff;font-size:14px;cursor:pointer;transition:all .2s}.generate-btn:hover:not(:disabled){background:var(--primary-dark)}.generate-btn:disabled{opacity:.6;cursor:not-allowed}.matched-real-exam{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px 24px;margin-bottom:24px}.exam-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.exam-header h3{font-size:18px;margin:0}.exam-header-actions{display:flex;gap:8px}.export-word-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--primary);border:none;border-radius:8px;color:#fff;font-size:13px;cursor:pointer;transition:all .2s}.export-word-btn:hover{opacity:.9}.close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.close-btn:hover{background:#ef44441a;border-color:var(--danger);color:var(--danger)}.exam-list{display:flex;flex-direction:column;gap:16px}.exam-item{background:var(--bg-input);border-radius:12px;padding:16px 20px}.exam-vocab{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.exam-word{font-size:20px;font-weight:600;color:var(--text-primary)}.exam-pinyin{font-size:14px;color:var(--text-secondary)}.exam-questions{display:flex;flex-direction:column;gap:12px}.exam-question-item{padding:12px;background:var(--bg-card);border-radius:8px}.exam-question{font-size:15px;color:var(--text-primary);margin-bottom:8px;line-height:1.5}.exam-answer{font-size:14px;color:var(--secondary);margin-bottom:4px}.exam-source{font-size:12px;color:var(--text-secondary)}.no-exam{font-size:14px;color:var(--text-secondary);font-style:italic;text-align:center;padding:20px}.invite-code-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px}.invite-code-card h3{font-size:18px;margin-bottom:8px}.invite-code-card p{color:var(--text-secondary);font-size:14px;margin-bottom:16px}.invite-code-display{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg-input);border-radius:10px}.invite-code-display .code{font-size:24px;font-weight:700;color:var(--primary);letter-spacing:2px}.copy-btn{padding:8px 16px;background:var(--primary);border:none;border-radius:6px;color:#fff;font-size:14px;cursor:pointer;margin-left:auto}.copy-btn:hover{background:var(--primary-dark)}.add-student-form{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px}.add-student-form h3{font-size:18px;margin-bottom:16px}.form-row{display:flex;gap:12px}.form-row input{flex:1;padding:12px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:14px}.form-row input:focus{outline:none;border-color:var(--primary)}.form-row button{padding:12px 24px;background:var(--primary);border:none;border-radius:10px;color:#fff;font-size:14px;cursor:pointer;white-space:nowrap}.form-row button:hover:not(:disabled){background:var(--primary-dark)}.form-row button:disabled{opacity:.6;cursor:not-allowed}.class-select{padding:12px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:14px;min-width:120px}.class-select:focus{outline:none;border-color:var(--primary)}.create-class-section{margin-top:16px}.create-class-btn{padding:10px 20px;background:transparent;border:2px dashed var(--border);border-radius:10px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s}.create-class-btn:hover{border-color:var(--primary);color:var(--primary)}.create-class-form{display:flex;gap:12px;margin-top:12px}.create-class-form input{flex:1;padding:10px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:14px}.create-class-form input:focus{outline:none;border-color:var(--primary)}.create-class-form button{padding:10px 20px;background:var(--primary);border:none;border-radius:10px;color:#fff;font-size:14px;cursor:pointer}.create-class-form button:disabled{opacity:.6;cursor:not-allowed}.create-class-form .cancel-btn{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}.create-class-form .cancel-btn:hover{border-color:var(--danger);color:var(--danger)}.class-filter-section{margin-bottom:24px;padding:16px 20px;background:var(--bg-card);border-radius:12px;border:1px solid var(--border)}.class-filter-section h3{font-size:16px;margin-bottom:12px;color:var(--text-secondary)}.class-filter-tabs{display:flex;flex-wrap:wrap;gap:8px}.class-tab{padding:8px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s}.class-tab:hover{border-color:var(--primary);color:var(--primary)}.class-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.class-badge{display:inline-block;padding:4px 10px;background:var(--bg-input);border-radius:12px;font-size:12px;color:var(--text-secondary);margin-bottom:8px}.class-badge.has-class{background:#6366f133;color:var(--primary)}.assign-class-select{padding:6px 10px;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:12px;cursor:pointer}.assign-class-select:focus{outline:none;border-color:var(--primary)}.students-section{margin-top:32px}.students-section h3{font-size:20px;margin-bottom:20px}.loading-state,.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state svg{margin-bottom:16px;opacity:.5}.empty-state p{font-size:18px;margin-bottom:8px}.empty-state span{font-size:14px}.email-badge{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:8px}.student-actions{display:flex;gap:8px;justify-content:center}.remove-btn{padding:10px 16px;background:transparent;border:1px solid var(--danger);border-radius:8px;color:var(--danger);font-size:14px;cursor:pointer;transition:all .2s}.remove-btn:hover{background:#ef444426}.join-class-section{margin-bottom:32px}.join-class-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px}.join-class-card h3{font-size:18px;margin-bottom:8px}.join-class-card p{color:var(--text-secondary);font-size:14px;margin-bottom:16px}.join-form{display:flex;gap:12px}.join-form input{flex:1;padding:12px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:14px}.join-form input:focus{outline:none;border-color:var(--primary)}.join-form button{padding:12px 24px;background:var(--secondary);border:none;border-radius:10px;color:#fff;font-size:14px;cursor:pointer;white-space:nowrap}.join-form button:hover:not(:disabled){background:#0d9668}.join-form button:disabled{opacity:.6;cursor:not-allowed}.my-teachers-section{margin-top:32px}.my-teachers-section h3{font-size:20px;margin-bottom:20px}.teachers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.teacher-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;text-align:center}.teacher-avatar-large{font-size:48px;margin-bottom:12px}.teacher-card h3{font-size:18px;margin-bottom:8px}.teacher-actions{display:flex;gap:8px;justify-content:center;margin-top:16px}.vocab-review{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.review-stats{display:flex;gap:32px}.review-stat{text-align:center}.review-stat .value{display:block;font-size:28px;font-weight:700}.review-stat .label{font-size:13px;color:var(--text-secondary)}.start-review-btn{display:flex;align-items:center;gap:8px;padding:14px 28px;background:var(--secondary);border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s}.start-review-btn:hover{background:#059669}.vocab-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.vocab-card{background:var(--bg-input);border:1px solid var(--border);border-radius:12px;padding:20px}.vocab-word{font-size:24px;font-weight:700;margin-bottom:4px}.vocab-pinyin{color:var(--primary);font-size:14px;margin-bottom:4px}.vocab-meaning{color:var(--text-secondary);font-size:13px;margin-bottom:16px}.vocab-mastery{display:flex;align-items:center;gap:12px}.mastery-bar{flex:1;height:6px;background:var(--bg-card);border-radius:3px;overflow:hidden}.mastery-fill{height:100%;background:var(--secondary);border-radius:3px}.vocab-mastery span{font-size:12px;color:var(--text-secondary)}.my-report{display:grid;gap:24px}.profile-section{display:flex;align-items:center;gap:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px}.profile-avatar{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--bg-input);border-radius:50%;cursor:pointer;transition:all .2s}.profile-avatar:hover{transform:scale(1.05)}.profile-avatar .avatar-display{font-size:40px}.profile-avatar .edit-hint{position:absolute;bottom:-4px;right:-4px;background:var(--primary);color:#fff;font-size:10px;padding:2px 6px;border-radius:8px}.profile-info{flex:1}.profile-name{font-size:24px;font-weight:600;margin:0 0 4px;color:var(--text-primary)}.profile-level{font-size:14px;color:var(--text-secondary)}.avatar-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:10px}.avatar-option{width:48px;height:48px;font-size:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-input);border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s}.avatar-option:hover{background:var(--bg-hover)}.avatar-option.selected{border-color:var(--primary);background:#6366f11a}.radar-large,.weekly-stats,.achievements-preview{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px}.radar-large h3,.weekly-stats h3,.achievements-preview h3{font-size:16px;margin-bottom:20px}.achievement-list{display:flex;flex-direction:column;gap:12px}.achievement-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-input);border-radius:10px}.achievement-icon{font-size:28px}.achievement-info .achievement-name{display:block;font-weight:500;margin-bottom:4px}.achievement-info .achievement-date{font-size:12px;color:var(--text-secondary)}.student-achievements{display:flex;flex-direction:column;gap:16px}.achievements-header{display:flex;justify-content:space-between;align-items:center}.achievements-summary{font-size:14px}.achieved-count{font-weight:700;color:var(--primary)}.achieved-label{color:var(--text-secondary)}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.achievement-category{background:var(--bg-input);border-radius:12px;padding:16px}.category-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.category-icon{font-size:20px}.category-name{font-weight:600;font-size:14px}.category-achievements{display:flex;flex-direction:column;gap:10px}.achievement-card{background:var(--bg-card);border-radius:10px;padding:14px;transition:transform .2s}.achievement-card:hover{transform:translateY(-2px)}.achievement-card.max-level{background:linear-gradient(135deg,var(--primary),var(--primary-light))}.achievement-card.max-level .achievement-name,.achievement-card.max-level .achievement-level{color:#fff}.achievement-card.max-level .achievement-description{color:#fffc}.achievement-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.achievement-card .achievement-icon{font-size:24px}.achievement-title{display:flex;flex-direction:column}.achievement-title .achievement-name{font-weight:600;font-size:14px}.achievement-title .achievement-level{font-size:12px;color:var(--primary)}.achievement-progress{margin-bottom:8px}.progress-bar{height:6px;background:var(--bg-input);border-radius:3px;overflow:hidden;margin-bottom:6px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-light));border-radius:3px;transition:width .3s ease}.achievement-card.max-level .progress-bar{background:#ffffff4d}.progress-text{display:flex;justify-content:space-between;font-size:11px;color:var(--text-secondary)}.max-label{color:var(--primary);font-weight:600}.achievement-description{font-size:11px;color:var(--text-secondary)}.achievements-loading{text-align:center;padding:20px;color:var(--text-secondary)}.next-level-hint{font-size:11px;color:var(--primary);margin-top:6px;padding:4px 8px;background:var(--bg-input);border-radius:4px;display:inline-block}.achievement-card.max-level .next-level-hint{background:#fff3;color:#fff}.next-level-hint:before{content:"➡️ "}.achievement-card:not(.max-level){border-left:3px solid var(--border)}.achievement-card:not(.max-level) .achievement-level{color:var(--text-secondary)}.achievement-card:not(.max-level) .achievement-icon{filter:grayscale(.3);opacity:.8}.achievements-page{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:32px}.student-achievements.compact .achievements-badges{display:flex;flex-wrap:wrap;gap:8px}.achievement-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;background:var(--bg-input);border:1px solid var(--border);font-size:12px;transition:all .2s}.achievement-badge .badge-icon{font-size:18px}.achievement-badge .badge-name{color:var(--text-primary);font-weight:500}.achievement-badge.max-level{background:linear-gradient(135deg,var(--primary),var(--primary-light));border-color:transparent}.achievement-badge.max-level .badge-name{color:#fff}.achievement-stats{display:flex;justify-content:center;gap:48px;margin-bottom:40px}.achievement-stat{text-align:center}.achievement-stat .value{display:block;font-size:36px;font-weight:700;color:var(--primary)}.achievement-stat .label{font-size:14px;color:var(--text-secondary)}.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.badge{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;background:var(--bg-input);border:2px solid var(--border);border-radius:16px;opacity:.5}.badge.earned{opacity:1;border-color:var(--secondary)}.badge-icon{font-size:40px}.badge-name{font-size:13px;color:var(--text-secondary)}@media (max-width: 1200px){.stats-overview{grid-template-columns:repeat(2,1fr)}.chart-section{grid-template-columns:1fr}.action-buttons{grid-template-columns:repeat(2,1fr)}.scenario-grid{grid-template-columns:repeat(3,1fr)}.assessment-content{grid-template-columns:1fr}}@media (max-width: 768px){.sidebar{width:80px}.sidebar .logo span,.sidebar .nav-item span,.sidebar .sidebar-footer span{display:none}.main-content{margin-left:80px}.stats-overview,.dashboard-grid.student{grid-template-columns:1fr}.scenario-grid{grid-template-columns:repeat(2,1fr)}.voice-controls{flex-direction:column}.stats-grid{grid-template-columns:1fr}}.vocab-practice-container{max-width:900px;margin:0 auto}.practice-header{text-align:center;margin-bottom:32px}.practice-header h2{font-size:28px;color:var(--text-primary);margin-bottom:8px}.practice-header p{color:var(--text-secondary)}.stats-dashboard{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.stats-dashboard .stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px}.stats-dashboard .stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.stats-dashboard .stat-icon.success{background:#d1fae5;color:#059669}.stats-dashboard .stat-icon.warning{background:#fef3c7;color:#d97706}.stats-dashboard .stat-icon.info{background:#dbeafe;color:#2563eb}.stats-dashboard .stat-icon.error{background:#fee2e2;color:#dc2626}.stats-dashboard .stat-info{display:flex;flex-direction:column}.stats-dashboard .stat-value{font-size:24px;font-weight:700;color:var(--text-primary)}.stats-dashboard .stat-label{font-size:14px;color:var(--text-secondary)}.meaning-lang-toggle{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;background:var(--bg-card);border-radius:12px;border:1px solid var(--border)}.toggle-label{font-size:14px;color:var(--text-secondary)}.toggle-btn{padding:8px 16px;border:2px solid var(--border);border-radius:8px;background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s}.toggle-btn:hover{border-color:var(--primary);color:var(--primary)}.toggle-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.practice-types{margin-bottom:32px}.practice-types h3{font-size:18px;margin-bottom:16px;color:var(--text-primary)}.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.type-card{background:var(--bg-card);border:2px solid var(--border);border-radius:16px;padding:24px;text-align:center;cursor:pointer;transition:all .2s}.type-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 12px #6366f126}.type-icon{width:48px;height:48px;margin:0 auto 12px;color:var(--primary)}.type-name{display:block;font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.type-desc{display:block;font-size:14px;color:var(--text-secondary)}.error-book-section{text-align:center;margin-top:24px}.error-book-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;color:#92400e;font-weight:500;cursor:pointer;transition:all .2s}.error-book-btn:hover{background:#fde68a}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-card);border-radius:16px;max-width:600px;width:90%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:20px;font-weight:600}.modal-header .modal-close{width:32px;height:32px;border:none;background:none;font-size:24px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-header .modal-close:hover{color:var(--text-primary)}.modal-body{padding:24px;overflow-y:auto;flex:1}.modal-body .form-group{margin-bottom:20px}.modal-body .form-group label{display:block;font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:8px}.modal-body .form-group input[type=text]{width:100%;padding:12px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:#000;font-size:14px}.modal-body .form-group input[type=text]:focus{outline:none;border-color:var(--primary)}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border)}.modal-footer .cancel-btn{padding:10px 20px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);font-size:14px;cursor:pointer}.modal-footer .save-btn{padding:10px 20px;background:var(--primary);border:none;border-radius:8px;color:#fff;font-size:14px;cursor:pointer}.modal-footer .save-btn:hover:not(:disabled){opacity:.9}.modal-footer .save-btn:disabled{opacity:.6;cursor:not-allowed}.close-btn{width:32px;height:32px;border:none;background:none;font-size:24px;color:var(--text-secondary);cursor:pointer}.error-book-list{padding:24px;overflow-y:auto;flex:1}.empty-message{text-align:center;color:var(--text-secondary);padding:40px}.error-item{background:#fef2f2;border:1px solid #fee2e2;border-radius:12px;padding:16px;margin-bottom:12px}.error-word .word{font-size:20px;font-weight:600;color:var(--text-primary)}.error-word .pinyin{color:var(--text-secondary)}.audio-btn{width:28px;height:28px;border:none;background:var(--primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.error-meaning{margin-bottom:8px}.error-meaning .meaning-en{color:var(--text-secondary);display:block}.error-meaning .meaning-cn{color:var(--text-primary);font-size:14px;margin-top:4px}.error-example{background:#fff;padding:8px 12px;border-radius:6px;font-size:14px;color:var(--text-secondary);margin-bottom:8px}.error-stats{display:flex;gap:16px;font-size:12px;color:var(--text-secondary)}.practice-progress{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:24px}.progress-info{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--text-secondary)}.practice-progress .progress-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden;margin-bottom:8px}.practice-progress .progress-fill{height:100%;background:var(--primary);border-radius:4px;transition:width .3s}.score-display{display:flex;align-items:center;gap:4px;color:#059669;font-weight:600}.correct-icon{color:#059669}.question-container{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:32px;margin-bottom:24px}.question-text{font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:24px;text-align:center}.options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.option-btn{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--bg);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left}.option-btn:hover:not(:disabled){border-color:var(--primary)}.option-btn.correct{border-color:#059669;background:#d1fae5}.option-btn.incorrect{border-color:#dc2626;background:#fee2e2}.option-btn:disabled{cursor:not-allowed}.option-key{width:32px;height:32px;background:var(--primary);color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.option-text{flex:1;font-size:16px}.option-icon{flex-shrink:0}.cloze-sentence{font-size:18px;line-height:2;text-align:center;margin-bottom:24px}.cloze-blank{display:inline-block;min-width:100px;padding:4px 16px;border-bottom:2px solid var(--primary);color:var(--primary);font-weight:600}.cloze-blank.filled{background:#6366f11a}.cloze-blank.correct{background:#d1fae5;border-color:#059669}.cloze-blank.incorrect{background:#fee2e2;border-color:#dc2626}.sentence-builder{margin-bottom:24px}.selected-words{min-height:60px;padding:16px;background:var(--bg);border:2px dashed var(--border);border-radius:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}.selected-words .placeholder{color:var(--text-secondary)}.selected-words.correct{border-color:#059669;background:#d1fae5}.selected-words.incorrect{border-color:#dc2626;background:#fee2e2}.word-chip{padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:16px;cursor:pointer;transition:all .2s}.word-chip:hover:not(:disabled){transform:scale(1.05)}.word-chip.available{background:var(--bg);color:var(--text-primary);border:1px solid var(--border)}.word-chip:disabled{cursor:not-allowed}.available-words{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.answer-explanation{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.result-badge{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-weight:600}.result-badge.correct{background:#d1fae5;color:#059669}.result-badge.incorrect{background:#fee2e2;color:#dc2626}.vocab-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.vocab-info .word{font-size:24px;font-weight:700;color:var(--text-primary)}.vocab-info .pinyin{font-size:16px;color:var(--text-secondary)}.vocab-info .meaning{font-size:16px;color:var(--primary)}.correct-sentence{background:#d1fae5;padding:12px 16px;border-radius:8px;margin-bottom:16px;color:#1a1a1a}.practice-actions{display:flex;gap:12px;justify-content:center}.submit-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.submit-btn.primary{background:var(--primary);color:#fff;border:none}.submit-btn.primary:hover:not(:disabled){background:#4f46e5}.submit-btn.primary:disabled{opacity:.5;cursor:not-allowed}.submit-btn.secondary{background:var(--bg);color:var(--text-primary);border:1px solid var(--border)}.submit-btn.secondary:hover{background:var(--bg-hover)}.practice-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px;color:var(--text-secondary)}.practice-loading .spin{animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.practice-completed{max-width:500px;margin:0 auto;text-align:center;padding:48px 24px}.completed-icon{font-size:72px;margin-bottom:24px}.practice-completed h2{font-size:28px;color:var(--text-primary);margin-bottom:24px}.score-summary{display:flex;align-items:center;justify-content:center;gap:32px;margin-bottom:32px}.score-circle{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#8b5cf6);display:flex;align-items:center;justify-content:center}.score-value{font-size:32px;font-weight:700;color:#fff}.score-details{text-align:left}.score-details p{font-size:16px;color:var(--text-secondary);margin-bottom:8px}.score-details strong{color:var(--text-primary)}.completed-actions{display:flex;gap:12px;justify-content:center}@media (max-width: 768px){.stats-dashboard{grid-template-columns:repeat(2,1fr)}.type-grid,.options-grid{grid-template-columns:1fr}.practice-actions{flex-direction:column}}.init-section{text-align:center;padding:24px;margin:20px 0;background:var(--bg-card);border-radius:16px;border:1px solid var(--border)}.init-hint{color:var(--text-secondary);margin-bottom:16px;font-size:14px}.init-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.init-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #6366f166}.init-btn:disabled{opacity:.7;cursor:not-allowed}.error-book-search{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-input);border-radius:12px;margin-bottom:16px}.error-book-search .search-icon{color:var(--text-secondary)}.error-book-search .search-input{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:14px;outline:none}.error-book-search .search-input::-moz-placeholder{color:var(--text-secondary)}.error-book-search .search-input::placeholder{color:var(--text-secondary)}.error-item{background:#fef5f5;border-radius:12px;padding:16px;margin-bottom:12px}.error-word{display:flex;align-items:center;gap:8px;margin-bottom:8px}.error-word .word{font-size:20px;font-weight:700;color:#1a1a1a}.error-word .pinyin{font-size:14px;color:#666}.error-meaning{font-size:14px;margin-bottom:8px}.error-meaning .meaning-en{color:#666;display:block}.error-meaning .meaning-cn{color:#333;margin-top:4px}.error-example{font-size:13px;color:#555;font-style:italic;margin-bottom:8px}.error-stats{display:flex;gap:16px;font-size:12px;color:#666}.word-chip{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:40px}.word-chip:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 8px #6366f14d}.word-chip:disabled{cursor:default}.word-chip.available{background:var(--bg-input);color:var(--text-primary)}.word-chip.available:hover{background:var(--primary);color:#fff}.selected-words{display:flex;flex-wrap:wrap;gap:8px;min-height:48px;padding:12px;background:var(--bg-input);border-radius:12px;margin-bottom:16px}.selected-words .placeholder{color:var(--text-secondary);font-size:14px}.available-words{display:flex;flex-wrap:wrap;gap:8px}.dashboard-grid.student{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width: 1024px){.dashboard-grid.student{grid-template-columns:1fr}}.daily-task{background:var(--bg-card);border-radius:16px;padding:20px;border:1px solid var(--border)}.daily-task h3{font-size:18px;margin-bottom:16px;color:var(--text-primary)}.task-list{display:flex;flex-direction:column;gap:12px}.task-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-input);border-radius:12px;color:var(--text-secondary);font-size:14px;transition:all .2s ease}.task-item:hover{background:var(--primary);color:#fff}.task-item.completed{background:#10b98126;color:var(--secondary)}.task-item.completed svg{color:var(--secondary)}.task-item.active{background:#6366f126;color:var(--primary)}.task-item.active svg{color:var(--primary)}.progress-overview{background:var(--bg-card);border-radius:16px;padding:20px;border:1px solid var(--border)}.progress-overview h3{font-size:18px;margin-bottom:16px;color:var(--text-primary)}.today-vocab-progress{display:flex;flex-direction:column;gap:16px}.today-section{background:var(--bg-input);border-radius:12px;padding:12px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.section-title{font-size:14px;font-weight:600;color:var(--text-primary)}.section-count{font-size:12px;color:var(--secondary);background:#10b98126;padding:2px 8px;border-radius:12px}.section-count.error{color:var(--danger);background:#ef444426}.vocab-scroll-list{display:flex;flex-wrap:wrap;gap:8px;max-height:120px;overflow-y:auto}.vocab-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:16px;font-size:12px;white-space:nowrap}.vocab-chip.new{background:#6366f133;color:var(--primary)}.vocab-chip.error{background:#ef444433;color:var(--danger)}.vocab-word{font-weight:500}.vocab-meaning{margin-left:6px;font-size:11px;opacity:.8}.empty-tip{font-size:13px;color:var(--text-secondary);padding:8px 0}.empty-tip.success{color:var(--secondary)}.more-tip{font-size:12px;color:var(--text-secondary);padding:4px 8px;background:var(--bg-card);border-radius:12px}.quick-practice{background:var(--bg-card);border-radius:16px;padding:20px;border:1px solid var(--border)}.quick-practice h3{font-size:18px;margin-bottom:16px;color:var(--text-primary)}.practice-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.practice-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;background:var(--bg-input);border:1px solid var(--border);border-radius:12px;color:var(--text-primary);font-size:14px;cursor:pointer;transition:all .2s ease}.practice-btn:hover{background:var(--primary);transform:translateY(-2px);box-shadow:0 4px 12px #6366f14d}.practice-btn svg{color:var(--primary)}.practice-btn:hover svg{color:#fff}.learning-chart{background:var(--bg-card);border-radius:16px;padding:20px;border:1px solid var(--border)}.learning-chart h3{font-size:18px;margin-bottom:16px;color:var(--text-primary)}.loading-state{display:flex;align-items:center;justify-content:center;padding:20px;color:var(--text-secondary);font-size:14px}.reset-section{margin-top:20px;text-align:center}.reset-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:transparent;border:1px solid var(--danger);color:var(--danger);border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s ease}.reset-btn:hover:not(:disabled){background:var(--danger);color:#fff}.reset-btn:disabled{opacity:.5;cursor:not-allowed}.reset-btn .spin{animation:spin 1s linear infinite}.listening-practice-page{max-width:800px;margin:0 auto}.listening-progress-bar{margin-bottom:24px}.progress-info{display:flex;justify-content:space-between;font-size:14px;color:var(--text-secondary);margin-bottom:8px}.progress-track{height:8px;background:var(--bg-input);border-radius:4px;overflow:hidden}.progress-track .progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-light));border-radius:4px;transition:width .3s ease}.question-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;margin-bottom:20px}.question-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.question-info{display:flex;flex-direction:column;gap:6px}.question-source{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.question-title{font-size:18px;font-weight:600}.question-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.difficulty{font-size:12px;color:var(--text-secondary)}.difficulty .star{color:var(--border)}.difficulty .star.filled{color:#fbbf24}.duration{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary)}.audio-player{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:24px;margin-bottom:24px}.audio-wave{display:flex;justify-content:center;align-items:center;gap:4px;height:60px;margin-bottom:16px}.wave-bar{width:4px;height:20px;background:#fff6;border-radius:2px;animation:wave .5s ease-in-out infinite alternate}.wave-bar.playing{animation:wave .5s ease-in-out infinite alternate}@keyframes wave{0%{height:10px}to{height:40px}}.audio-controls{display:flex;flex-direction:column;align-items:center;gap:16px}.play-btn{width:56px;height:56px;border-radius:50%;background:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;color:#667eea}.play-btn:hover{transform:scale(1.1);box-shadow:0 4px 15px #0003}.playback-controls{display:flex;align-items:center;gap:16px}.replay-btn{width:36px;height:36px;border-radius:50%;background:#fff3;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.speed-selector{display:flex;gap:4px}.speed-btn{padding:4px 8px;border-radius:4px;background:#fff3;border:none;color:#fff;font-size:12px;cursor:pointer;transition:all .2s}.speed-btn.active{background:#fff;color:#667eea}.audio-hint{text-align:center;font-size:12px;color:#ffffffb3;margin-top:12px}.options-list{display:flex;flex-direction:column;gap:12px}.option-btn{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-input);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s;text-align:left}.option-btn:hover:not(:disabled){border-color:var(--primary);background:var(--bg-card)}.option-btn.selected{border-color:var(--primary);background:#6366f11a}.option-btn.correct{border-color:#10b981;background:#10b9811a}.option-btn.incorrect{border-color:#ef4444;background:#ef44441a}.option-id{width:28px;height:28px;border-radius:50%;background:var(--bg-card);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.option-text{flex:1;font-size:15px}.result-icon{margin-left:auto}.result-icon.correct{color:#10b981}.result-icon.incorrect{color:#ef4444}.answer-result{margin-top:20px;padding:16px;border-radius:10px}.answer-result.correct{background:#10b9811a;border:1px solid #10b981}.answer-result.incorrect{background:#ef44441a;border:1px solid #ef4444}.result-header{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:12px}.answer-result.correct .result-header{color:#10b981}.answer-result.incorrect .result-header{color:#ef4444}.script-section h4{font-size:13px;color:var(--text-secondary);margin-bottom:6px}.script-text{font-size:14px;line-height:1.6;color:var(--text-primary);white-space:pre-line}.action-buttons{margin-top:24px}.confirm-btn,.next-btn{width:100%;padding:14px;border-radius:10px;border:none;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.confirm-btn{background:var(--primary);color:#fff}.confirm-btn:hover:not(:disabled){opacity:.9}.confirm-btn:disabled{opacity:.5;cursor:not-allowed}.next-btn{background:var(--bg-input);color:var(--text-primary);border:2px solid var(--border)}.next-btn:hover{border-color:var(--primary)}.answer-sheet{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px}.answer-sheet h4{font-size:14px;margin-bottom:12px}.answer-sheet-grid{display:flex;flex-wrap:wrap;gap:8px}.answer-dot{width:32px;height:32px;border-radius:50%;background:var(--bg-input);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500}.answer-dot.current{border:2px solid var(--primary)}.answer-dot.correct{background:#10b981;color:#fff}.answer-dot.incorrect{background:#ef4444;color:#fff}.practice-summary{display:flex;gap:16px;margin-top:12px;font-size:13px;color:var(--text-secondary)}.restart-btn{margin-top:12px;padding:8px 16px;border-radius:6px;border:1px solid var(--border);background:var(--bg-input);font-size:13px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.restart-btn:hover{border-color:var(--primary)}
