.gsv-progress-panel{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;margin:7px 0;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#172554;font-size:14px;line-height:1.3}
.gsv-progress-panel[hidden]{display:none}
.gsv-progress-panel strong,.gsv-progress-panel small,.gsv-progress-panel details,.gsv-progress-panel p{flex-basis:100%;margin:0;overflow-wrap:anywhere}
.gsv-progress-panel small{color:#475569;font-size:12px}
.gsv-progress-panel button,.gsv-progress-dialog button{border:1px solid #93c5fd;border-radius:9px;background:white;color:#1e40af;padding:10px 14px;min-height:44px;font:inherit;cursor:pointer;white-space:normal}
.gsv-progress-panel summary,.gsv-progress-dialog summary{cursor:pointer;padding:8px 0;font-weight:700}
.gsv-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #cbd5e1;padding:10px 0;overflow-wrap:anywhere}
.gsv-history-row span{min-width:0}
.gsv-progress-dialog{box-sizing:border-box;width:min(680px,94vw);max-height:85dvh;overflow:auto;border:0;border-radius:18px;padding:24px;color:#172554;background:#fff;font:16px/1.5 system-ui,sans-serif}
.gsv-progress-dialog::backdrop{background:#0f172a99}
.gsv-progress-dialog h2{margin-top:0}.gsv-progress-dialog h4{margin:0 0 8px}
.gsv-progress-dialog.gsv-results-colourful{border:3px solid #60a5fa;background:linear-gradient(145deg,#eff6ff 0%,#f5f3ff 40%,#fdf2f8 72%,#ecfdf5 100%);box-shadow:0 24px 70px #1e3a8a55}
.gsv-results-colourful h2{color:#6d28d9;text-shadow:0 1px 0 #fff}
.gsv-results-colourful h3{color:#be185d}
.gsv-results-colourful .gsv-score{display:inline-block;padding:7px 16px;border-radius:999px;background:#ffffffd9;box-shadow:0 5px 14px #16653424}
.gsv-results-colourful .gsv-mistake{border-color:#c4b5fd;background:#ffffffd9;box-shadow:0 6px 16px #7c3aed17}
.gsv-results-colourful .gsv-progress-actions button:first-child{border:0;background:linear-gradient(135deg,#7c3aed,#db2777);color:#fff;font-weight:800;box-shadow:0 8px 18px #7c3aed44}
.gsv-progress-dialog.gsv-completion-celebration{width:min(520px,92vw);max-height:90dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;text-align:center;border:3px solid #f59e0b;padding:34px 26px;color:#4c1d95;background:linear-gradient(145deg,#fff7ad 0%,#ffd6e7 36%,#dbeafe 70%,#dcfce7 100%);box-shadow:0 24px 70px #4c1d9566}
.gsv-completion-celebration::before,.gsv-completion-celebration::after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;filter:blur(4px);opacity:.34;pointer-events:none}
.gsv-completion-celebration::before{top:-55px;left:-45px;background:#f97316}
.gsv-completion-celebration::after{right:-48px;bottom:-62px;background:#22c55e}
.gsv-completion-celebration h2{position:relative;margin:6px 0 8px;font-size:clamp(28px,7vw,42px);line-height:1.1;color:#6d28d9;text-shadow:0 2px 0 #fff}
.gsv-completion-star{position:relative;display:grid;place-items:center;width:76px;height:76px;margin:0 auto 14px;border-radius:24px;background:linear-gradient(135deg,#facc15,#fb7185);color:#fff;font-size:46px;line-height:1;box-shadow:0 10px 24px #f9731666;transform:rotate(-5deg);animation:gsvCelebratePop .55s cubic-bezier(.2,.9,.25,1.35)}
.gsv-completion-star.gsv-avatar-gift{width:142px;height:142px;padding:7px;border-radius:38px;background:linear-gradient(135deg,#fde047,#fb7185 45%,#60a5fa);transform:rotate(0);box-shadow:0 12px 30px #7c3aed66;isolation:isolate}
.gsv-completion-celebration:has(.gsv-coin-bank-reward) .gsv-avatar-gift{display:none}
.gsv-coin-bank-reward{position:relative;display:block;width:100%;max-width:440px;aspect-ratio:16/9;margin:0 auto 14px;border:3px solid #fde047;border-radius:20px;object-fit:cover;background:#1d4ed8;box-shadow:0 12px 28px #4c1d9555}
.gsv-avatar-gift::before{content:"";position:absolute;inset:-20px;border-radius:48px;background:conic-gradient(from 0deg,transparent,#fff 8%,transparent 17%,#fde047 27%,transparent 40%,#fff 52%,transparent 65%,#a7f3d0 78%,transparent 90%);z-index:-1;animation:gsvAvatarShine 2s linear infinite}
.gsv-avatar-gift img{display:block;width:100%;height:100%;border-radius:31px;object-fit:contain;background:radial-gradient(circle,#fff 0%,#fef3c7 72%,#fde68a 100%)}
.gsv-avatar-unlocked{position:relative;display:inline-block;margin:0 auto 12px;padding:6px 14px;border-radius:999px;background:linear-gradient(135deg,#7c3aed,#db2777);color:#fff;font-size:16px;font-weight:900;box-shadow:0 7px 18px #7c3aed44}
.gsv-avatar-next-message{position:relative;margin:0 auto 14px;max-width:420px;padding:10px 14px;border:2px solid #facc15;border-radius:16px;background:#ffffffcf;color:#6d28d9;font-weight:800}
.gsv-completion-message{position:relative;margin:0 auto;max-width:390px;font-size:18px;font-weight:700;color:#3730a3}
.gsv-completion-review{position:relative;margin:14px 0 0;text-align:left;border:2px solid #c4b5fd;border-radius:14px;padding:0 10px;background:#ffffffcc}.gsv-completion-review summary{color:#6d28d9;font-weight:900}.gsv-completion-review .gsv-mistake{margin:8px 0;padding:10px}.gsv-completion-review ol{margin:8px 0;padding-left:22px}
.gsv-completion-score{position:relative;display:inline-block;margin:4px auto 12px;padding:7px 18px;border-radius:999px;background:#ffffffd9;color:#166534;font-size:22px;font-weight:900;box-shadow:0 5px 14px #16653424}
.gsv-completion-celebration .gsv-progress-actions{position:relative;justify-content:center;margin:24px 0 0}
.gsv-completion-celebration .gsv-progress-actions button:first-child{border:0;background:linear-gradient(135deg,#7c3aed,#db2777);color:#fff;font-weight:800;box-shadow:0 8px 18px #7c3aed55}
.gsv-completion-celebration .gsv-progress-actions button:last-child{border-color:#a78bfa;color:#5b21b6;background:#ffffffcc}
@keyframes gsvCelebratePop{0%{opacity:0;transform:scale(.35) rotate(-18deg)}70%{transform:scale(1.12) rotate(3deg)}100%{opacity:1;transform:scale(1) rotate(-5deg)}}
@keyframes gsvAvatarShine{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.gsv-completion-star,.gsv-avatar-gift::before{animation:none}.gsv-coin-bank-reward{display:none}}
.gsv-score{font-size:24px;font-weight:800;color:#166534}
.gsv-mistake{padding:14px;margin:12px 0;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;overflow-wrap:anywhere}
.gsv-progress-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}
.gsv-exercise-status{display:block;color:#166534;font-size:12px;margin-top:6px}
.header-robot-frame .math-active-avatar{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:contain;padding:3px;background:radial-gradient(circle,#fff 0%,#eff6ff 68%,#dbeafe 100%)}
.header-robot-frame.has-math-avatar .ai-character-video{opacity:0}
.header-robot-frame.has-video-avatar{border:0!important;background:linear-gradient(180deg,#dbeafe 0%,#fce7f3 100%)!important;box-shadow:none!important}
.header-robot-frame.has-video-avatar .ai-character-video{width:100%!important;height:100%!important;object-fit:fill!important;object-position:center!important;transform:none!important;background:linear-gradient(180deg,#dbeafe 0%,#fce7f3 100%)!important}
.header-robot-frame.has-video-avatar.is-speaking{border:0!important;box-shadow:none!important}
html body.workspace-open header .header-robot-frame.has-video-avatar,
html body.spoken-course-open header .header-robot-frame.has-video-avatar{width:205px!important;min-width:205px!important;max-width:205px!important;height:140px!important;min-height:140px!important;max-height:140px!important;border:0!important;border-color:transparent!important;background:linear-gradient(180deg,#dbeafe 0%,#fce7f3 100%)!important;box-shadow:none!important;padding:0!important}
html body.workspace-open header .header-robot-frame.has-video-avatar .ai-character-video,
html body.spoken-course-open header .header-robot-frame.has-video-avatar .ai-character-video{display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:fill!important;object-position:center center!important;transform:none!important;background:linear-gradient(180deg,#dbeafe 0%,#fce7f3 100%)!important;opacity:1!important}
html body.workspace-open header .header-robot-frame.has-video-avatar.is-speaking,
html body.spoken-course-open header .header-robot-frame.has-video-avatar.is-speaking{border:0!important;box-shadow:none!important;transform:none!important}
.header-robot-frame.is-speaking .math-active-avatar{animation:gsvTalkingAvatar .55s ease-in-out infinite alternate}
.gsv-avatar-progress-prompt{margin:8px 0;padding:9px 12px;border:2px solid #fbbf24;border-radius:12px;background:linear-gradient(100deg,#fef9c3,#fae8ff,#dbeafe);color:#6d28d9;font-weight:900;line-height:1.25}
.gsv-change-character-btn{width:auto;margin:0;padding:8px 10px;border:2px solid #f59e0b;border-radius:11px;background:linear-gradient(100deg,#fef3c7,#fae8ff,#dbeafe);color:#6d28d9;font-size:14px;font-weight:900;line-height:1.1;cursor:pointer;box-shadow:0 5px 11px #7c3aed22;transition:transform .18s ease,box-shadow .18s ease}
.gsv-change-character-btn:hover,.gsv-change-character-btn:focus-visible{transform:translateY(-2px);box-shadow:0 9px 18px #7c3aed33;outline:3px solid #fde68a;outline-offset:2px}
.gsv-reward-status{display:inline-block!important;flex-basis:auto!important;margin:0!important;padding:5px 9px;border-radius:999px;background:linear-gradient(135deg,#312e81,#7c3aed);color:#fff!important;font-size:12px;font-weight:900;box-shadow:0 4px 10px #4c1d9540}
.gsv-reward-journey{display:grid;grid-template-columns:minmax(105px,1fr) auto minmax(105px,1fr) auto minmax(105px,1fr);align-items:center;gap:4px;width:100%;padding:5px 7px;border:2px solid #facc15;border-radius:13px;background:linear-gradient(135deg,#fff7ad,#fce7f3 48%,#dbeafe);box-shadow:0 5px 14px #7c3aed26;overflow-x:auto;overscroll-behavior-inline:contain}
.gsv-reward-step{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;align-items:center;gap:1px 5px;min-width:0;text-align:left;color:#312e81;font-size:12px;line-height:1.08}.gsv-reward-step strong{justify-self:start;font-size:12px;color:#6d28d9}.gsv-reward-step span{justify-self:start;font-weight:800}
.gsv-reward-step img{grid-row:1/3;width:44px;height:38px;object-fit:contain;border-radius:9px;background:#ffffffb8;box-shadow:0 3px 7px #1d4ed826}.gsv-reward-symbol{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle,#fff,#bfdbfe);font-size:23px;filter:drop-shadow(0 4px 5px #2563eb55)}
.gsv-reward-arrow{color:#db2777;font-size:18px;line-height:1;animation:gsvRewardArrow 1.1s ease-in-out infinite alternate}
.gsv-coin-bank-video{display:block;width:100%;max-width:430px;aspect-ratio:16/9;margin:0 auto 12px;border:4px solid #fde047;border-radius:20px;object-fit:cover;background:#0ea5e9;box-shadow:0 12px 28px #1d4ed855}
.gsv-diamond-reveal{display:grid;justify-items:center;gap:8px;margin:12px auto;padding:14px;border:3px solid #67e8f9;border-radius:20px;background:linear-gradient(145deg,#ecfeff,#ede9fe,#fef3c7);box-shadow:0 9px 24px #7c3aed44;animation:gsvDiamondReveal .7s cubic-bezier(.2,.9,.25,1.3)}
.gsv-diamond-reveal strong{font-size:22px;color:#6d28d9}.gsv-diamond-reveal p{margin:0;font-weight:800;color:#3730a3}
.gsv-diamond-reveal img{width:128px;height:128px;object-fit:contain;border-radius:26px;background:radial-gradient(circle,#fff,#bfdbfe);box-shadow:0 0 0 6px #fff,0 10px 24px #7c3aed55}
.gsv-character-picker-dialog{background:linear-gradient(145deg,#fff7ed,#fdf4ff,#eff6ff)!important}
.gsv-avatar-choice-confirmation{position:sticky;top:-1px;z-index:2;margin:8px 0;padding:8px;border-radius:999px;background:#312e81;color:#fff;font-weight:900;box-shadow:0 4px 12px #312e8144}
.gsv-avatar-choice-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;max-height:44dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;margin:14px 0;padding:12px;border:2px solid #fde047;border-radius:18px;background:linear-gradient(145deg,#fff7ed,#fdf4ff,#eff6ff)}
.gsv-avatar-choice{display:flex;min-width:0;flex-direction:column;align-items:center;gap:5px;padding:6px 4px;border:2px solid #c4b5fd;border-radius:13px;background:#fff;color:#312e81;font:800 10px/1.1 system-ui,sans-serif;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.gsv-avatar-choice:hover,.gsv-avatar-choice:focus-visible{transform:translateY(-3px);border-color:#8b5cf6;box-shadow:0 6px 14px #7c3aed33}
.gsv-avatar-choice.selected{border-color:#f59e0b;background:#fef9c3;box-shadow:0 0 0 3px #fde68a}
.gsv-avatar-choice.locked{justify-content:center;min-height:104px;border-style:dashed;border-color:#94a3b8;background:linear-gradient(145deg,#e2e8f0,#f8fafc);color:#475569;filter:saturate(.6);cursor:not-allowed}
.gsv-avatar-choice.locked small{font-size:9px;line-height:1.15}.gsv-avatar-lock{font-size:28px;line-height:1}
.gsv-avatar-choice img{width:64px;height:64px;object-fit:contain;border-radius:11px;background:radial-gradient(circle,#fff,#dbeafe)}
@keyframes gsvTalkingAvatar{from{transform:translateY(0) scale(1)}to{transform:translateY(-4px) scale(1.035)}}
@keyframes gsvDiamondReveal{0%{opacity:0;transform:scale(.55) rotate(-7deg)}75%{transform:scale(1.06) rotate(2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes gsvRewardArrow{to{transform:translateX(3px);color:#7c3aed}}
@media(prefers-reduced-motion:reduce){.header-robot-frame.is-speaking .math-active-avatar{animation-duration:.55s}}
@media(max-width:600px){.gsv-progress-dialog{padding:16px}.gsv-progress-dialog.gsv-completion-celebration{max-height:94dvh;padding:18px 10px}.gsv-history-row{align-items:flex-start;flex-direction:column}.gsv-avatar-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:52dvh;gap:7px;padding:8px}.gsv-avatar-choice img{width:68px;height:68px}.gsv-progress-panel{padding:6px;margin:5px 0}.gsv-reward-journey{grid-template-columns:repeat(3,minmax(105px,1fr));gap:5px}.gsv-reward-arrow{display:none}html body.workspace-open header .header-robot-frame.has-video-avatar,html body.spoken-course-open header .header-robot-frame.has-video-avatar{width:180px!important;min-width:180px!important;max-width:180px!important;height:140px!important;min-height:140px!important;max-height:140px!important}}
