:root { color-scheme: light; font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; --ink:#1e293b; --muted:#64748b; --line:#e2e8f0; --paper:#fff; --wash:#f8fafc; --primary:#6d28d9; --primary-soft:#ede9fe; --danger:#b91c1c; }
* { box-sizing: border-box; }
body { margin:0; color:var(--ink); background:var(--wash); }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
.v3-shell { min-height:100vh; display:grid; grid-template-columns:244px minmax(0,1fr); }
.v3-sidebar { background:#211434; color:#fff; padding:28px 18px; display:flex; flex-direction:column; gap:24px; }
.v3-brand { display:flex; flex-direction:column; gap:4px; }
.v3-brand span { font-size:22px; font-weight:800; }
.v3-brand small,.v3-user span { color:#c4b5fd; }
.v3-user { padding:16px; display:flex; flex-direction:column; gap:4px; background:rgb(255 255 255 / 8%); border-radius:14px; }
.v3-sidebar nav { display:grid; gap:7px; }
.v3-sidebar nav button,.v3-logout { border:0; color:#ddd6fe; background:transparent; text-align:left; padding:11px 14px; border-radius:10px; }
.v3-sidebar nav button:hover,.v3-sidebar nav button.active { background:var(--primary); color:#fff; }
.v3-logout { margin-top:auto; }
.v3-content { padding:34px clamp(20px,4vw,56px); }
.v3-content > header { display:flex; justify-content:space-between; gap:20px; align-items:start; margin-bottom:26px; }
h1,h2,h3,p { margin-top:0; }
.v3-content > header h1 { margin-bottom:6px; }
.v3-content > header p,article p,article small { color:var(--muted); }
.v3-button { border:0; border-radius:10px; padding:10px 16px; font-weight:700; }
.v3-button.primary { color:#fff; background:var(--primary); }
.v3-button.secondary { color:var(--primary); background:var(--primary-soft); }
.v3-button.danger { color:#fff; background:var(--danger); }
.v3-button:disabled { opacity:.55; cursor:wait; }
.v3-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:10px; margin-bottom:18px; }
.v3-toolbar label { min-width:150px; }
.v3-stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(165px,1fr)); gap:14px; margin-bottom:20px; }
.v3-stat-grid article,.v3-list article,.v3-panel,.v3-dropzone,.v3-empty,.v3-warning { background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:20px; }
.v3-stat-grid article { display:grid; gap:8px; }
.v3-stat-grid strong { font-size:32px; }
.v3-stat-grid span,.v3-stat-grid small { color:var(--muted); }
.v3-list { display:grid; gap:12px; }
.v3-list article h3 { margin:12px 0 8px; }
.v3-list article small { display:block; }
.v3-badge { display:inline-block; padding:4px 8px; margin-right:6px; border-radius:999px; font-size:12px; background:var(--primary-soft); color:var(--primary); }
.v3-badge.muted { color:var(--muted); background:#f1f5f9; }
.v3-badge.danger { color:var(--danger); background:#fff1f2; }
.v3-link { border:0; color:var(--primary); background:transparent; padding:10px 0 0; font-weight:700; }
.v3-link.danger { color:var(--danger); }
.v3-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.v3-empty { color:var(--muted); line-height:1.7; }
.v3-warning { margin-bottom:16px; background:#fffbeb; border-color:#fde68a; }
.v3-panel,.v3-dropzone { display:grid; gap:14px; max-width:820px; }
.v3-settings-wide { max-width:1040px; }
.v3-member-list { display:grid; gap:9px; }
.v3-member-row { display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:13px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:13px; background:var(--wash); }
.v3-member-row strong { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.v3-member-row small { display:block; margin-top:3px; color:var(--muted); }
.v3-member-avatar { display:grid; place-items:center; width:44px; height:44px; border-radius:13px; color:#fff; background:var(--primary); font-weight:850; }
.v3-member-avatar.kid { background:#16845b; }
.v3-member-actions { display:flex; flex-wrap:wrap; gap:16px; justify-content:flex-end; }
.v3-invite-note { display:flex; gap:8px; padding:13px 15px; border-radius:12px; color:var(--muted); background:var(--primary-soft); line-height:1.65; }
.v3-invite-note strong { flex:0 0 auto; color:var(--primary); }
.v3-invite-token { display:block; overflow-wrap:anywhere; padding:14px; border-radius:10px; color:#4c1d95; background:#f5f3ff; font-size:14px; line-height:1.6; }
.v3-compat-settings { padding:13px 15px; border:1px dashed var(--line); border-radius:12px; color:var(--muted); }
.v3-compat-settings summary { cursor:pointer; color:var(--primary); font-weight:700; }
.v3-compat-settings p { margin:12px 0; }
.v3-compact-modal { width:min(520px,100%); }
.v3-confirm-body { display:grid; gap:18px; padding:22px; line-height:1.7; }
.v3-confirm-body p { margin:0; }
.v3-job-failed { border-color:#fecdd3 !important; }
.v3-job-error { margin:12px 0 0; padding:11px 13px; border-radius:10px; color:var(--danger) !important; background:#fff1f2; }
label { display:grid; gap:6px; font-size:14px; font-weight:650; }
input,select,textarea { width:100%; color:var(--ink); background:#fff; border:1px solid #cbd5e1; border-radius:9px; padding:10px 12px; }
input[type="checkbox"],input[type="radio"] { width:auto; }
fieldset { margin:0; border:1px solid var(--line); border-radius:12px; padding:14px; }
legend { padding:0 6px; font-weight:700; }
.v3-check-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; }
.v3-check-grid label,.v3-source-options label,.v3-answer-options label { display:flex; align-items:flex-start; gap:8px; font-weight:500; }
.v3-source-options { display:grid; gap:8px; max-height:260px; overflow:auto; }
.v3-source-options [hidden] { display:none; }
.v3-source-options label { padding:9px; border:1px solid var(--line); border-radius:9px; }
textarea { resize:vertical; line-height:1.55; }
.v3-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.v3-photo-row { padding:14px; background:#f5f3ff; border-radius:12px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:10px; }
.v3-photo-row span { grid-column:1 / -1; color:var(--muted); font-size:13px; }
.v3-modal-layer { position:fixed; inset:0; z-index:20; padding:4vh 16px; overflow:auto; background:rgb(15 23 42 / 55%); }
.v3-modal-layer[hidden] { display:none; }
.v3-modal { width:min(780px,100%); margin:auto; background:#fff; border-radius:18px; box-shadow:0 24px 80px rgb(15 23 42 / 30%); }
.v3-modal > header { padding:18px 22px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }
.v3-modal > header h2 { margin:0; }
.v3-modal > header button { border:0; background:transparent; font-size:28px; }
.v3-modal form { padding:22px; display:grid; gap:14px; }
.v3-review-modal { width:min(1320px,100%); }
.v3-review-layout { display:grid; grid-template-columns:minmax(360px,1fr) minmax(480px,1.25fr); min-height:72vh; }
.v3-source-pane { min-height:520px; border-right:1px solid var(--line); background:#f1f5f9; }
.v3-source-pane iframe,.v3-source-pane img { width:100%; height:72vh; border:0; object-fit:contain; }
.v3-review-pane { padding:20px; display:grid; align-content:start; gap:16px; overflow:auto; max-height:78vh; }
.v3-review-pane form { padding:0; }
.v3-candidate-nav,.v3-source-meta { display:flex; justify-content:space-between; gap:10px; align-items:center; }
.v3-candidate-strip { display:flex; gap:8px; overflow:auto; padding:8px 0; }
.v3-candidate-strip label { min-width:86px; border:1px solid var(--line); border-radius:10px; padding:8px; display:grid; grid-template-columns:auto 1fr; gap:4px; }
.v3-candidate-strip label.active { border-color:var(--primary); background:var(--primary-soft); }
.v3-candidate-strip button { border:0; background:transparent; color:var(--primary); font-weight:800; }
details pre { white-space:pre-wrap; background:#f8fafc; border:1px solid var(--line); padding:12px; border-radius:8px; max-height:220px; overflow:auto; }
.v3-validation-ok { padding:16px; border:1px solid #86efac; background:#f0fdf4; color:#166534; border-radius:14px; }
.v3-answer-options { display:grid; gap:10px; }
.v3-answer-options label { padding:12px; border:1px solid var(--line); border-radius:10px; }
.v3-question-media { display:grid; gap:12px; }
.v3-question-media:empty { display:none; }
.v3-question-media figure { margin:0; display:grid; gap:6px; }
.v3-question-media img { display:block; max-width:100%; max-height:460px; object-fit:contain; border:1px solid var(--line); border-radius:12px; background:#fff; }
.v3-question-media figcaption { color:var(--muted); font-size:13px; }
.v3-report-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.v3-report-grid .v3-panel { max-width:none; }
.v3-mastery-row { display:grid; grid-template-columns:minmax(110px,1fr) minmax(100px,1.4fr) auto; gap:10px; align-items:center; }
.v3-mastery-row progress { width:100%; accent-color:var(--primary); }
.v3-auth { min-height:100vh; display:grid; place-items:center; padding:20px; background:radial-gradient(circle at top,#ede9fe,#f8fafc 55%); }
.v3-auth-card { width:min(420px,100%); background:#fff; padding:28px; border:1px solid var(--line); border-radius:20px; box-shadow:0 24px 80px rgb(76 29 149 / 12%); }
.v3-auth-card-wide { width:min(860px,100%); }
.v3-auth-card .v3-brand { margin-bottom:20px; }
.v3-auth-card .v3-brand small { color:var(--muted); }
.v3-auth-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); gap:30px; align-items:start; }
.v3-qr-login { display:grid; gap:18px; }
.v3-qr-login h1 { margin-bottom:8px; font-size:24px; }
.v3-qr-login p,.v3-legacy-auth > p { color:var(--muted); line-height:1.65; }
.v3-login-challenge { min-height:320px; display:grid; justify-items:center; gap:12px; padding:20px; border:1px solid var(--line); border-radius:16px; background:var(--wash); text-align:center; }
.v3-qr-placeholder { min-height:230px; display:grid; place-items:center; color:var(--muted); }
.v3-login-qr { width:232px; height:232px; border-radius:8px; background:#fff; }
.v3-login-code { display:grid; gap:3px; }
.v3-login-code span { color:var(--muted); font-size:13px; }
.v3-login-code strong { color:var(--primary); font-size:22px; letter-spacing:.18em; }
.v3-login-challenge ol { margin:0; padding-left:22px; color:var(--muted); text-align:left; line-height:1.7; }
.v3-login-status { margin:0; color:var(--primary) !important; font-weight:700; }
.v3-legacy-auth { padding:18px; border:1px solid var(--line); border-radius:14px; }
.v3-legacy-auth summary { cursor:pointer; color:var(--primary); font-weight:750; }
.v3-legacy-auth[open] summary { margin-bottom:12px; }
.v3-auth form { display:grid; gap:14px; }
.v3-toast { position:fixed; right:20px; bottom:20px; z-index:50; color:#fff; background:#166534; border-radius:10px; padding:12px 16px; box-shadow:0 10px 30px rgb(0 0 0 / 20%); }
.v3-toast.error { background:var(--danger); }
.v3-fatal { max-width:600px; margin:20vh auto; padding:30px; text-align:center; }
@media (max-width:760px) {
  .v3-auth-layout { grid-template-columns:1fr; }
  .v3-auth-card-wide { padding:20px; }
  .v3-shell { display:block; }
  .v3-sidebar { position:sticky; top:0; z-index:10; padding:12px; gap:10px; }
  .v3-sidebar .v3-user,.v3-sidebar .v3-brand small { display:none; }
  .v3-sidebar nav { display:flex; overflow-x:auto; padding-right:0; }
  .v3-sidebar nav button { white-space:nowrap; }
  .v3-logout { position:absolute; right:12px; top:12px; }
  .v3-content { padding:22px 14px 90px; }
  .v3-content > header { align-items:flex-start; }
  .v3-content > header > div { min-width:0; }
  .v3-content > header > .v3-button { flex:0 0 auto; white-space:nowrap; }
  .v3-form-grid,.v3-photo-row { grid-template-columns:1fr; }
  .v3-review-layout { display:block; }
  .v3-source-pane { min-height:240px; border-right:0; border-bottom:1px solid var(--line); }
  .v3-source-pane iframe,.v3-source-pane img { height:42vh; }
  .v3-review-pane { max-height:none; }
  .v3-member-row { grid-template-columns:40px minmax(0,1fr); }
  .v3-member-actions { grid-column:2; justify-content:flex-start; }
  .v3-invite-note { display:grid; }
}

/* === 交互增强：过渡、反馈、动画 === */
button, .v3-button, .v3-link, .v3-sidebar nav button,
input, select, textarea, .v3-list article, .v3-stat-grid article,
.v3-badge, .v3-candidate-strip label {
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .12s ease;
}
.v3-button:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgb(109 40 217 / 22%); }
.v3-button:active { transform: translateY(0) scale(.97); }
.v3-button.secondary:hover { box-shadow: 0 6px 16px rgb(109 40 217 / 12%); }
.v3-list article:hover, .v3-stat-grid article:hover { box-shadow: 0 10px 24px rgb(15 23 42 / 8%); border-color: #d8c7f7; transform: translateY(-2px); }
.v3-link:hover { color:#5b21b6; text-decoration: underline; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgb(109 40 217 / 14%); }
.v3-check-grid label:hover, .v3-source-options label:hover, .v3-answer-options label:hover { border-color: var(--primary); background: var(--primary-soft); }
/* 进行中状态徽标脉冲（排队中/生成中/复核中） */
.v3-pulse { position: relative; }
.v3-pulse::before { content:''; position:absolute; inset:0; border-radius:inherit; background:currentColor; opacity:.4; animation: v3pulse 1.4s ease-in-out infinite; pointer-events:none; }
@keyframes v3pulse { 0%,100%{ transform: scale(1); opacity:.4; } 50%{ transform: scale(1.25); opacity:0; } }
/* 弹窗淡入与弹出 */
.v3-modal-layer { animation: v3fade .18s ease; }
.v3-modal { animation: v3pop .22s cubic-bezier(.2,.8,.2,1); }
@keyframes v3fade { from{ opacity:0; } to{ opacity:1; } }
@keyframes v3pop { from{ opacity:0; transform: translateY(10px) scale(.98); } to{ opacity:1; transform: none; } }
/* Toast 滑入 */
.v3-toast { animation: v3slide .25s cubic-bezier(.2,.8,.2,1); }
@keyframes v3slide { from{ opacity:0; transform: translateX(24px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* === V3 任务型信息架构与学习闭环 === */
:root {
  --ink:#182033;
  --muted:#687086;
  --line:#e5e7ef;
  --paper:#fff;
  --wash:#f5f6fa;
  --primary:#6750d8;
  --primary-hover:#5941c5;
  --primary-soft:#efedff;
  --success:#16845b;
  --success-soft:#eaf8f1;
  --warning:#a85f00;
  --warning-soft:#fff5df;
  --danger:#b4233a;
  --shadow-sm:0 1px 2px rgb(20 24 40 / 5%),0 5px 18px rgb(20 24 40 / 4%);
  --shadow-lg:0 28px 90px rgb(20 24 40 / 22%);
}
body { min-width:320px; }
body.v3-modal-open { overflow:hidden; }
.v3-sidebar { position:sticky; top:0; height:100vh; background:linear-gradient(180deg,#201735 0%,#161125 100%); }
.v3-sidebar nav button { display:flex; align-items:center; gap:11px; min-height:44px; }
.v3-nav-icon { display:grid; place-items:center; width:22px; height:22px; color:#c9c0ff; font-size:16px; }
.v3-sidebar nav button:hover { background:rgb(255 255 255 / 8%); }
.v3-sidebar nav button.active { background:linear-gradient(135deg,#7257e9,#5f42d1); box-shadow:0 8px 24px rgb(56 37 128 / 34%); }
.v3-content { width:100%; max-width:1540px; margin:0 auto; }
.v3-content > header { position:relative; }
.v3-content > header h1 { font-size:clamp(25px,3vw,36px); letter-spacing:-.03em; }
.v3-content > header p { max-width:760px; line-height:1.65; }
.v3-page-enter { animation:v3page .28s cubic-bezier(.2,.75,.25,1); }
@keyframes v3page { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
.v3-subnav { display:flex; gap:6px; padding:5px; margin:-4px 0 22px; max-width:max-content; border:1px solid var(--line); border-radius:12px; background:#eceef5; overflow:auto; }
.v3-subnav button { border:0; padding:8px 13px; border-radius:8px; color:var(--muted); background:transparent; white-space:nowrap; font-weight:700; }
.v3-subnav button.active { color:var(--ink); background:#fff; box-shadow:var(--shadow-sm); }
.v3-button { min-height:42px; border-radius:11px; padding:10px 17px; }
.v3-button.primary { background:linear-gradient(135deg,#7257e9,var(--primary)); }
.v3-button.primary:hover { background:linear-gradient(135deg,#7a61ee,var(--primary-hover)); }
.v3-button.is-busy { position:relative; color:transparent !important; }
.v3-button.is-busy::after { content:''; position:absolute; inset:50% auto auto 50%; width:17px; height:17px; margin:-9px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; color:#fff; animation:v3spin .7s linear infinite; }
@keyframes v3spin { to{transform:rotate(360deg)} }
.v3-badge.success { color:var(--success); background:var(--success-soft); }
.v3-badge.warning { color:var(--warning); background:var(--warning-soft); }
.v3-card-actions { display:flex; flex-wrap:wrap; gap:18px; align-items:center; }
.v3-bank-answer { margin:10px 0 0; padding:11px 13px; border-radius:10px; color:var(--ink) !important; background:var(--success-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.v3-bank-answer span { color:var(--muted); }
.v3-hero { display:flex; justify-content:space-between; gap:28px; align-items:center; margin-bottom:20px; padding:clamp(22px,4vw,36px); border-radius:24px; color:#fff; background:radial-gradient(circle at 82% 18%,rgb(255 255 255 / 20%),transparent 30%),linear-gradient(135deg,#443195,#755ae7); box-shadow:0 18px 48px rgb(75 54 165 / 20%); }
.v3-hero h2 { max-width:700px; margin:7px 0 10px; font-size:clamp(25px,4vw,42px); letter-spacing:-.035em; }
.v3-hero p { max-width:650px; margin:0; color:#e8e3ff; line-height:1.7; }
.v3-hero .v3-button.primary { color:#5d45c7; background:#fff; }
.v3-hero .v3-button.secondary { color:#fff; background:rgb(255 255 255 / 14%); }
.v3-kid-hero { background:radial-gradient(circle at 82% 18%,rgb(255 255 255 / 28%),transparent 30%),linear-gradient(135deg,#136b62,#25a77d); box-shadow:0 18px 48px rgb(17 119 91 / 20%); }
.v3-kid-hero p { color:#e0fff3; }
.v3-kid-hero .v3-button.primary { color:#14745f; }
.v3-eyebrow { font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#d8d0ff; }
.v3-overview-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.v3-overview-card { min-height:210px; padding:24px; border:1px solid var(--line); border-radius:20px; text-align:left; color:var(--ink); background:#fff; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; align-items:flex-start; }
.v3-overview-card:hover { border-color:#c9bef8; transform:translateY(-3px); box-shadow:0 18px 38px rgb(35 29 71 / 10%); }
.v3-overview-card span { color:var(--muted); font-weight:750; }
.v3-overview-card strong { margin:auto 0 10px; font-size:34px; }
.v3-overview-card small { color:var(--muted); line-height:1.6; }
.v3-overview-card.accent { color:#fff; border-color:transparent; background:linear-gradient(150deg,#6e53df,#4f38b7); }
.v3-overview-card.accent span,.v3-overview-card.accent small { color:#e6e1ff; }
.v3-flow-modal { overflow:hidden; }
.v3-flow-modal form { padding-top:16px; }
.v3-modal > header small { display:block; margin-top:4px; color:var(--muted); }
.v3-stepper { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin:0; padding:0; list-style:none; counter-reset:steps; }
.v3-stepper li { position:relative; padding:34px 8px 4px; text-align:center; color:var(--muted); font-size:12px; font-weight:700; }
.v3-stepper li::before { counter-increment:steps; content:counter(steps); position:absolute; top:0; left:50%; z-index:1; display:grid; place-items:center; width:26px; height:26px; margin-left:-13px; border:2px solid #d6d9e5; border-radius:50%; color:var(--muted); background:#fff; }
.v3-stepper li:not(:last-child)::after { content:''; position:absolute; top:12px; left:50%; right:-50%; height:2px; background:#dfe1e9; }
.v3-stepper li.active { color:var(--primary); }
.v3-stepper li.active::before { color:#fff; border-color:var(--primary); background:var(--primary); box-shadow:0 0 0 5px var(--primary-soft); }
.v3-stepper li.done::before { content:'✓'; color:#fff; border-color:var(--success); background:var(--success); }
.v3-stepper li.done::after { background:var(--success); }
.v3-flow-step { display:none; min-height:300px; align-content:start; gap:14px; }
.v3-flow-step.active { display:grid; animation:v3step .22s ease; }
@keyframes v3step { from{opacity:0;transform:translateX(12px)} to{opacity:1;transform:none} }
.v3-flow-step > h3 { margin-bottom:0; }
.v3-flow-step > p { margin-bottom:4px; color:var(--muted); }
.v3-question-editor { display:grid; gap:14px; }
.v3-field-help { color:var(--muted); font-size:12px; font-weight:500; line-height:1.5; }
.v3-sticky-actions { position:sticky; bottom:0; z-index:2; display:flex; justify-content:flex-end; gap:10px; align-items:center; margin:10px -22px -22px; padding:14px 22px; border-top:1px solid var(--line); background:rgb(255 255 255 / 94%); backdrop-filter:blur(14px); }
.v3-sticky-actions > span { flex:1; }
.v3-detail-modal { width:min(900px,100%); }
.v3-detail-body { padding:22px; }
.v3-question-preview { display:grid; gap:16px; }
.v3-question-preview > section,.v3-error-evidence,.v3-feedback-grid section,.v3-feedback-explanation { padding:18px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.v3-question-preview h3,.v3-error-evidence h3,.v3-feedback h3 { margin-bottom:10px; font-size:14px; color:var(--muted); }
.v3-question-body { white-space:pre-wrap; line-height:1.75; font-size:17px; }
.v3-preview-meta { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; color:var(--muted); font-size:13px; }
.v3-option-list { display:grid; gap:8px; padding-left:25px; line-height:1.6; }
.v3-answer-sheet { border-color:#c8eadb !important; background:var(--success-soft) !important; }
.v3-answer-sheet dl,.v3-error-evidence dl { display:grid; gap:10px; margin:0; }
.v3-answer-sheet dl div,.v3-error-evidence dl div { display:grid; grid-template-columns:100px minmax(0,1fr); gap:12px; }
.v3-answer-sheet dt,.v3-error-evidence dt { color:var(--muted); }
.v3-answer-sheet dd,.v3-error-evidence dd { margin:0; white-space:pre-wrap; line-height:1.65; }
.v3-modal-layer.drawer-open { display:flex; justify-content:flex-end; padding:0; background:rgb(15 23 42 / 42%); }
.v3-drawer { width:min(680px,94vw); height:100vh; overflow:auto; background:#f7f8fb; box-shadow:var(--shadow-lg); animation:v3drawer .25s cubic-bezier(.2,.8,.2,1); }
@keyframes v3drawer { from{transform:translateX(40px);opacity:.4} to{transform:none;opacity:1} }
.v3-drawer > header { position:sticky; top:0; z-index:4; display:flex; justify-content:space-between; align-items:center; padding:18px 22px; border-bottom:1px solid var(--line); background:rgb(255 255 255 / 94%); backdrop-filter:blur(14px); }
.v3-drawer > header h2 { margin:0; }
.v3-drawer > header small { color:var(--muted); }
.v3-drawer > header button { border:0; background:transparent; font-size:28px; }
.v3-success-modal { width:min(560px,100%); padding:42px 32px; text-align:center; }
.v3-success-mark { display:grid; place-items:center; width:58px; height:58px; margin:0 auto 18px; border-radius:50%; color:#fff; background:var(--success); font-size:30px; box-shadow:0 10px 28px rgb(22 132 91 / 25%); }
.v3-success-modal > p { color:var(--muted); line-height:1.65; }
.v3-success-modal .v3-actions { justify-content:center; }
.v3-saved-summary { display:grid; gap:7px; margin:20px 0; padding:16px; border-radius:13px; text-align:left; background:var(--wash); }
.v3-saved-summary span { color:var(--muted); font-size:13px; }
.v3-review-queue { display:grid; gap:32px; }
.v3-section-heading { display:flex; justify-content:space-between; margin-bottom:12px; }
.v3-section-heading h2 { margin-bottom:4px; }
.v3-section-heading p { margin:0; color:var(--muted); }
.v3-skeleton-list { display:grid; gap:10px; }
.v3-skeleton-list i { display:block; height:94px; border-radius:14px; background:linear-gradient(90deg,#eceef3 20%,#f7f8fb 40%,#eceef3 60%); background-size:220% 100%; animation:v3shimmer 1.25s ease infinite; }
@keyframes v3shimmer { to{background-position:-220% 0} }
.v3-inline-loading { padding:14px; border-radius:10px; color:var(--muted); background:var(--wash); }
.v3-feedback { max-width:820px; padding:24px; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:var(--shadow-sm); animation:v3page .28s ease; }
.v3-feedback.correct { border-top:5px solid var(--success); }
.v3-feedback.wrong { border-top:5px solid #d37522; }
.v3-feedback.pending { border-top:5px solid var(--primary); }
.v3-feedback-result { display:flex; gap:15px; align-items:center; margin-bottom:20px; }
.v3-feedback-result > span { display:grid; place-items:center; flex:0 0 46px; height:46px; border-radius:50%; color:#fff; background:var(--primary); font-size:24px; font-weight:900; }
.v3-feedback.correct .v3-feedback-result > span { background:var(--success); }
.v3-feedback.wrong .v3-feedback-result > span { background:#d37522; }
.v3-feedback-result h2 { margin-bottom:4px; }
.v3-feedback-result p { margin:0; color:var(--muted); }
.v3-feedback-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.v3-feedback-grid p,.v3-feedback-explanation p { margin:0; white-space:pre-wrap; line-height:1.65; }
.v3-feedback-explanation { margin-top:12px; background:var(--wash); }
.v3-reward { color:var(--primary); font-weight:800; }

@media (max-width:980px) {
  .v3-overview-grid { grid-template-columns:1fr; }
  .v3-overview-card { min-height:150px; }
}
@media (max-width:760px) {
  .v3-kid-shell .v3-sidebar { position:fixed; inset:auto 0 0; z-index:12; height:auto; padding:7px 8px calc(7px + env(safe-area-inset-bottom)); background:rgb(27 21 46 / 96%); backdrop-filter:blur(16px); }
  .v3-kid-shell .v3-sidebar .v3-brand,.v3-kid-shell .v3-sidebar .v3-user,.v3-kid-shell .v3-sidebar .v3-logout { display:none; }
  .v3-kid-shell .v3-sidebar nav { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; padding:0; overflow:visible; }
  .v3-kid-shell .v3-sidebar nav button { display:grid; justify-items:center; gap:2px; min-height:52px; padding:5px 3px; text-align:center; font-size:11px; white-space:normal; }
  .v3-kid-shell .v3-sidebar nav button.active { box-shadow:none; background:rgb(117 91 234 / 28%); }
  .v3-kid-shell .v3-content { padding-bottom:100px; }
  .v3-parent-shell .v3-sidebar { height:auto; }
  .v3-parent-shell .v3-sidebar nav button { display:block; }
  .v3-parent-shell .v3-nav-icon { display:none; }
  .v3-hero { display:grid; padding:24px 20px; border-radius:20px; }
  .v3-hero .v3-actions { display:grid; grid-template-columns:1fr; }
  .v3-hero .v3-button { width:100%; }
  .v3-refresh { width:42px; padding:0; overflow:hidden; color:transparent !important; }
  .v3-refresh::before { content:'↻'; display:grid; place-items:center; color:var(--primary); }
  .v3-modal-layer { padding:0; align-items:flex-end; }
  .v3-modal { max-height:96vh; overflow:auto; margin:auto 0 0; border-radius:22px 22px 0 0; }
  .v3-success-modal { margin:auto; border-radius:20px; }
  .v3-sticky-actions { bottom:0; }
  .v3-sticky-actions .v3-button { flex:1; }
  .v3-stepper li { font-size:11px; }
  .v3-answer-sheet dl div,.v3-error-evidence dl div { grid-template-columns:1fr; gap:3px; }
  .v3-feedback-grid { grid-template-columns:1fr; }
  .v3-drawer { width:100vw; }
}
