:root{--bg:#f5f5f7;--surface:#fff;--surface-soft:#f2f2f4;--surface-warm:#fff2df;--surface-peach:#ffe4c2;--text:#1d1d1f;--muted:#6e6e73;--muted-strong:#515154;--accent:#ff7a1a;--accent-strong:#e85d04;--blue:#1f7a9f;--green:#2f8c6c;--danger:#ff4f3f;--shadow:0 24px 70px #00000014;--shadow-soft:0 10px 34px #0000000f;--radius:8px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 16% 0%, #ff7a1a21, transparent 28%), linear-gradient(180deg, #fbfbfd 0%, var(--bg) 52%);min-width:320px;min-height:100svh;margin:0}button,input,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}button:focus-visible{outline:0;box-shadow:0 0 0 4px #ff7a1a38}img,svg{flex:none}h1,h2,h3,p{letter-spacing:0;margin:0}h1{font-size:46px;font-weight:780;line-height:1.03}h2{font-size:17px;font-weight:760;line-height:1.25}p{line-height:1.58}#root{min-height:100svh}.app-shell{width:min(1180px,100%);min-height:100svh;margin:0 auto;padding:18px}.topbar{justify-content:space-between;align-items:center;gap:12px;padding:8px 0 18px;display:flex}.brand,.nav-button,.primary-action,.draw-action,.secondary-action,.primary-small,.danger-action,.review-peek,.podcast-review-cta,.line-save,.scenario-card{border:0}.brand{color:var(--text);background:0 0;align-items:center;gap:10px;padding:0;font-weight:780;display:inline-flex}.brand img{border-radius:var(--radius);width:42px;height:42px;box-shadow:0 10px 24px #ff7a1a3d}.top-actions{border-radius:var(--radius);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffb8;gap:8px;padding:4px;display:flex}.nav-button,.secondary-action,.primary-small{border-radius:var(--radius);min-height:40px;color:var(--text);background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.nav-button.active,.primary-small{color:#fff;background:var(--text)}.practice-grid,.practice-page{gap:18px;display:grid}.practice-grid{grid-template-columns:minmax(0,1fr) 310px;align-items:start}.practice-page{grid-template-columns:1fr}.practice-stage{border-radius:var(--radius);min-height:calc(100svh - 190px);color:var(--text);box-shadow:var(--shadow);background:linear-gradient(135deg,#fffffffa,#fff2dfd6),radial-gradient(circle at 88% 12%,#ff7a1a3d,#0000 30%);flex-direction:column;gap:24px;padding:34px;display:flex}.stage-copy{gap:14px;max-width:820px;display:grid}.stage-copy h1{font-size:56px}.stage-copy p{color:var(--muted-strong);font-size:19px}.scene-practice-card{grid-template-columns:1fr;align-items:start;gap:24px;display:grid}.scene-copy{gap:18px;display:grid}.scene-image{border-radius:var(--radius);background:var(--surface-warm);margin:0;overflow:hidden;box-shadow:0 24px 56px #ff7a1a2e}.scene-image img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.daily-topic{border-radius:var(--radius);background:#ffffffc7;gap:8px;width:100%;padding:18px;display:grid;box-shadow:0 12px 34px #ff7a1a1f}.card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-head span:last-child{color:var(--accent-strong);background:#ff7a1a1f;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:820}.daily-topic strong{font-size:32px;line-height:1.12}.daily-topic p{color:var(--muted-strong)}.eyebrow,.section-title,.label,.live-status,.status-pill,.timer-box{align-items:center;display:inline-flex}.eyebrow{width:fit-content;color:var(--accent-strong);background:#ff7a1a1f;border-radius:999px;gap:8px;padding:7px 11px;font-size:13px;font-weight:780}.scenario-brief,.role-grid{grid-template-columns:.85fr 1.15fr;gap:12px;display:grid}.scenario-brief>div,.starter-line,.role-grid article{border-radius:var(--radius);background:#ffffffbd;padding:16px}.label{color:var(--muted);text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:820;line-height:1}.scenario-brief strong{line-height:1.45;display:block}.role-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.role-grid article{align-content:start;gap:8px;display:grid}.role-grid svg{color:var(--accent-strong)}.role-grid span{color:var(--muted);font-size:12px;font-weight:820}.role-grid strong{font-size:14px;line-height:1.45}.starter-line{align-items:center;gap:10px;font-size:18px;display:flex}.background-grid{grid-template-columns:.8fr 1.2fr;gap:18px;display:grid}.background-grid article,.hint-panel{gap:8px;padding:2px 0;display:grid}.background-grid p,.hint-panel li{color:var(--text);line-height:1.55}.hint-panel ul{gap:8px;margin:0;padding-left:20px;display:grid}.phrase-row{flex-wrap:wrap;gap:8px;display:flex}.phrase-row span{color:#723000;background:#ff7a1a1f;border-radius:999px;padding:7px 11px;font-size:14px;font-weight:720}.practice-actions{flex-wrap:wrap;gap:10px;display:flex}.primary-action,.draw-action,.danger-action{border-radius:var(--radius);justify-content:center;align-items:center;gap:10px;min-height:54px;padding:0 20px;font-weight:820;display:inline-flex}.primary-action{color:#fff;background:linear-gradient(135deg, var(--accent), #ff9f2f);width:fit-content;box-shadow:0 14px 32px #ff7a1a47}.draw-action{color:#723000;background:#ff7a1a21}.side-rail{gap:14px;display:grid}.stats-panel{gap:12px;display:grid}.stat-tile,.review-peek,.flow-panel,.podcast-review-cta,.training-track,.podcast-card,.subscribe-panel,.rss-panel,.transcript-section,.listen-notes,.listen-intro,.scenario-card,.expression-card,.history-card,.loading-review,.empty-history{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}.stat-tile{align-items:center;gap:14px;min-height:104px;padding:18px;display:flex}.stat-tile svg{color:var(--accent)}.stat-tile.accent svg{color:var(--blue)}.stat-tile span{font-size:30px;font-weight:820;line-height:1;display:block}.stat-tile small,.history-card-head span,.phrase-bank small,.rewrite-item small{color:var(--muted)}.review-peek{text-align:left;min-height:72px;color:var(--text);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px;display:grid}.review-peek span{text-overflow:ellipsis;white-space:nowrap;font-weight:720;overflow:hidden}.flow-panel{gap:12px;padding:18px;display:grid}.flow-panel ol{gap:10px;margin:0;padding-left:22px;display:grid}.flow-panel li{color:var(--muted-strong);line-height:1.45}.podcast-follow-link,.podcast-review-cta{border-radius:var(--radius);color:var(--text);box-shadow:var(--shadow-soft);background:#fff7ef;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px;text-decoration:none;display:grid}.podcast-follow-link span,.podcast-review-cta span{font-weight:760}.podcast-review-cta{text-align:left;width:100%;margin-bottom:16px}.podcast-review-cta small{color:var(--muted);margin-top:4px;font-weight:520;display:block}.training-track{grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);align-items:center;gap:18px;padding:22px;display:grid}.training-track h2{margin-bottom:8px;font-size:28px}.training-track p{color:var(--muted-strong)}.track-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.track-grid article,.track-grid button{border-radius:var(--radius);min-height:118px;color:var(--text);text-align:left;background:#fbfbfd;border:0;align-content:center;gap:6px;padding:14px;display:grid}.track-grid button{grid-template-columns:auto minmax(0,1fr) auto;align-content:center;align-items:center}.track-grid button span{grid-column:2}.track-grid svg{color:var(--accent-strong)}.track-grid strong{font-size:26px;line-height:1.05}.track-grid button strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.3;overflow:hidden}.track-grid span{color:var(--muted);font-size:12px;font-weight:760}.listen-layout{color:#2c2420;grid-template-columns:minmax(0,.92fr) minmax(340px,1.08fr);align-items:start;gap:18px;min-height:calc(100svh - 96px);display:grid}.listen-hero{border-radius:var(--radius);min-height:430px;box-shadow:var(--shadow);background:linear-gradient(#faf7f2fa,#f4ece0f5),linear-gradient(135deg,#b9553d1f,#1f7a9f14);grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(260px,340px);align-items:center;gap:28px;padding:42px;font-family:Georgia,Noto Serif SC,Songti SC,serif;display:grid}.listen-hero>div{gap:14px;max-width:760px;display:grid}.listen-hero h1{font-size:62px;font-style:italic;font-weight:760;line-height:.98}.listen-hero strong{color:#b9553d;font-size:30px;font-weight:760;line-height:1.2;display:block}.listen-hero p{color:#6d5d54;max-width:640px;font-size:19px}.listen-hero .eyebrow{color:#b9553d;background:#b9553d1a}.listen-hero-actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.rss-action{border-radius:var(--radius);color:#fff;background:var(--text);justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-weight:820;text-decoration:none;display:inline-flex}.secondary-link{border-radius:var(--radius);color:#b9553d;background:#b9553d1a;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-weight:820;text-decoration:none;display:inline-flex}.podcast-cover{aspect-ratio:1;border-radius:var(--radius);justify-self:end;width:min(100%,340px);box-shadow:0 26px 64px #5b342638}.listen-intro{background:#faf7f2;gap:12px;padding:20px;font-family:Georgia,Noto Serif SC,Songti SC,serif;display:grid}.listen-intro p{color:#6d5d54}.podcast-card{background:linear-gradient(#fffaf4 0%,#f5eadc 100%);gap:14px;padding:18px;font-family:Georgia,Noto Serif SC,Songti SC,serif;display:grid}.podcast-card-kicker{color:#b9553d;align-items:center;gap:8px;font-size:13px;font-weight:780;display:inline-flex}.podcast-card h2{font-size:26px;line-height:1.2}.speaker-pair{gap:8px;display:grid}.speaker-chip{border-radius:var(--radius);background:#b9553d1a;gap:2px;padding:10px;display:grid}.speaker-chip span,.speaker-chip small,.podcast-card-meta span{color:var(--muted);font-size:12px;line-height:1.35}.speaker-chip small{color:#7e4b3a;font-weight:760}.demo-audio{gap:8px;display:grid}.demo-audio span{color:var(--muted-strong);font-size:12px;font-weight:760}.demo-audio audio{width:100%;height:38px}.podcast-notes{gap:9px;display:grid}.podcast-notes p,.podcast-notes li{color:var(--muted-strong);font-size:13px;line-height:1.55}.podcast-notes ul{gap:6px;margin:0;padding-left:18px;display:grid}.expression-notes{gap:8px;display:grid}.expression-notes article{border-radius:var(--radius);background:#ff7a1a1a;gap:4px;padding:10px;display:grid}.expression-notes strong{color:var(--accent-strong);font-size:13px}.expression-notes span,.expression-notes small{color:var(--muted-strong);font-size:12px;line-height:1.45}.podcast-card-meta{flex-wrap:wrap;gap:6px;display:flex}.podcast-card-meta span{width:fit-content;color:var(--muted-strong);background:#1d1d1f0f;border-radius:999px;padding:6px 9px;font-weight:720}.subscribe-panel,.rss-panel,.transcript-section,.listen-notes{gap:14px;padding:18px;display:grid}.subscribe-panel{background:linear-gradient(135deg,#fffaf4 0%,#fff 100%);font-family:Georgia,Noto Serif SC,Songti SC,serif}.qr-placeholder{border-radius:var(--radius);color:#b9553d;background:repeating-linear-gradient(135deg,#b9553d14,#b9553d14 10px,#ffffffb3 10px 20px);place-items:center;gap:8px;min-height:180px;display:grid}.qr-placeholder span{color:#6d5d54;font-size:13px;font-weight:760}.subscribe-panel p{color:var(--muted-strong)}.rss-panel{background:linear-gradient(135deg,#fff 0%,#f7efe5 100%)}.rss-panel p,.listen-notes p{color:var(--muted-strong)}.rss-panel code{color:#6f2e1d;border-radius:var(--radius);white-space:nowrap;background:#b9553d1a;width:100%;padding:12px;font-size:14px;display:block;overflow:auto}.rss-panel small{color:var(--muted);line-height:1.45}.listen-notes{background:#fffaf4;font-family:Georgia,Noto Serif SC,Songti SC,serif}.transcript-section{background:#fffaf4;grid-column:1/-1;font-family:Georgia,Noto Serif SC,Songti SC,serif}.transcript-section>p{color:#6d5d54}.transcript-controls{flex-wrap:wrap;gap:8px;display:flex}.transcript-controls span{color:#7e4b3a;background:#b9553d1a;border-radius:999px;width:fit-content;padding:7px 10px;font-size:12px;font-weight:760}.podcast-transcript{gap:10px;display:grid}.transcript-card{border-radius:var(--radius);background:#ffffffc2;gap:10px;padding:14px;display:grid}.transcript-card.active{background:#fff1df;box-shadow:inset 0 0 0 2px #b9553d29}.transcript-card-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.transcript-card-head span{color:#fff;background:#2c2420;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:820}.transcript-card-head small{color:#7e4b3a;font-weight:760}.line-block{gap:5px;display:grid}.line-block>span{color:#b9553d;text-transform:uppercase;font-size:11px;font-weight:820}.english-line{color:#2c2420;font-size:18px;line-height:1.55}.chinese-line{color:#6d5d54;font-size:15px;line-height:1.65}.line-actions{flex-wrap:wrap;gap:8px;display:flex}.line-actions button{border-radius:var(--radius);color:#7e4b3a;background:#b9553d1a;border:0;justify-content:center;align-items:center;gap:6px;min-height:36px;padding:0 10px;font-size:13px;font-weight:780;display:inline-flex}.practice-cue{color:#fff;background:#2f8c6c;border-radius:999px;width:fit-content;padding:6px 10px;font-size:12px;font-weight:760}.note-list{gap:8px;display:grid}.note-list article{border-radius:var(--radius);color:var(--muted-strong);background:#fbfbfd;padding:12px;line-height:1.5}.scenario-section{grid-column:1/-1;gap:12px;display:grid}.section-title{color:var(--accent-strong);gap:8px}.scenario-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.scenario-card{min-height:98px;color:var(--text);text-align:left;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:14px;display:grid}.scenario-card.selected{background:var(--surface-peach);box-shadow:0 14px 36px #ff7a1a33}.scenario-icon{width:34px;height:34px;color:var(--accent-strong);border-radius:var(--radius);background:#ff7a1a1f;justify-content:center;align-items:center;display:inline-flex}.scenario-card strong,.scenario-card small{display:block}.scenario-card strong{margin-bottom:6px;line-height:1.25}.scenario-card small{color:var(--muted);line-height:1.35}.session-layout{border-radius:var(--radius);background:var(--surface);min-height:calc(100svh - 96px);color:var(--text);box-shadow:var(--shadow);padding:22px}.review-layout,.history-layout{min-height:calc(100svh - 96px);color:var(--text);padding:4px 0 22px}.session-header,.review-header,.history-card-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.timer-box{color:#fff;background:var(--text);border-radius:var(--radius);justify-content:center;gap:8px;min-width:96px;padding:10px 12px;font-weight:820}.progress-track{background:var(--surface-soft);border-radius:999px;height:9px;margin:22px 0 12px;overflow:hidden}.progress-track span{background:linear-gradient(90deg, var(--accent), #ffb13d);height:100%;transition:width .4s;display:block}.live-status{min-height:34px;color:var(--muted);gap:12px}.status-pill{color:var(--text);background:var(--surface-soft);border-radius:999px;gap:8px;padding:7px 11px}.status-pill>span{background:var(--accent);border-radius:999px;width:9px;height:9px}.status-pill.error>span{background:var(--danger)}.caption-stream{border-radius:var(--radius);background:linear-gradient(#fbfbfd,#fff);flex-direction:column;gap:12px;height:min(58svh,600px);margin:18px 0;padding:8px 4px;display:flex;overflow:auto}.caption{border-radius:var(--radius);background:var(--surface-soft);width:min(78%,680px);padding:14px 16px}.caption.user{background:var(--text);color:#fff;align-self:flex-end}.caption.assistant{color:var(--text);background:#e8f3f7;align-self:flex-start}.caption.draft{opacity:.72}.caption span{color:inherit;opacity:.68;margin-bottom:6px;font-size:12px;font-weight:820;display:block}.empty-captions,.loading-review,.empty-history,.error-panel{border-radius:var(--radius);background:var(--surface);justify-content:center;align-items:center;gap:10px;min-height:140px;display:flex}.error-panel{color:#8b1d13;background:#ffe9e5;justify-content:flex-start;min-height:auto;margin-top:14px;padding:14px}.session-actions{justify-content:flex-end;display:flex}.danger-action{color:#fff;background:var(--danger)}.review-header{margin-bottom:16px}.review-actions{gap:8px;display:flex}.secondary-action{box-shadow:var(--shadow-soft);background:#ffffffc7}.expression-card,.history-card{padding:18px}.expression-card{gap:18px;display:grid}.compact-card{box-shadow:none;padding:0}.storyline-block,.rewrite-grid,.phrase-bank,.next-lines,.podcast-dialogue,.transcript-block{gap:12px;display:grid}.rewrite-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rewrite-grid .section-title,.phrase-bank .section-title,.next-lines .section-title{grid-column:1/-1}.rewrite-item,.phrase-bank article,.transcript-line,.podcast-turns article{border-radius:var(--radius);background:#fbfbfd;padding:14px}.rewrite-item{gap:8px;display:grid}.rewrite-item strong{color:var(--accent-strong);line-height:1.45}.phrase-bank-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.phrase-bank article{gap:7px;display:grid}.phrase-bank article strong{color:var(--green)}.phrase-bank article span{color:var(--text)}.next-lines{position:relative}.line-save{text-align:left;min-height:48px;color:var(--text);border-radius:var(--radius);background:var(--surface-warm);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 14px;display:grid}.line-save svg{color:var(--accent-strong)}.saved-toast{color:#fff;background:var(--green);border-radius:999px;width:fit-content;padding:6px 10px}.memory-tip{color:#5c2700;background:var(--surface-peach);border-radius:var(--radius);align-items:flex-start;gap:10px;padding:14px;display:flex}.podcast-script-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.podcast-speakers{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.podcast-speakers span{color:var(--accent-strong);background:#ff7a1a1f;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:760}.podcast-turns{gap:10px;display:grid}.podcast-turns article{background:linear-gradient(135deg,#fbfbfd,#fff4e8)}.podcast-turns span,.transcript-line span{color:var(--muted);text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:820;display:block}.podcast-turns p{color:var(--text);font-weight:680}.podcast-turns small{color:var(--muted);margin-top:6px;display:block}.transcript-list{gap:8px;max-height:300px;padding-right:4px;display:grid;overflow:auto}.transcript-line.assistant{background:#eef7fa}.history-stack{gap:14px;display:grid}.history-card-head{padding-bottom:14px}.history-card-head h2{margin-top:6px;font-size:22px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=900px){.app-shell{padding:12px}h1{font-size:34px}.practice-grid,.scene-practice-card,.training-track,.listen-layout,.listen-hero{grid-template-columns:1fr}.practice-stage{min-height:520px;padding:22px}.stage-copy h1{font-size:42px}.scene-image{position:static}.scene-image img{aspect-ratio:16/9}.listen-hero{min-height:230px;padding:22px}.listen-hero h1{font-size:42px}.listen-hero strong{font-size:24px}.podcast-cover{justify-self:start;width:min(100%,280px)}.scenario-brief,.role-grid,.background-grid,.rewrite-grid,.phrase-bank-grid,.scenario-list{grid-template-columns:1fr}.stats-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.review-peek,.podcast-card{grid-column:1/-1}.session-header,.review-header,.podcast-script-head{flex-direction:column;align-items:flex-start}.podcast-speakers{justify-content:flex-start}.review-actions,.rss-action,.secondary-link,.review-actions button,.primary-small,.secondary-action,.danger-action,.draw-action,.primary-action{width:100%}.caption{width:94%}.track-grid{grid-template-columns:1fr}}@media (width<=520px){.topbar{gap:8px}.top-actions{box-shadow:none}.nav-button{padding:0 10px}.brand span{text-overflow:ellipsis;white-space:nowrap;max-width:92px;font-size:13px;overflow:hidden}.practice-stage{min-height:460px}.stats-panel{grid-template-columns:1fr}.caption-stream{height:56svh}}
