:root{
  --ink:#1B334D;--ink2:#48647E;--ink3:#8298AB;--paper:#F7F2E7;--card:#FFFDF8;
  --coral:#FF6B4A;--coral-d:#E0502F;--teal:#22B3A0;--teal-d:#128F80;--mint:#DDF3EE;
  --mustard:#F4B73D;--blush:#FFEDE7;--line:#ECE3D1;--shadow:0 10px 30px rgba(27,51,77,.10);
  --radius:18px;--font-d:"Baloo 2","Nunito","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --font-b:"PingFang SC","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{font-family:var(--font-b);color:var(--ink);background:var(--paper);line-height:1.6}
a{color:inherit;text-decoration:none;cursor:pointer}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.hidden{display:none!important}
/* 顶部导航 */
.nav{position:sticky;top:0;z-index:50;background:rgba(247,242,231,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;gap:22px;height:64px;max-width:1180px;margin:0 auto;padding:0 22px}
.logo{font-family:var(--font-d);font-weight:800;font-size:21px;display:flex;align-items:center;gap:9px}
.logo i{width:32px;height:32px;border-radius:10px;background:var(--ink);display:grid;place-items:center;font-style:normal}
.logo i svg{width:19px;height:19px;stroke:#5FD6C3;fill:none;stroke-width:2}
.nav-links{display:flex;gap:20px;font-size:14.5px;font-weight:600;color:var(--ink2)}
.nav-links a:hover{color:var(--coral-d)}
.nav-right{margin-left:auto;display:flex;gap:10px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:0 24px;border-radius:999px;background:var(--coral);color:#fff;font-weight:800;font-size:15px;box-shadow:0 8px 18px rgba(255,107,74,.32);transition:.2s}
.btn:active{transform:scale(.97)}
.btn.teal{background:var(--teal);box-shadow:0 8px 18px rgba(34,179,160,.3)}
.btn.ghost{background:var(--card);color:var(--ink);border:1.5px solid var(--line);box-shadow:none}
.btn.ink{background:var(--ink);box-shadow:0 8px 18px rgba(27,51,77,.25)}
.btn.sm{min-height:38px;padding:0 16px;font-size:13px}
.btn.block{width:100%}
/* landing */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;padding:56px 0 30px}
.hero h1{font-family:var(--font-d);font-size:46px;line-height:1.16;font-weight:800;margin-bottom:16px}
.hero h1 em{font-style:normal;color:var(--coral)}
.hero p{color:var(--ink2);font-size:16.5px;margin-bottom:24px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-img{border-radius:28px;box-shadow:var(--shadow);overflow:hidden}
.lang-strip{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}
.lang-strip span{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 15px;font-size:13px;font-weight:700}
.sec{padding:40px 0}
.sec h2{font-family:var(--font-d);font-size:30px;text-align:center;margin-bottom:8px}
.sec .sub{text-align:center;color:var(--ink2);margin-bottom:30px}
.feat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.feat{background:var(--card);border:1px solid #F0E9DA;border-radius:var(--radius);padding:22px 16px;text-align:center;box-shadow:0 4px 14px rgba(27,51,77,.05)}
.feat .fi{width:52px;height:52px;border-radius:16px;margin:0 auto 12px;display:grid;place-items:center}
.feat .fi svg{width:26px;height:26px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round}
.feat b{font-family:var(--font-d);display:block;font-size:15.5px;margin-bottom:5px}
.feat span{font-size:12.5px;color:var(--ink2)}
.dual{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.panel{background:var(--card);border-radius:22px;padding:26px;box-shadow:var(--shadow);border:1px solid #F0E9DA}
.panel h3{font-family:var(--font-d);font-size:19px;margin-bottom:12px}
.panel ul{list-style:none}
.panel li{padding:9px 0 9px 28px;position:relative;color:var(--ink2);font-size:14px;border-bottom:1px dashed var(--line)}
.panel li::before{content:"";position:absolute;left:2px;top:14px;width:14px;height:14px;border-radius:50%;background:var(--teal)}
.panel li b{color:var(--ink)}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.price{background:var(--card);border-radius:22px;padding:26px;border:1.5px solid var(--line);position:relative}
.price.hot{border-color:var(--coral);box-shadow:var(--shadow)}
.price .ribbon{position:absolute;top:-12px;right:18px;background:var(--coral);color:#fff;font-size:11px;font-weight:800;padding:4px 13px;border-radius:999px}
.price h4{font-family:var(--font-d);font-size:18px}
.price .pp{font-family:var(--font-d);font-size:34px;font-weight:800;color:var(--coral-d);margin:8px 0}
.price .pp small{font-size:13px;color:var(--ink2);font-weight:500}
.price li{font-size:13px;padding:6px 0;color:var(--ink2);list-style:none}
.footer{background:var(--ink);color:#BFD3E4;padding:30px 0;font-size:13px;text-align:center;margin-top:40px}
.footer a{color:#fff}
/* 学习区布局 */
.app-shell{max-width:520px;margin:0 auto;min-height:calc(100vh - 64px);padding-bottom:84px;position:relative}
.appbar{display:flex;align-items:center;gap:10px;padding:14px 4px}
.appbar select,.pill-select{background:var(--card);border:1.5px solid var(--line);border-radius:999px;padding:8px 14px;font-weight:700;font-size:13px;color:var(--ink);font-family:inherit}
.appbar .sp{flex:1}
.cardx{background:var(--card);border-radius:var(--radius);padding:18px;box-shadow:0 4px 14px rgba(27,51,77,.06);border:1px solid #F0E9DA;margin-bottom:14px}
/* Feed */
.feed-stage{position:relative;height:calc(100vh - 160px);border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.feed-deck{height:100%;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none}
.feed-deck::-webkit-scrollbar{display:none}
.fcard{scroll-snap-align:start;scroll-snap-stop:always;min-height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:22px 80px 26px 22px;color:#fff}
.fcard::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,28,42,.5),transparent 30%,transparent 45%,rgba(15,28,42,.82))}
.fcard>*{position:relative;z-index:1}
.fc1{background:linear-gradient(160deg,#22B3A0,#15756b)}.fc2{background:linear-gradient(160deg,#E8893B,#c2571f)}
.fc3{background:linear-gradient(160deg,#5B7FB0,#34507c)}.fc4{background:linear-gradient(160deg,#1B334D,#3a5d80)}.fc5{background:linear-gradient(160deg,#8a6fd0,#5b4a9c)}
.ftag{align-self:flex-start;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:4px 12px;font-size:11.5px;font-weight:700;margin-bottom:10px}
.fbig{font-family:var(--font-d);font-size:42px;font-weight:800;text-shadow:0 3px 12px rgba(0,0,0,.25)}
.fipa{opacity:.92;margin:2px 0 8px}
.fcap{font-size:14px;line-height:1.65;max-width:95%}
.fcap .hl{background:rgba(244,183,61,.9);color:var(--ink);border-radius:4px;padding:0 4px;font-weight:800}
.factions{position:absolute;right:10px;bottom:70px;z-index:2;display:flex;flex-direction:column;gap:15px;align-items:center}
.fab{width:48px;text-align:center;color:#fff;font-size:10.5px;font-weight:700}
.fab .c{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;margin:0 auto 3px;backdrop-filter:blur(4px)}
.fab svg{width:22px;height:22px;stroke:#fff;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.fmini{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);border-radius:14px;padding:10px 13px;margin-top:10px;font-size:12.5px}
.fmini button{background:#fff;color:var(--ink);border-radius:999px;padding:7px 15px;font-weight:800;margin-top:7px;font-size:12.5px}
.fhint{text-align:center;color:var(--ink3);font-size:12px;padding:10px}
/* 场景 */
.scene-box{position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:14px;aspect-ratio:16/9;background:#eef0f3}
.scene-box img{width:100%;height:100%;object-fit:cover;display:block}
/* 场景卡片双语标题：中文黑 / 英文 teal / 可学对象数 coral / 等级白色胶囊，底部浅色雾面保证可读性 */
.scene-box .card-cap{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  padding:30px 14px 11px;pointer-events:none;
  background:linear-gradient(to top,rgba(255,253,248,.96),rgba(255,253,248,.82) 46%,rgba(255,253,248,0));
  line-height:1.25}
.scene-box .card-zh{font-family:var(--font-d);font-size:20px;font-weight:800;color:#161f28;
  text-shadow:0 1px 3px rgba(255,255,255,.85);max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scene-box .card-sub{display:flex;align-items:center;gap:5px;flex-wrap:wrap;max-width:100%;
  font-size:12.5px;font-weight:700;text-shadow:0 1px 2px rgba(255,255,255,.8)}
.scene-box .card-en{color:var(--teal-d);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scene-box .card-dot{font-style:normal;color:var(--ink3);font-weight:400}
.scene-box .card-n{color:var(--coral-d);font-weight:800;white-space:nowrap}
.scene-box .card-lv{background:rgba(27,51,77,.8);color:#fff;font-size:10.5px;font-weight:800;line-height:1.5;
  border-radius:999px;padding:1px 8px;letter-spacing:.4px;white-space:nowrap}
@media(max-width:640px){.scene-box .card-zh{font-size:18px}.scene-box .card-sub{font-size:12px}}
.spot{position:absolute;width:34px;height:34px;border-radius:50%;border:3px solid #fff;background:rgba(255,107,74,.55);box-shadow:0 0 0 5px rgba(255,107,74,.25);animation:pulse 1.8s infinite;transform:translate(-50%,-50%)}
.spot.done{background:rgba(34,179,160,.7);box-shadow:0 0 0 5px rgba(34,179,160,.25)}
@keyframes pulse{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.12)}}
.sheet-mask{position:fixed;inset:0;background:rgba(15,28,42,.45);z-index:80;display:none;align-items:flex-end;justify-content:center}
.sheet-mask.on{display:flex}
.sheet{background:var(--card);width:100%;max-width:520px;border-radius:26px 26px 0 0;padding:24px 22px 30px;animation:up .28s ease}
@keyframes up{from{transform:translateY(60px);opacity:.4}to{transform:translateY(0);opacity:1}}
.sheet h3{font-family:var(--font-d);font-size:30px}
.sheet .ipa{color:var(--teal-d);font-weight:700;margin:4px 0}
/* 双语音标浮卡：学习语 + 讲解语（拼音）两套音标与独立发音按钮 */
.ipa2{display:flex;flex-direction:column;gap:8px;margin:10px 0 4px}
.ip-row{display:flex;align-items:center;gap:10px;background:var(--mint);border-radius:14px;padding:8px 10px}
.ip-row.ip-gloss{background:#fff3ec}
.ip-tag{flex:none;min-width:34px;text-align:center;font-size:11px;font-weight:800;letter-spacing:.5px;color:#fff;background:var(--teal);border-radius:8px;padding:3px 7px}
.ip-tag-g{background:var(--coral)}
.ip-body{flex:1;min-width:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ip-word{font-size:19px;font-weight:800;color:var(--ink);font-family:var(--font-d);line-height:1.2}
.ip-ipa{font-size:14.5px;font-weight:700;color:var(--teal-d);line-height:1.25}
.ip-gloss .ip-ipa{color:var(--coral-d)}
.ip-pos{font-size:12.5px;font-style:italic;font-weight:700;color:var(--ink3)}
.ip-play{flex:none;width:38px;height:38px;border-radius:50%;border:none;background:var(--teal);color:#fff;display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:0 3px 8px rgba(34,179,160,.3)}
.ip-play:active{transform:scale(.92)}
.ip-play-g{background:var(--coral);box-shadow:0 3px 8px rgba(255,107,74,.3)}
.ip-play svg{width:19px;height:19px;fill:#fff}
.ip-note{font-size:12px;color:var(--ink3);margin:2px 0 0}
@media(max-width:640px){.ip-word{font-size:18px}.ip-play{width:36px;height:36px}}
.root-box{background:var(--mint);border-radius:14px;padding:12px 14px;font-size:13px;margin:12px 0}
/* 底部 tabbar */
.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:60;background:rgba(255,253,248,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:none}
.tabbar.in{display:flex;max-width:520px;margin:0 auto}
.tabbar button{flex:1;padding:9px 0 10px;font-size:11px;font-weight:700;color:var(--ink3);display:flex;flex-direction:column;align-items:center;gap:3px}
.tabbar button.on{color:var(--coral-d)}
.tabbar svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* 表单/登录 */
.form{max-width:420px;margin:40px auto}
.form input,.form select{width:100%;min-height:48px;border:1.5px solid var(--line);border-radius:14px;padding:0 15px;font-size:15px;font-family:inherit;background:var(--card);margin-bottom:12px;color:var(--ink)}
.form input:focus{outline:none;border-color:var(--teal)}
.form label{font-size:13px;font-weight:700;color:var(--ink2);display:block;margin-bottom:6px}
.toast{pointer-events:none;position:fixed;left:50%;top:74px;transform:translateX(-50%) translateY(-16px);background:var(--ink);color:#fff;padding:10px 20px;border-radius:999px;font-size:13.5px;font-weight:700;z-index:120;opacity:0;transition:.25s;max-width:90%}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.stat{background:var(--card);border-radius:16px;padding:16px;text-align:center;box-shadow:0 4px 12px rgba(27,51,77,.05)}
.stat b{font-family:var(--font-d);font-size:26px;display:block}
.stat span{font-size:12px;color:var(--ink2)}
.list-item{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid #F0E9DA;border-radius:16px;padding:13px 15px;margin-bottom:10px}
.list-item .ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;flex:none}
.list-item .ic svg{width:21px;height:21px;stroke:#fff;fill:none;stroke-width:2}
.list-item b{font-size:14.5px;display:block}
.list-item span{font-size:12px;color:var(--ink2)}
.list-item .arrow{margin-left:auto;color:var(--ink3);font-size:20px}
.review-grade{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.weekbars{display:flex;align-items:flex-end;gap:8px;height:110px;padding-top:10px}
.weekbars i{flex:1;background:linear-gradient(180deg,var(--teal),#7ad6ca);border-radius:6px 6px 0 0;min-height:6px;position:relative}
.weekbars i::after{content:attr(data-d);position:absolute;bottom:-20px;left:0;right:0;text-align:center;font-size:10px;color:var(--ink3)}
@media(max-width:900px){
  .hero{grid-template-columns:1fr;padding:34px 0 16px}.hero h1{font-size:33px}
  .feat-grid{grid-template-columns:repeat(2,1fr)}.dual,.price-grid{grid-template-columns:1fr}
  .nav-links{display:none}
}
.fcard.ftype-pron,.fcard.ftype-sentence,.fcard.ftype-root,.fcard.ftype-quiz{justify-content:center}

/* ============ 多设备自适应视图（手机/平板/电脑/投影） ============ */
:root{--spot:34px;--view-fs:15px;--view-radius:22px}
html.vm-tablet{--spot:40px;--view-fs:16px}
html.vm-desktop{--spot:44px;--view-fs:16.5px}
html.vm-projector{--spot:62px;--view-fs:20px;--view-radius:28px}
html.vm-tablet .app-shell{max-width:880px}
html.vm-desktop .app-shell{max-width:1140px}
html.vm-projector .app-shell{max-width:1440px}
html.vm-tablet body,html.vm-desktop body,html.vm-projector body{font-size:var(--view-fs)}
/* 场景列表：宽屏多列 */
.scene-grid{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}
html.vm-tablet .scene-grid,html.vm-desktop .scene-grid{grid-template-columns:repeat(2,1fr)}
html.vm-projector .scene-grid{grid-template-columns:repeat(3,1fr);gap:20px}
/* 场景详情：电脑/投影左右分栏，场景左、讲解右 */
.scene-layout{display:block}
html.vm-desktop .scene-layout,html.vm-projector .scene-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,1fr);gap:20px;align-items:start}
html.vm-desktop .scene-main,html.vm-projector .scene-main{position:sticky;top:14px}
html.vm-projector .scene-box{border-radius:var(--view-radius)}
html.vm-projector .cardx{padding:24px;border-radius:22px}
html.vm-projector .cardx p,html.vm-projector .list-item b{font-size:17px}
/* 热点尺寸随档位 */
.spot{width:var(--spot);height:var(--spot)}
html.vm-projector .spot{border-width:4px;box-shadow:0 0 0 8px rgba(255,107,74,.28)}
html.vm-projector .spot.done{box-shadow:0 0 0 8px rgba(34,179,160,.28)}
/* 投影：学习弹层更大、更适合远距离观看 */
html.vm-projector .sheet{max-width:760px;border-radius:30px 30px 0 0;padding:34px 40px 44px}
html.vm-projector .sheet h3{font-size:44px}
html.vm-projector .sheet .ipa,html.vm-projector .sheet .root-box,html.vm-projector .list-item{font-size:17px}
html.vm-projector .btn{padding:14px 26px;font-size:17px;border-radius:16px}
/* 视图切换条 */
.view-switch{display:flex;background:#EFE9DB;border-radius:999px;padding:3px;gap:2px}
.view-switch button{border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:800;color:var(--ink2);white-space:nowrap;min-height:34px}
.view-switch button.on{background:var(--ink);color:#fff}
html.vm-projector .view-switch button{font-size:15px;padding:9px 17px}
@media(max-width:560px){.view-switch button{padding:7px 9px;font-size:11.5px}}
/* 全屏投影时背景加深、居中 */
html.vm-fs{background:#0e1c2c}
html.vm-fs .app-shell{max-width:100%;padding:0 26px 40px}
html.vm-tablet .tabbar.in{max-width:880px}
html.vm-desktop .tabbar.in{max-width:1140px}
html.vm-projector .tabbar.in{max-width:1440px}

/* ============ 语流沉浸式媒体 + 互动栏 ============ */
.fcard.has-media{background:#14202e}
.fmedia{position:absolute;inset:0;z-index:0}
.fmedia img,.fmedia video{width:100%;height:100%;object-fit:cover;display:block}
.fmedia::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,22,34,.35) 0%,rgba(12,22,34,0) 30%,rgba(12,22,34,.15) 55%,rgba(12,22,34,.82) 100%)}
.fcard.has-media .ftag,.fcard.has-media .fbig,.fcard.has-media .fipa,.fcard.has-media .fcap,.fcard.has-media .fmini{position:relative;z-index:2}
.fclip-badge{position:absolute;top:14px;left:14px;z-index:3;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);color:#fff;border-radius:999px;padding:5px 12px;font-size:11.5px;font-weight:800;display:flex;align-items:center;gap:6px}
.fclip-badge i{width:7px;height:7px;border-radius:50%;background:var(--coral);display:inline-block}
.ffactions{position:absolute;right:10px;bottom:84px;z-index:3;display:flex;flex-direction:column;gap:16px;align-items:center}
.ffab{width:52px;text-align:center;color:#fff;font-size:11px;font-weight:800;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.ffab .c{width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(6px);display:grid;place-items:center;margin:0 auto 3px;transition:transform .15s}
.ffab .c svg{width:25px;height:25px;stroke:#fff;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ffab:active .c{transform:scale(1.25)}
.ffab.on .c{background:var(--coral);border-color:var(--coral)}
.ffab.on.save .c{background:var(--mustard);border-color:var(--mustard)}
.ffab .n{display:block;margin-top:2px}
@keyframes heartpop{0%{transform:scale(.4);opacity:0}35%{transform:scale(1.3);opacity:.95}100%{transform:scale(2.4);opacity:0}}
.heartpop{position:absolute;z-index:5;left:50%;top:46%;transform:translate(-50%,-50%);width:110px;height:110px;pointer-events:none}
.heartpop svg{width:100%;height:100%;fill:var(--coral);stroke:#fff;stroke-width:1.5;animation:heartpop .8s ease forwards}
.cmt-list{max-height:46vh;overflow-y:auto;margin:10px 0}
.cmt-item{background:#F7F2E7;border-radius:14px;padding:10px 13px;margin-bottom:8px;font-size:13.5px}
.cmt-item b{font-size:13px;color:var(--teal-d)}
.cmt-item .t{color:var(--ink3);font-size:11px;margin-left:8px}
.cmt-input{display:flex;gap:8px}
.cmt-input input{flex:1;min-height:46px;border:1.5px solid var(--line);border-radius:999px;padding:0 16px;font-size:14px;background:var(--card)}
.feed-loadmore{text-align:center;padding:16px;color:#fff;font-weight:800;font-size:13px}

/* ===== 语流上瘾套件：火焰/字幕/教练/配音/排行 ===== */
.flame-bar{padding:10px 14px 2px}
.flame-chip{display:flex;align-items:center;gap:10px;background:linear-gradient(90deg,#FFF3E0,#FFE9D6);border:1.5px solid #F4B73D;border-radius:999px;padding:7px 14px;font-size:12.5px;color:var(--ink);cursor:pointer}
.flame-ic{background:var(--coral);color:#fff;font-weight:900;border-radius:50%;min-width:30px;height:30px;display:grid;place-items:center;font-size:13px}
.fdots{display:flex;gap:3px;margin-left:auto}
.fdot{width:8px;height:8px;border-radius:50%;background:#E3D9C6}
.fdot.on{background:var(--coral)}
.xpc{font-weight:900;color:var(--coral-d)}
.subw{border-bottom:1.5px dashed rgba(255,255,255,.65);cursor:pointer;padding:0 1px;transition:.12s}
.subw:active{background:var(--mustard);color:#1B334D;border-radius:4px}
.ghostbtn{background:rgba(255,255,255,.18)!important;color:#fff!important;border:1px solid rgba(255,255,255,.35)!important;margin-left:6px}
.checkin-pop{text-align:center;padding:10px 6px}
.bigflame{width:96px;height:96px;margin:6px auto;border-radius:50%;background:radial-gradient(circle at 50% 60%,#FFD27A,var(--coral));color:#fff;font-size:34px;font-weight:900;display:grid;place-items:center;box-shadow:0 8px 24px rgba(255,107,74,.4)}
.checkin-pop .reward{font-size:20px;font-weight:900;color:var(--coral-d);margin:8px 0}
.coach-asks{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.coach-ans{background:#F7F2E7;border-radius:14px;padding:13px 15px;font-size:14px;line-height:1.65}
.coach-item{background:#F7F2E7;border-radius:12px;padding:10px 13px;margin-top:8px;font-size:13.5px;display:flex;flex-direction:column;gap:4px}
.dub-box{display:flex;flex-direction:column;gap:10px}
.dub-line{font-size:17px;font-weight:800;line-height:1.5;color:var(--ink)}
#recBtn.recording{background:var(--coral);animation:recpulse 1.2s infinite}
@keyframes recpulse{0%,100%{opacity:1}50%{opacity:.7}}
.dub-card{text-align:center;padding:14px;background:#F7F2E7;border-radius:16px;margin-top:6px}
.dub-card .stars{font-size:30px;color:var(--mustard);letter-spacing:4px}
.dub-card b{font-size:26px;color:var(--coral-d)}
.dub-card button{margin-top:8px;width:100%}
.my-rank{background:var(--teal);color:#fff;border-radius:14px;padding:12px 16px;font-size:14px;margin-bottom:10px}
.rank-list{display:flex;flex-direction:column;gap:7px}
.rank-row{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 14px;font-size:14px}
.rank-row.me{border:2px solid var(--teal)}
.rank-row .no{width:26px;font-weight:900;color:var(--ink2)}
.rank-row .av{width:36px;height:36px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:900}
.rank-row .muted{margin-left:auto;font-size:12px}
.rank-row .xpp{font-weight:900;color:var(--coral-d)}

/* ===== 组织/家庭/任务/推广 ===== */
.grow-form{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0;align-items:center}
.grow-form input,.grow-form select{min-height:42px;border:1.5px solid var(--line);border-radius:10px;padding:0 12px;font-size:13.5px;background:var(--card);flex:1;min-width:110px}
.grow-form .ck{display:flex;align-items:center;gap:4px;font-size:13px}
.org-node{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border-left:3px solid var(--teal);background:#F7F2E7;border-radius:0 10px 10px 0;margin:6px 0;font-size:13.5px}
.org-node .tag,.fam-row .tag{background:var(--teal);color:#fff;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800}
.fam-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 4px;border-bottom:1px dashed var(--line);font-size:13.5px}
.fam-row .muted{margin-left:auto;font-size:12px}
.growth-hero{background:linear-gradient(135deg,#1B334D,#22B3A0);color:#fff;border-radius:18px;padding:18px;margin:12px}
.growth-hero h2{font-family:var(--font-d);margin-bottom:6px}
.growth-hero p{font-size:12.5px;opacity:.92;line-height:1.6;margin-bottom:10px}
.growth-hero input{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.35)}
.growth-hero input::placeholder{color:rgba(255,255,255,.7)}
.btn.coral{background:var(--coral);color:#fff}

/* ===== 分享免年费里程碑 ===== */
.promo-box{background:var(--card);border:1.5px solid var(--mustard);border-radius:16px;padding:14px;margin:10px 12px}
.ms-row{margin:12px 0}
.ms-top{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:5px}
.ms-bar{height:10px;border-radius:999px;background:#EDE4D2;overflow:hidden}
.ms-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--mustard))}
.ms-act{margin-top:6px;text-align:right}

/* ===== 双美术风格 + 分级选择 ===== */
.style-level-bar{display:flex;gap:8px;align-items:center;margin:0 4px 12px;flex-wrap:wrap}
.style-level-bar select{height:38px;border:1.5px solid var(--line);border-radius:12px;background:#fff;padding:0 8px;font-size:13px;color:var(--ink)}
.seg2{display:inline-flex;border:1.5px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;flex:none}
.seg2 button{border:0;background:transparent;padding:0 14px;height:36px;font-size:13px;font-weight:700;color:var(--ink2);cursor:pointer}
.seg2 button.on{background:var(--ink);color:#fff}
.seg2.mini button{height:30px;padding:0 10px;font-size:12px}
.art-badge{position:absolute;right:10px;top:10px;background:rgba(27,51,77,.82);color:#fff;font-size:11px;padding:4px 9px;border-radius:20px;font-weight:700}
.lv-chip{display:inline-block;font-size:10.5px;background:rgba(255,255,255,.22);border-radius:8px;padding:1px 6px;margin-left:5px}
.scene-box.locked{filter:grayscale(.55) brightness(.78)}
.lock-badge{position:absolute;right:10px;top:10px;background:rgba(0,0,0,.66);color:#fff;font-size:11px;padding:4px 9px;border-radius:20px;font-weight:700}

/* ===== 用户共创 UGC ===== */
.ugc-hero{display:flex;gap:16px;align-items:center;justify-content:space-between;background:linear-gradient(120deg,#fff7ec,#e9f7f5);border:1.5px solid var(--line);border-radius:18px;padding:18px 20px;margin:12px 0 18px;flex-wrap:wrap}
.ugc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.ugc-card{background:#fff;border:1.5px solid var(--line);border-radius:16px;overflow:hidden;cursor:pointer;transition:.15s}
.ugc-card:active{transform:scale(.985)}
.ugc-thumb{aspect-ratio:16/10;background:#e9e3d6 center/cover no-repeat}
.ugc-meta{padding:10px 12px 12px;font-size:13px;line-height:1.6}
.ugb{display:inline-block;font-size:11.5px;padding:1px 8px;border-radius:999px;background:#ece6d8;color:var(--ink2);margin-top:4px}
.ugb.ok{background:#dff3ef;color:#0e7c70}.ugb.warn{background:#fdeecd;color:#a86a12}.ugb.bad{background:#fbe1de;color:#b03a2e}
.ugc-edit{padding-bottom:40px}
.ugc-title-in{border:none;background:transparent;font-family:var(--font-d);font-size:19px;font-weight:800;max-width:340px;border-bottom:1.5px dashed transparent}
.ugc-title-in:focus{outline:none;border-bottom-color:var(--teal)}
.ugc-style-seg{display:flex;gap:8px;align-items:center;margin:10px 0;flex-wrap:wrap}
.ugc-style-seg button{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:7px 16px;font-weight:700;color:var(--ink2);min-height:38px}
.ugc-style-seg button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.ugc-stage{position:relative;border-radius:16px;overflow:hidden;background:#e6e0d3;border:1.5px solid var(--line)}
.ugc-stage img{width:100%;display:block;cursor:crosshair;aspect-ratio:16/9;object-fit:cover}
.ugc-stage #ugLayer{position:absolute;inset:0;pointer-events:none}
.ug-dot{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);min-width:30px;height:30px;border-radius:50%;border:2.5px solid #fff;background:rgba(255,107,74,.78);color:#fff;font-weight:800;font-size:13px;cursor:grab;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.panel-x{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:14px;margin-top:14px}
.ugc-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.ugc-toolbar input{border:1.5px solid var(--line);border-radius:10px;padding:9px 10px;min-height:40px}
.ugc-tbl{width:100%;border-collapse:collapse;font-size:13px}
.ugc-tbl th{text-align:left;background:#faf5ea;padding:8px}
.ugc-tbl td{padding:5px 6px;border-bottom:1px solid #f0ebdf}
.ugc-tbl tr.dim{opacity:.55}
.ugc-tbl input{border:1px solid var(--line);border-radius:8px;padding:6px 8px}
.ugc-foot{position:static;margin:14px 0 90px;border-radius:14px;border:1.5px solid var(--line);background:#fff;border-top:1.5px solid var(--line);padding:10px 16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;z-index:40}
.ugc-foot select{border:1.5px solid var(--line);border-radius:10px;padding:8px;min-height:40px}
@media(max-width:640px){.ugc-foot{bottom:60px;padding:8px 10px}.ugc-toolbar input{flex:1 1 40%}.ugc-grid{grid-template-columns:1fr 1fr;gap:10px}}

/* 场景学习：卡通/写实对照模式 */
.scene-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.scene-compare .cmp-box{margin:0}
.cmp-tag{position:absolute;left:10px;top:10px;z-index:3;background:rgba(27,51,77,.82);color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}
.seg2.mini button:disabled{opacity:.45;cursor:not-allowed}


/* 语流：场景热区居中放大卡 */
.fscene{position:relative;overflow:hidden;background:#10243a}
.fscene img{width:100%;height:100%;object-fit:cover}
.fscene-ring{position:absolute;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;border:3px solid var(--coral);box-shadow:0 0 0 6px rgba(255,107,74,.25),0 2px 10px rgba(0,0,0,.3);animation:fring 1.6s ease-out infinite;pointer-events:none;z-index:2}
.fscene-ring::after{content:'';position:absolute;inset:18px;border-radius:50%;background:var(--coral)}
@keyframes fring{0%{box-shadow:0 0 0 0 rgba(255,107,74,.55)}100%{box-shadow:0 0 0 26px rgba(255,107,74,0)}}
.fscene-name{position:absolute;left:12px;top:12px;z-index:2;background:rgba(27,51,77,.78);color:#fff;font-size:12px;font-weight:700;padding:4px 12px;border-radius:999px}
.fauto-sent{background:rgba(255,255,255,.94);border-radius:14px;padding:10px 13px;font-size:14px;line-height:1.55;color:var(--ink);margin:8px 0 4px}
.fauto-sent b{color:var(--teal);margin-right:6px}
.fauto-sent span{display:block;color:var(--ink3);font-size:12.5px;margin-top:3px}
.fauto-sent .subw{color:var(--coral-d);font-weight:700}

/* ===== 硬件矩阵 ===== */
.hw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}
.hw-card{position:relative;background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:8px}
.hw-card.hot{border-color:var(--coral);box-shadow:0 8px 26px rgba(255,107,74,.14)}
.hw-ic{width:58px;height:58px;border-radius:16px;display:flex;align-items:center;justify-content:center}
.hw-ic svg{width:30px;height:30px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hw-pen{background:linear-gradient(135deg,#FF6B4A,#f4906f)}.hw-play{background:linear-gradient(135deg,#1B334D,#3a5f86)}.hw-stick{background:linear-gradient(135deg,#22B3A0,#58cfc2)}
.hw-card b{font-family:var(--font-d);font-size:16.5px}
.hw-card span{font-size:13px;color:var(--ink2);line-height:1.55;flex:1}
.hw-price{font-family:var(--font-d);font-weight:800;font-size:19px;color:var(--ink)}
.hw-price small{font-size:12px;color:var(--coral-d);font-weight:700;margin-left:6px}
.hw-detail{display:grid;grid-template-columns:200px 1fr;gap:22px;background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:22px;margin-top:16px;align-items:start}
.hw-detail .hw-visual{width:160px;height:160px;border-radius:24px;display:flex;align-items:center;justify-content:center}
.hw-detail .hw-visual svg{width:78px;height:78px}
.hw-feat{margin:10px 0 0;padding-left:0;list-style:none}
.hw-feat li{font-size:13.5px;color:var(--ink2);padding:5px 0 5px 22px;position:relative;line-height:1.5}
.hw-feat li::before{content:'';position:absolute;left:2px;top:11px;width:8px;height:8px;border-radius:50%;background:var(--teal)}
.cmp-tbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:560px}
.cmp-tbl th,.cmp-tbl td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left}
.cmp-tbl th{background:var(--paper)}
.dep-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 4px}
.dep-opt{border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:3px;cursor:pointer}
.dep-opt b{font-size:14.5px;display:block;width:100%}.dep-opt span{font-size:12px;color:var(--ink3);display:block;width:100%;line-height:1.5}
.dep-opt.on{border-color:var(--coral);background:#fff5f1}
.dep-opt input{position:absolute;opacity:0}
@media(max-width:760px){.hw-grid{grid-template-columns:1fr}.hw-detail{grid-template-columns:1fr}.hw-detail .hw-visual{width:120px;height:120px}.dep-opts{grid-template-columns:1fr}}

/* 错题本 */
.wrong-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line,#ECE6D8);padding:9px 0}
.wrong-item:last-child{border-bottom:0}
.wrong-clear{flex:none;border:1.5px solid var(--teal);color:var(--teal);background:#fff;border-radius:999px;font-size:12px;padding:4px 12px;min-height:32px}

/* 语流错题重现卡 */
.wb-card{background:linear-gradient(160deg,#2a4a6b,#1B334D)}
.wb-kind{color:#cfe0ee;font-size:12.5px;margin-top:6px}
.wb-answer{background:rgba(255,255,255,.95);border-radius:14px;padding:12px 14px;margin-top:12px;color:var(--ink)}
.wb-answer b{color:var(--teal)}
.wb-answer p{margin:6px 0 10px;font-size:15px;line-height:1.55}
.wb-grade{display:flex;gap:8px;flex-wrap:wrap}

/* 歌曲游戏播放条 */
.song-play{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:999px;background:linear-gradient(120deg,var(--coral),#ff8f5e);color:#fff;font-size:13.5px;font-weight:700;padding:9px 16px;margin-bottom:10px;min-height:40px;box-shadow:0 3px 10px rgba(255,107,74,.3)}
.song-play:active{transform:scale(.96)}

/* 错题卡互动 */
.wb-opt{text-align:left;border:1.5px solid var(--line,#E7E0D0);background:#fff;border-radius:12px;padding:12px 14px;font-size:15px;min-height:46px}
.wb-woans{min-height:48px;border:2px dashed var(--line,#E7E0D0);border-radius:12px;padding:8px;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.wb-woans b{background:#eef6f5;border-radius:10px;padding:8px 12px;font-size:14px;font-weight:600}
.wb-wopool{display:flex;flex-wrap:wrap;gap:8px}
.wb-wopool button{border:1.5px solid var(--line,#E7E0D0);background:#fff;border-radius:10px;padding:8px 12px;font-size:14px;min-height:40px}

/* 错题重练局入口 */
.wrong-session-btn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1.5px solid var(--teal);background:#f0faf8;border-radius:12px;padding:10px 14px;margin-bottom:8px;min-height:48px}
.wrong-session-btn span{flex:1;font-size:12.5px;color:var(--ink2)}
.wrong-session-btn .ws-go{color:var(--teal)}
.wrong-session-btn.ws-mixed{border-color:var(--coral);background:#fff3ee}
.wrong-session-btn.ws-mixed .ws-go{color:var(--coral)}

/* 同窗对比工作台 */
.bench3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:10px}
.bench-col{border:1.5px solid var(--line);border-radius:12px;padding:12px;background:#fff;min-width:0}
.bench-h{font-weight:700;margin-bottom:8px;padding-bottom:6px;border-bottom:2px dashed var(--line)}
.bench-ref{background:#faf7ef;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:8px;font-size:13px}
@media(max-width:1100px){.bench3{grid-template-columns:1fr}}

/* 全局常驻底部基础菜单：所有页面底部留白，避免内容被遮挡 */
body.tab-on #view > .wrap{padding-bottom:96px}
@media(max-width:560px){body.tab-on #view > .wrap{padding-bottom:84px}}
/* 竖版场景容器：手机端居中限宽，9:16 完整构图不裁切、不留黑边 */
.scene-box.portrait-box{max-width:520px;margin:0 auto;aspect-ratio:9/16}
.scene-box.portrait-box img{height:100%}
.ori-switch{margin-top:2px}
@media(max-width:640px){.scene-box.portrait-box{max-width:100%;}}
/* 对照模式下竖版：两列并排（手机也保持并排，避免两张长图上下堆叠过长），9:16 完整显示 */
.scene-compare.portrait-cmp{grid-template-columns:1fr 1fr;gap:10px}
.scene-compare.portrait-cmp .cmp-box{max-width:none}
.scene-compare.portrait-cmp .cmp-box img{aspect-ratio:9/16;object-fit:cover}
@media(max-width:640px){.scene-compare:not(.portrait-cmp){grid-template-columns:1fr;gap:10px}}
.cv-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px}
.cv-tabs button{white-space:nowrap;border:1px solid var(--line,#ddd);background:#fff;border-radius:18px;padding:7px 14px;font-size:13px;cursor:pointer}
.cv-tabs button.on{background:var(--teal);color:#fff;border-color:var(--teal)}
.sg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px}
.sg-card{border:1.5px solid var(--line,#E7E0D0);border-radius:14px;background:#fff;padding:12px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:4px;min-height:86px}
.sg-card:hover{border-color:var(--teal);box-shadow:0 4px 14px rgba(34,179,160,.15)}
.sg-card .sg-ico{font-size:22px;font-weight:800;color:var(--teal)}
.sg-card b{font-size:14.5px}.sg-card span{font-size:12px;color:var(--ink3)}
.sg-mini{border:1px solid var(--line,#E7E0D0);background:#fff;border-radius:18px;padding:7px 13px;font-size:13px;cursor:pointer}
.sg-mini.teal{background:var(--teal);color:#fff;border-color:var(--teal)}
.sg-page{padding-bottom:30px}.sg-score{font-weight:800;color:var(--coral-d,#c0492b);font-size:14px}
.sg-stage{padding:12px 14px}.sg-tip{color:var(--ink3);font-size:12.5px;text-align:center;margin-top:10px}
.jig-board{display:grid;gap:2px;max-width:560px;margin:0 auto;width:100%}
.jig-cell{aspect-ratio:1;border:1.5px solid #fff;border-radius:4px;background-size:cover;cursor:pointer;position:relative}
.jig-cell.sel{outline:3px solid var(--coral);z-index:2}.jig-cell.lock{opacity:.96;cursor:default}
.clear-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:640px;margin:0 auto}
.clear-cols>div{display:flex;flex-direction:column;gap:9px}
.clear-word{padding:12px;border-radius:12px;border:1.5px solid var(--line,#E7E0D0);background:#fff;font-size:15px;font-weight:700;cursor:pointer;min-height:44px}
.clear-word.sel{border-color:var(--coral);background:#fdeee8}
.clear-img{aspect-ratio:1;border-radius:12px;background-size:cover;background-position:center;border:2px solid var(--line,#E7E0D0);cursor:pointer;min-height:60px}
.clear-word.gone,.clear-img.gone{opacity:0;pointer-events:none;transform:scale(.6);transition:.3s}
.clear-img.shake{animation:sgshake .4s}@keyframes sgshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.find-prompt{display:flex;gap:12px;align-items:center;padding:10px 14px}
.find-prompt b{font-size:22px;font-family:var(--font-d);color:var(--ink)}
.find-img{position:relative;max-width:640px;margin:0 auto;width:100%;aspect-ratio:4/3;background-size:cover;background-position:center;border-radius:14px;overflow:hidden;border:1px solid var(--line,#E7E0D0)}
.find-spot{position:absolute;transform:translate(-50%,-50%);width:11%;height:11%;min-width:34px;min-height:34px;background:transparent;border:none;cursor:pointer;border-radius:50%}
.find-spot.dashed{border:2px dashed rgba(27,51,77,.35)}
.find-spot.hit{background:rgba(34,179,160,.35);border:2px solid var(--teal)}
.find-spot.miss{background:rgba(255,107,74,.35);border:2px solid var(--coral)}
.stick-tag{position:absolute;transform:translate(-50%,-120%);background:var(--teal);color:#fff;font-size:12px;padding:3px 9px;border-radius:10px;white-space:nowrap}
.label-chips{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-top:14px}
.label-chip{padding:10px 16px;border-radius:20px;border:1.5px solid var(--line,#E7E0D0);background:#fff;font-weight:700;min-height:44px;cursor:pointer}
.label-chip.sel{background:var(--coral);color:#fff;border-color:var(--coral)}
.wh-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;max-width:520px;margin:10px auto}
.mole{min-height:84px;border-radius:16px;border:none;background:linear-gradient(180deg,#fff,#f3ecdc);border:2px solid var(--line,#E7E0D0);font-size:18px;font-weight:800;cursor:pointer;font-family:var(--font-d)}
.mole.hit{background:var(--teal);color:#fff}.mole.miss{background:var(--coral);color:#fff}
.zoom-box{max-width:560px;margin:0 auto;text-align:center}
.zoom-box img{max-width:100%;border-radius:14px;border:1px solid var(--line,#E7E0D0);max-height:300px;object-fit:contain;background:#f6f1e6}
.zoom-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.sg-opt{min-height:48px;font-weight:700}
.spell-box{max-width:520px;margin:20px auto;text-align:center}
.spell-zh{font-size:16px;color:var(--ink2)}.spell-word{font-size:34px;letter-spacing:6px;min-height:48px;font-weight:800;font-family:var(--font-d);margin:10px 0}
.spell-keys{display:flex;flex-wrap:wrap;gap:9px;justify-content:center}
.bubble{width:48px;height:48px;border-radius:50%;border:none;background:var(--ink);color:#fff;font-size:18px;font-weight:800;cursor:pointer}
.bubble.used{opacity:.25;pointer-events:none}
.run-lane{position:relative;height:300px;max-width:640px;margin:0 auto;background:linear-gradient(180deg,#fbf7ee,#f3ecdc);border-radius:14px;overflow:hidden;border:1px solid var(--line,#E7E0D0)}
.runner-word{position:absolute;right:-120px;animation:runleft linear forwards;border:none;background:var(--ink);color:#fff;border-radius:18px;padding:9px 16px;font-weight:800;min-height:40px;animation-name:runleft}
@keyframes runleft{from{right:-120px}to{right:105%}}
@media(max-width:640px){.sg-grid{grid-template-columns:1fr 1fr}.clear-word{font-size:13.5px;padding:9px}.mole{min-height:70px;font-size:15px}}
/* === 移动端语流/顶栏适配修复 20260903m === */
.accent-btn{white-space:nowrap;flex-shrink:0;padding:8px 12px}
@media(max-width:640px){
  .appbar{gap:7px;flex-wrap:nowrap}
  .appbar select{flex:1 1 auto;min-width:0;width:1%;font-size:12.5px}
  .feed-hint{display:none!important}
  .fcard{padding-right:72px;padding-left:16px}
  .fbig{font-size:30px!important;word-break:break-word}
  .fcap{font-size:13px;max-width:100%}
  .fauto-sent{max-width:100%;font-size:13px}
  .fmini{font-size:12px;padding:9px 11px}
  .ffactions{right:7px;bottom:58px;gap:10px}
  .ffab{width:44px}
  .ffab .c{width:40px;height:40px}
  .ffab .c svg{width:20px;height:20px}
  .ffab.coach{display:none}
  .feed-stage{height:calc(100vh - 132px)}
}
label.ck{display:flex;align-items:flex-start;gap:8px;line-height:1.5}
label.ck input[type=checkbox]{flex:0 0 auto;margin-top:3px}
.ckgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:4px 10px;margin:6px 0;font-size:13px}

/* ===== P0-P2 学习引擎组件 ===== */
.mini-progress{height:8px;border-radius:8px;background:#ECE6D8;overflow:hidden;margin:8px 12px}
.mini-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--coral));transition:width .3s}
.lu-count{font-size:13px;color:var(--ink3);font-weight:400}
.lu-card{background:#fff;border-radius:18px;padding:26px 20px;margin:14px 12px;text-align:center;box-shadow:0 4px 18px rgba(27,51,77,.06)}
.lu-tag{font-size:12px;color:var(--ink3);letter-spacing:.5px}
.lu-word{font-family:var(--font-d);font-size:38px;font-weight:800;color:var(--ink);margin:10px 0 4px;word-break:break-word}
.lu-ipa{color:var(--ink3);font-size:15px;margin-bottom:12px}
.lu-speak{border:1.5px solid var(--teal);color:var(--teal);background:#fff;border-radius:22px;padding:8px 18px;font-size:14px;font-weight:700;display:inline-flex;align-items:center;gap:6px;min-height:40px}
.lu-speak.sm{padding:4px 10px;font-size:12px;border-radius:14px}
.lu-back{margin-top:18px;border-top:1px dashed #ddd6c6;padding-top:16px}
.lu-zh{font-size:24px;font-weight:800;color:var(--coral)}
.lu-sent{margin-top:10px;font-size:14.5px;line-height:1.7;color:var(--ink2);text-align:left;background:#FAF6EC;border-radius:12px;padding:10px 14px}
.lu-sent span{color:var(--ink3);font-size:13px}
.lu-flip{margin-top:16px;min-height:46px}
.lu-grade{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:14px 12px}
.lu-grade button{min-height:64px;border:none;border-radius:14px;background:var(--gc,#eee);color:#fff;font-weight:800;font-size:15px}
.lu-grade small{font-weight:400;font-size:11px;opacity:.85}
.lu-result{text-align:center;padding:34px 22px}
.lu-result p{color:var(--ink2);margin:10px 0}
.pl-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 12px}
.pl-opts button{min-height:52px;border-radius:14px;border:1.5px solid #e3ddcd;background:#fff;font-size:15px;font-weight:700;color:var(--ink)}
.pl-opts button:active{background:var(--teal);color:#fff}
.pl-cefr{font-size:52px;font-weight:900;font-family:var(--font-d);color:var(--coral)}
.pl-bars{margin-top:14px;text-align:left}
.pl-bar{display:flex;align-items:center;gap:8px;font-size:12.5px;margin:6px 0}
.pl-bar span{width:30px}.pl-bar em{font-style:normal;color:var(--ink3);width:44px;text-align:right}
.pl-bar i{flex:1;height:8px;background:#ECE6D8;border-radius:6px;position:relative;display:block}
.pl-bar i::after{content:'';position:absolute;left:0;top:0;height:100%;width:inherit;background:var(--teal);border-radius:6px}
.pron-card{text-align:center}
.pron-mic{width:100%;min-height:54px;margin-top:14px;display:inline-flex;gap:8px;align-items:center;justify-content:center;background:var(--coral);color:#fff;border:none;border-radius:14px;font-size:16px;font-weight:800}
.pron-mic.rec{background:#EA6668;animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.65}}
.pron-score{font-size:30px;font-weight:900;font-family:var(--font-d);margin-top:14px}
.pron-score small{font-size:13px;font-weight:400}
.pron-words{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:8px}
.pron-words span{padding:3px 10px;border-radius:12px;font-size:13px}
.pron-words .ok{background:#e4f6f3;color:#0e8a7c}.pron-words .miss{background:#fdeaea;color:#c04040;text-decoration:line-through}
.league-head{display:flex;align-items:center;justify-content:space-between}
.league-badge{color:#fff;font-weight:800;border-radius:14px;padding:10px 16px;font-size:15px}
.league-zones{display:flex;justify-content:space-between;font-size:13px;margin-top:8px}
.league-list{padding:6px 12px}
.league-row{display:flex;align-items:center;gap:12px;padding:9px 6px;border-bottom:1px solid #f1ecdf}
.league-row b{width:26px;color:var(--ink3)}
.league-row span{flex:1;text-align:left;font-weight:600}
.league-row em{font-style:normal;color:var(--ink3);font-size:13px}
.league-row.me{background:#fff7e8;border-radius:10px}
.quest-row{display:flex;align-items:center;gap:12px;margin:10px 12px}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:12px}
.shop-item{margin:0;display:flex;flex-direction:column;gap:8px}
.shop-item p{font-size:12.5px;color:var(--ink3);flex:1}
.dg-chat{margin:10px 12px;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 240px);overflow-y:auto;padding-bottom:10px}
.dg-msg{display:flex;gap:8px;max-width:88%}
.dg-msg.me{align-self:flex-end;flex-direction:row-reverse}
.dg-msg>div:last-child{background:#fff;border-radius:14px;padding:10px 14px;font-size:14.5px;line-height:1.6;box-shadow:0 2px 8px rgba(27,51,77,.05)}
.dg-msg.me>div:last-child{background:var(--ink);color:#fff}
.dg-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:var(--coral);color:#fff;display:grid;place-items:center;font-weight:800}
.dg-words{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.dg-words button{border:1px solid var(--teal);color:var(--teal);background:#f3fbfa;border-radius:12px;padding:3px 9px;font-size:12px;min-height:30px}
.dg-input{display:flex;gap:8px;margin:10px 12px;position:sticky;bottom:74px}
.dg-input input{flex:1;min-height:48px;border-radius:24px;border:1.5px solid #e3ddcd;padding:0 18px;font-size:15px}
.clip-ph{height:150px;border-radius:12px;background:linear-gradient(135deg,#efe9db,#e3f2f0);display:grid;place-items:center;color:var(--ink3);font-size:13px}
.clip-line{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #f1ecdf;flex-wrap:wrap}
.clip-line b{font-size:15px}.clip-line span{color:var(--ink3);font-size:13px;flex:1;min-width:120px}
.roots-cloud{display:flex;flex-wrap:wrap;gap:9px;margin:12px}
.root-chip{border:1.5px solid #e0d9c8;background:#fff;border-radius:14px;padding:9px 14px;font-size:14px;min-height:44px;text-align:left}
.root-chip b{color:var(--coral);margin-right:6px}
.root-word{background:#fff;border:1px solid #ece6d8;border-radius:10px;padding:6px 12px;font-size:14px;display:inline-flex;gap:7px;align-items:center}
.root-word em{font-style:normal;color:var(--ink3);font-size:12px}
.lb-pin{text-align:center;padding:14px;background:#fff7e8;border-radius:12px;margin-bottom:10px}
.lb-pin b{font-size:34px;letter-spacing:8px;color:var(--coral);display:block}
.lb-pin span{font-size:12.5px;color:var(--ink3)}
.timeline-stat{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.timeline-stat span{background:#FAF6EC;border-radius:10px;padding:8px;font-size:12px;color:var(--ink3);text-align:center}
.timeline-stat b{display:block;font-size:18px;color:var(--ink)}
.tl-row{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid #f1ecdf}
.tl-row>span{width:9px;height:9px;border-radius:50%;background:var(--teal);margin-top:7px;flex:0 0 9px}
.tl-row em{font-style:normal;font-size:11.5px;color:var(--ink3)}.tl-row p{margin:2px 0 0;font-size:13.5px}
.wr-corrected{background:#f3fbfa;border-radius:10px;padding:10px 12px;line-height:1.7}
.wr-score{font-size:20px;font-weight:800;color:var(--teal);margin:8px 0}
.wr-issue{font-size:13.5px;line-height:1.7;background:#FAF6EC;border-radius:10px;padding:8px 12px;margin:6px 0}
.wr-issue span{color:var(--ink3)}
@media(max-width:640px){
  .lu-word{font-size:30px}
  .lu-grade{gap:6px}.lu-grade button{font-size:13px;min-height:58px}
  .shop-grid{grid-template-columns:1fr}
  .timeline-stat{grid-template-columns:repeat(2,1fr)}
}

/* ===== 亲子共学 8000 句 ===== */
.lu-tabs{display:flex;gap:8px;margin:10px 0}
.lu-tab{flex:1;padding:10px;border:1.5px solid var(--ink3);background:#fff;border-radius:12px;font-weight:700;color:var(--ink2);min-height:44px}
.lu-tab.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.ft-row{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid rgba(0,0,0,.06)}
.ft-row:last-child{border-bottom:none}
.ft-main{flex:1;min-width:0}
.ft-main b{display:block;font-size:15px;line-height:1.4}
.ft-main span{display:block;color:var(--ink2);font-size:13px;margin-top:2px}
.ft-tag{display:inline-block;margin-top:4px;font-style:normal;font-size:11px;color:var(--teal);background:rgba(34,179,160,.12);padding:1px 8px;border-radius:8px}
.ft-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.ft-chip{padding:6px 12px;border-radius:16px;border:1px solid var(--ink3);background:#fff;font-size:12.5px;min-height:36px}
.ft-chip.on{background:var(--coral);color:#fff;border-color:var(--coral)}
.ft-pager{display:flex;gap:6px;justify-content:center;margin:14px 0}
.ft-page{min-width:38px;min-height:38px;border-radius:10px;border:1px solid var(--ink3);background:#fff;font-weight:700}
.ft-page.on{background:var(--ink);color:#fff}

/* ===== 亲子共学 Hub ===== */
.fh-entry{margin:10px 0 2px}
.fh-card{border:1px solid rgba(0,0,0,.07);border-radius:12px;padding:10px 12px;margin-top:10px}
.fh-top{display:flex;justify-content:space-between;align-items:center}
.fh-stats{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.fh-stats>div{flex:1 1 70px;background:rgba(27,51,77,.05);border-radius:10px;padding:8px;text-align:center;min-width:64px}
.fh-stats em{font-style:normal;font-weight:800;font-size:17px;display:block;color:var(--ink)}
.fh-stats span{font-size:11px;color:var(--ink2)}
.fh-bind{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.fh-assign{margin-top:12px;border-top:1px dashed rgba(0,0,0,.1);padding-top:10px}
.fh-task{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 2px;border-bottom:1px solid rgba(0,0,0,.05)}
.fh-task>div{min-width:0}
.fh-task b{display:block;font-size:14px}

/* ===== 极速刷词 / 传奇挑战 / 新手引导 ===== */
.bz-top{display:flex;justify-content:space-between;align-items:center;padding:8px 4px;font-weight:800;font-size:16px}
#bzTime{font-family:var(--font-d);font-size:22px;color:var(--teal)}
.bz-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.bz-opt{min-height:56px;border:2px solid rgba(27,51,77,.12);background:#fff;border-radius:14px;font-size:16px;font-weight:700;color:var(--ink);padding:8px 10px;transition:transform .08s}
.bz-opt:active{transform:scale(.97)}
.bz-opt.right{background:#E6F7F1;border-color:var(--teal);color:#127a6c}
.bz-opt.wrong{background:#FDECE8;border-color:var(--coral);color:#c2472f}
@media(max-width:420px){.bz-opts{grid-template-columns:1fr}}
.ob-mask{position:fixed;inset:0;background:rgba(20,32,46,.55);z-index:9999;display:flex;align-items:flex-end;justify-content:center;padding:18px}
.ob-card{width:100%;max-width:460px;background:var(--paper);border-radius:20px;padding:22px 20px 18px;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.ob-card b{font-size:19px;font-family:var(--font-d);color:var(--ink)}
.ob-card p{font-size:14.5px;line-height:1.65;color:var(--ink2);margin:10px 0 14px}
.ob-dots{display:flex;gap:6px;margin-bottom:14px}
.ob-dots i{width:8px;height:8px;border-radius:50%;background:rgba(27,51,77,.18)}
.ob-dots i.on{background:var(--coral);width:20px;border-radius:4px}
.ob-actions{display:flex;justify-content:space-between;align-items:center}

/* ===== 订阅下单 ===== */
.bill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:0 12px}
.bill-card{background:#fff;border:1.5px solid rgba(27,51,77,.1);border-radius:16px;padding:16px;position:relative}
.bill-card.hot{border-color:var(--coral);box-shadow:0 6px 20px rgba(255,107,74,.14)}
.bill-card b{font-size:16px}
.bill-price{font-family:var(--font-d);font-size:28px;font-weight:800;color:var(--ink);margin:6px 0}
.bill-price small{font-size:13px;color:var(--ink3);font-weight:400}
.bill-price em{font-style:normal;font-size:12px;color:var(--teal);margin-left:8px}
.bill-card ul{margin:8px 0 12px;padding-left:18px;color:var(--ink2);font-size:13px;line-height:1.9}

/* ===== AI 陪练 ===== */
.rp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding:0 12px}
.rp-card{background:#fff;border-radius:16px;padding:16px 12px;text-align:center;border:1.5px solid rgba(27,51,77,.08);display:flex;flex-direction:column;gap:6px;align-items:center;min-height:128px;justify-content:center}
.rp-ico{font-size:30px}
.rp-card em{font-style:normal;color:var(--ink3);font-size:11.5px}
.rp-chat{padding:10px 12px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding-bottom:90px}
.rp-msg{max-width:84%;padding:10px 14px;border-radius:16px;font-size:14.5px;line-height:1.55}
.rp-msg.bot{align-self:flex-start;background:#fff;border:1px solid rgba(27,51,77,.08);border-bottom-left-radius:4px}
.rp-msg.me{align-self:flex-end;background:var(--teal);color:#fff;border-bottom-right-radius:4px}
.rp-hint{margin-top:6px;font-size:12px;color:var(--ink3);background:rgba(244,183,61,.14);padding:4px 8px;border-radius:8px}
.rp-coach{margin-top:6px;font-size:12.5px;color:var(--teal-d,#14756a)}
.rp-msg.me .rp-hint,.rp-msg.me .rp-coach{color:#fff;opacity:.92;background:rgba(255,255,255,.16)}
.rp-input{position:fixed;left:0;right:0;bottom:60px;background:var(--paper);padding:8px 12px;display:flex;gap:8px;border-top:1px solid rgba(27,51,77,.08);z-index:20}
.rp-input .tinput{flex:1;min-height:44px}
/* CEFR 证书 */
.cert-paper{margin:14px 12px;background:linear-gradient(160deg,#fffdf6,#fbf3df);border:2px double var(--mustard);border-radius:18px;padding:28px 20px;text-align:center}
.cert-top{font-family:var(--font-d);font-size:20px;font-weight:800;color:var(--ink);letter-spacing:2px}
.cert-sub{font-size:10.5px;letter-spacing:3px;color:var(--ink3);margin-top:4px}
.cert-name{font-size:22px;font-weight:700;margin:22px 0 8px;color:var(--ink)}
.cert-level{display:inline-block;font-family:var(--font-d);font-size:52px;font-weight:900;color:var(--coral);line-height:1;margin:6px 0 14px}
.cert-desc{font-size:13.5px;color:var(--ink2);line-height:1.9}
.cert-no{margin-top:18px;font-size:11.5px;color:var(--ink3)}

/* ===== 点词阅读/绘本/对战/硬件 ===== */
.rd-list{padding:0 12px;display:flex;flex-direction:column;gap:10px}
.rd-item{background:#fff;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;border:1.5px solid rgba(27,51,77,.07)}
.rd-item em{font-style:normal;color:var(--ink3);font-size:12.5px}
.rd-text{font-size:16px;line-height:2.1;color:var(--ink)}
.rd-word{background:rgba(34,179,160,.16);border-radius:6px;padding:1px 4px;color:#14756a;font-weight:600;cursor:pointer}
.rd-word.saved{background:rgba(244,183,61,.3);color:#8a6410}
.rd-chip{font-size:12.5px;background:rgba(27,51,77,.06);border-radius:20px;padding:4px 10px}
.rd-chip.on{background:rgba(34,179,160,.18);color:#14756a;font-weight:600}
.bk-pages{padding:0 12px;display:flex;flex-direction:column;gap:10px}
.bk-page{background:#fff;border-radius:14px;padding:14px;display:flex;gap:12px;align-items:flex-start;border:1.5px solid rgba(27,51,77,.07)}
.bk-no{width:30px;height:30px;border-radius:50%;background:var(--mustard);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex:none}
.bk-speak{margin-left:auto;background:var(--teal);color:#fff;border-radius:10px;padding:6px 12px;font-size:13px;flex:none;min-height:36px}
/* === 场景详情工具条防溢出 20260906a === */
.appbar button,.appbar .pill-select{white-space:nowrap}
.scene-appbar{flex-wrap:wrap;row-gap:8px}
.scene-appbar .scene-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto;max-width:46%}
.scene-appbar .seg2{flex:none}
@media(max-width:640px){
  .scene-appbar{flex-wrap:wrap;gap:7px}
  .scene-appbar .scene-title{font-size:17px;max-width:38%}
  .scene-appbar .seg2.mini button{padding:0 9px}
}
/* === 场景合并工具条/显示设置弹层 20260906b === */
.scene-ctl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.disp-wrap{position:relative}
.disp-sheet{position:absolute;right:0;top:calc(100% + 6px);z-index:60;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 12px 32px rgba(27,51,77,.16);display:flex;flex-direction:column;gap:10px;min-width:248px}
.disp-sheet[hidden]{display:none}
.ds-grp{display:flex;align-items:center;gap:10px;justify-content:space-between}
.ds-l{font-size:12.5px;font-weight:700;color:var(--ink3);flex:none}
.ds-grp .seg2{flex:none}
.pill-select.on{background:var(--ink);color:#fff;border-color:var(--ink)}
@media(max-width:640px){
  .disp-sheet{position:fixed;left:12px;right:12px;top:auto;bottom:78px;min-width:0;z-index:80}
  .scene-ctl .seg2.mini button{padding:0 12px}
}
/* === OPD 式点读放大 20260906c === */
.scene-stage{position:relative;width:100%;transition:transform .32s cubic-bezier(.22,.61,.36,1);transform-origin:center center;z-index:1}
.scene-box img{position:relative;z-index:0}
.scene-stage .spot{z-index:2}
.scene-box.zoomed .spot:not(.on){opacity:.22}
.spot.on{background:rgba(37,99,235,.85)!important;border-color:#fff;box-shadow:0 0 0 6px rgba(37,99,235,.28);animation:none;z-index:3}
.zoom-reset{position:absolute;top:12px;left:12px;z-index:6;display:none;background:rgba(27,51,77,.82);color:#fff;border:0;border-radius:999px;padding:8px 14px;font-weight:700;font-size:13px;backdrop-filter:blur(4px)}
.scene-box.zoomed .zoom-reset{display:block}
.sheet-nav{display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}
.sheet-nav .pill-select{font-size:12.5px;padding:7px 10px}
@media(max-width:640px){
  .scene-box.portrait-box .scene-stage,.cmp-box .scene-stage{transition-duration:.28s}
}
/* === 列表页控件收编 20260907a === */
.list-ctl{gap:8px}
.ds-seg{flex-wrap:wrap;justify-content:flex-end;max-width:188px}
.ds-seg button{margin-bottom:4px}
.level-sheet{min-width:264px}
.style-level-bar{display:none}
.nav-lang{display:flex;align-items:center;gap:6px;margin:0 10px;}
.nav-lang .nlp{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--ink3);}
.nav-lang .nlp select{font-size:12px;padding:3px 6px;border-radius:6px;border:1px solid #d8e2ec;background:#fff;min-height:32px;}
.nav-lang .nlp-swap{background:#eef4f9;border:none;border-radius:6px;width:32px;height:32px;cursor:pointer;font-size:14px;}
.nav-lang .nlp-swap:hover{background:#dde8f2;}
@media (max-width: 720px){
  /* 移动端导航两行：第一行 logo+账号，第二行语言切换，避免溢出 */
  .nav-in{flex-wrap:wrap;height:auto;gap:0 8px;padding:8px 12px;row-gap:8px;}
  .nav .logo{font-size:16px;}
  .nav .logo i{width:26px;height:26px;}
  .nav-right{margin-left:auto;gap:6px;}
  .nav-right .btn{padding:8px 12px;font-size:13px;min-height:38px;}
  .nav-lang{order:10;flex:1 1 100%;width:100%;margin:0;gap:8px;justify-content:space-between;}
  .nav-lang .nlp{flex:1 1 0;min-width:0;}
  .nav-lang .nlp span{display:none;}
  .nav-lang .nlp select{flex:1;width:100%;min-width:0;min-height:38px;font-size:13px;}
  .nav-lang .nlp-swap{flex:0 0 38px;width:38px;height:38px;}
}

.rotate-guide{display:flex;align-items:center;gap:12px;margin:10px 14px;padding:12px 14px;background:var(--blush);border:1px solid #f3d2c6;border-radius:12px;color:var(--ink)}
.rotate-guide .rot-icon{color:var(--coral);flex:none}
.rotate-guide .rot-txt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.rotate-guide .rot-txt b{font-size:14px}
.rotate-guide .rot-txt span{font-size:12.5px;color:var(--ink2)}
.rotate-guide .rot-btns{display:flex;flex-direction:column;gap:6px;flex:none}
.ds-seg button{padding:0 10px}
@media(max-height:520px){
  html.vm-phone .scene-main{min-width:0}
  html.vm-phone .scene-media-wrap{display:flex;justify-content:center;align-items:flex-start}
  html.vm-phone .scene-box{margin:0 auto}
  html.vm-phone .scene-box img{height:auto;max-height:calc(100vh - 120px);width:auto;max-width:100%;display:block;margin:0 auto}
}

/* 横屏手机（极矮）：最大化点读区域 */
@media(max-height:520px){
  body > nav.nav{display:none}
  nav.tabbar{display:none}
  .app-shell > .cardx{display:none}
  .scene-appbar{padding:4px 8px;gap:6px;flex-wrap:nowrap;align-items:center}
  .scene-appbar .scene-title{display:none}
  .scene-appbar .pill-select{height:30px;min-height:30px;font-size:12px}
  .scene-appbar .s-crumb-item{font-size:12px}
  .scene-ctl-row{padding:3px 8px;margin:0}
  .scene-ctl-row .scene-ctl-toggle{display:none}
  .scene-ctl-row .scene-ctl-inner{display:flex!important;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:6px}
  .scene-ctl-row .seg2.mini button{height:28px;padding:0 9px;font-size:12px}
  .scene-ctl-row .pill-select{height:28px;min-height:28px;font-size:12px}
  .scene-ctl-row .disp-wrap{margin:0}
  .scene-main{min-width:0}
  .scene-media-wrap{display:flex;align-items:center;justify-content:center;padding:0}
  .scene-box{height:calc(100vh - 66px);max-height:calc(100vh - 66px);width:auto;max-width:100%;margin:0 auto}
  .scene-box img{height:100%;max-height:100%;width:auto;max-width:100%;display:block}
  .scene-stage{height:100%}
  .snav{width:36px;height:36px}
  #sceneAside{display:none}
}

@media(max-height:520px){
  body.tab-on nav.tabbar.in{display:none}
}

@media(max-height:520px){
  .spot-label{font-size:11.5px;padding:1px 5px;border-radius:6px;line-height:1.2}
  .spot-label .term-tgt{font-size:11.5px}
  .spot-dot{width:14px;height:14px;margin:-7px 0 0 -7px}
  .spot-dot .spot-num{font-size:8px}
}

/* === 手机端竖版：完整显示 + 专注全屏 20261016img16 === */
.focus-expand{position:absolute;top:10px;right:10px;z-index:7;display:none;align-items:center;gap:5px;
  background:rgba(27,51,77,.82);color:#fff;border:0;border-radius:999px;padding:7px 13px;font-weight:700;font-size:12.5px;backdrop-filter:blur(4px)}
@media(max-width:640px){.focus-expand{display:flex;}}
html.focus-mode #sceneMediaWrap{position:fixed !important;inset:0 !important;z-index:9998 !important;
  background:#ffffff !important;display:flex;align-items:center;justify-content:center;margin:0;
  padding:calc(env(safe-area-inset-top,0px) + 10px) calc(env(safe-area-inset-right,0px) + 10px)
          calc(env(safe-area-inset-bottom,0px) + 10px) calc(env(safe-area-inset-left,0px) + 10px);overflow:hidden;}
html.focus-mode .nav,html.focus-mode .tabbar,html.focus-mode .appbar,html.focus-mode .scene-ctl,
html.focus-mode #sceneAside,html.focus-mode .cv-tabs,html.focus-mode .scene-media-wrap .snav{display:none !important;}
html.focus-mode .scene-box{width:auto;height:auto;max-width:100%;max-height:100%;margin:0;border-radius:14px;
  box-shadow:0 12px 40px rgba(0,0,0,.18);}
html.focus-mode .scene-box.portrait-box{aspect-ratio:9/16;}
html.focus-mode .scene-box:not(.portrait-box){aspect-ratio:16/9;}
html.focus-mode .scene-box img{width:100%;height:100%;object-fit:cover;}
html.focus-mode .scene-stage{touch-action:none;}
.focus-close{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);right:calc(env(safe-area-inset-right,0px) + 12px);
  z-index:9999;display:none;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;
  background:rgba(27,51,77,.85);color:#fff;border:0;font-size:20px;font-weight:800;backdrop-filter:blur(4px)}
html.focus-mode .focus-close{display:flex;}
.focus-hint{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);transform:translateX(-50%);
  z-index:9999;display:none;background:rgba(27,51,77,.78);color:#fff;border-radius:999px;padding:7px 16px;font-size:12.5px;font-weight:600;}
html.focus-mode .focus-hint{display:block;}
/* === 竖版沉浸全屏：点读放大·抖音式切场景·左右滑菜单 20261016img18 === */
/* 全屏下词条面板：不整体压暗画面，底部浮卡，上方可见被放大的图 */
html.focus-mode .sheet-mask{z-index:9999;background:transparent !important;pointer-events:none;align-items:flex-end;justify-content:center;}
html.focus-mode .sheet-mask.on{display:flex;}
html.focus-mode .sheet{pointer-events:auto;max-width:560px;width:100%;max-height:46vh;overflow:auto;border-radius:24px 24px 0 0;
  background:rgba(255,255,255,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 -12px 44px rgba(15,28,42,.22);padding:10px 20px calc(env(safe-area-inset-bottom,0px) + 22px);margin:0 auto;}
html.focus-mode .sheet h3{font-size:24px;}
html.focus-mode .sheet::before{content:"";display:block;width:42px;height:4px;border-radius:99px;background:var(--line,#e3e8ee);margin:2px auto 10px;}
html.focus-mode .sheet .sheet-nav{position:sticky;top:-10px;background:linear-gradient(rgba(255,255,255,.96),rgba(255,255,255,.85));padding:2px 0 6px;z-index:2;}
/* 全屏内上下翻页按钮 */
.focus-fnav{position:fixed;right:calc(env(safe-area-inset-right,0px) + 14px);z-index:9999;display:none;
  width:46px;height:46px;border-radius:50%;align-items:center;justify-content:center;background:rgba(27,51,77,.72);color:#fff;
  border:0;font-size:18px;font-weight:800;backdrop-filter:blur(4px);box-shadow:0 4px 14px rgba(15,28,42,.3);}
html.focus-mode .focus-fnav{display:flex;}
.focus-fnav-up{top:calc(env(safe-area-inset-top,0px) + 70px);}
.focus-fnav-down{bottom:calc(env(safe-area-inset-bottom,0px) + 88px);}
.focus-fnav:disabled{opacity:.35;}
/* 滑动方向指示 */
.focus-swipe-ind{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.9);z-index:10000;
  width:66px;height:66px;border-radius:50%;background:rgba(27,51,77,.8);color:#fff;display:flex;align-items:center;
  justify-content:center;font-size:30px;opacity:0;pointer-events:none;transition:opacity .1s ease,transform .1s ease;}
.focus-swipe-ind.on{opacity:.92;transform:translate(-50%,-50%) scale(1);}
/* 左右抽屉 */
.fd-mask{position:fixed;inset:0;background:rgba(15,28,42,.4);z-index:10001;opacity:0;pointer-events:none;transition:opacity .26s ease;}
.fd-mask.on{opacity:1;pointer-events:auto;}
.fd{position:fixed;top:0;bottom:0;width:min(86vw,360px);z-index:10002;background:var(--card,#fff);display:flex;flex-direction:column;
  overflow:hidden;transition:transform .3s cubic-bezier(.22,.61,.36,1);box-shadow:0 12px 50px rgba(15,28,42,.3);}
.fd.left{left:0;transform:translateX(-102%);}
.fd.right{right:0;transform:translateX(102%);}
.fd.left.on,.fd.right.on{transform:translateX(0);}
.fd-head{padding:calc(env(safe-area-inset-top,0px) + 14px) 18px 12px;border-bottom:1px solid var(--line,#eef1f5);
  display:flex;align-items:center;justify-content:space-between;font-size:16px;font-family:var(--font-d);}
.fd-x{width:34px;height:34px;border-radius:50%;border:0;background:var(--paper,#f3f6fa);color:var(--ink);font-size:15px;cursor:pointer;}
.fd-body{flex:1;overflow:auto;padding:16px 16px calc(env(safe-area-inset-bottom,0px) + 24px);}
.fd-sec{margin-bottom:18px;}
.fd-sec>b{display:block;font-size:13px;color:var(--ink2);margin-bottom:8px;}
.fd-full{width:100%;justify-content:center;min-height:40px;margin-bottom:8px;}
.fd-row{display:flex;gap:8px;}
.fd-row .pill-select{flex:1;justify-content:center;}
.fd-words{display:flex;flex-direction:column;gap:7px;}
.fd-word{display:flex;align-items:center;gap:9px;text-align:left;width:100%;background:var(--paper,#f6f8fb);border:1px solid var(--line,#eef1f5);
  border-radius:12px;padding:9px 12px;font-size:14px;cursor:pointer;color:var(--ink);}
.fd-word:active{background:#e9eff7;}
.fd-word .chip-n{flex:none;width:22px;height:22px;border-radius:50%;background:var(--coral,#ff6b4a);color:#fff;font-size:11px;font-weight:700;
  display:flex;align-items:center;justify-content:center;}
@media(max-width:640px){html.focus-mode .focus-hint{font-size:11px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);max-width:92vw;text-align:center;}
  html.focus-mode .sheet{max-height:44vh;}}

/* ===== 场景详情右侧边栏：可折叠卡片 20261018side1 ===== */
.collapsible .cx-head{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.collapsible .cx-head b{font-size:15px;line-height:1.35}
.collapsible .cx-right{display:inline-flex;align-items:center;gap:2px;flex:none}
.collapsible .cx-label{font-size:12px;font-weight:500;color:#9aa3ad;margin-right:4px}
.collapsible .cx-label::before{content:"收起"}
.collapsible .cx-chev{color:#9aa3ad;font-size:13px;transition:transform .18s ease;line-height:1}
.collapsible .cx-body{margin-top:12px}
.collapsible .cx-compact{display:none}
.collapsible.collapsed .cx-label::before{content:"展开"}
.collapsible.collapsed .cx-chev{transform:rotate(-90deg)}
.collapsible.collapsed .cx-body{display:none}
.collapsible.collapsed .cx-compact{display:block;margin-top:10px}
/* 对象列表：折叠时仍展示前 6 个词条，其余收起 */
#sceneWordList .cx-body{margin-top:0}
#sceneWordList.collapsed .cx-body{display:block;margin-top:10px}
#sceneWordList.collapsed #cvWordsList .chip-num:nth-child(n+7){display:none}
@media(max-width:639px){
  .collapsible .cx-head b{font-size:14.5px}
}
