*,: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: .25rem;--background: 36 33% 94%;--foreground: 25 25% 11%;--card: 36 38% 97%;--card-foreground: 25 25% 11%;--popover: 36 38% 97%;--popover-foreground: 25 25% 11%;--primary: 14 49% 48%;--primary-foreground: 36 33% 94%;--secondary: 99 21% 40%;--secondary-foreground: 36 33% 94%;--muted: 35 27% 88%;--muted-foreground: 30 16% 36%;--accent: 35 27% 88%;--accent-foreground: 25 25% 11%;--destructive: 8 47% 44%;--destructive-foreground: 36 33% 94%;--border: 33 26% 80%;--input: 33 26% 80%;--ring: 14 49% 48%;--sidebar-background: 35 27% 88%;--sidebar-foreground: 25 25% 11%;--sidebar-primary: 14 49% 48%;--sidebar-primary-foreground: 36 33% 94%;--sidebar-accent: 36 38% 97%;--sidebar-accent-foreground: 25 25% 11%;--sidebar-border: 33 26% 80%;--sidebar-ring: 14 49% 48%}.collapse{visibility:collapse}.static{position:static}.absolute{position:absolute}.relative{position:relative}.mt-2{margin-top:.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.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}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.outline{outline-style:solid}.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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@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))}}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}img{-o-object-position:top;object-position:top}.fixed{position:fixed}*{margin:0;padding:0;box-sizing:border-box}:root{--paper: #F7F2EA;--paper-2: #EFE7D9;--ink: #1F1A14;--ink-soft: #4A3F32;--ink-mute: #8A7C6A;--rule: #D9CFBE;--rule-soft: #E8DFCE;--primary: #B8543C;--primary-dark: #9A4030;--primary-soft: #F0D9CF;--primary-tint: #F8E9E0;--track-blue: #0EA5E9;--track-blue-dark: #0284C7;--track-blue-soft: #BAE6FD;--track-blue-tint: #E0F2FE;--track-blue-paper: #F0F9FF;--secondary: #5C7F4E;--secondary-dark: #45603A;--secondary-soft: #DDE6D3;--warning: #C28B2D;--warning-soft: #F5E7C8;--danger: #A8463A;--ideo-accent: #8B6F47;--ideo-accent-soft: #EFE3D0;--ideo-accent-tint: #FAF4E8;--bg-dark: var(--paper);--bg-card: #FBF7F0;--bg-input: #F1EADD;--text-primary: var(--ink);--text-secondary: var(--ink-mute);--border: var(--rule);--bg-hover: #ECE3D2;--bg: var(--paper);--bg-light: #FBF7F0}body{font-family:Noto Sans SC,Geist,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--paper);color:var(--ink);line-height:1.6;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,.page-header h1,.agent-info h2,.role-selection-header h1,.role-selection-card h2,.workflow-container h2,.workflow-title h3,.practice-header h2,.practice-completed h2,.practice-types h3,.invite-code-card h3,.add-student-form h3,.join-class-card h3,.students-section h3,.my-teachers-section h3,.profile-name{font-family:Fraunces,"Noto Serif SC",Georgia,Times New Roman,serif;font-weight:600;font-style:normal;letter-spacing:-.01em;color:var(--ink)}:lang(zh),.lang-zh,.page-header p,.subtitle,h1>.cn,h2>.cn{font-family:"Noto Serif SC",Fraunces,Georgia,serif}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--paper);gap:16px}.loading-screen p{color:var(--ink-mute);font-size:15px;font-family:Fraunces,Georgia,serif;font-style:normal}#root{min-height:100vh}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 20% 0%,rgba(184,84,60,.04),transparent 40%),radial-gradient(circle at 80% 100%,rgba(92,127,78,.05),transparent 45%),var(--paper);padding:20px}.login-card{background:var(--bg-card);border-radius:4px;padding:48px;width:100%;max-width:480px;box-shadow:0 1px 0 var(--rule),0 24px 48px -24px #1f1a142e;border:1px solid var(--rule);position:relative}.login-header{text-align:center;margin-bottom:40px;border-bottom:1px solid var(--rule-soft);padding-bottom:28px}.login-logo{color:var(--primary);margin-bottom:16px}.login-header h1{font-size:32px;font-weight:600;margin-bottom:8px;color:var(--ink);font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;letter-spacing:-.02em}.login-header p{color:var(--ink-mute);font-size:14px;font-family:"Noto Serif SC",Georgia,serif}.login-options{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.login-btn{display:flex;align-items:center;gap:16px;padding:18px 22px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;cursor:pointer;transition:border-color .2s ease,background .2s ease;color:var(--ink)}.login-btn:hover{border-color:var(--primary);background:var(--primary-tint)}.login-btn.teacher:hover{border-color:var(--secondary);background:var(--secondary-soft)}.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,.hsk-select{width:100%;padding:12px 16px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink);font-size:14px;transition:border-color .2s,box-shadow .2s;font-family:inherit}.form-group input:focus,.form-group select:focus,.hsk-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #b8543c1f}.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(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-mute);font-size:14px;cursor:pointer;transition:border-color .2s,color .2s,background .2s}.role-btn:hover{border-color:var(--primary);color:var(--ink)}.role-btn.active{border-color:var(--primary);background:var(--primary-tint);color:var(--primary)}.submit-btn{width:100%;padding:14px;background:var(--ink);border:1px solid var(--ink);border-radius:4px;color:var(--paper);font-size:15px;font-weight:500;cursor:pointer;transition:background .2s,color .2s;font-family:inherit;letter-spacing:.02em}.submit-btn:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.error-message{padding:12px 16px;background:#a8463a14;border:1px solid rgba(168,70,58,.35);border-left:3px solid var(--danger);border-radius:4px;color:var(--danger);font-size:14px;margin-bottom:16px}.divider{display:flex;align-items:center;margin:24px 0;color:var(--ink-mute);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--rule)}.divider span{padding:0 16px}.register-link{text-align:center;margin-bottom:24px;color:var(--ink-mute);font-size:14px}.register-link button{background:none;border:none;color:var(--primary);font-size:14px;cursor:pointer;padding:0;margin-left:4px;font-family:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.register-link button:hover{color:var(--primary-dark)}.forgot-link{display:flex;align-items:center;justify-content:flex-end;gap:5px;width:100%;margin-top:6px;background:none;border:none;padding:0;color:var(--ink-mute);font-size:13px;font-family:inherit;cursor:pointer;transition:color .15s ease}.forgot-link:hover{color:var(--primary)}.forgot-hint{margin:-4px 0 16px;padding:10px 12px;background:#7a6f5f0f;border-left:2px solid var(--rule);border-radius:3px;color:var(--ink-mute);font-size:12.5px;line-height:1.6}.success-message{padding:12px 16px;background:#5a7a5414;border:1px solid rgba(90,122,84,.35);border-left:3px solid #5a7a54;border-radius:4px;color:#3f5c3a;font-size:14px;line-height:1.6;margin-bottom:16px}.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:var(--paper);border:1px dashed var(--ink-mute);border-radius:4px;color:var(--ink);font-size:14px;font-weight:500;cursor:pointer;transition:border-color .2s,background .2s;font-family:inherit}.demo-btn:hover{background:var(--primary-tint);border-color:var(--primary);border-style:solid}.demo-btn svg{color:var(--ink-mute)}.login-features{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;padding-top:24px;border-top:1px solid var(--rule-soft)}.login-features .feature{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-mute);letter-spacing:.02em}.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:20px 16px;gap:20px;background:var(--paper)}.role-selection-header{text-align:center;margin-bottom:16px}.role-selection-header .login-logo{color:var(--primary);margin-bottom:12px;width:48px;height:48px}.role-selection-header h1{font-size:36px;font-weight:600;margin-bottom:6px;color:var(--ink);font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;letter-spacing:-.02em}.role-selection-header p{color:var(--ink-mute);font-size:15px;font-family:"Noto Serif SC",Georgia,serif}.role-selection-cards{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;max-width:720px;width:100%}.role-selection-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;padding:28px 24px;width:320px;text-align:left;cursor:pointer;transition:border-color .2s,background .2s;position:relative}.role-selection-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--ink);opacity:0;transition:opacity .2s ease}.role-selection-card:hover{border-color:var(--ink);background:var(--bg-card);box-shadow:0 8px 24px -12px #1f1a142e}.role-selection-card:hover:before{opacity:1}.role-selection-card.teacher-card:hover{border-color:var(--primary)}.role-selection-card.student-card:hover{border-color:var(--secondary)}.role-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;background:var(--primary-tint);border:1px solid var(--primary-soft)}.teacher-card .role-icon{background:var(--primary-tint);border-color:var(--primary-soft)}.teacher-card .role-icon svg{color:var(--primary);width:32px;height:32px}.student-card .role-icon{background:var(--secondary-soft);border-color:var(--secondary-soft)}.student-card .role-icon svg{color:var(--secondary);width:32px;height:32px}.role-selection-card h2{font-size:22px;font-weight:600;margin-bottom:6px;text-align:center;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;color:var(--ink)}.role-selection-card .role-subtitle{text-align:center;font-size:12px;color:var(--ink-mute);letter-spacing:.06em;text-transform:uppercase;margin-bottom:16px}.role-selection-card ul{list-style:none;text-align:left;margin-bottom:20px}.role-selection-card li{padding:5px 0;color:var(--ink-soft);display:flex;align-items:center;gap:10px;font-size:14px}.role-selection-card li:before{content:"·";color:var(--ink-mute);font-weight:700;font-size:18px;line-height:0}.teacher-card li:before{color:var(--primary)}.role-enter-btn{width:100%;padding:12px 24px;font-size:14px;font-weight:500;border-radius:4px;cursor:pointer;transition:background .2s,color .2s,border-color .2s;font-family:inherit;letter-spacing:.02em}.role-enter-btn.teacher{background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.role-enter-btn.teacher:hover{background:var(--primary);border-color:var(--primary);color:#fff}.role-enter-btn.student{background:var(--paper);color:var(--ink);border:1px solid var(--ink)}.role-enter-btn.student:hover{background:var(--ink);color:var(--paper)}.version-tag{margin-top:16px}.version-tag span{background:transparent;color:var(--ink-mute);padding:6px 16px;border:1px solid var(--rule);border-radius:999px;font-size:12px;font-weight:500;letter-spacing:.04em}.platform-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;width:100%;max-width:960px;margin:0 auto 12px;padding:16px 0 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.platform-stats .stat-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 10px;background:transparent;border:none;border-right:1px solid var(--rule-soft);border-radius:0;text-align:center;color:var(--ink)}.platform-stats .stat-item:last-child{border-right:none}.platform-stats .stat-value{font-size:28px;font-weight:600;line-height:1.1;color:var(--ink);font-family:Fraunces,Georgia,serif;font-feature-settings:"tnum";font-style:normal;letter-spacing:-.02em}.platform-stats .stat-label{font-size:11px;color:var(--ink-mute);letter-spacing:.08em;text-transform:uppercase;font-family:Noto Sans SC,sans-serif}.platform-stats .stat-item.wide .stat-label{font-size:11px;font-weight:500;color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase}@media (max-width: 640px){.platform-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:12px 0 0}.platform-stats .stat-item{border-bottom:1px solid var(--rule-soft)}.platform-stats .stat-value{font-size:22px}}.back-btn{position:absolute;top:24px;left:24px;background:transparent;border:1px solid var(--rule);color:var(--ink-soft);padding:8px 16px;border-radius:4px;cursor:pointer;transition:color .2s,border-color .2s;font-family:inherit;font-size:13px}.back-btn:hover{background:var(--paper-2);color:var(--ink);border-color:var(--ink)}.app{display:flex;min-height:100vh;background:var(--paper)}.sidebar{width:280px;background:var(--paper-2);border-right:1px solid var(--rule);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:24px 20px;border-bottom:1px solid var(--rule)}.logo{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:600;color:var(--ink);font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;letter-spacing:-.01em}.logo-icon{color:var(--primary)}.toggle-btn{background:none;border:1px solid var(--rule);color:var(--ink-mute);cursor:pointer;padding:6px;border-radius:4px;transition:color .2s,border-color .2s}.toggle-btn:hover{background:var(--paper);color:var(--ink);border-color:var(--ink)}.sidebar-nav{flex:1;padding:20px 12px;display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 14px;background:none;border:none;border-radius:4px;color:var(--ink-soft);cursor:pointer;transition:background .2s,color .2s;font-size:14px;text-align:left;width:100%;font-family:inherit}.nav-item:hover{background:var(--paper);color:var(--ink)}.nav-item.active{background:var(--ink);color:var(--paper)}.nav-item.active svg{color:var(--paper)}.sidebar.collapsed .nav-item{justify-content:center;padding:11px 12px}.sidebar-footer{padding:16px 12px;border-top:1px solid var(--rule)}.sidebar-footer .nav-item.logout:hover{background:var(--primary-tint);color:var(--primary)}.main-content{flex:1;margin-left:280px;transition:margin-left .3s ease;background:var(--paper)}.main-content.expanded{margin-left:80px}.top-header{display:flex;align-items:center;justify-content:space-between;padding:20px 40px;background:var(--paper);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:50}.header-left h2{font-size:22px;font-weight:600;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;color:var(--ink);letter-spacing:-.01em}.header-right{display:flex;align-items:center;gap:16px}.assignment-center-btn{position:relative;display:inline-flex;align-items:center;gap:6px;padding:6px 14px 6px 12px;background:var(--primary-tint);border:1px solid var(--primary);border-radius:999px;color:var(--primary);cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;transition:background .2s,transform .1s}.assignment-center-btn:hover{background:var(--primary);color:var(--paper)}.assignment-center-btn:active{transform:scale(.97)}.assignment-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:#dc2626;color:#fff;border-radius:999px;font-size:11px;font-weight:700;line-height:18px;text-align:center;border:2px solid var(--paper);box-sizing:border-box;font-family:Geist Mono,JetBrains Mono,monospace}.assignment-center-modal{position:fixed;inset:0;background:#0f172a73;z-index:200;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:assignment-fade-in .18s ease-out}@keyframes assignment-fade-in{0%{opacity:0}to{opacity:1}}.assignment-center-panel{width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 64px);background:var(--paper, #fff);border-radius:12px;box-shadow:0 24px 60px #0f172a2e;display:flex;flex-direction:column;overflow:hidden;animation:assignment-slide-up .22s ease-out}@keyframes assignment-slide-up{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.assignment-center-header{padding:16px 20px;border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;background:var(--paper);flex-shrink:0}.assignment-center-body{padding:16px 20px;overflow-y:auto;flex:1}.logout-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--rule);border-radius:4px;color:var(--ink-mute);cursor:pointer;transition:color .2s,border-color .2s,background .2s}.logout-btn:hover{background:var(--primary-tint);border-color:var(--primary);color:var(--primary)}.user-info{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 8px;background:transparent;border:1px solid var(--rule);border-radius:999px}.user-avatar{font-size:22px;line-height:1}.user-name{font-weight:500;color:var(--ink);font-size:14px}.user-level{font-size:11px;padding:3px 8px;background:var(--primary);color:var(--paper);border-radius:999px;letter-spacing:.04em;font-family:Geist Mono,JetBrains Mono,monospace}.content-area{padding:36px 40px;min-height:calc(100vh - 73px);max-width:1280px}.page-header{margin-bottom:36px;padding-bottom:24px;border-bottom:1px solid var(--rule)}.page-header h1{font-size:36px;font-weight:600;margin-bottom:8px;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;color:var(--ink);letter-spacing:-.025em;line-height:1.15}.page-header p{color:var(--ink-mute);font-size:15px;font-family:"Noto Serif SC",Georgia,serif}.dashboard-grid{display:grid;gap:20px}.stats-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--rule);border-radius:4px;background:var(--bg-card);overflow:hidden}.stat-card.large{background:transparent;border:none;border-right:1px solid var(--rule);border-radius:0;padding:24px;display:flex;align-items:center;gap:16px}.stat-card.large:last-child{border-right:none}.stat-card.large svg{color:var(--primary);flex-shrink:0;stroke-width:1.5}.stat-card.large .stat-info{display:flex;flex-direction:column}.stat-card.large .stat-value{font-size:32px;font-weight:600;font-family:Fraunces,Georgia,serif;font-style:normal;letter-spacing:-.02em;color:var(--ink);line-height:1.1;font-feature-settings:"tnum"}.stat-card.large .stat-label{font-size:12px;color:var(--ink-mute);letter-spacing:.04em;margin-top:2px}.chart-section{display:grid;grid-template-columns:2fr 1fr;gap:20px}.chart-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;padding:24px}.chart-card h3{font-size:18px;margin-bottom:20px;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;font-weight:600}.class-filter-bar{background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;padding:18px 24px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.filter-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.filter-label{font-size:13px;color:var(--ink-mute);letter-spacing:.04em;flex-shrink:0;min-width:84px}.class-chips{display:flex;gap:8px;flex-wrap:wrap}.class-chip{padding:6px 14px;border:1px solid var(--rule);background:transparent;border-radius:999px;font-size:13px;color:var(--ink-mute);cursor:pointer;transition:all .15s}.class-chip:hover{border-color:var(--primary);color:var(--ink)}.class-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.range-toggle{display:flex;border:1px solid var(--rule);border-radius:999px;overflow:hidden}.range-btn{padding:6px 18px;border:none;background:transparent;font-size:13px;color:var(--ink-mute);cursor:pointer;transition:all .15s}.range-btn.active{background:var(--primary);color:#fff}.filter-summary{font-size:13px;color:var(--ink-mute);margin-left:auto}.dashboard-grid .chart-section{grid-template-columns:repeat(2,1fr)}.chart-card.full-width{grid-column:1 / -1}.chart-empty{display:flex;align-items:center;justify-content:center;height:220px;font-size:14px;color:var(--ink-mute)}.mastery-legend{display:flex;justify-content:center;gap:20px;margin-top:8px;flex-wrap:wrap}.mastery-legend .legend-item i{width:10px;height:10px;border-radius:2px;display:inline-block}.trend-legend{justify-content:flex-start;margin-top:12px}.top-student-card{display:flex;flex-direction:column;gap:14px;padding:8px 0}.top-student-name{display:flex;align-items:center;gap:8px;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:18px;font-weight:600;color:var(--ink)}.top-student-name svg{color:var(--primary);stroke-width:1.5}.mastery-bar-row{display:flex;align-items:center;gap:12px}.mastery-bar-label{font-size:13px;color:var(--ink-mute);width:56px;flex-shrink:0}.mastery-bar-track{flex:1;height:8px;background:var(--bg-input);border-radius:999px;overflow:hidden}.mastery-bar-fill{height:100%;border-radius:999px;transition:width .3s}.mastery-bar-value{font-size:13px;color:var(--ink);width:40px;text-align:right;flex-shrink:0;font-family:Fraunces,Georgia,serif}.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(--ink-mute)}.legend-color{width:10px;height:10px;border-radius:2px}.quick-actions{background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;padding:24px}.quick-actions h3{font-size:18px;margin-bottom:20px;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;font-weight:600}.action-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--rule);border-radius:4px;overflow:hidden}.action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:22px 14px;background:var(--paper);border:none;border-right:1px solid var(--rule);border-radius:0;color:var(--ink);cursor:pointer;transition:background .2s;font-size:13px;font-family:inherit}.action-btn:last-child{border-right:none}.action-btn:hover{background:var(--primary-tint)}.action-btn.primary{background:var(--ink);color:var(--paper)}.action-btn.primary svg{color:var(--primary-soft);stroke:var(--primary-soft)}.action-btn.primary:hover{background:var(--primary);color:var(--paper)}.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(--rule);border-radius:4px;padding:24px}.daily-task h3,.progress-overview h3,.quick-practice h3,.learning-chart h3{font-size:18px;margin-bottom:20px;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;font-weight:600;color:var(--ink)}.task-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--rule);border-radius:4px;overflow:hidden}.task-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--paper);border:none;border-bottom:1px solid var(--rule-soft);border-radius:0;font-size:14px;color:var(--ink-soft);transition:background .2s;cursor:pointer}.task-item:last-child{border-bottom:none}.task-item:hover{background:var(--primary-tint);color:var(--primary)}.task-item.completed{color:var(--secondary);background:var(--secondary-soft)}.task-item.active{color:var(--ink);background:var(--paper-2);font-weight:500}.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(--ink)}.course-percent{color:var(--ink-mute);font-family:Geist Mono,monospace}.progress-bar{height:4px;background:var(--paper-2);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--primary);border-radius:2px;transition:width .3s ease}.practice-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--rule);border-radius:4px;overflow:hidden}.practice-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:22px;background:var(--paper);border:none;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);border-radius:0;color:var(--ink);cursor:pointer;transition:background .2s;font-size:14px;font-family:inherit}.practice-btn:nth-child(2n){border-right:none}.practice-btn:nth-last-child(-n+2){border-bottom:none}.practice-btn:hover{background:var(--secondary-soft)}.practice-btn svg{color:var(--ink-mute);stroke-width:1.5}.practice-btn:hover svg{color:var(--secondary)}.agent-container{background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;padding:32px}.agent-header{display:flex;align-items:center;gap:20px;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--rule-soft)}.agent-avatar{width:56px;height:56px;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--rule)}.agent-avatar.preparation{background:var(--primary-tint);border-color:var(--primary-soft)}.agent-avatar.coach{background:var(--secondary-soft);border-color:var(--secondary-soft)}.agent-avatar.assessment{background:#c28b2d1f;border-color:#c28b2d4d}.agent-avatar svg{color:var(--ink);stroke-width:1.5}.agent-info h2{font-size:24px;margin-bottom:4px;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;color:var(--ink)}.agent-info p{color:var(--ink-mute);font-size:14px}.lesson-selector{margin-bottom:24px;padding:20px;background:var(--bg-card);border-radius:4px;border:1px solid var(--rule)}.selector-label{font-size:15px;font-weight:600;color:var(--ink);margin-bottom:16px}.textbook-tabs{display:flex;gap:0;margin-bottom:16px;flex-wrap:wrap;border:1px solid var(--rule);border-radius:4px;overflow:hidden;width:-moz-fit-content;width:fit-content}.textbook-tab{padding:8px 16px;background:var(--paper);border:none;border-right:1px solid var(--rule);border-radius:0;color:var(--ink-soft);font-size:13px;font-weight:500;cursor:pointer;transition:background .2s,color .2s;font-family:inherit}.textbook-tab:last-child{border-right:none}.textbook-tab:hover{background:var(--primary-tint);color:var(--primary)}.textbook-tab.active{background:var(--ink);color:var(--paper)}.lesson-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.lesson-btn{display:flex;flex-direction:column;align-items:flex-start;padding:10px 14px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;cursor:pointer;transition:border-color .2s,background .2s;min-width:140px;font-family:inherit}.lesson-btn:hover{border-color:var(--ink);background:var(--paper-2)}.lesson-btn.active{border-color:var(--primary);background:var(--primary-tint);box-shadow:0 0 0 1px var(--primary) inset}.lesson-btn.custom-btn{min-width:120px}.lesson-num{font-size:11px;font-weight:600;color:var(--ink-mute);margin-bottom:4px;letter-spacing:.04em;text-transform:uppercase;font-family:Geist Mono,monospace}.lesson-title{font-size:13px;color:var(--ink);font-weight:500}.lesson-btn.active .lesson-num{color:var(--primary)}.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:12px 24px;background:var(--ink);border:1px solid var(--ink);border-radius:4px;color:var(--paper);font-size:14px;font-weight:500;cursor:pointer;transition:background .2s,color .2s;font-family:inherit;letter-spacing:.02em}.generate-btn:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff;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)}.ideological-culture-section{border-left:3px solid var(--ideo-accent);padding-left:16px;margin-left:-3px}.ideological-culture-section h3{color:var(--ideo-accent)}.ideological-culture-section h3 svg{color:var(--ideo-accent)}.ideological-empty{background:var(--ideo-accent-tint);border:1px dashed var(--ideo-accent-soft);border-radius:4px;padding:12px;color:var(--ideo-accent);font-size:13px;line-height:1.7}.ideological-culture-section .example-row label{color:var(--ink);font-weight:500}.ideological-culture-section input[type=text],.ideological-culture-section textarea{background:var(--bg-card);color:var(--ink);border:1px solid var(--rule);border-radius:4px;padding:8px 12px;font-family:Noto Sans SC,sans-serif;transition:border-color .12s ease,box-shadow .12s ease}.ideological-culture-section input[type=text]:focus,.ideological-culture-section textarea:focus{border-color:var(--ideo-accent);outline:none;box-shadow:0 0 0 3px #8b6f471a}.ideological-tip{font-size:12px;color:var(--ink-soft);margin-top:4px;padding:6px 10px;background:var(--paper-2);border-radius:4px;display:flex;align-items:center;gap:8px}.ideological-counter{font-size:12px;color:var(--ink-soft);margin-top:2px;margin-bottom:4px;padding:6px 10px;background:var(--paper-2);border-radius:4px;display:flex;justify-content:space-between;align-items:center}.ideological-counter-near-full{color:var(--warning)!important;font-weight:600}.ideological-search-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:4px;background:var(--bg-card);border:1px solid var(--ink-mute);color:var(--ink);font-size:13px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.ideological-search-btn:hover:not(:disabled){background:var(--paper-2);border-color:var(--ink-soft)}.ideological-search-btn:disabled{opacity:.5;cursor:not-allowed}.ideological-adopt-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:4px;background:var(--secondary-soft);border:1px solid var(--secondary);color:var(--secondary-dark);font-size:13px;cursor:pointer;transition:background .12s ease}.ideological-adopt-btn:hover:not(:disabled){background:var(--secondary-soft);filter:brightness(.96)}.ideological-adopt-btn:disabled{opacity:.5;cursor:not-allowed}.ideological-candidates{margin-top:12px;padding-top:10px;border-top:1px dashed var(--rule)}.ideological-candidates-title{font-size:13px;color:var(--ink);font-weight:600;margin-bottom:6px}.ideological-candidates-hint{font-size:12px;color:var(--ink-mute);margin-bottom:8px;line-height:1.6}.ideological-candidate-card{background:var(--paper);border:1px solid var(--rule-soft);border-radius:4px;padding:10px 12px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.ideological-candidate-body{flex:1;min-width:0}.ideological-candidate-title{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ideological-candidate-meta{font-size:11px;color:var(--ink-mute);margin-top:2px}.ideological-candidate-meta-hint{font-size:12px;color:var(--ideo-accent);margin-top:2px;font-style:italic}.ideological-candidate-meta-keyword{font-size:12px;color:var(--ink-soft);margin-top:2px;font-style:italic}.ideological-candidate-url{font-size:12px;color:var(--ink-mute);margin-top:4px}.ideological-chip{display:inline-block;margin-right:6px;padding:1px 6px;border-radius:3px;font-size:11px;font-weight:600}.ideological-chip-search{background:var(--secondary-soft);color:var(--secondary-dark)}.ideological-chip-video{background:var(--warning-soft);color:var(--warning)}.ideological-chip-angle{background:var(--primary-tint);color:var(--primary-dark)}.ideological-candidate-url-link{color:var(--primary);text-decoration:underline}.ideological-candidate-url-tip{color:var(--ink-mute);margin-left:6px}.ideological-candidate-actions{display:flex;flex-direction:column;gap:4px;margin-left:8px}.ideological-candidate-adopt{padding:4px 10px;border-radius:4px;background:var(--secondary);color:var(--paper);border:none;cursor:pointer;font-size:12px;white-space:nowrap;transition:background .12s ease}.ideological-candidate-adopt:hover{background:var(--secondary-dark)}.ideological-candidate-discard{padding:4px 10px;border-radius:4px;background:var(--paper);color:var(--ink-soft);border:1px solid var(--rule);cursor:pointer;font-size:12px;white-space:nowrap;transition:background .12s ease}.ideological-candidate-discard:hover{background:var(--paper-2)}.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:var(--secondary-soft);border:1px solid var(--secondary);border-left:3px solid var(--secondary);border-radius:4px;padding:12px 16px;margin-bottom:12px}.examples-preview h4{display:flex;align-items:center;gap:6px;color:var(--secondary-dark);font-size:14px;margin-bottom:4px;font-weight:600}.examples-preview p{color:var(--secondary-dark);font-size:13px;margin:0}.examples-editor{background:var(--paper-2);border:1px solid var(--rule);border-radius:4px;padding:16px;margin-top:16px}.examples-editor .plan-section{background:var(--bg-card);border-radius:4px;padding:16px;margin-bottom:12px;border:1px solid var(--rule-soft)}.example-item{background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:12px;margin-bottom:12px}.example-header{margin-bottom:8px}.example-word-input{width:100%;padding:8px 12px;font-size:16px;font-weight:600;border:1px solid var(--rule);border-radius:4px;background:var(--bg-card);color:var(--ink);font-family:"Noto Serif SC",Georgia,serif}.example-word-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #b8543c1f}.example-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.example-row label{min-width:90px;font-weight:600;color:var(--ink-soft);font-size:13px}.example-row input{flex:1;padding:6px 10px;border:1px solid var(--rule);border-radius:4px;font-size:13px;color:var(--ink);background:var(--bg-card);font-family:inherit}.example-row input:focus{border-color:var(--primary);outline:none}.example-row input.translation-input{color:var(--ink-mute)}.examples-list{margin:12px 0}.examples-list label{display:block;font-weight:600;color:var(--ink-soft);font-size:13px;margin-bottom:8px;letter-spacing:.02em}.example-sentence{display:flex;align-items:center;gap:8px;margin-bottom:8px;width:100%}.sentence-num{min-width:24px;font-weight:600;color:var(--primary);font-family:Geist Mono,monospace;font-size:12px}.sentence-input{flex:2;padding:8px 10px;border:1px solid var(--rule);border-radius:4px;font-size:13px;color:var(--ink);background:var(--bg-card);min-width:0;font-family:inherit}.translation-input{flex:1;padding:8px 10px;border:1px solid var(--rule);border-radius:4px;font-size:12px;color:var(--ink-mute);background:var(--bg-card);min-width:0;font-family:inherit}.practice-row{margin-top:12px;width:100%}.practice-row label{display:block;font-weight:600;color:var(--ink-soft);font-size:13px;margin-bottom:6px}.practice-input{width:100%;padding:8px 10px;border:1px solid var(--rule);border-radius:4px;font-size:13px;resize:vertical;color:var(--ink);background:var(--bg-card);box-sizing:border-box;font-family:inherit}.practice-input:focus{border-color:var(--primary);outline:none}.examples-list{margin:12px 0;padding:12px;background:var(--paper-2);border-radius:4px;border:1px solid var(--rule)}.plan-error{display:flex;align-items:center;gap:10px;padding:12px 16px;margin:16px 0;background:#a8463a0f;border:1px solid rgba(168,70,58,.3);border-left:3px solid var(--danger);border-radius:4px;color:var(--danger);font-size:14px}.plan-error button{margin-left:auto;padding:4px 12px;background:var(--bg-card);border:1px solid rgba(168,70,58,.3);border-radius:4px;cursor:pointer;color:var(--danger);font-family:inherit}.feedback-item .progress{height:100%;background:var(--secondary);border-radius:4px}.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(--rule)}.test-voice-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--secondary);border:1px solid var(--secondary);border-radius:4px;color:var(--paper);font-size:14px;cursor:pointer;transition:background .2s;font-family:inherit}.test-voice-btn:hover{background:var(--secondary-dark);border-color:var(--secondary-dark)}.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:var(--secondary);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:14px 28px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:4px;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s,color .2s;font-family:inherit;letter-spacing:.02em}.start-conversation-btn:hover{background:var(--secondary);border-color:var(--secondary);color:var(--paper)}.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:var(--warning)}.feedback-item .progress.fluency{background:var(--ink)}.feedback-item .progress.vocabulary{background:var(--primary)}.feedback-item .progress.relevance{background:var(--secondary)}.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:24px;background:var(--paper-2);border:1px solid var(--rule);border-left:3px solid var(--primary);border-radius:4px}.ai-report-section h4{color:var(--primary);font-size:18px;margin-bottom:16px;display:flex;align-items:center;gap:8px;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;font-weight:600}.ai-section{margin-bottom:16px;padding:16px;background:var(--bg-card);border-radius:4px;border-left:3px solid var(--ink)}.ai-section h5{color:var(--ink);font-size:15px;margin-bottom:8px;font-weight:600}.ai-section p{color:var(--ink-soft);font-size:14px;line-height:1.6}.ai-section ul{list-style:none;padding:0}.ai-section li{padding:6px 12px;color:var(--ink-soft);font-size:14px;margin-bottom:4px}.ai-section li:before{content:"· ";color:var(--ink-mute);font-weight:700}.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(300px,1fr));gap:16px}.student-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;padding:18px 20px;display:flex;flex-direction:column;gap:10px;transition:border-color .15s ease;position:relative}.student-card:hover{border-color:var(--primary)}.student-avatar-large{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:22px;background:var(--paper-2);border:1px solid var(--rule);border-radius:4px;align-self:flex-start}.student-card h3{font-size:18px;margin:0;color:var(--ink);font-family:Fraunces,"Noto Serif SC",serif;font-weight:600}.hsk-badge{display:inline-block;padding:3px 10px;background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:4px;font-size:11px;color:var(--primary);font-weight:500;font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum";letter-spacing:.02em}.student-stats{display:flex;flex-direction:column;gap:6px;margin:4px 0 0;padding:12px 0;border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft)}.stats-error-banner{margin:12px 0;padding:12px 14px;border:1px solid var(--warning);border-left-width:3px;border-radius:4px;background:var(--warning-soft);color:var(--ink);font-size:13px;line-height:1.6}.stats-error-banner small{color:var(--ink-soft);font-size:12px}.student-stats .stat{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft)}.student-stats .stat svg{color:var(--primary);flex-shrink:0}.student-stats .stat .stat-value{font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum";color:var(--ink);font-weight:600}.view-report-btn{padding:6px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-soft);font-size:12px;cursor:pointer;font-family:inherit;transition:border-color .15s ease,color .15s ease}.view-report-btn:hover{border-color:var(--primary);color:var(--primary)}.reset-pwd-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-soft);font-size:12px;cursor:pointer;font-family:inherit;transition:border-color .15s ease,color .15s ease}.reset-pwd-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.reset-pwd-btn:disabled{opacity:.6;cursor:default}.reset-code-display{display:flex;align-items:center;gap:12px;padding:14px 16px;margin:14px 0 10px;background:var(--paper);border:1px solid var(--rule);border-radius:4px}.reset-code-display .code{font-size:30px;font-weight:600;color:var(--ink);letter-spacing:8px;font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum"}.reset-code-note{margin:0;font-size:12px;color:var(--ink-mute);line-height:1.6}.add-student-section{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.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(--rule);border-radius:4px;padding:18px 20px}.invite-code-card h3{font-size:18px;margin:0 0 4px;color:var(--ink);font-family:Fraunces,"Noto Serif SC",serif;font-weight:600}.invite-code-card p{color:var(--ink-mute);font-size:13px;margin:0 0 14px}.invite-code-display{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--paper);border:1px solid var(--rule);border-radius:4px}.invite-code-display .code{font-size:18px;font-weight:600;color:var(--ink);letter-spacing:1px;font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum"}.copy-btn{padding:6px 14px;background:var(--primary);border:1px solid var(--primary);border-radius:4px;color:#fff;font-size:13px;cursor:pointer;margin-left:auto;font-family:inherit;transition:background .15s ease}.copy-btn:hover{background:var(--primary-dark)}.add-student-form{background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;padding:18px 20px}.add-student-form h3{font-size:18px;margin:0 0 14px;color:var(--ink);font-family:Fraunces,"Noto Serif SC",serif;font-weight:600}.form-row{display:flex;gap:8px;flex-wrap:wrap}.form-row input{flex:1;padding:10px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink);font-size:14px;font-family:inherit;min-width:120px}.form-row input:focus{outline:none;border-color:var(--primary)}.form-row button{padding:10px 18px;background:var(--primary);border:1px solid var(--primary);border-radius:4px;color:#fff;font-size:14px;cursor:pointer;white-space:nowrap;font-family:inherit;transition:background .15s ease}.form-row button:hover:not(:disabled){background:var(--primary-dark)}.form-row button:disabled{opacity:.5;cursor:not-allowed}.class-select{padding:10px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink);font-size:14px;min-width:110px;font-family:inherit}.class-select:focus{outline:none;border-color:var(--primary)}.create-class-section{margin-top:16px}.create-class-btn{padding:10px 16px;background:transparent;border:1px dashed var(--rule);border-radius:4px;color:var(--ink-mute);font-size:13px;cursor:pointer;font-family:inherit;transition:border-color .15s ease,color .15s ease}.create-class-btn:hover{border-color:var(--primary);color:var(--primary)}.create-class-form{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.create-class-form input{flex:1;padding:10px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink);font-size:14px;font-family:inherit;min-width:120px}.create-class-form input:focus{outline:none;border-color:var(--primary)}.create-class-form button{padding:10px 16px;background:var(--primary);border:1px solid var(--primary);border-radius:4px;color:#fff;font-size:13px;cursor:pointer;font-family:inherit;transition:background .15s ease}.create-class-form button:disabled{opacity:.5;cursor:not-allowed}.create-class-form .cancel-btn{background:var(--paper);border-color:var(--rule);color:var(--ink-soft)}.create-class-form .cancel-btn:hover{border-color:var(--ink-mute);color:var(--ink)}.class-filter-section{margin-bottom:20px;padding:14px 18px;background:var(--bg-card);border:1px solid var(--rule);border-radius:4px}.class-filter-section h3{font-size:15px;margin:0 0 10px;color:var(--ink-soft);font-family:Fraunces,"Noto Serif SC",serif;font-weight:600}.class-filter-tabs{display:flex;flex-wrap:wrap;gap:6px}.class-tab{padding:6px 14px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-soft);font-size:13px;cursor:pointer;font-family:inherit;transition:border-color .15s ease,color .15s ease,background .15s ease;font-feature-settings:"tnum"}.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:3px 10px;background:var(--paper-2);border:1px solid var(--rule);border-radius:4px;font-size:11px;color:var(--ink-mute);vertical-align:middle}.class-badge.has-class{background:var(--primary-tint);border-color:var(--primary-soft);color:var(--primary)}.assign-class-select{flex:1 0 100%;min-width:0;max-width:100%;width:100%;padding:6px 10px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink);font-size:12px;cursor:pointer;font-family:inherit;transition:border-color .15s ease;text-overflow:ellipsis}.assign-class-select:focus{outline:none;border-color:var(--primary)}.students-section{margin-top:28px}.students-section h3{font-size:22px;margin:0 0 14px;color:var(--ink);font-family:Fraunces,"Noto Serif SC",serif;font-weight:600}.students-section .loading-state,.students-section .empty-state{text-align:center;padding:60px 20px;color:var(--ink-mute)}.students-section .empty-state svg{margin-bottom:16px;opacity:.45;color:var(--primary)}.students-section .empty-state p{font-size:18px;margin:0 0 6px;color:var(--ink-soft);font-family:Fraunces,"Noto Serif SC",serif}.students-section .empty-state span{font-size:13px;color:var(--ink-mute)}.email-badge{display:inline-block;font-size:12px;color:var(--ink-mute);font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum";letter-spacing:.01em}.student-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;padding-top:12px;border-top:1px solid var(--rule-soft)}.remove-btn{padding:6px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-mute);font-size:12px;cursor:pointer;font-family:inherit;transition:border-color .15s ease,color .15s ease}.remove-btn:hover{border-color:#be123c;color:#be123c}.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:20px}.achievements-header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--rule);padding-bottom:12px}.achievements-header h3{margin:0;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-weight:600;font-size:18px;color:var(--ink)}.achievements-summary{font-size:13px;color:var(--ink-mute);display:inline-flex;align-items:baseline;gap:4px}.achievements-summary .achieved-count{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:22px;color:var(--primary);line-height:1}.achievements-summary .achieved-label{font-size:12px;color:var(--ink-mute);letter-spacing:.02em}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.achievement-category{background:var(--paper-2);border:1px solid var(--rule);border-radius:4px;padding:16px 18px}.category-header{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding-bottom:8px;border-bottom:1px dashed var(--rule)}.category-icon{font-size:18px}.category-name{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-weight:600;font-size:14px;color:var(--ink);letter-spacing:.02em}.category-achievements{display:flex;flex-direction:column;gap:10px}.achievement-card{background:var(--bg-card);border:1px solid var(--rule);border-left:3px solid var(--rule);border-radius:4px;padding:14px 16px;position:relative;transition:border-color .16s ease,background .16s ease}.achievement-card:hover{border-left-color:var(--ink-mute)}.achievement-card.reached:not(.max-level){border-left-color:var(--primary)}.achievement-card.reached:not(.max-level):after{content:"";position:absolute;top:12px;right:14px;width:6px;height:6px;border-radius:50%;background:var(--primary)}.achievement-card.max-level{background:var(--primary-tint);border-color:var(--primary-soft);border-left:3px solid var(--warning)}.achievement-card.max-level:after{content:"★";position:absolute;top:8px;right:12px;font-size:14px;color:var(--warning);font-family:Fraunces,Georgia,serif;line-height:1}.achievement-card.max-level .achievement-name{color:var(--primary-dark);font-weight:600}.achievement-card.max-level .achievement-level{color:var(--primary-dark)}.achievement-card.max-level .achievement-description{color:var(--ink-soft)}.achievement-card-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.achievement-card .achievement-icon{font-size:22px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--paper-2);border-radius:50%;flex-shrink:0}.achievement-card.max-level .achievement-icon{background:var(--primary-soft)}.achievement-title{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.achievement-title .achievement-name{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-weight:600;font-size:14px;color:var(--ink);letter-spacing:-.01em}.achievement-title .achievement-level{font-size:11px;color:var(--primary);font-weight:500;letter-spacing:.05em;text-transform:none}.achievement-progress{margin-bottom:10px}.progress-bar{height:4px;background:var(--paper-2);border-radius:2px;overflow:hidden;margin-bottom:8px;position:relative}.progress-fill{height:100%;background:var(--primary);border-radius:2px;transition:width .36s ease}.achievement-card.max-level .progress-bar{background:var(--primary-soft)}.achievement-card.max-level .progress-fill{background:var(--warning)}.progress-text{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:var(--ink-mute)}.progress-text .current-value{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:13px;color:var(--ink)}.progress-text .next-threshold{font-size:11px;color:var(--ink-mute);letter-spacing:.02em}.max-label{color:var(--primary-dark);font-weight:600;font-size:11px;letter-spacing:.05em}.achievement-card:before{content:"";position:absolute;bottom:10px;right:14px;width:52px;height:6px;background-image:radial-gradient(circle,var(--ink-mute) 1.5px,transparent 1.6px),radial-gradient(circle,var(--ink-mute) 1.5px,transparent 1.6px),radial-gradient(circle,var(--ink-mute) 1.5px,transparent 1.6px),radial-gradient(circle,var(--ink-mute) 1.5px,transparent 1.6px);background-size:13px 6px;background-repeat:no-repeat;background-position:0 0,13px 0,26px 0,39px 0;opacity:.45}.achievement-card.max-level:before{background-image:radial-gradient(circle,var(--warning) 1.8px,transparent 1.9px),radial-gradient(circle,var(--warning) 1.8px,transparent 1.9px),radial-gradient(circle,var(--warning) 1.8px,transparent 1.9px),radial-gradient(circle,var(--warning) 1.8px,transparent 1.9px);opacity:1}.achievement-description{font-size:11px;color:var(--ink-mute);line-height:1.5;margin-top:4px;padding-right:60px}.achievements-loading{text-align:center;padding:20px;color:var(--ink-mute);font-size:13px}.achievement-card-detail{max-height:0;opacity:0;overflow:hidden;transition:max-height .28s cubic-bezier(.4,0,.2,1),opacity .22s ease,margin-top .28s ease}.achievement-card:hover .achievement-card-detail{max-height:480px;opacity:1;margin-top:14px}.detail-divider{display:flex;align-items:center;gap:8px;margin-bottom:8px}.detail-divider-line{flex:1;height:0;border-top:1px dashed var(--rule)}.detail-divider-label{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:10px;font-weight:600;color:var(--ink-mute);letter-spacing:.12em;text-transform:uppercase}.level-ladder{list-style:none;display:flex;flex-direction:column;gap:3px;padding:0;margin:0 0 8px}.level-item{display:grid;grid-template-columns:14px 18px 1fr auto;gap:6px;padding:4px 8px;border-radius:3px;font-size:11px;align-items:center;color:var(--ink-mute);opacity:.55;transition:background .16s ease,color .16s ease,opacity .16s ease}.level-item.achieved{opacity:.78;color:var(--ink-soft)}.level-item.current{opacity:1;background:var(--primary-tint);color:var(--primary-dark);font-weight:500}.level-item.current .level-marker{color:var(--primary);font-size:12px}.level-item.max-level-item{opacity:1;background:var(--primary-soft);color:var(--primary-dark)}.level-marker{font-size:10px;color:var(--ink-mute);text-align:center;line-height:1}.level-icon{font-size:14px;text-align:center;line-height:1}.level-name{font-family:"Noto Serif SC",Fraunces,Georgia,serif;font-weight:500}.level-threshold{font-family:Fraunces,Georgia,serif;font-size:10px;color:var(--ink-mute);letter-spacing:.02em}.level-item.current .level-threshold{color:var(--primary-dark);font-weight:600}.detail-timestamp{font-size:10px;color:var(--ink-mute);font-style:italic;padding-top:6px;border-top:1px dashed var(--rule-soft);letter-spacing:.02em}.next-level-hint{font-size:11px;color:var(--ink-soft);margin-top:8px;padding:4px 10px;background:var(--paper-2);border-radius:3px;display:inline-block;font-family:Fraunces,"Noto Serif SC",Georgia,serif;letter-spacing:.02em}.next-level-hint:before{content:"·  ";color:var(--primary);font-weight:700}.achievement-card.max-level .next-level-hint{background:var(--primary-soft);color:var(--primary-dark)}.achievement-card:not(.reached):not(.max-level){opacity:.78}.achievement-card:not(.reached):not(.max-level) .achievement-level{color:var(--ink-mute)}.achievement-card:not(.reached):not(.max-level) .achievement-icon{opacity:.55}.achievements-page{background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:32px}.student-achievements.compact .achievements-badges{display:flex;flex-wrap:wrap;gap:6px}.achievement-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;background:var(--paper-2);border:1px solid var(--rule);font-size:11px;transition:background .16s ease,border-color .16s ease}.achievement-badge:hover{background:var(--bg-card);border-color:var(--ink-mute)}.achievement-badge .badge-icon{font-size:14px}.achievement-badge .badge-name{color:var(--ink-soft);font-weight:500}.achievement-badge.max-level{background:var(--primary-tint);border-color:var(--primary-soft)}.achievement-badge.max-level .badge-name{color:var(--primary-dark)}.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);flex-wrap:wrap}.hsk-level-toggle{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;background:var(--bg-card);border-radius:12px;border:2px solid var(--primary);flex-wrap:wrap}.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)}.optional-tag{display:block;margin-top:4px;font-size:12px;font-style:italic;color:var(--text-tertiary, #94a3b8);opacity:.85}.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(--ink-mute);padding:40px;font-family:Fraunces,Georgia,serif;font-style:italic}.error-item{background:#a8463a0a;border:1px solid rgba(168,70,58,.25);border-left:3px solid var(--danger);border-radius:4px;padding:16px;margin-bottom:12px}.error-word .word{font-size:20px;font-weight:600;color:var(--ink);font-family:"Noto Serif SC",Georgia,serif}.error-word .pinyin{color:var(--ink-mute);font-family:Geist Mono,monospace;font-size:13px}.audio-btn{width:28px;height:28px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s}.audio-btn:hover{background:var(--ink);color:var(--paper)}.error-meaning{margin-bottom:8px}.error-meaning .meaning-en{color:var(--ink-mute);display:block;font-size:13px}.error-meaning .meaning-cn{color:var(--ink);font-size:14px;margin-top:4px;font-family:"Noto Serif SC",Georgia,serif}.error-example{background:var(--paper-2);padding:8px 12px;border-radius:4px;font-size:14px;color:var(--ink-soft);margin-bottom:8px;border:1px solid var(--rule-soft)}.error-stats{display:flex;gap:16px;font-size:12px;color:var(--ink-mute)}.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:var(--ink);border:1px solid var(--ink);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:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:4px;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s,color .2s;font-family:inherit;letter-spacing:.02em}.init-btn:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff}.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}.section-header-right{display:flex;align-items:center;gap:6px}.today-reading-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;color:var(--primary);background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;cursor:pointer;font-family:inherit;letter-spacing:.02em;transition:all .15s ease}.today-reading-btn:hover:not(:disabled){background:var(--primary-tint);border-color:var(--primary)}.today-reading-btn:disabled{opacity:.55;cursor:not-allowed}.today-reading-modal{position:fixed;inset:0;background:#1f1a148c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:readingFadeIn .18s ease}@keyframes readingFadeIn{0%{opacity:0}to{opacity:1}}.today-reading-panel{background:var(--paper);border:1px solid var(--rule);border-radius:8px;width:100%;max-width:640px;max-height:86vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 1px 0 var(--rule),0 12px 32px #1f1a1438;animation:readingSlideUp .22s ease}@keyframes readingSlideUp{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.today-reading-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 20px 14px;border-bottom:1px solid var(--rule-soft);background:var(--paper)}.today-reading-title{margin:0;font-size:17px;font-weight:600;color:var(--ink);font-family:Fraunces,Georgia,serif}.today-reading-subtitle{margin:4px 0 0;font-size:12px;color:var(--ink-mute)}.today-reading-close{background:transparent;border:none;cursor:pointer;padding:4px;color:var(--ink-mute);border-radius:4px;transition:all .15s ease}.today-reading-close:hover{background:var(--rule-soft);color:var(--ink)}.today-reading-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:60px 20px;color:var(--ink-mute);font-size:13px;background:var(--paper)}.today-reading-spinner{width:28px;height:28px;border:2px solid var(--rule);border-top-color:var(--primary);border-radius:50%;animation:readingSpin .8s linear infinite}@keyframes readingSpin{to{transform:rotate(360deg)}}.today-reading-error{display:flex;align-items:flex-start;gap:12px;padding:20px;margin:16px;background:var(--bg-card);border:1px solid var(--danger);border-radius:6px;color:var(--danger)}.today-reading-error-title{font-size:13px;font-weight:600;margin-bottom:2px;color:var(--danger)}.today-reading-error-msg{font-size:12px;color:var(--ink-soft);line-height:1.5}.today-reading-vocab{display:flex;flex-wrap:wrap;gap:6px;padding:14px 20px 10px;border-bottom:1px solid var(--rule-soft);background:var(--paper)}.today-reading-vocab-chip{font-size:11px;font-weight:600;color:var(--primary);background:var(--primary-tint);padding:2px 8px;border:1px solid var(--primary-soft);border-radius:3px;letter-spacing:.02em}.today-reading-text{flex:1;overflow-y:auto;padding:20px 22px;font-size:14px;line-height:1.85;color:var(--ink);white-space:pre-wrap;font-family:Fraunces,Georgia,serif;letter-spacing:.01em;background:var(--paper)}.today-reading-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-top:1px solid var(--rule-soft);background:var(--paper-2)}.today-reading-footer-meta{font-size:11px;color:var(--ink-mute);font-family:Geist Mono,monospace;font-feature-settings:"tnum"}.today-reading-regen{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;font-size:12px;font-weight:600;color:var(--primary);background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;cursor:pointer;font-family:inherit;transition:all .15s ease}.today-reading-regen:hover:not(:disabled){background:var(--primary-tint);border-color:var(--primary)}.today-reading-regen:disabled{opacity:.55;cursor:not-allowed}.vocab-scroll-list{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-y:auto}.vocab-hsk-group{display:flex;flex-direction:column;gap:4px}.vocab-hsk-label{font-size:11px;font-weight:600;color:var(--text-tertiary, #94a3b8);letter-spacing:.5px;padding-left:2px}.vocab-chips-row{display:flex;flex-wrap:wrap;gap:6px}.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}.flower-toast{position:fixed;top:24px;right:24px;background:var(--bg-card);border:1px solid var(--rule);border-left:3px solid var(--primary);color:var(--ink);padding:10px 16px;border-radius:4px;z-index:9999;font-size:13px;font-weight:500;font-family:inherit;animation:flower-toast-in .18s ease-out}.flower-toast.flower-toast-bottom{top:auto;bottom:24px;right:24px}@keyframes flower-toast-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.flower-btn{padding:6px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-soft);font-size:12px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px;transition:border-color .15s ease,color .15s ease,background .15s ease}.flower-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-tint)}.flower-btn:disabled{opacity:.5;cursor:not-allowed}.flower-btn.flower-btn-sent{background:var(--primary-tint);border-color:var(--primary-soft);color:var(--primary)}.flower-btn-svg{color:var(--primary);flex-shrink:0}.flower-custom-btn{padding:6px 10px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-mute);font-size:12px;cursor:pointer;font-family:inherit;transition:border-color .15s ease,color .15s ease}.flower-custom-btn:hover{border-color:var(--ink-soft);color:var(--ink)}.flower-modal-backdrop{position:fixed;inset:0;background:#1f1a1473;display:flex;align-items:center;justify-content:center;z-index:9999;animation:flower-modal-fade-in .15s ease-out}@keyframes flower-modal-fade-in{0%{opacity:0}to{opacity:1}}.flower-modal{background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;padding:22px 24px;max-width:480px;width:90%;animation:flower-modal-rise-in .2s ease-out}@keyframes flower-modal-rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.flower-modal h3{margin:0 0 4px;font-size:16px;color:var(--ink);font-family:Fraunces,"Noto Serif SC",serif;font-weight:600}.flower-modal-hint{margin:0 0 14px;font-size:13px;color:var(--ink-mute)}.flower-modal textarea{width:100%;padding:10px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;font-size:14px;color:var(--ink);font-family:inherit;resize:vertical;box-sizing:border-box;line-height:1.5;transition:border-color .15s ease}.flower-modal textarea:focus{outline:none;border-color:var(--primary)}.flower-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.flower-modal-btn-cancel{padding:8px 16px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-soft);font-size:13px;cursor:pointer;font-family:inherit;transition:border-color .15s ease,color .15s ease}.flower-modal-btn-cancel:hover{border-color:var(--ink-mute);color:var(--ink)}.flower-modal-btn-send{padding:8px 16px;background:var(--primary);border:1px solid var(--primary);border-radius:4px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px;transition:background .15s ease}.flower-modal-btn-send:hover:not(:disabled){background:var(--primary-dark)}.flower-modal-btn-send:disabled{opacity:.45;cursor:not-allowed}.flower-modal-btn-send .flower-btn-svg{color:#fff}.assignment-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.assignment-back-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-soft);font-size:13px;font-family:inherit;cursor:pointer;transition:border-color .15s ease,color .15s ease}.assignment-back-btn:hover{border-color:var(--primary);color:var(--primary)}.assignment-title{display:flex;align-items:center;gap:8px;margin:0}.assignment-title svg{color:var(--track-blue)}.assignment-toast{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:16px;border:1px solid var(--rule);border-radius:4px;font-size:13px;font-family:inherit;animation:assignment-toast-in .18s ease-out}@keyframes assignment-toast-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.assignment-toast.success{background:var(--primary-tint);border-color:var(--primary-soft);color:var(--primary-dark)}.assignment-toast.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.assignment-tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:1px solid var(--rule)}.assignment-tab{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--ink-mute);font-size:14px;font-family:inherit;font-weight:500;cursor:pointer;margin-bottom:-1px;transition:border-color .15s ease,color .15s ease}.assignment-tab:hover{color:var(--ink)}.assignment-tab.active{color:var(--track-blue);border-bottom-color:var(--track-blue);font-weight:600}.assignment-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 900px){.assignment-grid{grid-template-columns:1fr}}.assignment-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;padding:18px 20px}.assignment-card-title{margin:0 0 14px;font-size:16px;color:var(--ink);font-family:Fraunces,"Noto Serif SC",serif;font-weight:600;display:flex;align-items:center;gap:6px}.assignment-field{margin-bottom:12px}.assignment-field:last-child{margin-bottom:0}.assignment-field-label{display:block;font-size:12px;color:var(--ink-mute);margin-bottom:4px;font-weight:500}.assignment-field-required{color:#be123c;margin-left:2px}.assignment-hint{font-size:11px;color:var(--ink-mute);margin:6px 0 0;line-height:1.5}.assignment-input,.assignment-select{width:100%;padding:8px 10px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink);font-size:13px;font-family:inherit;box-sizing:border-box;transition:border-color .15s ease}.assignment-input:focus,.assignment-select:focus{outline:none;border-color:var(--primary)}.assignment-textarea{width:100%;padding:8px 10px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink);font-size:13px;font-family:inherit;box-sizing:border-box;line-height:1.5;resize:vertical;transition:border-color .15s ease}.assignment-textarea:focus{outline:none;border-color:var(--primary)}.assignment-tracks-wrapper{margin-top:12px}.assignment-tracks-help{font-size:12px;color:var(--ink-mute);margin:0 0 8px;display:flex;align-items:center;gap:4px}.assignment-tracks-list{display:flex;flex-direction:column;gap:6px}.assignment-track-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--track-blue-paper);border:1px solid var(--track-blue-tint);border-radius:4px;transition:border-color .15s ease}.assignment-track-row:focus-within{border-color:var(--track-blue-soft)}.assignment-track-num{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--track-blue);color:#fff;font-size:12px;font-weight:600;border-radius:4px;font-family:Geist Mono,ui-monospace,monospace;flex-shrink:0}.assignment-track-name{flex:1;font-size:13px;color:var(--ink);min-width:0}.assignment-track-input{width:64px;padding:4px 6px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;font-size:13px;text-align:center;font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum";color:var(--ink);transition:border-color .15s ease}.assignment-track-input:focus{outline:none;border-color:var(--track-blue)}.assignment-track-unit{font-size:12px;color:var(--ink-mute);min-width:24px;text-align:left}.assignment-tracks-note{font-size:11px;color:var(--ink-mute);margin:10px 0 0;line-height:1.5}.assignment-select-all{display:flex;align-items:center;gap:8px;padding:8px 10px;margin-top:8px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.assignment-select-all.checked{background:var(--track-blue-paper);border-color:var(--track-blue-soft)}.assignment-select-all input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--track-blue)}.assignment-select-all-text{font-size:13px;font-weight:600;color:var(--ink);font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum"}.assignment-student-list{margin-top:12px;max-height:260px;overflow-y:auto;background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:6px}.assignment-student-empty{color:var(--ink-mute);font-size:13px;padding:16px;text-align:center}.assignment-student-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;transition:background .12s ease}.assignment-student-item:hover,.assignment-student-item.checked{background:var(--track-blue-paper)}.assignment-student-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--track-blue)}.assignment-student-icon{color:var(--ink-mute);flex-shrink:0}.assignment-student-icon.checked{color:var(--track-blue)}.assignment-student-name{flex:1;font-size:13px;color:var(--ink);min-width:0;display:flex;align-items:center;gap:6px}.assignment-student-hsk{font-size:11px;color:var(--ink-mute);font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum"}.assignment-summary{margin-top:12px;padding:8px 12px;background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:4px;font-size:12px;color:var(--ink-soft)}.assignment-summary strong{color:var(--primary-dark);font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum"}.assignment-footer{margin-top:16px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;display:flex;justify-content:space-between;align-items:center}.assignment-footer-cancel{padding:8px 18px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-soft);font-size:13px;font-family:inherit;cursor:pointer;transition:border-color .15s ease,color .15s ease}.assignment-footer-cancel:hover:not(:disabled){border-color:var(--ink-mute);color:var(--ink)}.assignment-footer-cancel:disabled{opacity:.5;cursor:not-allowed}.assignment-footer-primary{padding:8px 18px;background:var(--primary);border:1px solid var(--primary);border-radius:4px;color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .15s ease}.assignment-footer-primary:hover:not(:disabled){background:var(--primary-dark)}.assignment-footer-primary:disabled{opacity:.45;cursor:not-allowed}.assignment-completion{margin-top:24px}.assignment-completion-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px;flex-wrap:wrap}.assignment-completion-title{margin:0;font-size:18px;color:var(--ink);font-family:Fraunces,"Noto Serif SC",serif;font-weight:600;display:flex;align-items:center;gap:8px}.assignment-completion-title svg{color:var(--primary)}.assignment-completion-select-wrap{display:flex;align-items:center;gap:8px;min-width:0;flex:1;max-width:100%}.assignment-completion-select{flex:1;min-width:0;max-width:100%;padding:8px 10px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink);font-size:13px;font-family:inherit;transition:border-color .15s ease}.assignment-completion-select:focus{outline:none;border-color:var(--primary)}.assignment-completion-stats{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.completion-stat-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:4px;font-size:12px;font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum";font-weight:500}.completion-stat-chip.completed{background:var(--primary-tint);border:1px solid var(--primary-soft);color:var(--primary-dark)}.completion-stat-chip.pending{background:var(--paper-2);border:1px solid var(--rule);color:var(--ink-soft)}.completion-stat-chip svg{flex-shrink:0}.completion-group{background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;margin-bottom:12px;overflow:hidden}.completion-group:last-child{margin-bottom:0}.completion-group-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--rule-soft);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:var(--paper);transition:background .12s ease}.completion-group-header:hover{background:var(--paper-2)}.completion-group.completed .completion-group-header{border-left:3px solid var(--primary)}.completion-group.pending .completion-group-header{border-left:3px solid var(--ink-mute)}.completion-group-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink);font-family:inherit}.completion-group.completed .completion-group-title{color:var(--primary-dark)}.completion-group-count{font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum";color:var(--ink-mute);font-weight:400;margin-left:4px}.completion-group-toggle{color:var(--ink-mute);font-size:11px}.completion-list{display:flex;flex-direction:column}.completion-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--rule-soft);transition:background .12s ease}.completion-row:last-child{border-bottom:none}.completion-row:hover{background:var(--paper)}.completion-row-info{flex:1;min-width:0;display:flex;align-items:center;gap:8px}.completion-row-name{font-size:13px;color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.completion-row-meta{font-size:11px;color:var(--ink-mute);font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum";white-space:nowrap}.completion-row-meta-badge{display:inline-block;padding:1px 6px;background:var(--paper-2);border:1px solid var(--rule);border-radius:3px;font-size:10px;color:var(--ink-mute);font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum";font-weight:500}.completion-row-time{font-size:11px;color:var(--ink-mute);white-space:nowrap;font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"tnum"}.completion-flower-btn{padding:4px 10px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;color:var(--ink-soft);font-size:11px;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:border-color .15s ease,color .15s ease,background .15s ease;flex-shrink:0}.completion-flower-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-tint)}.completion-flower-btn:disabled{opacity:.45;cursor:not-allowed}.completion-flower-btn.sent{background:var(--primary-tint);border-color:var(--primary-soft);color:var(--primary)}.completion-flower-btn svg{color:var(--primary);flex-shrink:0}.completion-empty{text-align:center;padding:40px 20px;color:var(--ink-mute);font-size:13px;background:var(--paper);border:1px solid var(--rule);border-radius:4px}.completion-empty p{margin:0}.completion-empty-hint{font-size:11px;color:var(--ink-mute);margin-top:4px}.tracks{background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;padding:24px 28px;grid-column:1 / -1}.tracks-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--rule)}.tracks-head h3{font-size:22px;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-style:normal;font-weight:600;color:var(--ink);margin:0 0 4px;letter-spacing:-.01em}.tracks-sub{margin:0;font-size:13px;color:var(--ink-mute);font-family:"Noto Serif SC",Georgia,serif;letter-spacing:.01em}.tracks-date{font-size:12px;color:var(--ink-mute);letter-spacing:.06em;text-transform:uppercase;font-family:Geist Mono,monospace;white-space:nowrap;padding-top:4px}.track{cursor:pointer;transition:background .15s ease;border-radius:4px;margin:0 -8px;padding:14px 8px}.track:hover{background:var(--paper-2)}.track:hover .track-row svg{color:var(--primary);transform:translate(2px)}.track-row{display:flex;align-items:center;gap:14px;margin-bottom:8px}.track-row svg{color:var(--ink-mute);flex-shrink:0;transition:color .15s ease,transform .15s ease}.track-num{font-family:Fraunces,Georgia,serif;font-style:normal;font-size:13px;font-weight:600;color:var(--ink-mute);background:var(--paper-2);border:1px solid var(--rule);border-radius:2px;padding:2px 8px;letter-spacing:.04em;font-feature-settings:"tnum";min-width:32px;text-align:center}.track-name{font-size:15px;font-weight:500;color:var(--ink);font-family:"Noto Serif SC",Georgia,serif;flex:1;letter-spacing:.01em}.track-done{font-size:13px;color:var(--ink-soft);font-family:Fraunces,Georgia,serif;font-style:normal;font-feature-settings:"tnum";letter-spacing:-.01em;text-align:right;margin-left:auto}.track-bar{height:3px;background:var(--paper-2);border-radius:1px;overflow:hidden;margin:0 0 6px 46px}.track-fill{height:100%;background:var(--primary);border-radius:1px;transition:width .4s cubic-bezier(.4,0,.2,1);min-width:0}.track-meta{font-size:12px;color:var(--ink-mute);margin-left:46px;letter-spacing:.02em;font-family:Noto Sans SC,sans-serif}.track-remaining{color:var(--ink-mute)}.track-overdue{color:var(--secondary-dark);background:var(--secondary-soft);padding:1px 8px;border-radius:999px;font-size:11px;font-weight:500}.track-done-mark{color:var(--secondary);font-family:Fraunces,Georgia,serif;font-style:normal;font-weight:600;letter-spacing:.01em}.track-teacher-target{display:inline-block;margin:4px 0 6px 46px;padding:2px 10px;font-size:11px;font-weight:600;color:#0369a1;background:#eff6ff;border:1px solid #bfdbfe;border-radius:4px;letter-spacing:.02em}.track-sep{height:1px;background:var(--rule-soft);margin:0 0 0 46px}@media (max-width: 768px){.tracks{padding:20px 18px}.tracks-head{flex-direction:column;gap:4px}.track-bar,.track-meta,.track-sep{margin-left:0}}.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:var(--primary);border-radius:2px;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:var(--bg-card);border:1px solid var(--rule);border-radius:4px;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:var(--rule);border-radius:2px;animation:wave .5s ease-in-out infinite alternate}.wave-bar.playing{animation:wave .5s ease-in-out infinite alternate;background:var(--primary)}@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:var(--ink);border:1px solid var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;color:var(--paper)}.play-btn:hover{background:var(--primary);border-color:var(--primary);color:#fff}.playback-controls{display:flex;align-items:center;gap:16px}.replay-btn{width:36px;height:36px;border-radius:50%;background:var(--paper-2);border:1px solid var(--rule);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}.replay-btn:hover{background:var(--primary-tint);border-color:var(--primary)}.speed-selector{display:flex;gap:0;border:1px solid var(--rule);border-radius:4px;overflow:hidden}.speed-btn{padding:4px 10px;background:var(--paper);border:none;border-right:1px solid var(--rule);color:var(--ink-soft);font-size:12px;cursor:pointer;transition:background .2s,color .2s;font-family:Geist Mono,monospace}.speed-btn:last-child{border-right:none}.speed-btn.active{background:var(--ink);color:var(--paper)}.audio-hint{text-align:center;font-size:12px;color:var(--ink-mute);margin-top:12px;font-family:Fraunces,Georgia,serif;font-style:italic}.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)}._vocabTeachingPage_11106_9{min-height:calc(100vh - 80px);padding:0 0 96px;background:var(--paper)}._vocabTeachingHeader_11106_15{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--rule)}._vocabTeachingHeader_11106_15 h1{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:36px;font-weight:600;color:var(--ink);letter-spacing:-.025em;line-height:1.15;margin:0 0 8px}._vocabTeachingHeader_11106_15 p{color:var(--ink-mute);font-size:15px;margin:0}._demoNotice_11106_37{margin-top:12px;padding:10px 14px;background:var(--warning-soft);border:1px solid var(--warning);border-radius:6px;color:var(--ink);font-size:13px;display:inline-flex;align-items:center;gap:8px}._hskSelectorWrap_11106_52{display:flex;flex-direction:column;gap:24px;max-width:720px;margin:48px auto;padding:0 24px}._hskSelectorTitle_11106_61{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:22px;font-weight:600;color:var(--ink);text-align:center}._hskSortRow_11106_70{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}._hskSortLabel_11106_78{font-family:Inter,system-ui,sans-serif;font-size:13px;color:var(--ink-mute)}._hskSortBtn_11106_84{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--bg-card);border:1px solid var(--rule);border-radius:999px;font-family:inherit;font-size:13px;color:var(--ink);cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}._hskSortBtn_11106_84:hover:not(:disabled){border-color:var(--ink-soft)}._hskSortBtn_11106_84:disabled{opacity:.4;cursor:not-allowed}._hskSortBtnActive_11106_108{background:var(--ink);color:var(--paper);border-color:var(--ink)}._hskSortBtnActive_11106_108:hover:not(:disabled){background:var(--ink-soft);border-color:var(--ink-soft)}._sortHint_11106_120{font-family:Inter,system-ui,sans-serif;font-size:12px;color:var(--ink-mute);letter-spacing:.02em;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}._sortHint_11106_120:before{content:"← ";opacity:.6;margin-right:2px}._sortHintInline_11106_135{margin-left:4px}._hskSelectorGrid_11106_140{display:grid;grid-template-columns:1fr 1fr;gap:20px}._hskCard_11106_146{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;padding:32px 24px 20px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;position:relative}._hskCard_11106_146:hover{border-color:var(--primary);background:var(--primary-tint)}._hskCardMain_11106_166{display:contents}._hskCardIcon_11106_170{width:48px;height:48px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center}._hskCardTitle_11106_181{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:28px;font-weight:600;color:var(--ink)}._hskCardSub_11106_188{color:var(--ink-mute);font-size:14px;line-height:1.7}._hskCardReset_11106_194{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;color:var(--ink-mute);font-size:12px;font-family:inherit;cursor:pointer;margin-top:4px}._hskCardReset_11106_194:hover{border-color:var(--danger);color:var(--danger)}._wordCardWrap_11106_216{max-width:920px;margin:0 auto;padding:0 24px}._wordCard_11106_216{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;padding:32px;display:grid;grid-template-columns:220px 1fr;gap:32px;min-height:360px}._wordCardLeft_11106_233{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:6px}._wordCardWord_11106_244{font-family:"Noto Serif SC",Fraunces,Georgia,serif;font-size:64px;font-weight:700;color:var(--primary-dark);line-height:1.1;text-align:center;word-break:break-all}._wordCardPinyin_11106_254{font-size:18px;color:var(--ink-soft);margin-top:12px;letter-spacing:.04em}._wordCardPosChip_11106_261{display:inline-block;margin-top:8px;padding:2px 10px;background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;font-size:13px;color:var(--ink-soft);font-family:Geist Mono,Consolas,monospace}._wordCardRight_11106_273{display:flex;flex-direction:column;gap:20px}._wordCardSectionTitle_11106_279{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:14px;font-weight:600;color:var(--ink-mute);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;display:flex;align-items:center;gap:8px}._wordCardSectionTitle_11106_279:before{content:"";width:4px;height:14px;background:var(--primary);border-radius:1px}._exampleRow_11106_300{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--paper);border:1px solid var(--rule-soft);border-radius:6px;margin-bottom:8px}._exampleRow_11106_300:last-child{margin-bottom:0}._exampleRowText_11106_315{flex:1;font-size:16px;color:var(--ink);line-height:1.5}._exampleRowNum_11106_322{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--secondary-soft);color:var(--secondary-dark);font-size:12px;font-family:Geist Mono,monospace;flex-shrink:0}._ttsBtn_11106_336{flex-shrink:0;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;color:var(--ink-soft);cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}._ttsBtn_11106_336:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-tint)}._ttsBtn_11106_336:disabled{opacity:.4;cursor:not-allowed}._aiSection_11106_362{border-top:1px dashed var(--rule);padding-top:16px}._aiExamplesEmpty_11106_367{color:var(--ink-mute);font-size:14px;font-style:italic;padding:8px 0}._aiGenerateBtn_11106_374{margin-top:12px;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--primary);color:#fff8ee;border:1px solid var(--primary-dark);border-radius:6px;font-size:14px;font-family:inherit;cursor:pointer;transition:background-color .15s ease}._aiGenerateBtn_11106_374:hover:not(:disabled){background:var(--primary-dark)}._aiGenerateBtn_11106_374:disabled{opacity:.6;cursor:not-allowed}._aiRegenerateBtn_11106_399{margin-top:12px;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-card);color:var(--primary);border:1px solid var(--primary);border-radius:6px;font-size:13px;font-family:inherit;cursor:pointer}._aiRegenerateBtn_11106_399:hover:not(:disabled){background:var(--primary-tint)}._aiRegenerateBtn_11106_399:disabled{opacity:.6;cursor:not-allowed}._sessionControlBar_11106_425{position:sticky;bottom:0;left:0;right:0;margin-top:32px;padding:14px 24px;background:var(--bg-card);border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;z-index:50}._sessionProgress_11106_442{font-family:Geist Mono,monospace;font-size:16px;color:var(--ink);min-width:70px;text-align:center;padding:0 12px}._navBtn_11106_451,._actionBtn_11106_452{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-card);border:1px solid var(--rule);border-radius:6px;font-size:14px;color:var(--ink);font-family:inherit;cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}._navBtn_11106_451:hover:not(:disabled),._actionBtn_11106_452:hover:not(:disabled){border-color:var(--ink-soft)}._navBtn_11106_451:disabled,._actionBtn_11106_452:disabled{opacity:.4;cursor:not-allowed}._actionBtnActive_11106_479{background:var(--ink);color:var(--paper);border-color:var(--ink)}._actionBtnActive_11106_479:hover:not(:disabled){background:var(--ink-soft);border-color:var(--ink-soft)}._readingBtn_11106_490{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--primary);color:#fff8ee;border:1px solid var(--primary-dark);border-radius:6px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:background-color .15s ease}._readingBtn_11106_490:hover:not(:disabled){background:var(--primary-dark)}._readingBtn_11106_490:disabled{opacity:.4;background:var(--primary-soft);color:var(--ink-mute);border-color:var(--primary-soft);cursor:not-allowed}._dangerBtn_11106_518{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-card);border:1px solid var(--danger);border-radius:6px;font-size:14px;color:var(--danger);font-family:inherit;cursor:pointer}._dangerBtn_11106_518:hover:not(:disabled){background:var(--danger);color:#fff8ee}._readingModalOverlay_11106_539{position:fixed;inset:0;background:#1f1a148c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;animation:_fadeIn_11106_1 .18s ease-out}@keyframes _fadeIn_11106_1{0%{opacity:0}to{opacity:1}}._readingModalPanel_11106_556{background:var(--paper);border:1px solid var(--rule);border-radius:8px;width:100%;max-width:820px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}._readingModalHeader_11106_568{position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--rule);padding:20px 28px;display:flex;align-items:center;justify-content:space-between;z-index:2}._readingModalTitle_11106_580{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:22px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:10px}._readingCloseBtn_11106_590{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--rule);border-radius:4px;color:var(--ink-soft);cursor:pointer}._readingCloseBtn_11106_590:hover{border-color:var(--ink);color:var(--ink)}._readingModalBody_11106_608{padding:24px 28px;display:flex;flex-direction:column;gap:24px}._readingVocabChips_11106_615{display:flex;flex-wrap:wrap;gap:6px}._readingVocabChip_11106_615{display:inline-block;padding:4px 10px;background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:4px;color:var(--primary-dark);font-size:13px;font-family:Geist Mono,monospace}._readingPassage_11106_632{background:var(--bg-card);border:1px solid var(--rule);border-radius:6px;padding:20px 24px;font-family:"Noto Serif SC",Fraunces,Georgia,serif;font-size:17px;line-height:1.85;color:var(--ink);letter-spacing:.01em;white-space:pre-wrap}._readingPassageMeta_11106_645{margin-top:8px;color:var(--ink-mute);font-size:12px;font-family:Geist Mono,monospace}._questionCard_11106_654{background:var(--bg-card);border:1px solid var(--rule);border-radius:6px;padding:18px 20px}._questionHeader_11106_661{display:flex;align-items:center;gap:10px;margin-bottom:12px}._questionIndex_11106_668{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:18px;font-weight:600;color:var(--ink)}._questionTypeChip_11106_675{display:inline-block;padding:2px 10px;border-radius:4px;font-size:12px;font-family:Geist Mono,monospace;border:1px solid}._questionTypeChip_11106_675._detail_11106_684{background:var(--track-blue-paper);color:var(--track-blue-dark);border-color:var(--track-blue-soft)}._questionTypeChip_11106_675._inference_11106_690{background:var(--secondary-soft);color:var(--secondary-dark);border-color:var(--secondary-soft)}._questionTypeChip_11106_675._main_idea_11106_696{background:var(--primary-tint);color:var(--primary-dark);border-color:var(--primary-soft)}._questionStem_11106_702{font-family:"Noto Serif SC",Fraunces,Georgia,serif;font-size:16px;color:var(--ink);line-height:1.6;margin:8px 0 14px}._questionOptions_11106_710{display:flex;flex-direction:column;gap:6px}._questionOption_11106_710{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;background:var(--paper);border:1px solid var(--rule-soft);border-radius:4px;cursor:pointer;font-size:14px;color:var(--ink);text-align:left;font-family:inherit;width:100%;transition:border-color .15s ease,background-color .15s ease}._questionOption_11106_710:hover:not(:disabled){border-color:var(--ink-soft)}._questionOption_11106_710._selected_11106_737{border-color:var(--primary);background:var(--primary-tint)}._questionOption_11106_710._correct_11106_742{border-color:var(--secondary);background:var(--secondary-soft)}._questionOption_11106_710._wrong_11106_747{border-color:var(--danger);background:#a8463a14}._questionOptionKey_11106_752{font-family:Geist Mono,monospace;font-weight:600;flex-shrink:0}._revealBtn_11106_758{margin-top:12px;padding:6px 14px;background:var(--bg-card);border:1px solid var(--ink-soft);border-radius:4px;color:var(--ink);font-size:13px;font-family:inherit;cursor:pointer}._revealBtn_11106_758:hover:not(:disabled){background:var(--bg-hover)}._revealBtn_11106_758:disabled{opacity:.5;cursor:not-allowed}._answerHint_11106_779{margin-top:10px;padding:8px 12px;background:var(--secondary-soft);border-left:3px solid var(--secondary);border-radius:3px;color:var(--secondary-dark);font-size:13px;font-family:Geist Mono,monospace}._readingModalFooter_11106_792{position:sticky;bottom:0;background:var(--paper);border-top:1px solid var(--rule);padding:14px 28px;display:flex;justify-content:space-between;gap:12px;z-index:2}._loadingContainer_11106_806{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px 24px}._spinner_11106_815{width:36px;height:36px;border:3px solid var(--rule);border-top-color:var(--primary);border-radius:50%;animation:_spin_11106_815 .8s linear infinite}@keyframes _spin_11106_815{to{transform:rotate(360deg)}}._loadingText_11106_828{color:var(--ink-soft);font-size:14px;font-family:Fraunces,"Noto Serif SC",Georgia,serif}._errorContainer_11106_834{padding:24px;background:#a8463a14;border:1px solid var(--danger);border-radius:6px;color:var(--danger);font-size:14px;display:flex;align-items:flex-start;gap:12px}._toast_11106_848{position:fixed;top:24px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:10px 18px;border-radius:6px;font-size:14px;z-index:2000;box-shadow:0 2px 8px #1f1a1433;animation:_toastIn_11106_1 .2s ease-out}@keyframes _toastIn_11106_1{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}@media (max-width: 720px){._wordCard_11106_216{grid-template-columns:1fr;padding:20px}._wordCardLeft_11106_233{padding:16px}._wordCardWord_11106_244{font-size:48px}._hskSelectorGrid_11106_140{grid-template-columns:1fr}._sessionControlBar_11106_425{padding:12px;gap:8px}._readingModalHeader_11106_568,._readingModalBody_11106_608,._readingModalFooter_11106_792{padding-left:18px;padding-right:18px}}._overlay_1mbu8_9{position:fixed;inset:0;z-index:9999;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:24px;animation:_fadeIn_1mbu8_1 .16s ease-out}@keyframes _fadeIn_1mbu8_1{0%{opacity:0}to{opacity:1}}._modal_1mbu8_26{background:#fff;border-radius:12px;width:100%;max-width:760px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040;overflow:hidden}._header_1mbu8_40{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 24px;border-bottom:1px solid var(--rule, #e5e0d8);flex-shrink:0}._header_1mbu8_40 h3{margin:0;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:19px;font-weight:600;color:var(--ink, #1a1a1a)}._closeBtn_1mbu8_58{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--ink-mute, #78716c);cursor:pointer;transition:all .15s ease}._closeBtn_1mbu8_58:hover:not(:disabled){border-color:#000;color:var(--ink, #1a1a1a)}._closeBtn_1mbu8_58:disabled{opacity:.4;cursor:not-allowed}._body_1mbu8_84{padding:20px 24px;overflow-y:auto;flex:1;min-height:0}._field_1mbu8_91{margin-bottom:18px}._label_1mbu8_95{display:block;font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:600;color:var(--ink, #1a1a1a);margin-bottom:6px}._input_1mbu8_104,._textarea_1mbu8_105,._select_1mbu8_106{width:100%;padding:9px 12px;border:1px solid var(--rule, #e5e0d8);border-radius:6px;background:#fff;color:var(--ink, #1a1a1a);font-family:Inter,system-ui,sans-serif;font-size:14px;line-height:1.6;transition:border-color .15s ease,box-shadow .15s ease}._input_1mbu8_104:focus,._textarea_1mbu8_105:focus,._select_1mbu8_106:focus{outline:none;border-color:#000;box-shadow:0 0 0 3px #0000000f}._textarea_1mbu8_105{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:15px;line-height:1.8;resize:vertical;min-height:260px}._select_1mbu8_106{cursor:pointer}._hint_1mbu8_139{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px;font-family:Inter,system-ui,sans-serif;font-size:12px;color:var(--ink-mute, #78716c)}._hintText_1mbu8_150{font-family:Inter,system-ui,sans-serif;font-size:12px;color:var(--ink-mute, #78716c)}._hintDanger_1mbu8_156{color:#b3261e;font-weight:600}._fieldError_1mbu8_161{display:flex;align-items:center;gap:5px;margin-top:6px;font-family:Inter,system-ui,sans-serif;font-size:12px;color:#b3261e}._errorBanner_1mbu8_173,._infoBanner_1mbu8_174{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:6px;font-family:Inter,system-ui,sans-serif;font-size:13px;line-height:1.5;margin-bottom:12px}._errorBanner_1mbu8_173{background:#fdf1f0;border:1px solid #f2c9c5;color:#8c1d18}._infoBanner_1mbu8_174{background:#f2f7f2;border:1px solid #cfe3cf;color:#1f5134}._publishTarget_1mbu8_200{display:flex;align-items:baseline;gap:10px;padding:10px 14px;margin-bottom:16px;background:var(--paper-2, #fbf9f4);border:1px solid var(--rule, #e5e0d8);border-radius:6px}._publishTargetName_1mbu8_211{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:15px;font-weight:600;color:var(--ink, #1a1a1a)}._publishTargetMeta_1mbu8_218{font-family:Inter,system-ui,sans-serif;font-size:12px;color:var(--ink-mute, #78716c)}._loadingRow_1mbu8_224{display:flex;align-items:center;gap:8px;padding:20px 0;font-family:Inter,system-ui,sans-serif;font-size:13px;color:var(--ink-mute, #78716c)}._scopeGroup_1mbu8_234{display:flex;flex-direction:column;gap:8px}._scopeOption_1mbu8_240{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--rule, #e5e0d8);border-radius:6px;font-family:Inter,system-ui,sans-serif;font-size:14px;color:var(--ink, #1a1a1a);cursor:pointer;transition:border-color .15s ease,background .15s ease}._scopeOption_1mbu8_240:hover{border-color:#000;background:#fafafa}._scopeOption_1mbu8_240 input[type=radio]{accent-color:#000;cursor:pointer}._scopeCount_1mbu8_264{margin-left:auto;font-size:12px;color:var(--ink-mute, #78716c)}._scopeDetail_1mbu8_270{padding:4px 0 4px 26px}._studentList_1mbu8_274{max-height:220px;overflow-y:auto;margin-left:26px;padding:8px 12px;border:1px solid var(--rule, #e5e0d8);border-radius:6px;background:#fcfcfb}._studentRow_1mbu8_284{display:flex;align-items:center;gap:8px;padding:5px 0;font-family:Inter,system-ui,sans-serif;font-size:13px;color:var(--ink, #1a1a1a);cursor:pointer}._studentRow_1mbu8_284 input[type=checkbox]{accent-color:#000;cursor:pointer}._studentClass_1mbu8_300{margin-left:auto;font-size:12px;color:var(--ink-mute, #78716c)}._footer_1mbu8_308{display:flex;align-items:center;gap:10px;padding:14px 24px;border-top:1px solid var(--rule, #e5e0d8);background:#fcfcfb;flex-shrink:0}._footerRight_1mbu8_318{margin-left:auto;display:flex;align-items:center;gap:8px}._primaryBtn_1mbu8_325,._ghostBtn_1mbu8_326,._dangerBtn_1mbu8_327{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}._primaryBtn_1mbu8_325{background:#000;border:1px solid #000;color:#fff}._primaryBtn_1mbu8_325:hover:not(:disabled){background:#1f1f1f}._ghostBtn_1mbu8_326{background:#fff;border:1px solid var(--rule, #e5e0d8);color:var(--ink, #1a1a1a)}._ghostBtn_1mbu8_326:hover:not(:disabled){border-color:#000;background:#f3f3f3}._dangerBtn_1mbu8_327{background:#fff;border:1px solid #b3261e;color:#b3261e}._dangerBtn_1mbu8_327:hover:not(:disabled){background:#b3261e;color:#fff}._primaryBtn_1mbu8_325:disabled,._ghostBtn_1mbu8_326:disabled,._dangerBtn_1mbu8_327:disabled{opacity:.45;cursor:not-allowed}._spin_1mbu8_380{animation:_spin_1mbu8_380 .9s linear infinite}@keyframes _spin_1mbu8_380{to{transform:rotate(360deg)}}._page_4299n_9{min-height:calc(100vh - 80px);padding:32px 40px 96px;background:var(--paper);max-width:1280px;margin:0 auto}._header_4299n_19{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--rule)}._headerLeft_4299n_28{display:flex;align-items:center;gap:16px}._headerIcon_4299n_35{width:48px;height:48px;border-radius:8px;background:#000;color:#fff;display:flex;align-items:center;justify-content:center}._header_4299n_19 h1{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:32px;font-weight:600;color:var(--ink);letter-spacing:-.025em;margin:0;line-height:1.2}._section_4299n_58{margin-bottom:32px}._sectionTitle_4299n_62{display:flex;align-items:center;gap:12px;margin-bottom:16px;font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:20px;font-weight:600;color:var(--ink);flex-wrap:wrap}._stepBadge_4299n_75{width:28px;height:28px;border-radius:50%;background:#000;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:Inter,system-ui,sans-serif;font-size:14px;font-weight:600}._passageMeta_4299n_89{margin-left:auto;font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:400;color:var(--ink-mute)}._fontSizeGroup_4299n_98{display:inline-flex;align-items:center;gap:4px;margin-left:12px;padding:2px;border:1px solid var(--rule);border-radius:6px;background:#fff}._fontSizeBtn_4299n_109{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:28px;padding:0 8px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--ink);font-family:Fraunces,"Noto Serif SC",Georgia,serif;cursor:pointer;transition:all .15s ease}._fontSizeGroup_4299n_98>._fontSizeBtn_4299n_109:nth-child(1){font-size:11px}._fontSizeGroup_4299n_98>._fontSizeBtn_4299n_109:nth-child(2){font-size:14px}._fontSizeGroup_4299n_98>._fontSizeBtn_4299n_109:nth-child(3){font-size:17px}._fontSizeGroup_4299n_98>._fontSizeBtn_4299n_109:nth-child(4){font-size:20px}._fontSizeBtn_4299n_109:hover:not(._fontSizeBtnActive_4299n_131){border-color:#000;background:#f3f3f3}._fontSizeBtnActive_4299n_131{background:#000;color:#fff;border-color:#000}._textbookTabs_4299n_144{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}._textbookTab_4299n_144{padding:8px 18px;background:transparent;border:1px solid var(--rule);border-radius:6px;color:#000;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}._textbookTab_4299n_144:hover:not(._active_4299n_165){border-color:#000}._textbookTab_4299n_144._active_4299n_165{background:#000;border-color:#000;color:#fff}._lessonGrid_4299n_178{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}._lessonBtn_4299n_184{display:flex;flex-direction:column;align-items:flex-start;padding:14px 16px;background:var(--paper-2, #fbf9f4);border:1px solid var(--rule);border-radius:6px;text-align:left;cursor:pointer;transition:all .15s ease;font-family:inherit;color:var(--ink)}._lessonBtn_4299n_184:hover:not(:disabled):not(._active_4299n_165){border-color:#000;background:#fff}._lessonBtn_4299n_184._active_4299n_165{background:#fff;border-color:#000;box-shadow:0 0 0 1px #000 inset}._lessonBtn_4299n_184:disabled{opacity:.4;cursor:not-allowed}._lessonNum_4299n_218{font-family:Inter,system-ui,sans-serif;font-size:11px;font-weight:700;color:#000;letter-spacing:.05em;text-transform:uppercase;margin-bottom:4px}._lessonBtn_4299n_184._active_4299n_165 ._lessonNum_4299n_218{color:#000}._lessonTitle_4299n_232{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:14px;line-height:1.4;color:#000}._passagePanel_4299n_241{background:var(--paper-2, #fbf9f4);border:1px solid var(--rule);border-radius:8px;padding:28px 32px;max-height:480px;overflow-y:auto}._passagePara_4299n_251{font-family:Fraunces,"Noto Serif SC",Georgia,serif;font-size:17px;line-height:1.85;color:var(--ink);margin:0 0 1em;text-indent:2em;word-break:break-word}._passagePara_4299n_251:last-child{margin-bottom:0}._readingGroup_4299n_268{display:inline-flex;align-items:center;gap:6px;margin-left:12px;padding:2px;border:1px solid var(--rule);border-radius:6px;background:#fff}._readBtn_4299n_279,._readStopBtn_4299n_280,._readSettingsBtn_4299n_281{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid transparent;border-radius:4px;background:transparent;font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:500;color:var(--ink);cursor:pointer;transition:all .15s ease;white-space:nowrap}._readBtn_4299n_279:hover:not(:disabled),._readStopBtn_4299n_280:hover,._readSettingsBtn_4299n_281:hover{border-color:#000;background:#f3f3f3}._readBtn_4299n_279:disabled{opacity:.4;cursor:not-allowed}._readStopBtn_4299n_280{color:#b3261e;border-color:#b3261e}._readStopBtn_4299n_280:hover{background:#b3261e;color:#fff}._readSettingsBtnActive_4299n_320{background:#000;color:#fff}._readSettingsBtnActive_4299n_320:hover{background:#000;color:#fff;border-color:#000}._readProgress_4299n_333{display:inline-flex;align-items:center;gap:8px;padding:0 4px}._readProgressBar_4299n_340{display:inline-block;width:72px;height:3px;border-radius:2px;background:var(--rule);overflow:hidden}._readProgressFill_4299n_349{display:block;height:100%;background:#000;transition:width .25s ease}._readProgressText_4299n_356{font-family:Inter,system-ui,sans-serif;font-size:12px;color:var(--ink-mute);font-variant-numeric:tabular-nums;white-space:nowrap}._readingSettings_4299n_365{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;padding:16px 20px;background:var(--paper-2, #fbf9f4);border:1px solid var(--rule);border-radius:8px}._readingRow_4299n_376{display:flex;align-items:center;gap:12px;flex-wrap:wrap}._readingLabel_4299n_383{min-width:36px;font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:600;color:var(--ink)}._readingSelect_4299n_391{min-width:180px;padding:5px 8px;border:1px solid var(--rule);border-radius:4px;background:#fff;font-family:Inter,system-ui,sans-serif;font-size:13px;color:var(--ink);cursor:pointer}._readingSelect_4299n_391:disabled{opacity:.45;cursor:not-allowed}._readPreviewBtn_4299n_409{padding:5px 10px;border:1px solid var(--rule);border-radius:4px;background:#fff;font-family:Inter,system-ui,sans-serif;font-size:13px;color:var(--ink);cursor:pointer;transition:all .15s ease;white-space:nowrap}._readPreviewBtn_4299n_409:hover:not(:disabled){border-color:#000;background:#f3f3f3}._readPreviewBtn_4299n_409:disabled{opacity:.4;cursor:not-allowed}._readingChips_4299n_432{display:inline-flex;align-items:center;gap:4px;padding:2px;border:1px solid var(--rule);border-radius:6px;background:#fff}._readingChip_4299n_432{padding:4px 12px;border:1px solid transparent;border-radius:4px;background:transparent;font-family:Inter,system-ui,sans-serif;font-size:13px;color:var(--ink);cursor:pointer;transition:all .15s ease}._readingChip_4299n_432:hover:not(._readingChipActive_4299n_454){border-color:#000;background:#f3f3f3}._readingChipActive_4299n_454{background:#000;color:#fff;border-color:#000}._readingRange_4299n_465{width:160px;accent-color:#000;cursor:pointer}._readingRange_4299n_465:disabled{opacity:.4;cursor:not-allowed}._readingValue_4299n_476{min-width:36px;font-family:Inter,system-ui,sans-serif;font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}._readingHint_4299n_484{font-family:Inter,system-ui,sans-serif;font-size:12px;color:var(--ink-mute)}._readingError_4299n_490{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:9px 14px;border:1px solid #b3261e;border-radius:6px;background:#fdf2f1;font-family:Inter,system-ui,sans-serif;font-size:13px;color:#b3261e}._passageSentence_4299n_505{cursor:pointer;border-radius:2px;transition:background-color .15s ease}._passageSentence_4299n_505:hover{background:#0000000f}._passageSentenceActive_4299n_516{background:#ffe9a8;box-shadow:0 0 0 2px #ffe9a8}._passageParaActive_4299n_522{background:#ffe9a873;border-radius:3px;box-shadow:0 0 0 3px #ffe9a873}._paramsPanel_4299n_530{background:var(--paper-2, #fbf9f4);border:1px solid var(--rule);border-radius:8px;padding:20px 24px}._paramRow_4299n_537{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}._paramLabel_4299n_545{font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:600;color:#000;min-width:80px}._paramHint_4299n_553{font-family:Inter,system-ui,sans-serif;font-size:12px;color:var(--ink-mute)}._numberInput_4299n_559{width:72px;padding:6px 10px;border:1px solid var(--rule);border-radius:4px;background:#fff;font-family:inherit;font-size:14px;color:#000;text-align:center}._numberInput_4299n_559:focus{outline:none;border-color:#000}._modelSelect_4299n_577{padding:6px 12px;border:1px solid var(--rule);border-radius:4px;background:#fff;font-family:inherit;font-size:14px;color:#000;cursor:pointer;min-width:220px}._modelSelect_4299n_577:focus{outline:none;border-color:#000}._checkboxLabel_4299n_594{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:Inter,system-ui,sans-serif;font-size:13px;color:#000}._checkboxLabel_4299n_594 input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#000}._typeSelector_4299n_613{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding-left:92px}._typeChip_4299n_621{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--rule);border-radius:999px;background:#fff;cursor:pointer;font-family:inherit;font-size:13px;color:#000;transition:all .15s ease}._typeChip_4299n_621 input[type=checkbox]{display:none}._typeChip_4299n_621:hover{border-color:#000}._typeChip_comprehension_4299n_645._active_4299n_165,._typeChip_cross-cultural_4299n_646._active_4299n_165,._typeChip_life-applied_4299n_647._active_4299n_165{background:#000;color:#fff;border-color:#000}._actionRow_4299n_655{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}._generateBtn_4299n_662,._exportBtn_4299n_663,._regenerateBtn_4299n_664{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border:none;border-radius:6px;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s ease}._generateBtn_4299n_662{background:#000;color:#fff}._generateBtn_4299n_662:hover:not(:disabled){opacity:.85}._generateBtn_4299n_662:disabled{opacity:.6;cursor:not-allowed}._exportBtn_4299n_663{background:#fff;color:#000;border:1px solid #000}._exportBtn_4299n_663:hover{background:#f3f3f3}._regenerateBtn_4299n_664{background:transparent;color:#000;border:1px solid var(--rule)}._regenerateBtn_4299n_664:hover:not(:disabled){border-color:#000}._regenerateBtn_4299n_664:disabled{opacity:.5;cursor:not-allowed}._placeholder_4299n_721{display:flex;align-items:center;gap:8px;padding:16px 20px;background:var(--paper-2, #fbf9f4);border:1px dashed var(--rule);border-radius:6px;color:var(--ink-mute);font-size:14px}._errorBanner_4299n_733{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;background:var(--warning-soft, #fdf3e0);border:1px solid var(--warning, #d68a3c);border-radius:6px;color:var(--ink);font-size:13px}._errorBanner_4299n_733>span{flex:1}._dismissBtn_4299n_750{background:transparent;border:none;color:var(--ink-mute);cursor:pointer;padding:2px;border-radius:4px;display:inline-flex}._dismissBtn_4299n_750:hover{background:#0000000d}._versionGroup_4299n_766{display:inline-flex;align-items:center;gap:6px;margin-left:12px;padding:2px 2px 2px 10px;border:1px solid var(--rule);border-radius:6px;background:#fff}._versionLabel_4299n_777{font-family:Inter,system-ui,sans-serif;font-size:12px;color:var(--ink-mute);white-space:nowrap}._versionSelect_4299n_784{max-width:220px;height:28px;padding:0 6px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--ink);font-family:Inter,system-ui,sans-serif;font-size:13px;cursor:pointer}._versionSelect_4299n_784:hover:not(:disabled){border-color:#000;background:#f3f3f3}._versionSelect_4299n_784:disabled{opacity:.5;cursor:not-allowed}._editPassageBtn_4299n_807,._publishBtn_4299n_808{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border:1px solid transparent;border-radius:4px;background:transparent;font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:500;color:var(--ink);cursor:pointer;transition:all .15s ease;white-space:nowrap}._editPassageBtn_4299n_807:hover{border-color:#000;background:#f3f3f3}._publishBtn_4299n_808{margin-left:8px;padding:5px 10px;border:1px solid #000;background:#000;color:#fff}._publishBtn_4299n_808:hover{background:#1f1f1f}._versionBadge_4299n_843{display:inline-flex;align-items:center;padding:3px 10px;border:1px solid var(--rule);border-radius:999px;background:var(--paper-2, #fbf9f4);font-family:Inter,system-ui,sans-serif;font-size:12px;color:var(--ink-mute);white-space:nowrap}._versionBadgeAdapted_4299n_856{border-color:#000;background:#000;color:#fff}._adaptationError_4299n_862{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;background:var(--warning-soft, #fdf3e0);border:1px solid var(--warning, #d68a3c);border-radius:6px;color:var(--ink);font-size:13px}._adaptationError_4299n_862>span{flex:1}._spin_4299n_879{animation:_spin_4299n_879 .9s linear infinite}@keyframes _spin_4299n_879{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._questionList_4299n_890{display:flex;flex-direction:column;gap:16px}._questionCard_4299n_896{background:#fff;border:1px solid var(--rule);border-radius:8px;padding:20px 24px;transition:box-shadow .15s ease}._questionCard_4299n_896:hover{box-shadow:0 2px 8px #0000000a}._card_comprehension_4299n_909,._card_cross-cultural_4299n_910,._card_life-applied_4299n_911{border-left:3px solid #000}._questionHeader_4299n_915{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}._questionIndexArea_4299n_922{display:flex;align-items:center;gap:10px}._questionIndex_4299n_922{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#fff;border:1px solid #000;font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:700;color:#000}._typeTag_4299n_945{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:4px;background:#000;font-family:Inter,system-ui,sans-serif;font-size:12px;font-weight:500;color:#fff}._typeTag_comprehension_4299n_958,._typeTag_cross-cultural_4299n_959,._typeTag_life-applied_4299n_960{background:#000}._autoBadge_4299n_965{display:inline-block;padding:2px 8px;border-radius:4px;background:#000;color:#fff;font-family:Inter,system-ui,sans-serif;font-size:11px;font-weight:500}._questionActions_4299n_976{display:flex;gap:4px}._iconBtn_4299n_982{background:transparent;border:1px solid var(--rule);border-radius:4px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;color:#000;cursor:pointer;transition:all .15s ease}._iconBtn_4299n_982:hover:not(:disabled){border-color:#000;background:#f3f3f3}._iconBtn_4299n_982:disabled{opacity:.3;cursor:not-allowed}._removeBtn_4299n_1006:hover:not(:disabled){background:#000;border-color:#000;color:#fff}._fieldRow_4299n_1014{margin-bottom:14px}._fieldRow_4299n_1014:last-child{margin-bottom:0}._fieldLabel_4299n_1022{display:block;font-family:Inter,system-ui,sans-serif;font-size:11px;font-weight:600;color:#000;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}._stemInput_4299n_1033,._openAnswerInput_4299n_1034,._explanationInput_4299n_1035{width:100%;padding:8px 12px;border:1px solid var(--rule);border-radius:4px;background:var(--paper-2, #fbf9f4);font-family:"Noto Serif SC",Georgia,serif;font-size:14px;color:#000;resize:vertical;box-sizing:border-box}._stemInput_4299n_1033:focus,._openAnswerInput_4299n_1034:focus,._explanationInput_4299n_1035:focus{outline:none;border-color:#000;background:#fff}._optionsGrid_4299n_1056{display:flex;flex-direction:column;gap:8px}._optionRow_4299n_1062{display:flex;align-items:center;gap:8px}._optionKey_4299n_1068{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;background:#fff;border:1px solid #000;font-family:Inter,system-ui,sans-serif;font-size:12px;font-weight:700;color:#000}._optionRow_4299n_1062 input{flex:1;padding:6px 10px;border:1px solid var(--rule);border-radius:4px;background:#fff;font-family:inherit;font-size:14px;color:#000}._optionRow_4299n_1062 input:focus{outline:none;border-color:#000}._answerChoices_4299n_1099{display:flex;gap:8px}._answerChoice_4299n_1099{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--rule);border-radius:4px;cursor:pointer;font-family:Inter,system-ui,sans-serif;font-size:14px;font-weight:600;color:#000;transition:all .15s ease}._answerChoice_4299n_1099 input{display:none}._answerChoice_4299n_1099:hover{border-color:#000}._answerChoice_4299n_1099._active_4299n_165{background:#000;border-color:#000;color:#fff}._answerToggleRow_4299n_1136{display:flex;align-items:center;gap:12px;margin-bottom:6px}._answerToggleRow_4299n_1136 ._fieldLabel_4299n_1022{margin-bottom:0}._revealBtn_4299n_1147,._revealAllBtn_4299n_1148{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#fff;border:1px solid #000;border-radius:4px;color:#000;font-family:Inter,system-ui,sans-serif;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease}._revealBtn_4299n_1147:hover,._revealAllBtn_4299n_1148:hover{background:#000;color:#fff}._revealAllBtn_4299n_1148{margin-left:auto}._hiddenAnswerHint_4299n_1175{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:var(--paper-2, #fbf9f4);border:1px dashed var(--rule);border-radius:4px;color:var(--ink-mute);font-family:Inter,system-ui,sans-serif;font-size:12px}._toast_4299n_1190{position:fixed;bottom:32px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;background:var(--ink);color:var(--paper);box-shadow:0 8px 24px #00000026;font-family:Inter,system-ui,sans-serif;font-size:13px;z-index:1000;animation:_toast-in_4299n_1 .25s ease}._toast_4299n_1190>span{color:#4ade80}@keyframes _toast-in_4299n_1{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media (max-width: 768px){._page_4299n_9{padding:20px 16px 96px}._header_4299n_19 h1{font-size:24px}._lessonGrid_4299n_178{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}._typeSelector_4299n_613{padding-left:0}._passagePanel_4299n_241{padding:20px}._passagePara_4299n_251{font-size:15px}}
