:root{--bg:#f4f5f7;--paper:#fff;--ink:#25232d;--muted:#71707d;--accent:#7046b5;--tint:#f0eaf8;--line:#e5e5eb;--radius:10px}body{background:var(--bg);font-size:16px}.shell{max-width:760px;background:transparent;min-height:100dvh}.page{padding:0 20px 28px}.header{padding:20px;gap:12px;background:#fff;border-bottom:1px solid var(--line);margin-bottom:24px}.header h1{font-size:18px}.header small{font-size:12px}.header .grow{position:relative;padding-right:76px}.identity-entry{background:var(--tint);border:0;box-shadow:none}.header img{width:42px;height:42px}h1{font-size:26px;font-weight:500;letter-spacing:0}h2{font-size:20px;font-weight:500}h3{font-size:17px}button{border-radius:8px;transition:background .16s,color .16s;touch-action:manipulation;min-height:44px}button:hover{filter:brightness(.98)}button:active{transform:none}button:disabled{cursor:not-allowed}.primary{background:var(--accent);box-shadow:none;border:0}.card{border-radius:var(--radius);padding:20px;background:#fff;border:1px solid var(--line);box-shadow:none}.title-row{margin:14px 0 20px}.back{padding:0 4px;background:transparent;font-size:14px}.tools{gap:12px}.tool,.continue-card{border-radius:10px;box-shadow:none;border:1px solid var(--line);background:#fff;padding:18px;min-height:110px}.tool strong{font-size:17px}.tool small,.continue-card p{font-size:14px}.tool .feature-icon{background:var(--tint);box-shadow:none;border-radius:9px}.tool img{object-fit:contain}.ready-banner{border:1px solid var(--line);background:#fff;box-shadow:none;border-radius:10px;min-height:64px}.continue-card>strong{font-size:17px}.section-row h2,.today-head h2{font-size:20px}.hotspot-list{padding:0 18px;border-radius:10px;border-color:var(--line)}.hotspot-list .news{padding:16px 0}.hotspot-list .news strong{font-size:16px}.news small{font-size:13px}.banner{border-radius:10px;box-shadow:none;min-height:160px;background:#4e366f}.banner h2{font-size:22px}.banner .banner-summary{font-size:14px}.banner button{background:linear-gradient(0deg,#20132ba6,transparent);padding:20px}.banner:not(.has-image) button{background:#503774}.grid{gap:14px;padding:0 16px}.item{border-radius:10px;border-color:var(--line);box-shadow:none}.item h3{font-size:16px}.item p{font-size:14px}.item small{font-size:12px}.rail{background:#ececf0;border-radius:8px}.rail button{font-size:14px;min-height:48px}.tabs{max-width:760px;height:calc(64px + env(safe-area-inset-bottom));background:#fff;box-shadow:none;border-color:var(--line)}.tabs .active .symbol img{background:transparent;border:0;box-shadow:none;transform:none;width:24px;height:24px}.tabs .symbol img.nav-icon{width:22px;height:22px}.tabs button{font-size:12px}.login-panel{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:none}.assistant-shell{background:transparent}.assistant-shell .composer{max-width:700px;background:#fff;border:1px solid #cec4de;box-shadow:0 4px 18px #29203912}.assistant-pet{display:none}.assistant-greeting{font-size:25px}.assistant-starters button{background:#fff;border:1px solid var(--line);font-size:15px}.composer button{background:var(--accent)}.live-intro{margin:0 0 20px;padding:0;border:0}.live-intro>small{display:none}.live-intro h1{font-size:26px;margin:10px 0 8px;line-height:1.35}.live-intro p{font-size:15px;margin:0;color:var(--muted)}.live-block{background:#fff;padding:20px;border:1px solid var(--line);border-radius:10px;margin:0 0 16px}.live-block-head{gap:10px;margin-bottom:18px}.live-step{font-size:12px;width:28px;height:28px;background:var(--tint);border:0;border-radius:7px;flex-shrink:0}.live-block-head h2{font-size:19px}.live-block-head p{font-size:14px;line-height:1.5}.live-category-grid{gap:10px}.live-studio .live-category-card,.live-studio .live-category-card:nth-child(n){padding:14px;min-height:86px;background:#faf9fc;border:1px solid #e3deeb;box-shadow:none;border-radius:8px}.live-studio .live-category-card strong{font-size:17px;color:var(--ink)}.live-studio .live-category-card small{font-size:13px;margin-top:5px;color:var(--muted)}.live-studio .live-category-card.is-active{background:#f0e8fa;border:1px solid var(--accent);box-shadow:inset 3px 0 var(--accent)}.live-studio .live-category-card.is-active strong{color:#593489}.live-studio .live-category-card.is-active small{color:#725a8e}.live-studio .live-category-check{bottom:13px!important}.live-studio .live-category-card:disabled{opacity:.55}.live-more{background:transparent;border:1px solid var(--line);border-radius:8px;padding:12px;margin-top:12px;font-size:15px}.live-more span{font-size:13px}.live-current{background:var(--tint);border:0;border-radius:8px;margin-top:12px;padding:12px}.live-current button{background:transparent;font-size:12px;color:var(--muted);pointer-events:none}.live-current strong{font-size:16px}.live-product-name{font-size:16px;padding:12px 0;border-color:var(--line);font-weight:500}.live-products-fold>summary{background:transparent;text-align:center;font-size:14px;border:1px solid var(--line);padding:10px}.fold-open{display:none}.live-products-fold[open] .fold-open{display:inline}.live-products-fold[open] .fold-closed{display:none}.live-submit{padding:16px 0;border:0;display:grid;gap:10px}.live-submit .primary{width:100%;font-size:16px}.live-submit .primary span{display:none}.live-submit small{font-size:14px}.live-result-panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;min-width:0}.live-result-panel h2{font-size:20px;margin:0}.live-result-panel .section-row button{font-size:14px}.live-script-body section{padding:20px 0;border-bottom:1px solid var(--line);font-size:16px;line-height:1.9}.result-empty{padding:60px 0;color:var(--muted);text-align:center}.result-empty strong{font-size:17px;color:var(--ink)}.result-empty p{font-size:14px}.category-dialog{width:min(600px,calc(100% - 40px));max-height:80dvh;border:1px solid var(--line);border-radius:14px;padding:24px;background:#fff;color:var(--ink)}.category-dialog::backdrop{background:#25212f66}.dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:20px}.dialog-head h2{margin:0;font-size:21px}.dialog-head p{font-size:14px;color:var(--muted)}.dialog-head button{padding:8px 14px;background:#f3f2f6}.skip-link{position:fixed;top:-80px;left:16px;z-index:100;background:white;padding:12px;color:var(--accent)}.skip-link:focus{top:10px}[hidden]{display:none!important}
@media(max-width:600px){.category-dialog{margin:auto 0 0;width:100%;max-width:none;max-height:85dvh;border-radius:18px 18px 0 0;padding:20px 20px calc(24px + env(safe-area-inset-bottom))}.page{padding:0 16px 24px}.header{padding:16px;margin-bottom:20px}.header h1{font-size:16px}.live-block{padding:16px}.live-more span{font-size:12px}.live-studio .live-category-card strong{font-size:16px}.live-intro h1{font-size:25px}.form-row{gap:10px}}
@media(min-width:1000px){.shell{max-width:1280px;padding:96px 28px 40px}.header{position:absolute;top:0;left:0;right:0;margin:0;padding:16px max(28px,calc((100vw - 1224px)/2));height:76px}.header .grow{max-width:1180px}.tabs{position:absolute;top:18px;bottom:auto;left:50%;transform:translateX(-20%);width:430px;max-width:none;height:44px;border:0;background:transparent;display:flex;gap:8px}.tabs button{padding:8px 16px;flex-direction:row;gap:7px;border-radius:8px;min-height:44px;font-size:15px}.tabs .symbol{width:22px;height:22px}.tabs .active{background:var(--tint)}.tabs img,.tabs .active .symbol img{width:22px;height:22px;padding:0}.header .identity-entry{right:0}.page.narrow{max-width:1120px;margin:auto}.page.full{max-width:1180px;margin:auto}.tools{grid-template-columns:repeat(4,minmax(0,1fr))}.banner{min-height:220px}.catalog{grid-template-columns:160px minmax(0,1fr)}.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.rail button{text-align:left;padding:13px 18px}.live-workspace{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(0,1.1fr);gap:24px;align-items:start}.live-intro{grid-column:1/-1}.live-result-panel{position:sticky;top:24px;max-height:calc(100dvh - 48px);overflow:auto;min-height:460px}.assistant-shell .chat{max-width:800px;margin:auto}.assistant-shell .composer{bottom:28px}.assistant-starters{max-width:800px}.detail-image{max-height:460px;object-fit:contain;background:white}.stack{max-width:900px;margin:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
.live-studio .live-category-card>.live-category-check{color:#fff!important;background:var(--accent)!important;font-size:12px!important}.tool .tool-icon{box-shadow:none;background:var(--tint);border:0;border-radius:8px}.ready-entry{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:none;min-height:68px}.ready-entry strong{font-size:16px}.ready-entry small{font-size:14px}.ready-mark{box-shadow:none;background:var(--accent)}.live-more{border-style:solid}
.workspace-intro{padding:0 0 20px;margin-bottom:20px;border-color:var(--line);overflow:visible}.workspace-intro h1{font-size:26px;margin:8px 0}.workspace-intro p{font-size:15px;max-width:none;color:var(--muted)}.workspace-intro .intro-emblem{display:none}.section-kicker{font-size:12px;color:var(--muted);letter-spacing:0}.learning-overview,.recap-workbench{background:white;border:1px solid var(--line);border-radius:10px;box-shadow:none;padding:20px}.learning-overview p,.learning-overview small{font-size:14px}.learning-overview strong{font-size:20px}.continue-learning{background:var(--accent);box-shadow:none;font-size:16px}.lesson-card{border-radius:10px;border-color:var(--line);background:#fff;box-shadow:none;padding:18px}.lesson-info>strong{font-size:17px}.lesson-meta,.lesson-status,.lesson-footer{font-size:13px}.lesson-description{font-size:14px;line-height:1.6}.lesson-number,.section-number{background:var(--tint);box-shadow:none}.learning-list-head{margin-top:24px}.learning-list-head h2{font-size:20px}.lesson-section h2{font-size:19px}.lesson-section p{font-size:16px;line-height:1.9}.lesson-section{border-color:var(--line)}.recap-process{font-size:13px;padding:0 0 20px}.recap-process b{font-size:12px}.block-heading h2{font-size:18px}.block-heading small,.field-tip,.upload-status{font-size:13px}.block-icon{font-size:20px;background:var(--tint);border-radius:8px}.recap-workbench .field-label{font-size:15px}.recap-upload{border-radius:9px;background:#faf9fc}.recap-upload strong{font-size:15px}.recap-upload>span:last-of-type{font-size:13px}.recap-submit p{font-size:14px}.recap-submit button{background:var(--accent);font-size:16px}.recap-submit>small{font-size:12px}.metric-main{background:#f5f1fa;border-radius:8px}.profile{border-radius:10px}.profile h1{font-size:24px}.profile small{font-size:13px}.login-password-hint{font-size:13px}
@media(min-width:1000px){.lesson-path{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.learning-overview{max-width:none}.recap-view{max-width:860px;margin:auto}}
[data-live-status]:empty{display:none}[data-live-status]{color:#a02e46;font-size:14px;line-height:1.6;text-align:left}.live-script-body section:first-child{padding-top:14px}
/* Mobile refinements: stable header alignment and compact recap controls. */
.header>.grow{padding-right:0;min-width:0;flex:1}.header>.identity-entry{position:static;inset:auto;transform:none;align-self:center;flex:0 0 auto;margin-left:4px;min-height:44px;height:44px;padding:0 12px;white-space:nowrap;border-radius:24px}.header>img{flex:0 0 auto}.header>.grow h1{line-height:1.4}.header>.grow small{line-height:1.5}
.back{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;margin:0 0 14px;background:#eee6f8;border:1px solid #dacbed;border-radius:9px;color:#643a9f;font-size:15px;font-weight:500}.back:hover{background:#e6d8f4}.workspace-intro{margin-top:0}.recap-workbench{padding:0 16px}.recap-block{padding:16px 0}.recap-block .block-heading{margin-bottom:12px;gap:9px}.recap-block .block-heading h2{font-size:17px;margin:2px 0}.recap-block .block-heading small{font-size:12px}.recap-block .block-icon{width:30px;height:30px;font-size:18px}.recap-workbench textarea{min-height:76px;height:84px;max-height:240px;padding:10px 12px;font-size:16px;line-height:1.5;border-radius:8px}.recap-workbench #recap-metrics{height:96px;min-height:84px}.recap-workbench textarea::placeholder{font-size:14px;line-height:1.5}.recap-workbench .field-label{font-size:14px;margin:0 0 7px}.field-tip{margin:7px 0 0;font-size:12px}.recap-upload{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:9px;row-gap:2px;padding:10px 12px;min-height:64px;margin:0;align-items:center;text-align:left;border-radius:8px}.recap-upload .upload-plus{grid-row:1/3;width:28px;height:28px;font-size:21px}.recap-upload strong{font-size:14px;line-height:1.5}.recap-upload>span:last-of-type{font-size:12px;line-height:1.5}.recap-upload input{min-height:0}.upload-status{margin:7px 0 12px;font-size:12px;min-height:0}.recap-process{padding-bottom:14px}.recap-submit{padding:14px 0}.recap-submit p{font-size:13px}.recap-submit>small{font-size:12px}
/* Restore the existing animated Xiaode character above the composer. */
.assistant-shell .assistant-pet{display:block;width:84px;height:112px;right:12px;bottom:calc(100% - 18px);z-index:1;pointer-events:none}.assistant-shell .chat{padding-bottom:230px}.assistant-shell .composer{bottom:calc(76px + env(safe-area-inset-bottom));border-radius:14px}
/* Translucent bottom navigation with a raised brand mark. */
@media(max-width:999px){.tabs{height:calc(68px + env(safe-area-inset-bottom));padding:0 8px env(safe-area-inset-bottom);background:rgba(255,255,255,.78);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);border-top:1px solid rgba(255,255,255,.9);box-shadow:0 -4px 20px #422c6510;overflow:visible}.tabs button{position:relative;overflow:visible;gap:2px;min-height:60px;background:transparent}.tabs .symbol{height:28px;width:46px}.tabs button[data-go=home] .symbol{height:38px}.tabs .symbol .home-logo,.tabs .active .symbol .home-logo{width:49px;height:49px;max-width:none;padding:3px;border:2px solid white;border-radius:50%;background:#fff;box-shadow:0 3px 12px #5938882e;transform:translateY(-11px);object-fit:contain}.tabs button[data-go=home]{padding-bottom:4px}.tabs button[data-go=home].active .symbol .home-logo{box-shadow:0 0 0 2px #e7dcf5,0 4px 14px #59388832}.shell{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.header{gap:9px;padding:12px 16px}.header>.grow h1{font-size:15px}.header>.grow small{font-size:11px}.header>img{width:36px;height:36px}.header>.identity-entry{font-size:13px;padding:0 10px;gap:5px}.header .profile-glyph{width:20px;height:20px}}
@media(min-width:1000px){.tabs .home-logo{width:24px;height:24px}.assistant-shell .composer{bottom:28px}.header>.identity-entry{margin-left:16px}}
@media(max-width:350px){.header{gap:7px;padding-inline:12px}.header>.grow h1{font-size:14px}.header>.identity-entry{padding:0 8px}.header>.identity-entry .profile-glyph{display:none}}
#banner-area{touch-action:pan-y pinch-zoom}.banner-link{touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}.banner img{pointer-events:none;-webkit-user-drag:none}.banner .dots{bottom:0}.banner .dots button{width:44px;height:44px;min-height:44px}.banner .dots button:after{inset:19px;background:#ffffff80}.banner .dots button.active:after{background:white}
/* Compact secondary-page headers. */
.page-heading{display:flex;align-items:center;gap:12px;min-width:0;margin:0 0 18px}.page-heading .back{flex:0 0 auto;margin:0;padding:8px 12px;min-height:44px;white-space:nowrap}.page-heading h1{font-size:24px;line-height:1.4;margin:0;min-width:0;overflow-wrap:anywhere}.live-intro .page-heading{margin-bottom:10px}.live-intro .page-heading h1{font-size:24px;margin:0}.catalog-heading{display:flex;gap:10px;align-items:center;justify-content:space-between;min-width:0;margin-bottom:18px}.catalog-heading .page-heading{margin:0;flex:1}.catalog-heading>button{flex:none;font-size:13px;padding:8px 10px}.page-heading+.detail-lead{margin-top:0}
.nav-brand-marker{display:none}
@media(max-width:999px){.tabs{padding-inline:0;isolation:isolate}.tabs .nav-brand-marker{position:absolute;display:grid;place-items:center;top:-13px;left:calc(12.5% + var(--active-index,0) * 25%);transform:translateX(-50%);width:49px;height:49px;border:2px solid #fff;border-radius:50%;background:#fff;box-shadow:0 0 0 2px #e7dcf5,0 4px 14px #59388832;pointer-events:none;z-index:2;transition:left 320ms cubic-bezier(.22,.8,.25,1)}.nav-brand-marker img{display:block;width:43px;height:43px;padding:2px;background:#fff;border-radius:50%;box-shadow:none;object-fit:contain}.tabs button[data-go=home],.tabs button{padding-bottom:0;gap:2px}.tabs button[data-go=home] .symbol,.tabs button .symbol{height:28px;width:46px}.tabs .active .symbol img{opacity:0}.tabs .active{transition:color 180ms ease}.tabs button .symbol img{transition:opacity 140ms ease}.page-heading h1,.live-intro .page-heading h1{font-size:22px}.assistant-greeting{margin-top:8px}}
@media(prefers-reduced-motion:reduce){.tabs .nav-brand-marker{transition:none}}
/* Unified rounded controls, without arrow decorations. */
button{border-radius:16px;font-weight:500;transition:background .16s,box-shadow .16s,transform .12s}button:active{transform:scale(.98)}button.primary,.back,.actions>button,.live-more,.login-panel>button{border-radius:999px}.primary{background:linear-gradient(180deg,#8057c0 0%,#6c42ad 100%);box-shadow:inset 0 1px 0 #ffffff35,0 3px 8px #5e3c9520}.primary:active{box-shadow:inset 0 2px 4px #40256a26;transform:translateY(1px)}.back{box-shadow:inset 0 1px 0 #ffffffb3}.tool,.continue-card,.live-studio .live-category-card,.live-studio .live-category-card:nth-child(n){border-radius:16px;text-align:left}.tool .tool-icon{margin-left:0;margin-right:0}.tool strong,.tool small,.live-category-card strong,.live-category-card small,button.news strong,button.news small{text-align:left}.live-more{justify-content:space-between;gap:12px;text-align:left}.tabs button{border-radius:12px;text-align:center}.tabs button:active{transform:none}.assistant-starters button{justify-content:flex-start;gap:8px;text-align:left}.assistant-shell .composer button{font-size:14px;border-radius:50%;padding:0;min-width:44px}.banner .banner-link{align-items:flex-start;text-align:left}.banner .banner-link small,.banner .banner-link h2{text-align:left}.banner .banner-link{border-radius:0}.login-remember{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.login-panel .login-remember label{display:flex;align-items:center;gap:8px;margin:0;min-height:44px;font-size:14px}.login-panel .login-remember input{width:20px;height:20px;min-height:0;margin:0;padding:0}.login-panel [type=submit]{width:100%}.login-panel .login-password-hint{font-size:13px;line-height:1.6}.login-panel>button{margin:4px 0}.login-panel .error:empty{display:none}
@media(prefers-reduced-motion:reduce){button{transition:none!important}button:active,.primary:active{transform:none}}
.login-panel{padding:20px;margin:0 auto;max-width:440px}.login-panel>img{display:block;margin:0 auto 12px;width:56px;height:56px}.login-panel>h1,.login-panel>p{text-align:center}.login-panel>p{font-size:14px;color:var(--muted);line-height:1.6}.login-panel form{gap:12px;margin:18px 0 12px}.login-panel form>label{margin:0;gap:6px}.login-panel form>label input{margin-top:0}.login-panel>button{width:100%;font-size:14px;min-height:44px;padding:10px 14px}.assistant-starters button>span:last-child:empty{display:none}.banner-link .banner-copy{width:100%}.banner-link .banner-copy h2,.banner-link .banner-copy small{max-width:100%;margin-left:auto;margin-right:auto}

/* Center actions; keep content cards and reading lists left aligned. */
button.primary,.learning-overview .continue-learning,.recap-submit button.primary,.actions>button,.login-panel>button,.page-heading .back{justify-content:center;align-items:center;text-align:center}
.continue-learning>span:empty,.recap-submit button>span:empty,.live-submit button>span:empty{display:none}
.tool,.continue-card,.item,.news,.live-category-card{justify-content:flex-start;text-align:left}
.tool strong,.tool small,.continue-card strong,.continue-card p,.item h3,.item p,.item small,.news strong,.news small,.live-category-card strong,.live-category-card small{text-align:left}

/* Keep emphasis restrained; body copy and controls use regular weight. */
strong,b{font-weight:500}
h1,h2,.page-heading h1,.live-intro .page-heading h1,.header .grow h1{font-weight:600}
button.primary,.learning-overview .continue-learning,.live-submit .primary,.recap-submit button,.back,.identity-entry,.tabs button,.tabs .active,.rail button,.rail button.active,.live-studio .live-more,.live-products-fold>summary,.login-panel label,.recap-workbench .field-label{font-weight:400}
.live-product-name,.live-studio .live-category-card strong,.live-product-picker .live-choice strong,.tool strong,.continue-card>strong,.news strong,.item h3,.lesson-info>strong,.ready-entry strong{font-weight:500}

/* Keep original images available to the native long-press save menu. */
.overlay-save-tip{color:var(--accent);font-size:17px;font-weight:500}.overlay-original{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;-webkit-touch-callout:default;user-select:auto;-webkit-user-select:auto;background:#fff;margin-bottom:20px}
