:root{font-family:Inter,Noto Sans TC,PingFang TC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1f2a37;background:#f6f8fb;--ink: #1f2a37;--muted: #64748b;--line: #d8e0ea;--panel: #ffffff;--blue: #2563eb;--green: #0f9f6e;--amber: #d97706;--red: #dc2626;--cyan: #06b6d4;--coral: #f97362;--yellow: #facc15}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}th{color:var(--muted);font-size:13px;font-weight:700}label{color:var(--muted);display:grid;gap:6px;font-size:13px;font-weight:700}input,select,textarea{border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:42px;padding:10px 12px;width:100%}textarea{min-height:96px;resize:vertical}.screen-center,.data-state{display:grid;min-height:50vh;place-items:center}.data-state.error,.form-error{color:var(--red)}.form-success{color:var(--green);font-size:13px;font-weight:900;margin:0}.primary-button,.ghost-button,.text-button{align-items:center;border:0;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:800;justify-content:center;min-height:42px;padding:10px 14px}.primary-button{background:var(--blue);color:#fff;box-shadow:0 8px 18px #2563eb33}.primary-button:disabled{cursor:not-allowed;opacity:.55}.ghost-button{background:#edf2f7;color:var(--ink)}.text-button{background:transparent;color:var(--red);min-height:auto;padding:0}.danger-text{color:#b42318}.muted-note,.field-help{color:var(--muted);font-size:12px;font-weight:700}.eyebrow{color:var(--blue);font-size:12px;font-weight:900;letter-spacing:0;text-transform:uppercase}.login-screen{display:grid;min-height:100vh}.login-visual{align-items:center;background:linear-gradient(135deg,#06b6d4d1,#0f9f6edb),radial-gradient(circle at 15% 25%,rgba(250,204,21,.55),transparent 30%);color:#fff;display:grid;gap:16px;grid-template-columns:112px 1fr;padding:28px}.login-visual img{filter:drop-shadow(0 14px 24px rgba(0,0,0,.22));max-width:112px}.login-visual h1,.student-hero h1{font-size:clamp(34px,8vw,72px);line-height:1;margin:6px 0}.login-visual p,.login-visual span,.student-hero p{font-weight:800;margin:0}.login-panel{background:#fff;display:grid;gap:18px;padding:28px}.login-panel h2{font-size:32px;margin:4px 0 0}.sso-bridge-screen{align-items:center;background:transparent;color:#17212b;display:grid;min-height:220px;padding:28px}.sso-bridge-screen div{background:#fffaf4;border:1px solid #fed7aa;border-radius:8px;display:grid;gap:6px;padding:14px 16px}.sso-bridge-screen strong{color:#7c2d12;font-size:16px}.sso-bridge-screen span{color:#8a6a52;font-size:13px;font-weight:800}.demo-account-grid{display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.login-picker-grid{display:grid;gap:12px}.login-sso-status{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;color:#9a3412;font-weight:900;line-height:1.6;margin:0;padding:12px 14px}.demo-account-grid button{background:#eef6ff;border:1px solid #cfe4ff;border-radius:8px;color:var(--blue);cursor:pointer;font-weight:800;min-height:40px}.app-shell{display:grid;min-height:100vh}.app-shell.embedded-shell{background:transparent;display:block;min-height:auto}.embedded-shell .main-panel{padding:0}.embedded-staff-nav{background:#fffaf4;border:1px solid #fed7aa;border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;padding:8px;position:sticky;top:0;z-index:10}.embedded-staff-nav a{align-items:center;background:#fff;border:1px solid #fde7d1;border-radius:8px;color:#7c2d12;display:inline-flex;font-size:13px;font-weight:900;min-height:36px;padding:8px 11px}.embedded-staff-nav a.active{background:#f47a25;border-color:#f47a25;color:#fff}.embedded-shell .page-stack{max-width:none}.embedded-shell .page-header{border-bottom:1px solid #e6ded5;padding-bottom:12px}.embedded-shell .eyebrow{display:none}.embedded-shell .page-header h1{color:#17212b;font-size:26px;line-height:1.2}.embedded-shell .primary-button{background:#f47a25;border:1px solid #f47a25;box-shadow:0 8px 18px #f47a252e}.embedded-shell .primary-button:hover{background:#e66912;border-color:#e66912}.embedded-shell .stat-card,.embedded-shell .panel{border-color:#e6ded5;box-shadow:none}.embedded-shell .stat-card{min-height:92px;padding:14px}.embedded-shell .stat-card span,.embedded-shell th{color:#66717c}.embedded-shell .stat-card strong{color:#17212b;font-size:30px}.embedded-shell .panel h2{color:#17212b;font-size:22px}.embedded-shell .panel-header a,.embedded-shell table a{color:#c2410c;font-weight:900}.embedded-shell .chip{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.sidebar{background:#fff;border-bottom:1px solid var(--line);display:grid;gap:14px;padding:14px}.brand-lockup{align-items:center;display:flex;gap:12px}.brand-lockup img{height:46px;object-fit:contain;width:46px}.brand-lockup div{display:grid}.brand-lockup span{color:var(--muted);font-size:12px}.sidebar nav{display:flex;gap:8px;overflow-x:auto}.sidebar nav a{border-radius:8px;color:var(--muted);flex:0 0 auto;font-weight:800;padding:10px 12px}.sidebar nav a.active{background:#eaf2ff;color:var(--blue)}.main-panel{padding:18px}.page-stack{display:grid;gap:18px;margin:0 auto;max-width:1160px;width:100%}.page-header,.panel-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.page-header h1,.panel h2{margin:0}.page-header h1{font-size:clamp(30px,6vw,48px)}.dashboard-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.panel,.stat-card,.task-card,.result-hero,.play-stage{background:var(--panel);border:1px solid var(--line);border-radius:8px}.panel{display:grid;gap:16px;padding:16px}.stat-grid,.student-stat-row{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{display:grid;gap:10px;min-height:112px;padding:16px}.stat-card span,.student-stat-row span{color:var(--muted);font-size:13px;font-weight:800}.stat-card strong,.student-stat-row strong{font-size:34px}.stat-card.green{border-color:#0f9f6e47}.stat-card.amber{border-color:#d977064d}.stat-card.red{border-color:#dc262642}.content-grid{display:grid;gap:16px}.table-wrap{overflow-x:auto}.chip-list,.filter-row,.settings-row{display:flex;flex-wrap:wrap;gap:10px}.chip{background:#eff6ff;border:1px solid #cfe4ff;border-radius:8px;color:var(--blue);font-weight:800;padding:8px 10px}.filter-row label,.settings-row label{flex:1 1 160px}.form-grid,.two-col{display:grid;gap:14px}.question-tool-stack{display:grid;gap:16px}.form-action-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.question-import-textarea{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;min-height:260px}.ai-source-textarea{min-height:190px}.ai-type-group{display:grid;gap:8px}.ai-type-group>span{color:var(--muted);font-size:13px;font-weight:700}.empty-callout{background:#fff7ed;border:1px dashed #fb923c;border-radius:8px;display:grid;gap:8px;padding:14px}.empty-callout strong{color:#7c2d12;font-size:17px}.empty-callout p{color:#8a6a52;font-weight:800;line-height:1.6;margin:0}.empty-callout .primary-button{justify-self:start}.assignment-target-panel{border:1px dashed #fed7aa;border-radius:8px;display:grid;gap:14px;padding:14px}.segmented-row{display:flex;flex-wrap:wrap;gap:8px}.segmented-row button{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-weight:900;min-height:40px;padding:8px 12px}.segmented-row button.selected{background:#fff7ed;border-color:#fb923c;color:#9a3412}.assignment-preview,.assignment-summary-body{background:#fffaf5;border:1px solid #fed7aa;border-radius:8px;display:grid;gap:10px;padding:12px}.assignment-preview h3{margin:0}.preview-student-list{display:flex;flex-wrap:wrap;gap:8px}.preview-student-list span{background:#fff;border:1px solid #fde7d1;border-radius:999px;color:#7c2d12;font-size:12px;font-weight:800;padding:7px 9px}.assignment-summary-body strong{color:var(--ink);font-size:20px}.assignment-summary-body span{color:var(--muted);font-weight:800}.toggle-row{align-items:center;display:flex;min-height:42px}.toggle-row input{min-height:18px;width:18px}.question-picker{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.picker-item{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);cursor:pointer;display:grid;gap:6px;padding:12px;text-align:left}.picker-item.selected{background:#ecfdf5;border-color:#86efac}.bar-list,.class-summary-list,.hotspot-list,.review-list,.score-list{display:grid;gap:10px}.bar-row,.class-summary-list article{background:#f8fafc;border-radius:8px;display:grid;gap:8px;overflow:hidden;padding:12px;position:relative}.bar-row i,.class-summary-list i{background:linear-gradient(90deg,var(--green),var(--cyan));bottom:0;height:4px;left:0;position:absolute}.student-shell{background:#f2fbff}.student-shell .sidebar{background:#fff}.student-hero{align-items:center;background:linear-gradient(135deg,#e6fbff,#f8ffdf 52%,#fff0ef);border:1px solid #c8eef6;border-radius:8px;display:grid;gap:16px;grid-template-columns:1fr 120px;overflow:hidden;padding:20px}.student-hero img{max-width:120px;width:100%}.student-stat-row{grid-template-columns:repeat(3,1fr)}.student-stat-row div{background:#fff;border:1px solid #c8eef6;border-radius:8px;display:grid;gap:8px;padding:14px}.task-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.task-card{color:#fff;display:grid;gap:10px;min-height:168px;padding:16px}.task-card.quiz{background:linear-gradient(135deg,var(--blue),var(--cyan))}.task-card.match{background:linear-gradient(135deg,var(--green),#84cc16)}.task-card.battle{background:linear-gradient(135deg,var(--coral),var(--amber))}.task-card.maze{background:linear-gradient(135deg,#0f766e,var(--yellow))}.task-card.done{background:linear-gradient(135deg,#475569,#0f766e)}.task-card span{font-weight:900}.task-card h2,.task-card p{margin:0}.score-list div,.leaderboard-list li,.hotspot-list div{align-items:center;background:#f8fafc;border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:12px}.leaderboard-list{display:grid;gap:10px;list-style:none;margin:0;padding:0}.leaderboard-list span{align-items:center;background:var(--yellow);border-radius:999px;display:inline-flex;font-weight:900;height:28px;justify-content:center;width:28px}.play-stage{display:grid;gap:18px;margin:0 auto;max-width:760px;padding:18px;width:100%}.play-stage header{display:grid;gap:8px}.play-stage header h1{margin:0}.progress-track{background:#e5e7eb;border-radius:999px;height:10px;overflow:hidden}.progress-track i{background:linear-gradient(90deg,var(--green),var(--yellow));display:block;height:100%}.question-stage{display:grid;gap:18px}.question-stage h2{font-size:clamp(28px,7vw,44px);line-height:1.12;margin:0}.question-stage img{max-height:180px;object-fit:contain;width:100%}.answer-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.answer-option{background:#fff;border:2px solid var(--line);border-radius:8px;cursor:pointer;font-weight:900;min-height:64px;padding:12px}.answer-option.selected{background:#fff7cc;border-color:var(--amber)}.big-input{font-size:24px;min-height:64px}.match-list{display:grid;gap:12px}.match-list label{align-items:center;background:#f8fafc;border-radius:8px;display:grid;gap:10px;grid-template-columns:1fr;padding:12px}.match-list span{color:var(--ink);font-size:20px}.play-button{min-height:56px}.play-stage.maze{background:linear-gradient(180deg,#ecfeff,#fefce8);border:1px solid #bdebf2;border-radius:8px;max-width:1120px}.maze-header small{color:var(--muted);font-weight:800}.maze-layout{display:grid;gap:16px}.maze-board{aspect-ratio:1;background:#0f172a;border:4px solid #0f766e;border-radius:8px;display:grid;gap:4px;grid-template-columns:repeat(9,minmax(0,1fr));margin:0 auto;max-width:560px;padding:6px;width:100%}.maze-cell{align-items:center;aspect-ratio:1;border-radius:6px;display:grid;font-size:clamp(8px,2.5vw,13px);font-weight:950;justify-items:center;min-width:0;overflow:hidden;position:relative;text-align:center}.maze-cell.wall{background:#172033;box-shadow:inset 0 0 0 1px #ffffff0a}.maze-cell.floor{background:#fff7cc;border:1px solid #fde68a}.maze-cell.gate{background:#ffedd5;border-color:#fdba74;color:#9a3412}.maze-cell.gate.open{background:#dcfce7;border-color:#86efac;color:#047857}.maze-cell.exit{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.maze-cell.current{outline:3px solid var(--coral);outline-offset:-3px;z-index:1}.maze-player{filter:drop-shadow(0 8px 10px rgba(15,23,42,.24));max-height:86%;object-fit:contain;width:86%}.maze-side{align-content:start;display:grid;gap:12px}.maze-status,.maze-question-panel{background:#ffffffeb;border:1px solid #bdebf2;border-radius:8px;display:grid;gap:12px;padding:14px}.maze-status strong{color:#0f766e}.maze-status span,.maze-question-panel span{color:var(--muted);font-weight:800}.maze-question-panel p{color:#0f766e;font-size:12px;font-weight:950;letter-spacing:0;margin:0}.maze-question-panel h2{font-size:clamp(22px,5vw,32px);line-height:1.15;margin:0}.maze-question-panel img{max-height:130px;object-fit:contain;width:100%}.maze-question-panel .answer-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.maze-question-panel .answer-option{min-height:54px}.maze-controls{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.maze-controls button{background:#0f766e;border:0;border-radius:8px;color:#fff;cursor:pointer;font-weight:950;min-height:54px}.maze-controls button:disabled{background:#94a3b8;cursor:not-allowed}.result-hero{align-items:center;background:linear-gradient(135deg,#e6fbff,#fff7cc);display:grid;gap:12px;justify-items:center;padding:28px 16px;text-align:center}.result-hero strong{color:var(--blue);font-size:clamp(64px,18vw,120px);line-height:1}.result-hero p{color:var(--muted);font-weight:800;margin:0}.review-list article{border:1px solid var(--line);border-radius:8px;display:grid;gap:6px;padding:12px}.review-list article.correct{border-color:#86efac}.review-list article.wrong{border-color:#fecaca}@media(min-width:760px){.login-screen{grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr)}.login-visual{align-content:center;grid-template-columns:180px 1fr;padding:56px}.login-visual img{max-width:180px}.login-panel{align-content:center;padding:56px}.login-picker-grid{grid-template-columns:.8fr 1.2fr}.app-shell{grid-template-columns:250px minmax(0,1fr)}.sidebar{align-content:start;border-bottom:0;border-right:1px solid var(--line);min-height:100vh;position:sticky;top:0}.sidebar nav{display:grid;overflow-x:visible}.main-panel{padding:28px}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.content-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.match-list label{grid-template-columns:1fr 1.1fr}.maze-layout{grid-template-columns:minmax(420px,560px) minmax(300px,1fr)}}
