:root{
  --blue:#1659f5;--blue2:#3d7cff;--navy:#071d63;--teal:#08c7a4;
  --ink:#17213a;--muted:#6f7b92;--line:#e6ecf5;--paper:#fff;
  --soft:#f5f8ff;--mint:#effcf8;--warm:#fff8ed;--danger:#c83b3b;
  --shadow:0 18px 56px rgba(11,35,91,.09);--radius:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:
radial-gradient(circle at 8% 0%,rgba(22,89,245,.07),transparent 28%),
radial-gradient(circle at 100% 24%,rgba(8,199,164,.07),transparent 30%),#fbfdff;
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}
button,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
.app{min-height:100vh;min-height:100dvh;padding-bottom:calc(112px + env(safe-area-inset-bottom))}
.topbar{position:sticky;top:0;z-index:30;background:rgba(251,253,255,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(230,236,245,.9)}
.topbar-inner{width:min(820px,100%);margin:auto;padding:11px 15px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.brand{display:flex;align-items:center;gap:9px;min-width:0}.brand img{width:86px;height:auto}.brand-copy{min-width:0}.eyebrow{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--teal);font-weight:900}.brand-title{font-size:13px;font-weight:900;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-actions{display:flex;align-items:center;gap:7px}.tag{font-size:11px;font-weight:900;color:var(--navy);background:#eef3ff;border:1px solid #dce6fb;border-radius:999px;padding:8px 10px;white-space:nowrap}
main{width:min(820px,100%);margin:auto;padding:17px 14px 0}
.progress{display:flex;gap:6px;margin:2px 0 16px}.progress button{flex:1;border:0;background:transparent;padding:0}.progress span{display:block;height:5px;border-radius:999px;background:#e7edf6}.progress button.active span,.progress button.done span{background:linear-gradient(90deg,var(--blue),var(--teal))}
.screen{display:none;animation:fade .22s ease}.screen.active{display:block}@keyframes fade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.hero{margin:4px 2px 16px}.kicker{font-size:11px;color:var(--teal);font-weight:950;letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px}.hero h1{font-size:clamp(30px,8vw,42px);line-height:1.08;letter-spacing:-.045em;color:var(--navy);margin:0}.subtitle{font-size:14px;color:var(--muted);line-height:1.65;margin:9px 0 0}
.card{background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:17px;margin-bottom:14px}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.section-head h2{font-size:18px;color:var(--navy);margin:0;letter-spacing:-.02em}.section-head p{font-size:12px;color:var(--muted);line-height:1.55;margin:5px 0 0}.pill{display:inline-flex;align-items:center;border-radius:999px;background:var(--mint);color:#087665;border:1px solid #d5f2e9;padding:7px 9px;font-size:11px;font-weight:900;white-space:nowrap}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.btn{min-height:43px;border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:14px;padding:10px 13px;font-size:12px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn.primary{border:0;color:#fff;background:linear-gradient(135deg,var(--blue),var(--blue2));box-shadow:0 10px 22px rgba(22,89,245,.18)}.btn.teal{border:0;color:#fff;background:linear-gradient(135deg,var(--teal),#0cb492)}.btn.ghost{background:#f7f9fd}.btn.danger{color:var(--danger);background:#fff4f4;border-color:#ffd8d8}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.recording{background:#fff0f0;color:var(--danger);border-color:#ffcaca;animation:pulse 1s infinite}@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(200,59,59,.08)}}
.chat{display:flex;flex-direction:column;gap:13px}.message{display:flex;align-items:flex-start;gap:9px;cursor:pointer}.message.right{flex-direction:row-reverse}.avatar{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;flex:none;background:#edf3ff;color:var(--blue);font-size:12px;font-weight:950}.message.right .avatar{background:#e8fbf6;color:#087967}.bubble{position:relative;max-width:calc(100% - 50px);padding:11px 13px;border-radius:7px 18px 18px 18px;background:#f1f4f8;border:1px solid #e5eaf2;font-size:14px;line-height:1.55}.message.right .bubble{border-radius:18px 7px 18px 18px;background:linear-gradient(145deg,#1b5ff5,#397aff);border-color:transparent;color:#fff}.message.playing .bubble{box-shadow:0 0 0 3px rgba(8,199,164,.2)}.bubble-zh{font-size:12px;color:#748097;border-top:1px solid rgba(7,29,99,.08);padding-top:6px;margin-top:6px}.message.right .bubble-zh{color:rgba(255,255,255,.82);border-top-color:rgba(255,255,255,.2)}.target{font-weight:950}.dialogue-divider{display:flex;align-items:center;gap:9px;color:#7a869d;font-size:11px;font-weight:900;margin:3px 0}.dialogue-divider::before,.dialogue-divider::after{content:"";height:1px;background:var(--line);flex:1}
.story-grid,.trait-grid,.expression-grid,.question-grid{display:grid;gap:11px}.story-card,.trait-card,.expression-card,.question-group{border:1px solid var(--line);border-radius:19px;padding:14px;background:#fff}.story-top{display:flex;align-items:center;gap:10px}.story-no{width:31px;height:31px;border-radius:11px;display:grid;place-items:center;background:#eef3ff;color:var(--blue);font-size:12px;font-weight:950}.story-title{font-size:15px;font-weight:950;color:var(--navy)}.story-en{font-size:10px;color:var(--teal);font-weight:900;text-transform:uppercase;letter-spacing:.08em}.story-prompt{font-size:12px;color:var(--muted);line-height:1.5;margin:9px 0}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{border-radius:999px;padding:7px 9px;background:#f0f4ff;color:#294b8a;font-size:11px;font-weight:850}.chip.mint{background:var(--mint);color:#087967}.chip.warm{background:var(--warm);color:#825317}
.expression-function{font-size:11px;font-weight:950;color:var(--teal);margin-bottom:10px}.expression-item{padding:9px 0;border-top:1px solid #eef2f7}.expression-item:first-of-type{border-top:0;padding-top:0}.expression-en{font-size:14px;font-weight:900;color:var(--navy);line-height:1.45}.expression-zh{font-size:12px;color:var(--muted);margin-top:3px}.expression-model{font-size:12px;line-height:1.5;margin-top:7px;padding:9px 10px;background:#f7f9fd;border-radius:12px}.mini-play{float:right;border:0;background:#eef3ff;color:var(--blue);width:32px;height:32px;border-radius:50%;font-weight:950}
.trait-word{font-size:17px;font-weight:950;color:var(--navy)}.trait-zh{font-size:11px;color:var(--teal);font-weight:900;margin-left:5px}.trait-evidence{font-size:12px;color:#4a5871;line-height:1.6;margin-top:8px}.evidence-label{font-weight:950;color:#8a5d1e}
.cue-card{background:linear-gradient(145deg,#071d63,#123d8b);color:#fff;border-radius:22px;padding:18px}.cue-label{font-size:10px;color:#90ead8;font-weight:950;text-transform:uppercase;letter-spacing:.12em}.cue-title{font-size:18px;line-height:1.42;font-weight:900;margin:8px 0 12px}.cue-card ul{margin:0;padding-left:20px;display:grid;gap:8px}.cue-card li{font-size:13px;line-height:1.45}.cue-card small{display:block;color:rgba(255,255,255,.7);margin-top:2px}
.timer-panel{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;margin-top:14px;padding:14px;border-radius:19px;background:var(--soft);border:1px solid #dfe7f5}.timer-ring{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--teal) var(--timer-progress,100%),#dfe7f3 0);position:relative}.timer-ring::after{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}.timer-value{position:relative;z-index:1;color:var(--navy);font-size:23px;font-weight:950}.timer-copy strong{font-size:14px;color:var(--navy)}.timer-copy p{font-size:12px;color:var(--muted);line-height:1.55;margin:5px 0 0}
.prep-steps{display:grid;gap:8px;margin-top:12px}.prep-step{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:start;font-size:12px;line-height:1.55}.prep-step span:first-child{width:28px;height:28px;border-radius:10px;background:var(--mint);color:#087967;display:grid;place-items:center;font-weight:950}
.notes-grid{display:grid;gap:9px;margin-top:13px}.note-box{border:1px solid var(--line);border-radius:15px;padding:11px;background:#fff}.note-label{font-size:10px;color:var(--teal);font-weight:950;text-transform:uppercase;letter-spacing:.08em}.note-text{font-size:12px;line-height:1.55;color:#31425f;margin-top:5px;font-weight:800}
textarea{width:100%;min-height:140px;border:1px solid #dce5f2;border-radius:16px;padding:12px 13px;resize:vertical;color:var(--ink);background:#fff;line-height:1.6;font-size:13px;margin-top:12px}textarea:focus{outline:3px solid rgba(22,89,245,.16);border-color:#aac2f4}
.answer-chunks{display:grid;gap:10px}.answer-chunk{border:1px solid var(--line);border-radius:18px;padding:13px;background:#fff}.chunk-head{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:8px}.chunk-label{font-size:12px;color:var(--teal);font-weight:950}.chunk-text{font-size:14px;line-height:1.72;color:#26344e}.answer-chunk.playing{border-color:#abc5ff;box-shadow:0 0 0 3px rgba(22,89,245,.07)}
.answer-meta{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.meta-pill{border-radius:999px;padding:7px 9px;background:#eef3ff;color:#34558f;font-size:11px;font-weight:900}.view-toggle{display:flex;gap:6px;padding:5px;background:#f1f4f9;border-radius:15px;margin-bottom:13px}.view-toggle button{flex:1;border:0;background:transparent;padding:9px;border-radius:11px;font-size:11px;font-weight:900;color:#737e94}.view-toggle button.active{background:#fff;color:var(--navy);box-shadow:0 5px 15px rgba(17,44,92,.08)}
.retell-card{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff;margin-bottom:10px}.retell-label{font-size:12px;font-weight:950;color:var(--navy);margin-bottom:9px}.retell-hint{font-size:12px;color:var(--muted);margin-top:9px}.skeleton-hidden .answer-chunk .chunk-text{display:none}.skeleton-hidden .answer-chunk::after{content:"只看结构和关键词复述这一段";display:block;color:#7c879b;font-size:12px;padding:5px 0}
.exam-panel{border:1px solid #dce6f5;background:linear-gradient(145deg,#f7faff,#f1fcf9);border-radius:22px;padding:16px}.exam-phase{font-size:11px;color:var(--teal);font-weight:950;text-transform:uppercase;letter-spacing:.1em}.exam-title{font-size:19px;color:var(--navy);font-weight:950;margin:7px 0}.exam-copy{font-size:12px;color:var(--muted);line-height:1.6}.record-status{min-height:20px;font-size:12px;color:#4d5d77;margin-top:9px}.record-time{font-size:30px;color:var(--navy);font-weight:950;letter-spacing:-.04em;margin-top:10px}audio{width:100%;height:40px;margin-top:11px}.transcript{font-size:12px;line-height:1.6;color:#314969;background:#f5f8fd;border:1px solid #e1e8f3;border-radius:14px;padding:10px 11px;margin-top:10px}
.checklist{display:grid;gap:9px}.check-row{display:grid;grid-template-columns:24px 1fr;gap:9px;align-items:start;border:1px solid var(--line);border-radius:15px;padding:11px;background:#fff;font-size:13px;line-height:1.5}.check-row input{width:18px;height:18px;accent-color:var(--teal);margin-top:1px}.next-card{background:linear-gradient(145deg,#071d63,#15429a);color:#fff;border-radius:22px;padding:17px;margin-top:14px}.next-card h3{font-size:19px;margin:0 0 7px}.next-card p{font-size:12px;line-height:1.6;color:rgba(255,255,255,.78);margin:0}.next-card .btn{margin-top:13px;background:#fff;color:var(--navy);border:0}
.frame-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.frame-step{border:1px solid var(--line);border-radius:15px;padding:11px;background:#fff}.frame-en{font-size:12px;color:var(--teal);font-weight:950;text-transform:uppercase;letter-spacing:.06em}.frame-zh{font-size:13px;color:var(--navy);font-weight:900;margin-top:4px}.frame-prompt{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.45}.question-group h3{font-size:16px;color:var(--navy);margin:0}.thinking-line{font-size:12px;color:#55708e;background:#f4f8ff;border-radius:12px;padding:9px 10px;line-height:1.5;margin:9px 0}.question-list{margin:0;padding-left:18px;display:grid;gap:7px}.question-list li{font-size:13px;line-height:1.5}.model-q{font-size:12px;font-weight:950;color:var(--teal);margin-top:13px}.model-a{font-size:13px;line-height:1.7;color:#31405a;margin-top:7px}.group-collocs{margin-top:11px}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:35;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-top:1px solid rgba(230,236,245,.95);padding:9px 13px calc(9px + env(safe-area-inset-bottom))}.bottom-inner{width:min(820px,100%);margin:auto;display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}.bottom-inner .btn:first-child{justify-self:start}.bottom-inner .btn:last-child{justify-self:end}.step-copy{text-align:center;min-width:84px}.step-copy strong{display:block;color:var(--navy);font-size:12px}.step-copy span{font-size:10px;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(8px);background:#10203c;color:#fff;padding:9px 13px;border-radius:999px;font-size:11px;font-weight:850;opacity:0;pointer-events:none;transition:.2s;z-index:60;white-space:nowrap}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.notice{font-size:12px;line-height:1.6;color:#3d587b;background:#f4f8ff;border:1px solid #dfe8f6;border-radius:14px;padding:10px 11px;margin-top:11px}
@media(min-width:680px){main{padding-top:24px}.card{padding:21px}.story-grid{grid-template-columns:repeat(2,1fr)}.story-card:last-child{grid-column:1/-1}.trait-grid,.expression-grid{grid-template-columns:repeat(2,1fr)}.notes-grid{grid-template-columns:repeat(2,1fr)}.question-grid{grid-template-columns:1fr}.frame-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:430px){.topbar-inner{padding:10px 11px}.brand img{width:78px}.brand-copy{display:none}.tag{padding:7px 8px}.btn{padding:9px 11px}.timer-panel{grid-template-columns:72px 1fr}.timer-ring{width:70px;height:70px}.timer-value{font-size:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.screen,.toast{animation:none;transition:none}}
a:focus-visible,button:focus-visible,textarea:focus-visible,audio:focus-visible{outline:3px solid rgba(22,89,245,.26);outline-offset:3px}
.group-toggle{width:100%;border:0;background:transparent;padding:0;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:var(--navy)}
.group-toggle-title{font-size:16px;font-weight:950}.group-toggle-count{font-size:11px;font-weight:900;color:#53709a;background:#eef3ff;border-radius:999px;padding:7px 9px;white-space:nowrap}
.group-body{padding-top:4px}.question-group.open{border-color:#cddcf4;box-shadow:0 10px 26px rgba(17,44,92,.06)}
.hero-compact{margin-top:20px;margin-bottom:10px}
.page-h2{font-size:23px;line-height:1.25;letter-spacing:-.03em;color:var(--navy);margin:0}
.chunk-controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.practice-status{font-size:12px;color:#4d5d77;line-height:1.6;margin-top:10px}
.lesson-expression-grid{display:grid;gap:11px}
.lesson-expression-card{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff}
.lesson-expression-top{margin-bottom:8px}
.lesson-expression-title{font-size:16px;line-height:1.45;font-weight:950;color:var(--navy)}
.lesson-expression-zh{font-size:12px;color:var(--muted);margin-top:4px}
.lesson-example-list{display:grid;gap:8px;margin-top:10px}
.lesson-example-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 11px;border-radius:13px;background:#f7f9fd;border:1px solid #ebf0f7}
.lesson-example-text{font-size:13px;line-height:1.55;color:#31425f}
@media(min-width:680px){.lesson-expression-grid{grid-template-columns:repeat(2,1fr)}}
.expression-focus-card{padding:22px}
.expression-focus-top{margin-bottom:16px}
.expression-focus-title{font-size:clamp(24px,6vw,34px);line-height:1.25;font-weight:950;color:var(--navy);letter-spacing:-.025em}
.expression-focus-zh{font-size:14px;color:var(--muted);margin-top:7px}
.expression-focus-list{gap:12px}
.expression-focus-example{grid-template-columns:30px 1fr auto;padding:14px}
.example-no{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#eef3ff;color:var(--blue);font-size:12px;font-weight:950}
.part3-question-box{border:1px solid var(--line);border-radius:18px;padding:16px;background:#f7f9fd;display:grid;gap:12px}
.part3-question-text{font-size:20px;line-height:1.55;color:var(--navy);font-weight:850}
.part3-model-answer{font-size:15px;line-height:1.8;color:#2d3d59;padding:15px;border-radius:16px;background:#f7f9fd;border:1px solid #e8eef7}
.practice-record-box{margin-top:14px;padding:14px;border-radius:18px;background:linear-gradient(145deg,#f7faff,#f1fcf9);border:1px solid #dce6f5}
.practice-record-time{font-size:25px;color:var(--navy);font-weight:950;letter-spacing:-.04em}
.part3-practice-keywords{margin-top:14px}
@media(max-width:430px){.expression-focus-card{padding:16px}.part3-question-text{font-size:17px}.expression-focus-example{grid-template-columns:26px 1fr auto;padding:11px}.example-no{width:26px;height:26px}}
.line-translation{font-size:12px;line-height:1.7;color:var(--muted);margin-top:8px}
.lesson-example-copy{display:grid;gap:4px;min-width:0}
.lesson-example-zh{font-size:12px;line-height:1.55;color:var(--muted)}
.expression-preview{margin-top:14px;padding:12px;border-radius:16px;background:#f7fbff;border:1px solid #e2ebf7}
.expression-preview-title{font-size:12px;font-weight:950;color:var(--navy);margin-bottom:10px}
.expression-preview-list{display:grid;gap:8px}
.expression-preview-item{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;padding:8px 0;border-top:1px solid #e8eef7}
.expression-preview-item:first-child{border-top:0;padding-top:0}
.expression-preview-copy{display:grid;gap:3px}
.expression-preview-en{font-size:13px;line-height:1.5;color:var(--navy);font-weight:850}
.expression-preview-zh{font-size:12px;line-height:1.55;color:var(--muted)}
.frame-prompt-zh{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.45}
.part3-question-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}
.part3-question-copy{display:grid;gap:6px;min-width:0}
.part3-question-zh{font-size:13px;line-height:1.6;color:var(--muted)}
.part3-model-answer-wrap{display:grid;gap:8px}
.part3-model-answer-zh{font-size:13px;line-height:1.7;color:var(--muted);padding:0 2px}
@media(max-width:430px){.part3-question-row{grid-template-columns:1fr auto}.part3-question-zh,.part3-model-answer-zh,.lesson-example-zh,.line-translation,.expression-preview-zh{font-size:11px}}
.part3-answer-chunk .expression-preview{margin-top:14px}
.compact-record-result{margin-top:10px}
.compact-record-result .practice-status{margin-top:8px}
.compact-record-result audio{margin-top:8px}
.mini-output-card{display:grid;gap:14px}
.mini-output-label{font-size:12px;font-weight:950;color:var(--teal);letter-spacing:.02em}
.mini-output-prompt{font-size:clamp(22px,5.5vw,31px);line-height:1.45;font-weight:950;color:var(--navy);letter-spacing:-.02em}
.mini-output-hints{margin-top:-2px}
.mini-output-practice{padding:14px;border-radius:18px;background:linear-gradient(145deg,#f7faff,#f1fcf9);border:1px solid #dce6f5}
.mini-output-practice>.btn{margin-bottom:2px}
.mini-output-reveal-hint{font-size:12px;line-height:1.6;color:var(--muted);margin-top:9px}
.mini-output-reference{border-top:1px solid var(--line);padding-top:15px;margin-top:2px}
.mini-output-reference-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.mini-output-reference-title{font-size:16px;font-weight:950;color:var(--navy)}
.mini-output-reference-en{font-size:17px;line-height:1.7;color:#24344e;font-weight:750}
.mini-output-reference-zh{font-size:12px;line-height:1.7;color:var(--muted);margin-top:7px}
@media(max-width:430px){.mini-output-reference-head{align-items:flex-start}.mini-output-reference-head .btn{flex:none}.mini-output-reference-en{font-size:15px}}
/* Local-only learning progress and screenshot check-in */
.progress button.completed span{background:linear-gradient(90deg,var(--blue),var(--teal))}
.progress button.active:not(.completed) span{background:linear-gradient(90deg,var(--blue),#7aa4ff)}
.completion-summary{display:grid;gap:9px;margin:-5px 0 17px;padding:11px 12px;border:1px solid #e2eaf6;border-radius:16px;background:rgba(255,255,255,.86)}
.completion-total{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted)}
.completion-total strong{font-size:12px;color:var(--navy)}
.completion-total.complete strong{color:#087967}
.completion-milestones{display:flex;gap:6px;overflow-x:auto;padding-bottom:1px;scrollbar-width:none}.completion-milestones::-webkit-scrollbar{display:none}
.completion-chip{flex:none;display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 8px;background:#f3f6fb;color:#66738a;font-size:10px;font-weight:850;border:1px solid #e6ecf5;white-space:nowrap}
.completion-chip.complete{background:var(--mint);border-color:#d2f0e7;color:#087967}.completion-chip strong{font-size:10px}
.step-copy strong.step-complete::before{content:'✓ ';color:#08a889}
.checkin-wrap{margin-top:14px}.checkin-card{position:relative;overflow:hidden;border-radius:24px;padding:21px;background:linear-gradient(145deg,#071d63 0%,#123d8b 66%,#0b6786 130%);color:#fff;box-shadow:0 20px 54px rgba(7,29,99,.2)}
.checkin-card::after{content:'';position:absolute;width:180px;height:180px;border-radius:50%;right:-76px;top:-72px;background:radial-gradient(circle,rgba(74,238,203,.25),rgba(74,238,203,0) 70%);pointer-events:none}
.checkin-brand{position:relative;z-index:1;color:#70ead5;font-size:10px;font-weight:950;letter-spacing:.14em}.checkin-status{position:relative;z-index:1;margin-top:17px;font-size:13px;font-weight:900;color:#b8c9ee}.checkin-status.complete{color:#8af1dc}.checkin-card h2{position:relative;z-index:1;margin:6px 0 18px;font-size:clamp(25px,7vw,36px);line-height:1.12;letter-spacing:-.035em}
.checkin-progress-row{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.checkin-progress-row span{display:block;color:rgba(255,255,255,.65);font-size:10px;margin-bottom:3px}.checkin-progress-row strong{font-size:31px;letter-spacing:-.04em}.checkin-count{font-size:12px;color:rgba(255,255,255,.75);font-weight:850;padding-bottom:5px}
.checkin-bar{position:relative;z-index:1;height:7px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden;margin:9px 0 17px}.checkin-bar span{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#4c83ff,#36dec0);transition:width .3s ease}
.checkin-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.checkin-metric{border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.075);border-radius:14px;padding:10px}.checkin-metric strong{display:block;font-size:14px}.checkin-metric span{display:block;font-size:10px;color:rgba(255,255,255,.65);margin-top:3px}.checkin-metric.complete strong::before{content:'✓ ';color:#6df0d1}
.checkin-final{position:relative;z-index:1;margin-top:9px;border-radius:14px;padding:11px 12px;background:rgba(255,255,255,.095);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.checkin-final span{color:rgba(255,255,255,.72)}.checkin-final strong{font-size:14px}
.checkin-footer{position:relative;z-index:1;display:flex;justify-content:space-between;gap:10px;margin-top:15px;color:rgba(255,255,255,.52);font-size:9px}.checkin-hint{text-align:center;color:var(--muted);font-size:11px;margin:8px 0 16px}
@media(min-width:680px){.completion-summary{grid-template-columns:auto 1fr;align-items:center}.completion-total{min-width:120px;border-right:1px solid #e8edf5;padding-right:12px}.checkin-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:430px){.completion-summary{margin-top:-7px}.checkin-card{padding:17px}.checkin-footer{flex-direction:column;gap:3px}.checkin-card h2{font-size:26px}}
/* Part 3 four-step visual structure */
.frame-step{position:relative;padding-top:38px}
.frame-number{position:absolute;top:12px;left:12px;width:24px;height:24px;border-radius:9px;display:grid;place-items:center;background:#eef3ff;color:var(--blue);font-size:11px;font-weight:950}
.part3-model-steps{display:grid;gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
.part3-model-step{display:grid;grid-template-columns:132px 1fr;gap:14px;padding:14px;border-top:1px solid #edf1f7}
.part3-model-step:first-child{border-top:0}
.part3-model-step-side{display:grid;grid-template-columns:28px 1fr;column-gap:8px;align-content:start}
.part3-model-step-no{grid-row:1/3;width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:#eef3ff;color:var(--blue);font-size:12px;font-weight:950}
.part3-model-step-label{font-size:11px;line-height:1.35;color:var(--teal);font-weight:950;text-transform:uppercase;letter-spacing:.04em}
.part3-model-step-label-zh{font-size:11px;line-height:1.4;color:var(--muted);margin-top:2px}
.part3-model-step-copy{min-width:0}
.part3-model-step-en{font-size:14px;line-height:1.72;color:#26344e}
.part3-model-step-zh{font-size:12px;line-height:1.65;color:var(--muted);margin-top:6px}
@media(max-width:560px){
  .part3-model-step{grid-template-columns:1fr;gap:8px;padding:12px}
  .part3-model-step-side{grid-template-columns:28px auto 1fr;align-items:center}
  .part3-model-step-no{grid-row:auto}
  .part3-model-step-label-zh{margin:0 0 0 3px}
}
/* Pause / resume + scrubber for longer speaking audio */
.audio-transport{display:grid;gap:7px;margin:9px 0 13px;padding:10px 12px;border:1px solid #e2e9f5;border-radius:14px;background:#f7f9fd}
.audio-transport-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted);font-weight:800}
.audio-transport-meta strong{color:var(--navy);font-size:11px}
.audio-seek{width:100%;margin:0;accent-color:var(--blue);cursor:pointer}
.audio-seek:disabled{opacity:.45;cursor:default}
.chunk-audio-transport{margin-top:11px;margin-bottom:4px}
.full-answer-transport{margin-top:-2px;margin-bottom:13px}
.full-answer-toolbar .btn[disabled]{opacity:.62}
@media(max-width:430px){
  .audio-transport{padding:9px 10px}
  .audio-transport-meta{font-size:9px}
  .audio-transport-meta strong{font-size:10px}
}
