/* Phase 1: 每日扩句首页与详情。覆盖旧样式，旧剧集页面保持原样。 */
.detail-hero-actions .quiet-action svg,.layer-play svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.library-search>svg{flex:none;width:19px;height:19px;fill:none;stroke:#64836d;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.detail-hero-actions .quiet-action{gap:7px}
.layer-play{display:inline-flex;align-items:center;gap:8px}
:root { --m-forest:#153d31; --m-ink:#18342c; --m-muted:#61776d; --m-line:#dce7df; --m-mint:#e8f5ea; --m-lime:#d7ef8c; --m-paper:#f8faf5; }
html { scroll-behavior:smooth; }
body.growth-home,body.daily-detail-page { min-height:100vh; height:auto; overflow:auto; background:var(--m-paper); color:var(--m-ink); }
body.growth-home { background:radial-gradient(ellipse at 75% 0%,#e2f2e7 0%,transparent 38%),var(--m-paper); }
.growth-nav { width:min(1180px,100%); max-width:none; height:76px; padding:0 32px; border-bottom:1px solid rgba(21,61,49,.09); }
.growth-brand { font-size:20px; letter-spacing:-.045em; }
.growth-brand span { width:36px; height:36px; border-radius:12px; background:var(--m-forest); color:var(--m-lime); }
.growth-nav-links { display:flex; align-items:center; gap:8px; }
.growth-nav-links a { display:inline-flex; align-items:center; min-height:44px; padding:0 15px; border-radius:999px; color:#5d7468; font-size:13px; font-weight:700; text-decoration:none; transition:background .18s,color .18s; }
.growth-nav-links a:hover,.growth-nav-links a[aria-current="page"] { background:#e7f1e7; color:var(--m-forest); }
.growth-home-main { max-width:1180px; padding:66px 32px 100px; }
.growth-intro { display:grid; grid-template-columns:1fr .93fr; gap:clamp(28px,5vw,78px); align-items:center; min-height:400px; }
.growth-overline { color:#39795c; font-size:12px; letter-spacing:.14em; }
.growth-intro h1 { margin-top:22px; font-size:clamp(46px,5.4vw,76px); line-height:1.15; letter-spacing:-.06em; }
.growth-intro h1 em { color:#368955; font-family:inherit; font-style:normal; font-weight:800; }
.growth-intro>div:first-child>p:last-of-type { max-width:510px; margin-top:20px; color:var(--m-muted); font-size:16px; line-height:1.85; }
.hero-cta,.primary-action { display:inline-flex; justify-content:space-between; align-items:center; gap:26px; min-height:50px; padding:0 22px; border-radius:12px; background:var(--m-forest); color:white; font-size:14px; font-weight:800; text-decoration:none; transition:transform .18s,background .18s; }
.hero-cta { margin-top:28px; }.hero-cta:hover,.primary-action:hover { background:#235a43; transform:translateY(-2px); }
.hero-cta span,.primary-action span { color:var(--m-lime); font-size:18px; }
.sentence-preview { position:relative; padding:30px 28px 24px; border:1px solid #d6e7d8; border-radius:30px; background:linear-gradient(145deg,#fff 15%,#edf8e9); box-shadow:0 22px 65px rgba(24,73,43,.09); transform:rotate(-1deg); }
.preview-eyebrow { display:block; margin-bottom:25px; color:#7b9583; font-size:12px; font-weight:800; letter-spacing:.06em; }
.sentence-preview p { margin-top:12px; padding:17px 18px; border-radius:14px; background:white; box-shadow:0 4px 20px rgba(20,70,40,.05); font-family:Georgia,"Times New Roman",serif; font-size:clamp(17px,2vw,25px); line-height:1.4; }
.sentence-preview p:first-of-type { width:65%; color:#75877a; }.sentence-preview p:nth-of-type(2) { width:82%; }
.sentence-preview mark,.layer-body mark { padding:1px 3px; border-radius:4px; background:#daf2bb; color:var(--m-forest); }
.preview-foot { display:block; margin-top:22px; color:#5c8064; font-size:12px; font-weight:700; text-align:right; }
.home-progress { display:flex; align-items:center; gap:22px; margin-top:66px; padding:23px 28px; border:1px solid #d9e8d9; border-radius:22px; background:#fff; box-shadow:0 12px 35px rgba(30,70,45,.045); }
.progress-medal { flex:none; width:76px; height:76px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:6px solid #dcefc4; border-radius:50%; color:var(--m-forest); }
.progress-medal strong { font-size:24px; line-height:1; }.progress-medal span { margin-top:4px; font-size:10px; }
.home-progress>div:nth-child(2) { flex:1; min-width:0; }.home-progress small { color:#5d8569; font-size:11px; font-weight:800; }.home-progress h2 { margin-top:5px; font-size:20px; }.home-progress p { margin-top:5px; color:var(--m-muted); font-size:12px; line-height:1.6; }
.home-progress>a { display:flex; align-items:center; gap:17px; min-height:44px; padding:0 16px; border-radius:10px; background:#e8f4e6; color:var(--m-forest); font-size:13px; font-weight:800; text-decoration:none; white-space:nowrap; }
.home-progress>a:hover { background:#d7eccf; }
.published-section { margin-top:76px; scroll-margin-top:24px; }.published-heading { align-items:end; margin-bottom:22px; }.published-heading small { color:#518161; font-size:11px; font-weight:800; letter-spacing:.12em; }.published-heading h2 { margin-top:7px; font-size:clamp(26px,3vw,35px); letter-spacing:-.04em; }.published-heading>span { color:#71867a; }
.library-tools { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:14px; }
.library-filters { display:flex; gap:5px; padding:4px; border:1px solid var(--m-line); border-radius:12px; background:#fff; }.library-filters button { min-height:42px; padding:0 15px; border:0; border-radius:9px; background:transparent; color:#64776a; font:inherit; font-size:13px; font-weight:750; cursor:pointer; }.library-filters button:hover { background:#eff7ed; }.library-filters button.is-active { background:var(--m-forest); color:white; }
.library-search { display:flex; align-items:center; gap:8px; width:min(320px,100%); min-height:50px; padding:0 16px; border:1px solid var(--m-line); border-radius:12px; background:#fff; color:#64836d; }.library-search:focus-within { border-color:#439364; box-shadow:0 0 0 3px #d9efda; }.library-search span { font-size:26px; line-height:1; }.library-search input { width:100%; border:0; outline:0; background:transparent; color:var(--m-ink); font:inherit; font-size:13px; }
.day-nav { top:0; padding:6px 0 11px; background:var(--m-paper); }.day-chip { min-width:44px; min-height:44px; display:grid; place-items:center; padding:0 11px; border:1px solid var(--m-line); box-shadow:none; }.day-chip.done { border-color:var(--m-forest); }
.daily-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.published-card { min-height:245px; grid-template-columns:64px minmax(0,1fr); grid-template-rows:1fr auto; align-items:start; gap:12px 18px; padding:25px; border:1px solid #e1e9df; border-radius:20px; box-shadow:0 7px 22px rgba(20,70,40,.035); }
.published-card:hover { border-color:#8fbf98; box-shadow:0 16px 35px rgba(20,70,40,.09); }
.published-day { padding-right:14px; border-color:#dce7dc; }.published-day strong { font-size:28px; }.published-copy { min-width:0; }.card-state { display:block; margin-bottom:12px; color:#718579; font-size:11px; font-weight:750; }.card-state.done { color:#237548; }.published-copy h3 { font-size:18px; line-height:1.4; }.published-seed { overflow-wrap:anywhere; font-size:16px; }.published-tags { margin-top:15px; }.published-tags span { background:#f0f6ec; }.published-go { grid-column:2; justify-content:flex-start; align-items:center; color:#277446; font-size:12px; }.published-go span { font-size:18px; }
.library-empty { grid-column:1/-1; padding:50px 24px; border:1px dashed #bed5c2; border-radius:18px; background:white; text-align:center; }.library-empty strong { font-size:19px; }.library-empty p { margin-top:9px; color:var(--m-muted); font-size:13px; }.library-empty button,.detail-error button { min-height:44px; margin-top:18px; padding:0 18px; border:0; border-radius:10px; background:var(--m-forest); color:white; font:inherit; cursor:pointer; }
.old-content-entry { margin-top:72px; padding:31px; border:0; border-radius:22px; background:var(--m-forest); color:white; }.old-content-entry small { color:#a9d3b6; }.old-content-entry h2 { margin-top:7px; font-size:24px; }.old-content-entry p { color:#b5cfc0; line-height:1.6; }.old-content-entry>a { min-height:44px; display:flex; align-items:center; color:var(--m-lime); }
.friend-section { margin-top:70px; opacity:.88; }.friend-card { border:1px solid #e4eae4; box-shadow:none; }
/* 每日详情 */
body.daily-detail-page { background:var(--m-paper); }.daily-detail-shell { width:min(1100px,100%); margin:0 auto; padding:23px 32px 100px; }.detail-breadcrumb { display:flex; align-items:center; gap:12px; min-height:44px; color:#84968a; font-size:12px; }.detail-breadcrumb a { display:flex; align-items:center; min-height:44px; color:#4d7960; font-weight:750; text-decoration:none; }.detail-breadcrumb a:hover { text-decoration:underline; }.detail-breadcrumb span::before { content:"/"; margin-right:12px; color:#aab7ac; }
.daily-detail-content>.tm-loading { min-height:300px; }.detail-hero { display:grid; grid-template-columns:1.2fr .8fr; gap:38px; align-items:center; padding:50px 0 65px; }.detail-kicker,.detail-section-head span,.transfer-preview span { color:#397e58; font-size:11px; font-weight:850; letter-spacing:.12em; }.detail-hero h1 { max-width:680px; margin-top:18px; font-size:clamp(34px,4.3vw,56px); line-height:1.18; letter-spacing:-.045em; }.detail-hero-text>p { max-width:600px; margin-top:19px; color:var(--m-muted); font-size:15px; line-height:1.85; }.detail-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:30px; }.quiet-action { min-height:50px; padding:0 17px; border:1px solid #cbdccf; border-radius:12px; background:#fff; color:var(--m-forest); font:inherit; font-size:13px; font-weight:750; cursor:pointer; }.quiet-action:hover { background:#e9f4e9; }.detail-completion { display:block; margin-top:18px; color:#678273; font-size:12px; }
.detail-seed { padding:34px 30px 0; overflow:hidden; border-radius:26px; background:var(--m-forest); color:white; box-shadow:0 22px 50px rgba(14,59,37,.12); }.detail-seed small { color:#a7cab0; font-size:12px; }.detail-seed strong { display:block; margin-top:28px; color:#e5f6c1; font-family:Georgia,serif; font-size:clamp(33px,3.5vw,49px); font-weight:500; line-height:1.2; overflow-wrap:anywhere; }.detail-seed>span { display:block; margin-top:12px; color:#c6d9ca; font-size:14px; }.seed-bottom { display:flex; justify-content:space-between; margin:34px -30px 0; padding:17px 30px; border-top:1px solid #3b6551; color:#c9ddb2; font-size:12px; font-weight:750; }
.layer-section { padding-top:14px; }.detail-section-head { display:flex; justify-content:space-between; align-items:end; gap:20px; padding-bottom:25px; border-bottom:1px solid var(--m-line); }.detail-section-head h2 { margin-top:7px; font-size:30px; letter-spacing:-.04em; }.detail-section-head p { margin-top:9px; color:var(--m-muted); font-size:13px; }.detail-section-head .layer-count { padding:8px 12px; border-radius:99px; background:#eaf3e8; letter-spacing:0; white-space:nowrap; }
.layer-list { margin-top:25px; }.layer-card { display:grid; grid-template-columns:55px minmax(0,1fr); gap:15px; }.layer-rail { position:relative; display:flex; justify-content:center; }.layer-card:not(:last-child) .layer-rail::after { content:""; position:absolute; top:48px; bottom:0; width:2px; background:#d9e8d9; }.layer-number { z-index:1; display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:var(--m-forest); color:#dcf4b0; font-family:Georgia,serif; font-size:16px; }.layer-body { min-width:0; margin-bottom:16px; padding:25px 28px; border:1px solid #e2eae0; border-radius:18px; background:#fff; }.layer-topline { display:flex; flex-wrap:wrap; gap:9px; align-items:center; color:#778b7c; font-size:11px; font-weight:750; }.layer-kind { padding:5px 8px; border-radius:5px; background:#edf5e9; color:#347b50; }.layer-body h3 { margin-top:18px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(21px,2.4vw,31px); font-weight:500; line-height:1.45; overflow-wrap:anywhere; }.layer-zh { margin-top:9px; color:#68796d; font-size:14px; line-height:1.6; }.layer-note { margin-top:19px; padding:14px 17px; border-left:3px solid #a9d8a8; background:#f6faf4; }.layer-note strong { color:#4c7c57; font-size:11px; }.layer-note p { margin-top:4px; color:#5a6f61; font-size:13px; line-height:1.65; }.layer-actions { margin-top:16px; }.layer-play { min-height:44px; padding:0 15px; border:1px solid #cbded0; border-radius:10px; background:white; color:var(--m-forest); font:inherit; font-size:13px; font-weight:800; cursor:pointer; }.layer-play:hover,.layer-play.playing { background:#e6f4e7; }.layer-play:disabled { opacity:.65; cursor:wait; }.no-audio { color:#87998b; font-size:12px; }
.transfer-preview { display:flex; justify-content:space-between; align-items:center; gap:24px; margin:35px 0 0 70px; padding:31px; border-radius:20px; background:#e6f2dc; }.transfer-preview h2 { margin-top:7px; font-size:25px; }.transfer-preview p { margin-top:8px; color:#496c52; font-size:14px; line-height:1.6; }.transfer-preview>a { flex:none; }.detail-status { min-height:1.5em; color:#476d52; font-size:13px; }.detail-error { padding:55px 25px; border-radius:18px; background:white; text-align:center; }.detail-error h1 { font-size:26px; }.detail-error p { margin-top:10px; color:var(--m-muted); }.detail-error a { display:inline-flex; min-height:44px; align-items:center; margin:18px 0 0 15px; color:var(--m-forest); }
button:active,a:active { transform:translateY(1px); }
button:focus-visible,a:focus-visible,input:focus-visible { outline:3px solid #66b07b; outline-offset:3px; }
@media (max-width:820px) { .growth-intro { grid-template-columns:1fr; }.sentence-preview { max-width:650px; transform:none; }.daily-list { grid-template-columns:1fr; }.detail-hero { grid-template-columns:1fr; }.detail-seed { max-width:570px; }.transfer-preview { align-items:flex-start; flex-direction:column; } }
@media (max-width:620px) { .growth-nav { height:64px; padding:0 18px; }.growth-nav-links { gap:0; }.growth-nav-links a { padding:0 9px; font-size:12px; }.growth-home-main { padding:42px 18px 70px; }.growth-intro h1 { font-size:clamp(40px,9vw,56px); }.growth-intro>div:first-child>p:last-of-type { font-size:14px; }.sentence-preview { padding:22px 18px; border-radius:20px; }.sentence-preview p { padding:12px; font-size:17px; }.sentence-preview p:first-of-type,.sentence-preview p:nth-of-type(2) { width:100%; }.home-progress { align-items:flex-start; flex-wrap:wrap; gap:15px; margin-top:45px; padding:18px; }.progress-medal { width:62px; height:62px; }.home-progress h2 { font-size:16px; }.home-progress>a { width:100%; justify-content:space-between; }.published-section { margin-top:55px; }.library-tools { align-items:stretch; flex-direction:column; }.library-filters { justify-content:space-between; }.library-filters button { flex:1; padding:0 8px; }.library-search { max-width:none; }.published-card { grid-template-columns:50px minmax(0,1fr); min-height:205px; padding:18px; gap:10px 13px; }.published-day { padding-right:8px; }.published-day strong { font-size:25px; }.published-copy h3 { font-size:17px; }.old-content-entry { margin-top:55px; }.daily-detail-shell { padding:13px 18px 75px; }.detail-hero { gap:25px; padding:31px 0 48px; }.detail-hero h1 { font-size:clamp(32px,8.3vw,43px); }.detail-seed { padding:26px 23px 0; }.seed-bottom { margin:27px -23px 0; padding:15px 23px; }.detail-section-head h2 { font-size:25px; }.layer-card { grid-template-columns:39px minmax(0,1fr); gap:8px; }.layer-number { width:34px; height:34px; font-size:13px; }.layer-card:not(:last-child) .layer-rail::after { top:38px; }.layer-body { padding:18px; }.layer-body h3 { font-size:21px; }.transfer-preview { margin-left:0; padding:24px; } }
@media (max-width:350px) { .growth-brand { font-size:17px; }.growth-nav-links a { padding:0 6px; font-size:11px; }.published-card { grid-template-columns:42px minmax(0,1fr); }.published-day strong { font-size:22px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.hero-cta,.primary-action,.published-card,.growth-nav-links a { transition:none; } }
/* 逐词练习：用明确的关卡和完成状态补足原有舞台。 */
body.grow-page { background:var(--m-paper); }
.grow-topbar { max-width:850px; }.grow-topbar>a { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; background:#e9f3e8; color:var(--m-forest); }.grow-progress { height:7px; }.grow-stage { width:min(780px,calc(100% - 36px)); }
.grow-heading p { color:#398052; }.grow-heading h1 { color:var(--m-ink); }.seed-card { background:var(--m-forest); }.seed-card strong { color:#e6f5b7; }
.grow-step-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:26px; }.grow-steps { display:flex; gap:8px; min-width:0; overflow-x:auto; padding:3px 0 5px; scrollbar-width:thin; }.grow-step-head>button { flex:none; min-height:44px; padding:0 11px; border:0; border-radius:9px; background:#e9f3e8; color:var(--m-forest); font:inherit; font-size:12px; font-weight:750; cursor:pointer; }.grow-step-head>button:hover { background:#d9ecd7; }.grow-step { flex:none; display:grid; place-items:center; width:36px; height:36px; border:1px solid #cbdaca; border-radius:50%; background:#fff; color:#859486; font-size:12px; font-weight:800; }.grow-step.done { background:#dff0d9; border-color:#b2d7ad; color:#2c7440; }.grow-step.current { width:42px; height:42px; border-color:var(--m-forest); background:var(--m-forest); color:#ddf5b0; box-shadow:0 4px 13px rgba(20,70,45,.17); }
.grow-task { margin-top:28px; border:1px solid #e1eae0; box-shadow:0 12px 38px rgba(20,60,40,.055); }.grow-task h2 { color:var(--m-ink); }.word-stage { border:1px solid #e6eee3; background:#f6faf4; }.growth-word.done { color:#26754a; border-color:#26754a; }.growth-word.active { color:var(--m-forest); border-color:#318152; }.grow-actions>div button { min-height:44px; }.grow-actions>#checkGrowth { min-height:48px; background:var(--m-forest); }.grow-audio-status { min-height:20px; margin-top:9px; color:#688071; font-size:12px; line-height:1.5; }
.grow-finish { margin-top:28px; padding:36px; border-radius:20px; background:#e8f4dc; }.grow-finish>span { color:#3a8557; font-size:12px; font-weight:800; }.grow-finish h2 { margin-top:9px; font-size:28px; letter-spacing:-.03em; }.grow-finish p { margin-top:9px; color:#53715b; font-size:14px; line-height:1.65; }.grow-finish a { display:inline-flex; align-items:center; min-height:44px; margin-top:17px; color:var(--m-forest); font-size:14px; font-weight:800; text-decoration:none; }
.grow-actions>div button:last-child { min-width:0; border:0; background:transparent; color:#677c6d; font-size:13px; font-weight:600; }
@media (max-width:620px) { .grow-stage { margin-top:15px; }.grow-task { padding:23px 19px; }.grow-finish { padding:26px 22px; }.grow-actions { align-items:stretch; flex-direction:column; }.grow-actions>div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; gap:4px; }.grow-actions>div button,.grow-actions>div button:last-child { min-height:48px; padding:6px 2px; font-size:12px; }.grow-actions>#checkGrowth { width:100%; } }
/* 快捷键直接和动作绑定显示，重听后也不会被动态状态文字覆盖。 */
.grow-actions .grow-shortcut-actions { display:flex; flex-wrap:wrap; align-items:stretch; gap:8px; }
.grow-actions .grow-shortcut-actions .shortcut-action { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:6px; min-width:122px; min-height:64px; padding:10px 12px; border:1px solid #d5e4d5; border-radius:11px; background:#f8fbf6; color:var(--m-forest); text-align:left; font:inherit; font-size:12px; font-weight:750; cursor:pointer; }
.grow-actions .grow-shortcut-actions .shortcut-action:hover { border-color:#8cbf94; background:#eaf6e8; }
.grow-actions .grow-shortcut-actions .shortcut-action:active { background:#dcefdc; }
.action-shortcut { display:flex; align-items:center; gap:3px; color:#63806b; font-size:10px; font-weight:600; white-space:nowrap; }
.action-shortcut kbd { min-width:18px; padding:2px 4px; border:1px solid #cbdccf; border-radius:4px; background:#fff; color:#315b3d; font:inherit; font-size:10px; text-align:center; box-shadow:0 1px 0 #cbdccf; }
@media (max-width:620px) { .grow-actions .grow-shortcut-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.grow-actions .grow-shortcut-actions .shortcut-action { width:100%; min-width:0; min-height:64px; padding:9px 11px; font-size:12px; }.grow-actions .grow-shortcut-actions #playGrowth { grid-column:1/-1; } }
.grow-actions .grow-shortcut-actions .shortcut-action .action-name { color:var(--m-forest); }
.grow-actions .grow-shortcut-actions .shortcut-action .action-shortcut { color:#63806b; }
.grow-actions .grow-shortcut-actions .shortcut-action .action-shortcut kbd { color:#315b3d; }
/* 练习时让英文输入成为主视觉，情境与中文释义只作辅助。 */
.grow-task #growthLabel { color:#6f9277; font-size:11px; font-weight:700; letter-spacing:.04em; }
.grow-task #growthPrompt { margin-top:5px; color:#526b5b; font-size:16px; font-weight:600; line-height:1.5; letter-spacing:0; }
.grow-task .word-stage-label { margin-top:18px; color:#829387; font-size:11px; font-weight:500; letter-spacing:0; line-height:1.5; }
.grow-task #growthZh { margin-top:10px; color:#829187; font-size:12px; font-weight:500; letter-spacing:0; line-height:1.5; }
#localDemoLink[hidden] { display: none !important; }
