:root{color-scheme:light;--paper: #fbfaf7;--surface: #fffdfa;--surface-strong: #fff7e2;--ink: #1f2933;--muted: #61717c;--line: #e8d9b8;--teal: #1f8a9e;--teal-dark: #11616f;--gold: #d99a25;--gold-soft: #fff3d8;--red: #b94a3d;--red-dark: #8e332b;--green: #2f9e74;--shadow: 0 18px 50px rgba(83, 62, 28, .14)}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,Microsoft YaHei,sans-serif;color:var(--ink);background:#f3efe5}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{min-height:72px;padding:10px clamp(16px,3vw,36px);display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fbfaf7f0;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand img{width:48px;height:48px;object-fit:contain}.brand strong{display:block;color:var(--red-dark);font-size:17px;line-height:1.25}.app-shell [data-th]:not([data-th=""]):after{content:attr(data-th);display:block;margin-top:3px;color:var(--muted);font-size:.82em;font-weight:700;line-height:1.35;white-space:normal;overflow-wrap:anywhere}.app-shell button[data-th]:not([data-th=""]):after,.app-shell button [data-th]:not([data-th=""]):after,.app-shell .file-picker [data-th]:not([data-th=""]):after{color:currentColor;font-size:12px;opacity:.78}.app-shell h1[data-th]:not([data-th=""]):after,.app-shell h2[data-th]:not([data-th=""]):after,.app-shell h3[data-th]:not([data-th=""]):after,.app-shell .brand strong[data-th]:not([data-th=""]):after{font-size:.62em}.brand span[data-th]:not([data-th=""]):after,.userbar span[data-th]:not([data-th=""]):after,.course-row span[data-th]:not([data-th=""]):after,.hint[data-th]:not([data-th=""]):after,.error[data-th]:not([data-th=""]):after{font-size:.92em}.primary[data-th]:not([data-th=""]),.secondary[data-th]:not([data-th=""]),.icon-btn[data-th]:not([data-th=""]),.course-row[data-th]:not([data-th=""]),.flow-stepper button[data-th]:not([data-th=""]){height:auto;min-height:54px;line-height:1.25}.brand span,.userbar span,.course-row span,.auth-visual p,.lesson-head p,.panel-head p,.side-panel p,.empty-state p,.complete-panel p,.find-card p,.match-card p{color:var(--muted)}.userbar{display:flex;align-items:center;gap:10px}.workspace,.auth-layout{width:min(1240px,100%);margin:0 auto;padding:24px clamp(14px,3vw,32px) 40px}.auth-layout{min-height:calc(100vh - 72px);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.8fr);align-items:center;gap:24px}.auth-visual{display:grid;grid-template-columns:240px minmax(0,1fr);align-items:center;gap:26px}.auth-visual img{width:100%;max-height:280px;object-fit:contain}h1,h2,h3,p{margin-top:0}h1{margin-bottom:8px;color:var(--red-dark);font-size:32px;line-height:1.2;letter-spacing:0}h2{margin-bottom:12px;color:var(--teal-dark);font-size:22px;line-height:1.25;letter-spacing:0}.panel,.side-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.auth-panel{padding:22px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;background:var(--gold-soft);border:1px solid var(--line);border-radius:8px;margin-bottom:20px}.segmented button{min-height:40px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-weight:800}.segmented button.active{background:var(--surface);color:var(--red-dark);box-shadow:0 5px 14px #7856221f}form{display:grid;gap:14px}label{display:grid;gap:7px}label span{color:var(--teal-dark);font-size:13px;font-weight:800}input,select,textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--ink);background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #1f8a9e29}textarea{min-height:112px;padding:12px;line-height:1.7;resize:vertical}select[multiple]{min-height:132px;padding:8px}.primary,.secondary,.icon-btn,.text-btn{min-height:42px;border-radius:8px;border:1px solid transparent;padding:0 16px;font-weight:900;min-width:0}.primary{color:#fff;background:var(--red);border-color:var(--red-dark)}.secondary,.icon-btn{color:var(--teal-dark);background:var(--gold-soft);border-color:var(--line)}.text-btn{color:var(--teal-dark);background:transparent;border:0;padding:0;min-height:28px}.wide{width:100%}.error{margin:0;padding:10px 12px;border:1px solid #efb4ac;border-radius:8px;color:var(--red-dark);background:#fff0ee}.hint{margin:-4px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.dashboard,.report-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}.side-panel{padding:18px;position:sticky;top:92px}.course-list{display:grid;gap:10px}.course-row{width:100%;min-height:82px;padding:12px;display:grid;align-content:center;gap:5px;text-align:left;border:1px solid var(--line);border-radius:8px;background:#fff}.course-row strong{color:var(--red-dark)}.course-row.active{border-color:var(--teal);background:#eef9f8}.bound-student-row{display:grid;grid-template-columns:minmax(0,1fr) 64px;gap:8px;align-items:stretch}.bound-student-row .course-row{min-height:74px}.unbind-btn{min-height:74px;padding:0 10px;color:var(--red-dark);background:#fff0ee;border-color:#efb4ac}.student-manager{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.empty-state,.loading{min-height:420px;display:grid;place-items:center;align-content:center;padding:28px;text-align:center}.load-error{display:grid;gap:12px;justify-items:start;border-color:#e05b4c52;background:#fff8f6}.load-error strong{color:var(--red-dark)}.load-error p{margin:0;color:var(--muted)}.app-error-panel{min-height:360px;display:grid;align-content:center;justify-items:start;gap:12px;border-color:#e05b4c52;background:#fff8f6}.app-error-panel strong{color:var(--red-dark);font-size:20px}.app-error-panel p{margin:0;color:var(--muted)}.empty-state img{width:160px;height:160px;object-fit:contain}.lesson{min-width:0}.lesson-head,.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.lesson-head h1,.panel-head h1{margin-top:4px}.progress-pill{flex:none;min-height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;padding:0 12px;color:var(--teal-dark);background:var(--gold-soft);font-weight:900;white-space:nowrap}.progress-pill[data-th]:not([data-th=""]){min-height:48px;flex-direction:column;gap:2px;line-height:1.15}.progress-pill[data-th]:not([data-th=""]):after{margin-top:0;color:inherit;font-size:12px;opacity:.76}.voice-blocker{position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;cursor:wait;background:#fffdfa14}.voice-input-pill{position:fixed;left:50%;bottom:22px;z-index:40;transform:translate(-50%);padding:11px 16px;border:1px solid rgba(185,74,61,.28);border-radius:999px;color:var(--red-dark);background:#fff8f2;box-shadow:0 14px 38px #533e1c2e;font-weight:900;pointer-events:none;text-align:center}.lesson.voice-input-lock button:not(.voice-toggle),.lesson.voice-input-lock input,.lesson.voice-input-lock textarea,.lesson.voice-input-lock select{opacity:.55;pointer-events:none}.voice-toggle{position:relative;overflow:hidden}.voice-toggle.recording{color:#fff;border-color:var(--red-dark);background:var(--red);box-shadow:0 0 #e05b4c70;animation:voiceRecordBreath 1.05s ease-in-out infinite}.voice-toggle.recording:after{content:"";position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 #ffffffb8;animation:voiceRecordDot 1.05s ease-in-out infinite}.voice-toggle.transcribing{color:#4a3100;border-color:var(--gold);background:var(--gold-soft);box-shadow:0 10px 24px #d99a252e}.voice-fx-mini{position:relative;z-index:26;width:min(168px,100%);min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:4px;margin:-4px auto 2px;padding:7px 10px;border:1px solid #c9e8e4;border-radius:999px;color:var(--teal-dark);background:linear-gradient(135deg,#eef9f8,#fff7e2);box-shadow:0 12px 28px #1f8a9e2e,0 0 0 5px #1f8a9e0f;overflow:hidden}.voice-fx-mini:before{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:999px;border:2px solid rgba(31,138,158,.28);animation:voiceRing 1.2s ease-out infinite}.voice-fx-mini span{position:relative;z-index:1;width:6px;height:13px;border-radius:999px;background:linear-gradient(180deg,var(--gold),var(--teal));animation:voiceBar .72s ease-in-out infinite}.voice-fx-mini span:nth-child(2){animation-delay:.12s}.voice-fx-mini span:nth-child(3){animation-delay:.24s}.voice-fx-mini strong{position:relative;z-index:1;margin-left:4px;font-size:12px;white-space:nowrap}.flow-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:-4px 0 16px;padding:10px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,#fffdfa,#fff3d8)}.flow-stepper.test-mode{grid-template-columns:repeat(6,minmax(0,1fr))}.flow-stepper button{min-height:56px;border:1px solid var(--line);border-radius:8px;color:var(--teal-dark);background:#fff;font-weight:900}.flow-stepper button.active{color:#fff;border-color:var(--teal-dark);background:linear-gradient(135deg,var(--teal),var(--green));box-shadow:0 12px 26px #1f8a9e2e}.game-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px}.agent-card,.game-panel,.complete-panel,.report-panel,.admin-panel{padding:20px}.agent-card{background:radial-gradient(circle at 50% 0%,rgba(217,154,37,.18),transparent 44%),var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;align-content:start;gap:12px}.agent-card img{width:100%;max-height:180px;object-fit:contain}.game-panel{position:relative;overflow:hidden;background:radial-gradient(circle at 16% 18%,rgba(31,138,158,.13),transparent 28%),radial-gradient(circle at 84% 12%,rgba(217,154,37,.16),transparent 24%),linear-gradient(180deg,#fffdfa,#fff8ea)}.agent-reply{margin:0;padding:10px;border-radius:8px;background:#eef9f8;color:var(--teal-dark);line-height:1.7}.agent-subtitle,.message-subtitle{margin:0;padding:9px 11px;border:1px solid #d9e8e4;border-radius:8px;background:#f7fbfa;color:#52656d;font-size:13px;line-height:1.65}.intro-panel,.intro-chat-panel{padding:22px}.video-frame{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#101820}.video-frame video{width:100%;max-height:min(62vh,620px);display:block;background:#101820}.video-download-panel{min-height:min(54vh,480px);display:grid;place-items:center;align-content:center;gap:12px;padding:28px;text-align:center;color:#e8f4f6;background:radial-gradient(circle at 50% 30%,rgba(31,138,158,.22),transparent 36%),#101820}.video-download-panel strong{font-size:18px}.video-download-panel p,.video-download-panel small{margin:0;color:#e8f4f6c7}.video-progress{width:min(520px,100%);height:12px;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#ffffff1f}.video-progress span{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--teal),var(--gold));transition:width .18s ease}.video-progress.indeterminate span{animation:videoProgressIndeterminate 1.1s ease-in-out infinite}.video-status{display:flex;align-items:center;gap:10px;padding:12px 14px;border-top:1px solid rgba(255,255,255,.12);background:#14232c;color:#e8f4f6;font-size:14px}.video-status span{width:10px;height:10px;flex:0 0 auto;border-radius:999px;background:var(--teal);box-shadow:0 0 #1f8a9e73;animation:voiceRecordDot 1.2s ease-in-out infinite}.video-status.warning span{background:var(--gold)}.video-status p{margin:0}.video-placeholder{min-height:420px;display:grid;place-items:center;align-content:center;gap:10px;text-align:center;border:1px dashed var(--line);border-radius:8px;background:radial-gradient(circle at 50% 30%,rgba(31,138,158,.14),transparent 32%),#fffef9}.video-placeholder img{width:180px;height:180px;object-fit:contain}.video-placeholder code{color:var(--red-dark);word-break:break-word}.chat-surface{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;min-height:460px}.agent-side{display:grid;justify-items:center;align-content:start;gap:10px;padding:16px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#fffdfa,#fff3d8)}.agent-side img{width:136px;height:136px;object-fit:contain}.agent-side strong{color:var(--red-dark);font-size:18px}.chat-list{min-height:420px;max-height:58vh;overflow:auto;display:grid;align-content:start;gap:12px;padding:18px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(90deg,rgba(31,138,158,.08) 1px,transparent 1px),linear-gradient(180deg,rgba(217,154,37,.08) 1px,transparent 1px),#fffef9;background-size:28px 28px}.chat-message{max-width:min(680px,86%);display:grid;gap:5px}.chat-message span{color:var(--muted);font-size:12px;font-weight:900}.chat-message>span[data-th]:not([data-th=""]):after,.quiz-chat-message>span[data-th]:not([data-th=""]):after{font-size:.95em}.chat-message p{margin:0;padding:12px 14px;border-radius:8px;line-height:1.75;box-shadow:0 10px 24px #533e1c1a}.chat-message.user{justify-self:end}.chat-message.user span{text-align:right}.chat-message.user p{color:#fff;background:var(--teal)}.chat-message.model p,.chat-message.thinking{color:var(--ink);background:#fff}.chat-message.model .message-subtitle{color:#52656d;background:#f7fbfa;box-shadow:none}.chat-form{grid-template-columns:minmax(0,1fr) auto auto;margin-top:14px}.thinking-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;background:#fff;box-shadow:0 10px 24px #533e1c1a}.thinking-row p{margin:0;color:var(--muted)}.glow-loader{width:34px;height:34px;flex:none;border-radius:50%;border:3px solid rgba(31,138,158,.18);border-top-color:var(--gold);border-right-color:var(--teal);box-shadow:0 0 24px #d99a258c,inset 0 0 12px #1f8a9e33;animation:spinGlow 1s linear infinite}.small-loader{justify-self:center;width:28px;height:28px}.eyebrow{display:inline-flex;margin-bottom:10px;color:var(--teal-dark);font-weight:900;letter-spacing:0}.level-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.level-tabs button{min-height:56px;display:grid;place-items:center;gap:2px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-weight:900}.level-tabs button small{color:inherit;font-size:12px;font-weight:800}.level-tabs button.active{color:#fff;border-color:var(--teal-dark);background:var(--teal)}.question-status{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 18px}.question-chip{min-width:82px;min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:#fffdfa;font-weight:900}.question-chip strong{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#a78f64;font-size:13px}.question-chip span{font-size:13px;text-align:center}.question-chip.done{color:var(--green);border-color:#bfe3d4;background:#edf8f3}.question-chip.done strong{background:var(--green)}.question-chip.active{color:var(--red-dark);border-color:var(--gold);background:var(--gold-soft);box-shadow:0 8px 18px #d99a2524}.question-chip.active strong{background:var(--red)}.learning-card{min-height:470px;display:grid;align-content:center;justify-items:center;gap:10px;text-align:center}.learning-card img{width:min(300px,82%);aspect-ratio:1;object-fit:contain}.learning-card h2{margin:0;font-size:42px;color:var(--red-dark)}.learning-card p{margin:0 0 12px;color:var(--teal-dark);font-size:22px;font-weight:800}.item-thai,.number-cargo small,.quiz-option small{color:var(--muted);font-size:14px;font-weight:800;line-height:1.35}.learning-card .audio-script{max-width:560px;margin:0 0 8px;padding:10px 12px;border:1px solid #c9e8e4;border-radius:8px;color:var(--teal-dark);background:#eef9f8;line-height:1.65;font-size:15px;font-weight:800}.actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.prompt-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px}.item-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.item-card,.match-item,.audio-choice{border:1px solid var(--line);border-radius:8px;background:#fff;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.item-card:hover,.match-item:hover,.audio-choice:hover{transform:translateY(-2px);border-color:#1f8a9e8c;box-shadow:0 12px 28px #533e1c1f}.item-card{min-height:204px;padding:12px;display:grid;justify-items:center;align-content:center;gap:6px}.item-card img{width:112px;height:112px;object-fit:contain}.item-card strong{color:var(--red-dark);font-size:20px}.item-card span{color:var(--teal-dark);font-weight:800}.item-card.flash-success{border-color:var(--green);background:#eefaf4;box-shadow:0 0 0 5px #2f9e7424,0 16px 30px #2f9e742e;animation:matchSuccessPulse .72s ease-out}.item-card.flash-success img{animation:matchImageSuccess .72s ease-out;filter:drop-shadow(0 0 12px rgba(47,158,116,.5))}.item-card.flash-error{border-color:var(--red);background:#fff0ee;box-shadow:0 0 0 5px #e05b4c29,0 16px 30px #e05b4c2e;animation:matchErrorShake .54s ease-out}.item-card.flash-error img{animation:matchImageError .54s ease-out;filter:drop-shadow(0 0 12px rgba(224,91,76,.55))}.feedback{margin:14px 0 0;padding:12px 14px;color:var(--teal-dark);background:#eef9f8;border:1px solid #c9e8e4;border-radius:8px;font-weight:900}.feedback[data-th]:not([data-th=""]):after{color:var(--teal-dark);font-size:.9em;opacity:.82}.success-burst{position:absolute;top:22px;right:22px;z-index:3;padding:10px 16px;border-radius:999px;color:#fff;background:linear-gradient(135deg,var(--green),var(--teal));box-shadow:0 0 #2f9e746b;font-weight:900;animation:burstPop .78s ease-out forwards}.success-burst[data-th]:not([data-th=""]){border-radius:12px;text-align:center}.number-card{min-height:470px;display:grid;align-content:center;gap:16px}.number-stage{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,300px);align-items:stretch;gap:16px}.number-cargo,.number-symbol{min-height:300px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 14px 30px #533e1c1a}.number-cargo{display:grid;place-items:center;align-content:center;gap:10px;padding:18px;overflow:hidden}.number-cargo-grid{width:min(360px,100%);min-height:190px;display:grid;grid-template-columns:repeat(var(--cargo-columns, 3),minmax(0,1fr));place-items:center;align-content:center;gap:clamp(6px,1.2vw,12px);padding:6px}.number-cargo-grid img{width:min(100%,78px);aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 7px 10px rgba(83,62,28,.12))}.number-cargo strong{color:var(--red-dark);font-size:28px}.number-symbol{display:grid;place-items:center;align-content:center;gap:6px;color:var(--red-dark);background:linear-gradient(180deg,#fffdfa,#fff3d6)}.number-symbol strong{line-height:1;color:var(--gold);font-size:72px;font-weight:900}.number-symbol span{line-height:1;font-size:88px;font-weight:900}.number-symbol small{color:var(--teal-dark);font-size:24px;font-weight:900}.number-symbol em{color:var(--muted);font-style:normal;font-size:22px;font-weight:900}.number-card .audio-script{justify-self:center;max-width:560px;margin:0;padding:10px 12px;border:1px solid #c9e8e4;border-radius:8px;color:var(--teal-dark);background:#eef9f8;line-height:1.65;font-size:17px;font-weight:900;text-align:center}.match-grid{position:relative;display:grid;grid-template-columns:minmax(120px,170px) minmax(0,1fr);gap:clamp(40px,9vw,110px)}.match-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}.match-line{fill:none;stroke:var(--green);stroke-width:5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 2px 6px rgba(47,158,116,.35));animation:matchLineDraw .5s ease-out forwards}@keyframes matchLineDraw{to{stroke-dashoffset:0}}.match-column{display:grid;gap:10px;align-content:start}.audio-choice{min-height:58px;color:var(--teal-dark);font-weight:900;background:var(--gold-soft)}.audio-choice.active{border-color:var(--red);background:#fff0ee;color:var(--red-dark)}.audio-choice.done,.match-item.done{border-color:#bfe3d4;background:#edf8f3;color:var(--green)}.match-column.cards{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}.match-item{min-height:150px;padding:10px;display:grid;justify-items:center;align-content:center;gap:8px}.match-item img{width:86px;height:86px;object-fit:contain}.match-item span{color:var(--red-dark);font-weight:900}.match-item.flash-success{border-color:var(--green);background:#eefaf4;box-shadow:0 0 0 5px #2f9e7424,0 16px 30px #2f9e742e;animation:matchSuccessPulse .72s ease-out}.match-item.flash-success img{animation:matchImageSuccess .72s ease-out;filter:drop-shadow(0 0 12px rgba(47,158,116,.5))}.match-item.flash-error{border-color:var(--red);background:#fff0ee;box-shadow:0 0 0 5px #e05b4c29,0 16px 30px #e05b4c2e;animation:matchErrorShake .54s ease-out}.match-item.flash-error img{animation:matchImageError .54s ease-out;filter:drop-shadow(0 0 12px rgba(224,91,76,.55))}.complete-panel{min-height:520px;display:grid;justify-items:center;align-content:center;text-align:center}.complete-panel img{width:150px;height:150px;object-fit:contain}.metric-grid{width:min(520px,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0 18px}.metric-grid div{min-height:84px;display:grid;place-items:center;align-content:center;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong)}.metric-grid strong{color:var(--red-dark);font-size:28px}.metric-grid span{color:var(--muted);font-weight:800}.quiz-panel{padding:20px;background:linear-gradient(90deg,rgba(31,138,158,.07) 1px,transparent 1px),linear-gradient(180deg,rgba(217,154,37,.08) 1px,transparent 1px),linear-gradient(135deg,#fffdfa,#fff7e8);background-size:30px 30px,30px 30px,auto}.quiz-head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.quiz-stage{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px}.quiz-agent{display:grid;align-content:start;justify-items:center;gap:12px;padding:16px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#fffdfa,#fff0d0)}.quiz-agent img{width:158px;height:158px;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(83,62,28,.16))}.quiz-agent strong{color:var(--red-dark);font-size:18px}.quiz-agent p{margin:0;color:var(--muted);line-height:1.65;text-align:center}.quiz-score{width:100%;display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.quiz-score span{color:var(--teal-dark);font-size:24px;font-weight:900;text-align:right}.quiz-score small{color:var(--muted);font-weight:900}.quiz-chat-shell{min-width:0;display:grid;gap:12px}.quiz-chat-list{min-height:500px;max-height:min(66vh,680px);overflow:auto;display:grid;align-content:start;gap:12px;padding:18px;border:1px solid var(--line);border-radius:8px;background:radial-gradient(circle at 8% 8%,rgba(31,138,158,.12),transparent 26%),#fffef9}.quiz-chat-message{max-width:min(760px,92%);display:grid;gap:5px}.quiz-chat-message span{color:var(--muted);font-size:12px;font-weight:900}.quiz-chat-message.user{justify-self:end}.quiz-chat-message.user span{text-align:right}.quiz-bubble{padding:13px 15px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 12px 26px #533e1c1a}.quiz-chat-message.user .quiz-bubble{color:#fff;border-color:var(--teal-dark);background:linear-gradient(135deg,var(--teal),var(--green))}.quiz-bubble strong{display:inline-flex;flex-direction:column;margin-bottom:8px;color:var(--red-dark);font-size:14px}.quiz-chat-message.user .quiz-bubble strong{color:#fff}.quiz-bubble p{margin:0;line-height:1.75}.quiz-bubble .thai-line{margin-top:8px;padding:10px 12px;border-radius:8px;color:var(--teal-dark);background:#eef9f8;font-weight:800}.quiz-bubble .message-subtitle{margin-top:8px;box-shadow:none}.mini-btn{min-height:34px;margin-top:10px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--teal-dark);background:var(--gold-soft);font-weight:900}.quiz-answer-box{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 12px 30px #533e1c17}.quiz-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.quiz-option{min-height:82px;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fffdf8;text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.quiz-option:hover{transform:translateY(-2px);border-color:#1f8a9e8c;box-shadow:0 12px 24px #533e1c1f}.quiz-option strong{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--teal)}.quiz-option span{min-width:0;color:var(--ink);font-weight:900;line-height:1.45;word-break:break-word}.quiz-option>div{min-width:0;display:grid;gap:4px}.quiz-option.active{border-color:var(--red);background:#fff0ee;box-shadow:0 0 0 3px #b94a3d1f}.quiz-option.active strong{background:var(--red)}.quiz-toolbar,.quiz-ask-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px}.quiz-toolbar{grid-template-columns:1fr;justify-items:end}.quiz-toolbar .primary{min-width:148px}.quiz-ask-form{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong)}.markdown-box{min-height:440px;margin:0;padding:16px;border:1px solid var(--line);border-radius:8px;overflow:auto;white-space:pre-wrap;line-height:1.7;background:#fffef9}.stream-steps{display:grid;gap:10px;margin-bottom:16px}.stream-steps div{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid #c9e8e4;border-radius:8px;background:#eef9f8}.stream-steps span{width:26px;height:26px;display:grid;place-items:center;flex:none;border-radius:50%;color:#fff;background:var(--teal);font-size:13px;font-weight:900}.stream-steps p{margin:0;color:var(--teal-dark);font-weight:800}.report-html-shell{display:grid;gap:14px;overflow:auto}.report-module{animation:reportModuleIn .36s ease-out both}.report-html-shell span{display:inline-flex;padding:6px 10px;border-radius:999px;color:var(--teal-dark);background:#eef9f8;border:1px solid #c9e8e4;font-weight:900}.report-html-shell .report-th,.report-th{display:block;margin-top:4px;padding:0;border:0;border-radius:0;color:#61717c;background:transparent;font-size:.86em;font-weight:650;line-height:1.55}.report-thinking{min-height:120px;display:flex;align-items:center;gap:14px;margin-top:14px;padding:16px;border:1px solid #c9e8e4;border-radius:8px;background:#f7fbfa;color:var(--teal-dark);font-weight:900}.report-thinking p{margin:0}.teacher-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:18px;padding:16px;border:1px solid #c9e8e4;border-radius:8px;background:linear-gradient(135deg,#eef9f8,#fffdfa)}.teacher-tools h2{margin-bottom:6px}.teacher-tools p{margin:0;color:var(--muted)}.file-picker{position:relative;width:auto;display:inline-flex;align-items:center;justify-content:center}.file-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-picker span{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--red-dark);border-radius:8px;padding:0 16px;color:#fff;background:var(--red);font-weight:900;cursor:pointer;white-space:nowrap}.file-picker input:disabled+span{opacity:.62;cursor:not-allowed}.empty-copy{min-height:320px;display:grid;place-items:center;color:var(--muted);border:1px dashed var(--line);border-radius:8px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:12px;text-align:left;border-bottom:1px solid var(--line)}th{color:var(--teal-dark);background:var(--gold-soft)}td{background:#fff}@keyframes spinGlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes burstPop{0%{transform:translateY(-8px) scale(.86);opacity:0;box-shadow:0 0 #2f9e7473}40%{transform:translateY(0) scale(1);opacity:1;box-shadow:0 0 0 18px #2f9e7400}to{opacity:0;transform:translateY(-8px) scale(.96)}}@keyframes matchSuccessPulse{0%{transform:scale(.98);box-shadow:0 0 #2f9e7457}42%{transform:scale(1.04);box-shadow:0 0 0 13px #2f9e7400}to{transform:scale(1)}}@keyframes matchImageSuccess{0%,to{transform:scale(1)}44%{transform:scale(1.12)}}@keyframes matchErrorShake{0%,to{transform:translate(0)}18%{transform:translate(-5px)}38%{transform:translate(5px)}58%{transform:translate(-3px)}78%{transform:translate(3px)}}@keyframes matchImageError{0%,to{transform:scale(1)}30%,70%{transform:scale(1.08)}}@keyframes voiceRecordBreath{0%,to{transform:scale(1);box-shadow:0 0 #e05b4c5c}50%{transform:scale(1.04);box-shadow:0 0 0 10px #e05b4c00}}@keyframes voiceRecordDot{0%,to{transform:scale(.82);opacity:.82;box-shadow:0 0 #ffffff9e}50%{transform:scale(1.18);opacity:1;box-shadow:0 0 0 7px #fff0}}@keyframes voiceRing{0%{opacity:.75;transform:scale(.72)}to{opacity:0;transform:scale(1.42)}}@keyframes voiceBar{0%,to{height:12px}50%{height:38px}}@keyframes videoProgressIndeterminate{0%{transform:translate(-120%)}to{transform:translate(240%)}}@keyframes reportModuleIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:920px){.auth-layout,.dashboard,.report-layout,.game-layout,.chat-surface,.quiz-stage{grid-template-columns:1fr}.auth-visual{grid-template-columns:130px 1fr}.side-panel{position:static}}@media(max-width:640px){.workspace,.auth-layout{padding:16px 10px 30px}.topbar{position:static;padding:10px 12px}.brand{align-items:flex-start}.brand img{width:42px;height:42px}.topbar,.lesson-head,.panel-head,.prompt-row,.userbar{align-items:stretch;flex-direction:column}h1{font-size:26px}h2{font-size:20px}.auth-visual{grid-template-columns:1fr;text-align:center}.auth-visual img{max-height:190px}.metric-grid,.match-grid,.number-stage,.chat-form,.teacher-tools,.quiz-toolbar,.quiz-ask-form{grid-template-columns:1fr}.flow-stepper,.flow-stepper.test-mode{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px}.flow-stepper button{min-height:58px;padding:6px 8px;line-height:1.2}.lesson-head .progress-pill,.panel-head .progress-pill{align-self:flex-start}.agent-card,.game-panel,.complete-panel,.report-panel,.admin-panel,.intro-panel,.intro-chat-panel,.quiz-panel{padding:14px}.level-tabs{gap:6px}.level-tabs button{min-height:58px;padding:6px}.question-status{gap:6px}.question-chip{min-width:calc(50% - 3px);flex:1 1 calc(50% - 3px);padding:7px 8px}.item-grid,.quiz-options{grid-template-columns:1fr}.item-card{min-height:176px}.item-card img{width:92px;height:92px}.actions{width:100%}.actions button{flex:1 1 140px;min-height:54px;padding:7px 10px}.match-lines{display:none}.quiz-chat-message{max-width:100%}.quiz-head-actions,.quiz-toolbar{justify-content:stretch}.quiz-toolbar .primary{width:100%}.learning-card h2{font-size:34px}.learning-card img{width:min(230px,74%)}.learning-card .audio-script,.number-card .audio-script{max-width:100%;font-size:14px}.number-card{min-height:auto;gap:12px}.number-cargo,.number-symbol{min-height:210px}.number-cargo{padding:12px}.number-cargo-grid{width:min(300px,100%);min-height:132px;gap:6px;padding:4px}.number-cargo-grid img{width:min(100%,54px)}.number-cargo strong{font-size:22px}.number-symbol span{font-size:68px}.number-symbol strong{font-size:52px}.number-symbol small{font-size:20px}.number-symbol em{font-size:18px}.quiz-option{min-height:76px}.quiz-score{grid-template-columns:1fr auto}.chat-list,.quiz-chat-list{min-height:360px;max-height:58vh;padding:12px}.chat-message,.quiz-chat-message{max-width:100%}.video-placeholder{min-height:320px}}@media(max-width:420px){.flow-stepper,.flow-stepper.test-mode{grid-template-columns:1fr}.question-chip{min-width:100%;flex-basis:100%}.number-cargo-grid img{width:min(100%,46px)}.number-symbol span{font-size:60px}.number-symbol strong{font-size:46px}}
