*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;background:#f5f6fa;color:#1f2330}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:1px solid #d6d9e3;background:#fff;border-radius:8px;padding:7px 12px;color:#1f2330}
button:hover{border-color:#4f6bff;color:#4f6bff}
button.primary{background:#4f6bff;color:#fff;border-color:#4f6bff}
button.primary:hover{background:#3d57e6;color:#fff}
button.on{background:#eef1ff;border-color:#4f6bff;color:#4f6bff}
button.danger{color:#e5484d}
input,select{font:inherit;padding:9px 12px;border:1px solid #d6d9e3;border-radius:8px;width:100%;background:#fff}
.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:12px 28px;background:#fff;border-bottom:1px solid #eceef4}
.logo{font-weight:700;font-size:20px}.logo small{font-weight:400;font-size:12px;color:#8a90a2;margin-left:8px}
nav{display:flex;gap:18px;align-items:center}nav a{color:#555b6e}nav a.active{color:#4f6bff;font-weight:600}
#userbox{display:flex;gap:10px;align-items:center;font-size:14px}
.badge{font-size:12px;padding:2px 8px;border-radius:99px;background:#eef1ff;color:#4f6bff}
.badge.gray{background:#f0f0f3;color:#777}.badge.green{background:#e6f7ee;color:#18794e}.badge.orange{background:#fff1e6;color:#c4540a}
main{max-width:1280px;margin:0 auto;padding:24px 28px;min-height:70vh}
.hero{background:linear-gradient(120deg,#4f6bff,#8a5cff);color:#fff;border-radius:16px;padding:28px 32px;margin-bottom:24px}
.hero h1{margin:0 0 8px;font-size:26px}.hero p{margin:0;opacity:.9}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(20,30,60,.06);transition:.15s;cursor:pointer}
.card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(20,30,60,.12)}
.thumb{position:relative;aspect-ratio:16/9;background:#222 center/cover}
.thumb .dur{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.7);color:#fff;font-size:12px;padding:2px 6px;border-radius:4px}
.thumb .tag{position:absolute;left:8px;top:8px}
.thumb .lock{position:absolute;inset:0;background:rgba(10,12,20,.45);display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px}
.card-body{padding:12px 14px 14px}.card-body h3{margin:0 0 4px;font-size:16px}.card-body .zh{color:#555b6e;font-size:14px;margin-bottom:8px}
.meta{display:flex;gap:6px;flex-wrap:wrap;font-size:12px;color:#8a90a2;align-items:center}
.player-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:20px}
@media(max-width:900px){.player-wrap{grid-template-columns:1fr}}
.vbox{position:relative;background:#000;border-radius:14px;overflow:hidden}
.vbox video{width:100%;display:block;aspect-ratio:16/9}
.subs{position:absolute;left:0;right:0;bottom:44px;text-align:center;pointer-events:none;padding:0 6%}
.subs .en,.subs .zhs{display:inline-block;background:rgba(0,0,0,.62);color:#fff;padding:3px 10px;border-radius:6px;margin:2px 0;pointer-events:auto}
.subs .en{font-size:20px}.subs .zhs{font-size:16px;color:#ffe9a8}
.w{cursor:pointer;border-radius:3px}.w:hover{background:#4f6bff;color:#fff}
.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0;background:#fff;padding:12px;border-radius:12px}
.controls select{width:auto}
.controls .sep{flex:1}
.panel{background:#fff;border-radius:14px;padding:14px}
.panel h4{margin:0 0 10px;font-size:15px}
.rec{margin-top:12px}.rec .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rec .cur{font-size:15px;margin:8px 0;padding:10px;background:#f7f8fc;border-radius:8px}
.rec audio{height:36px}
.recdot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#e5484d;animation:blink 1s infinite;margin-right:6px}
@keyframes blink{50%{opacity:.2}}
.tabs{display:flex;gap:6px;margin-bottom:10px}
.transcript{max-height:calc(100vh - 230px);overflow:auto}
.line{padding:10px 12px;border-radius:10px;cursor:pointer;border-left:3px solid transparent;margin-bottom:4px}
.line:hover{background:#f7f8fc}.line.cur{background:#eef1ff;border-left-color:#4f6bff}
.line .en{font-size:15px;line-height:1.55}.line .zh{font-size:13px;color:#6b7186;margin-top:3px}
.line .t{font-size:11px;color:#a0a5b5;margin-right:6px}
.vocab-item{display:flex;justify-content:space-between;align-items:center;padding:8px 4px;border-bottom:1px solid #f0f1f5}
.vocab-item b{font-size:15px}.vocab-item .ph{color:#8a90a2;font-size:12px;margin:0 6px}.vocab-item .vz{font-size:13px;color:#555b6e}
.popup{position:absolute;z-index:50;width:300px;background:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(20,30,60,.25);padding:14px 16px}
.popup .pw{font-size:20px;font-weight:700}.popup .pp{color:#8a90a2;font-size:13px;margin:2px 0 8px}
.popup .pz{font-size:15px;margin-bottom:6px}.popup .pd{font-size:13px;color:#555b6e;margin-bottom:10px}
.popup .src{font-size:11px;color:#a0a5b5}
.popup .acts{display:flex;gap:8px;margin-top:8px}
.hidden{display:none!important}
.modal{position:fixed;inset:0;background:rgba(10,12,20,.45);z-index:60;display:flex;align-items:center;justify-content:center}
.modal-box{background:#fff;border-radius:16px;padding:24px;width:min(420px,92vw);max-height:92vh;overflow-y:auto}
.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#1f2330;color:#fff;padding:10px 18px;border-radius:10px;z-index:80;font-size:14px}
.form{max-width:420px;margin:30px auto;background:#fff;padding:28px;border-radius:16px}
.form h2{margin-top:0}.form label{display:block;font-size:13px;color:#555b6e;margin:14px 0 6px}
.form .hint{font-size:12px;color:#8a90a2;margin-top:6px}.form .err{color:#e5484d;font-size:13px;margin-top:10px;min-height:18px}
.form button.primary{width:100%;margin-top:18px;padding:11px}
.switch{text-align:center;margin-top:14px;font-size:14px;color:#555b6e}.switch a{color:#4f6bff}
.flip{perspective:1200px;width:min(460px,92vw);height:300px;margin:20px auto;cursor:pointer}
.flip-inner{position:relative;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}
.flip.flipped .flip-inner{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;background:#fff;border-radius:18px;box-shadow:0 6px 24px rgba(20,30,60,.12);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.face.back{transform:rotateY(180deg);background:#fbfbff}
.face .big{font-size:36px;font-weight:700}.face .ex{font-size:14px;color:#555b6e;margin-top:16px;line-height:1.5}
.review-acts{display:flex;justify-content:center;gap:12px}
.wordlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:20px}
.wcard{background:#fff;border-radius:12px;padding:12px 14px}.wcard .top{display:flex;justify-content:space-between}
.wcard .z{font-size:13px;color:#555b6e;margin-top:4px}
.empty{text-align:center;color:#8a90a2;padding:60px 0}
.attrib{font-size:12px;color:#8a90a2;margin-top:10px}.attrib a{color:#4f6bff}
.footer{text-align:center;font-size:12px;color:#a0a5b5;padding:24px;line-height:1.6}
.lockbox{text-align:center;padding:60px 20px;background:#fff;border-radius:16px}
.logomark{display:inline-block;background:linear-gradient(120deg,#4f6bff,#8a5cff);color:#fff;padding:3px 10px;border-radius:9px;letter-spacing:2px}
.hero{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:center}
.hero .kicker{opacity:.8;font-size:13px;letter-spacing:2px;margin-bottom:8px}
.hero-btns{margin-top:18px;display:flex;gap:10px}
button.light{background:#fff;color:#4f6bff;border-color:#fff;font-weight:600;padding:10px 20px}
button.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7);padding:10px 20px}
.stats{display:grid;grid-template-columns:repeat(2,130px);gap:12px}
.stats div{background:rgba(255,255,255,.15);border-radius:12px;padding:12px;font-size:13px}.stats b{display:block;font-size:26px}
.sec-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;margin:10px 0 14px}.sec-head h2{margin:0}
.chips{display:flex;gap:8px}.chip{padding:5px 12px;border-radius:99px;background:#fff;border:1px solid #e2e5ee;font-size:13px;cursor:pointer}.chip.on{background:#4f6bff;color:#fff;border-color:#4f6bff}
section{margin-bottom:34px}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.feat{background:#fff;border-radius:10px;padding:12px;font-size:14px}
.step-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.step-grid>div{background:#fff;border-radius:12px;padding:16px}
.step-grid b{color:#4f6bff;font-size:20px}.step-grid h4{margin:6px 0}.step-grid p{margin:0;font-size:13px;color:#555b6e}
.faq details{background:#fff;border-radius:10px;padding:12px 16px;margin-bottom:8px}.faq summary{cursor:pointer;font-weight:600}.faq p{color:#555b6e;font-size:14px;margin:8px 0 0}
.buybox{background:#fff;border:2px solid #4f6bff;border-radius:16px;padding:20px;text-align:center}
.buy-tag{display:inline-block;background:#fff1e6;color:#c4540a;font-size:12px;padding:3px 10px;border-radius:99px}
.price{font-size:46px;font-weight:800;color:#e5484d;margin:8px 0}.price span{font-size:22px}
.perks{text-align:left;font-size:14px;color:#555b6e;padding-left:20px;line-height:1.9}
button.big{width:100%;padding:12px;font-size:16px}
.buybox .hint{font-size:13px;margin-top:10px;color:#8a90a2}.buybox .hint a{color:#4f6bff}
.pricing{max-width:900px;margin:10px auto}.pricing h2{text-align:center;margin-bottom:4px}.pricing .sub{text-align:center;color:#8a90a2;margin-top:0}
.pricing-cols{display:grid;grid-template-columns:1fr 360px;gap:24px;margin-top:20px}@media(max-width:800px){.pricing-cols{grid-template-columns:1fr}}
.gets{background:#fff;border-radius:16px;padding:20px}.get{display:flex;gap:12px;margin:12px 0}.get b{color:#4f6bff;font-size:20px}.get h5{margin:0;font-size:15px}.get p{margin:3px 0 0;font-size:13px;color:#555b6e}
.flow{font-size:14px;color:#555b6e;line-height:1.9}
.vhead{display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px 14px 0 0;padding:12px 16px}.vhead h2{margin:0;font-size:17px;flex:1}.vhead .vm{font-size:12px;color:#8a90a2}.vhead .back{font-size:26px;line-height:1;color:#555b6e}
.vhead+.vbox{border-radius:0 0 14px 14px}
.side-head{display:flex;justify-content:space-between;align-items:center}.side-head h4{margin:0}.side-head .tabs{margin:0}
.side-tools{display:flex;justify-content:space-between;font-size:12px;color:#8a90a2;margin:10px 0}.side-tools input{width:auto}
.line{position:relative;background:#fafbfd}.line-acts{position:absolute;right:8px;top:6px;display:none;gap:4px}.line:hover .line-acts,.line.cur .line-acts{display:flex}
.line-acts button,button.mini{padding:2px 7px;font-size:12px}
.w.key{border-bottom:2px solid #34c77b}
.tabs button.on{background:#eef1ff;border-color:#4f6bff;color:#4f6bff}

.cat-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;position:sticky;top:57px;z-index:5;background:#f5f6fa;padding:8px 0}
.cat{border-radius:99px;padding:8px 16px;font-size:15px}.cat small{color:#a0a5b5;margin-left:2px}.cat.on{background:#4f6bff;color:#fff;border-color:#4f6bff}.cat.on small{color:#dfe4ff}
.cat-sec{margin-bottom:28px}.cat-head{display:flex;justify-content:space-between;align-items:baseline}.cat-head h3{margin:0 0 12px}.cat-head small{color:#8a90a2;font-weight:400;font-size:13px}.cat-head a{color:#4f6bff;font-size:14px}
.cnt{font-size:14px;color:#8a90a2;font-weight:400}
table.credits{width:100%;border-collapse:collapse;background:#fff;font-size:13px}table.credits td,table.credits th{padding:8px 10px;border-bottom:1px solid #f0f1f5;text-align:left;vertical-align:top}table.credits small{color:#8a90a2}table.credits a{color:#4f6bff}

.member-note{font-size:12px;color:#8a8fa3;margin-top:10px;line-height:1.5}.member-note a{color:#4f6bff}
.agree{display:flex;align-items:center;gap:6px;font-size:13px;color:#555b6e;margin:10px 0 2px;font-weight:400}.agree input{width:auto;margin:0}.agree a{color:#4f6bff}
.expiry b{color:#1f9d55}
.terms{max-width:820px;margin:0 auto;background:#fff;border-radius:16px;padding:28px 36px;line-height:1.8;font-size:15px;color:#2b2f3a}
.terms h3{margin:22px 0 6px;font-size:17px}.terms ol{padding-left:22px}.terms a{color:#4f6bff}
.terms-meta{color:#8a8fa3;font-size:13px}.terms-warn{background:#fff7e6;border:1px solid #ffd591;color:#ad6800;border-radius:10px;padding:10px 14px;font-size:13px}
.terms-notice{background:#fff1f0;border:1px solid #ffa39e;border-radius:10px;padding:10px 14px;margin-top:10px}
.terms .def{background:#f0f4ff;border-left:4px solid #4f6bff;padding:10px 14px;border-radius:6px}
.ph{background:#fffbe6;color:#d46b08;border:1px dashed #faad14;border-radius:4px;padding:0 4px;font-size:13px}

/* ================= v2：新版首页 / 精读卡片 / 收藏 / 记录 / 打印 / 移动端 ================= */
:root{--brand:#4f6bff;--brand2:#8a5cff;--ink:#1f2330;--mute:#8a90a2;--line:#eceef4}
button.outline{background:#fff;color:var(--brand);border-color:var(--brand)}
.big-btn{padding:12px 22px;font-size:16px;border-radius:12px;font-weight:600}
.more{color:var(--brand);font-size:14px}
.hero2{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:center;background:radial-gradient(circle at 85% 20%,#efeaff 0,transparent 45%),radial-gradient(circle at 10% 90%,#e7f0ff 0,transparent 50%),#fff;border:1px solid var(--line);border-radius:22px;padding:38px 40px;margin-bottom:26px}
.hero2 .kicker{font-size:12px;letter-spacing:3px;color:var(--brand);font-weight:600;margin-bottom:12px}
.hero2 h1{font-size:38px;line-height:1.25;margin:0 0 14px;background:linear-gradient(120deg,#1f2330 30%,var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero2 p{color:#555b6e;line-height:1.7;margin:0}
.hero2 .hero-btns{margin-top:22px;display:flex;gap:12px;flex-wrap:wrap}
.hero-note{font-size:12px;color:var(--mute);margin-top:12px}
.stats2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stats2 div{background:linear-gradient(135deg,#f6f7ff,#fff);border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.stats2 b{display:block;font-size:30px;color:var(--brand)}.stats2 span{font-size:13px;color:#555b6e}
.hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.hero-tags span{background:#fff;border:1px dashed #cdd3ea;border-radius:99px;padding:4px 12px;font-size:13px;color:#555b6e}
.continue .cont-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.cont,.rec-row{display:flex;gap:12px;background:#fff;border-radius:14px;padding:10px;align-items:center;border:1px solid var(--line)}
.cont .ct,.rec-row .ct{width:96px;aspect-ratio:16/9;border-radius:8px;background:#222 center/cover;flex:none}
.cont b,.rec-row b{font-size:14px;display:block}.cont small,.rec-row small{color:var(--mute);font-size:12px;display:block}
.bar{height:6px;background:#eef0f6;border-radius:9px;margin:6px 0;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2))}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.filters select{width:auto}
.search{flex:1;min-width:240px;display:flex;align-items:center;background:#fff;border:1px solid #d6d9e3;border-radius:10px;padding-left:10px}.search input{border:0;background:transparent}.search input:focus{outline:none}
.fres{font-size:14px;color:#555b6e;margin-bottom:10px}.fres a{color:var(--brand);margin-left:8px}
.thumb .tag.r{left:auto;right:8px}
.thumb .pbar{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.35)}.thumb .pbar i{display:block;height:100%;background:#34c77b}
.sec-title{text-align:center;margin-bottom:18px}.sec-title h2{margin:0 0 6px}.sec-title p{margin:0;color:var(--mute);font-size:14px}
.tool-groups{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tg{background:#fff;border-radius:16px;padding:16px;border-top:4px solid var(--c)}
.tg-h{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.tg-h b{font-size:26px;color:var(--c)}.tg-h span{font-weight:600}
.ti{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px dashed #eef0f6}.ti:last-child{border:0}
.ti .ic{width:32px;height:32px;border-radius:10px;background:color-mix(in srgb,var(--c) 12%,#fff);display:flex;align-items:center;justify-content:center;flex:none}
.ti b{display:block;font-size:14px}.ti small{color:var(--mute);font-size:12px}
.path-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;counter-reset:s}
.path-list li{background:#fff;border-radius:16px;padding:16px;display:flex;gap:12px;align-items:flex-start;position:relative}
.pn{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.pb{flex:1}.pb h4{margin:4px 0 4px}.pb p{margin:0;font-size:13px;color:#555b6e;line-height:1.6}
.path-list li button{align-self:flex-end;white-space:nowrap}
.devices{display:grid;grid-template-columns:1fr 1.1fr;gap:30px;align-items:center;background:#fff;border-radius:22px;padding:30px 36px}
.dev-copy p{color:#555b6e;line-height:1.7}.dev-copy ul{padding-left:0;list-style:none;color:#555b6e;font-size:14px;line-height:2}
.dev-art{position:relative;height:260px}
.dev-art .scr{background:#222 center/cover;border-radius:6px;width:100%;height:100%}
.laptop{position:absolute;left:4%;top:10px;width:70%}.laptop .scr{aspect-ratio:16/10;height:auto;border:10px solid #23263a;border-radius:12px 12px 0 0}.laptop .base{height:12px;background:#cfd3e2;border-radius:0 0 14px 14px;margin:0 -6%}
.tablet{position:absolute;right:4%;top:30px;width:30%;aspect-ratio:3/4;border:8px solid #2f3247;border-radius:16px;background:#2f3247}
.phone{position:absolute;right:26%;bottom:0;width:20%;aspect-ratio:9/18;border:6px solid #1b1d2b;border-radius:18px;background:#fff;display:flex;flex-direction:column;overflow:hidden}
.phone .scr{height:34%;border-radius:0;flex:none}.phone .lines{padding:6px}.phone .lines i{display:block;height:6px;background:#e4e7f2;border-radius:4px;margin:6px 0}.phone .lines i:nth-child(2){background:#dfe5ff;width:80%}
.buy-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.buy-steps div{background:#fff;border-radius:16px;padding:18px}
.buy-steps b{display:inline-flex;width:30px;height:30px;border-radius:50%;background:#fff1e6;color:#c4540a;align-items:center;justify-content:center}.buy-steps h4{margin:10px 0 4px}.buy-steps p{margin:0;font-size:13px;color:#555b6e}
.help{display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(120deg,#f2f4ff,#f7f0ff);border-radius:16px;padding:16px 20px;margin-top:14px;flex-wrap:wrap}.help h4{margin:0 0 4px}.help p{margin:2px 0;font-size:14px;color:#555b6e}.help .sm{font-size:12px}
/* 播放页 */
.vacts{display:flex;gap:6px}
.player-wrap{--fs:15px}
.line .en{font-size:var(--fs)}.line .zh{font-size:calc(var(--fs) - 2px)}
.player-wrap.nozh .line .zh{display:none}.player-wrap.noen .line .en .w,.player-wrap.noen .line .en{color:transparent;user-select:none}.player-wrap.noen .line .en .t{color:#a0a5b5}
.controls .grp{display:inline-flex;gap:6px;align-items:center;background:#f5f6fa;border-radius:10px;padding:3px}
.controls .grp button,.controls .grp select{border-color:transparent}
.chk{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:#555b6e;padding:0 6px}.chk input{width:auto;margin:0}
.c2{margin-top:-4px}.fsz span{font-size:13px;min-width:22px;text-align:center;color:#555b6e}
.legend{margin-left:auto;font-size:12px;color:var(--mute);display:flex;align-items:center;gap:4px}
.lg{display:inline-block;width:16px;height:8px;border-radius:3px;margin-left:8px}.lg.key{border-bottom:2px solid #34c77b}.lg.pm{border-bottom:2px dashed #f59e0b}.lg.em{background:#efe7ff}
.w.pm{border-bottom:2px dashed #f59e0b}.w.key.pm{border-bottom:2px solid #34c77b;box-shadow:0 2px 0 #f59e0b}
.w.em{background:#f1eaff}.w.picked{background:#ffe08a!important;color:#1f2330!important}
.cloze .w.key:not(.rev),.cloze .w.pm:not(.rev){color:transparent!important;background:#e3e7f7;border-radius:4px;border-bottom:2px solid #9aa6d8;cursor:help}
.cloze .subs .w.key:not(.rev),.cloze .subs .w.pm:not(.rev){background:rgba(255,255,255,.25)}
.w.rev{background:#fff4c2;border-radius:3px}
.loopc{position:absolute;top:10px;right:10px;background:rgba(79,107,255,.9);color:#fff;font-size:12px;padding:3px 10px;border-radius:99px}
.trwrap{position:relative}
.transcript{position:relative}
.resume{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:var(--brand);color:#fff;border:0;border-radius:99px;box-shadow:0 6px 18px rgba(79,107,255,.35);font-size:13px}
.line.faved{border-left-color:#f5b400}.line.faved .favb{color:#f5b400}
.subtabs{display:flex;gap:6px;margin:10px 0 2px;flex-wrap:wrap}.subtabs button{border-radius:99px;font-size:13px;padding:5px 12px}.subtabs button.on{background:var(--brand);color:#fff;border-color:var(--brand)}.subtabs button small{opacity:.7}
.subtabs.big{justify-content:center;margin:12px 0}
.chips{display:flex;gap:6px;flex-wrap:wrap}.chips.center{justify-content:center}.chip{padding:3px 10px;font-size:12px}
.scard{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;background:#fff;border-left:4px solid #34c77b}
.scard.k-phrase{border-left-color:#f59e0b}.scard.k-expr{border-left-color:#a855f7}
.sc-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sc-t{font-size:17px}.ph2{color:var(--mute);font-size:12px}
.sc-acts{margin-left:auto;display:flex;gap:4px}
.sc-zh{margin:6px 0;font-size:14px}.sc-zh i{color:var(--mute);font-style:normal;font-size:12px}
.hidezh .sc-zh{filter:blur(5px);cursor:pointer}.hidezh .sc-zh.peek{filter:none}
.hidezh .sc-exzh{display:none}
.sc-swap{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:13px;margin:6px 0}.sc-swap span{color:#0ea5a4;font-size:12px;font-weight:600}.sc-swap em{font-style:normal;background:#e8f8f7;color:#0b7a79;border-radius:6px;padding:1px 8px}
.sc-swap.center{justify-content:center;margin-top:12px}
.sc-note{font-size:13px;color:#555b6e;background:#faf7ff;border-radius:8px;padding:6px 10px;margin:6px 0;line-height:1.6}
.sc-ex{font-size:13px;color:#3b4050;background:#f7f8fc;border-radius:8px;padding:8px 10px;line-height:1.55}.sc-ex mark{background:#fff1b8;padding:0 2px;border-radius:3px}.sc-exzh{color:var(--mute);margin-top:2px}
.sc-bot{display:flex;gap:6px;align-items:center;margin-top:8px}.sp{flex:1}
.mk.on-k{background:#e6f7ee;border-color:#34c77b;color:#18794e}.mk.on-u{background:#fff1e6;border-color:#f97316;color:#c4540a}
button.mini.on{background:#fff8e1;border-color:#f5b400;color:#a86b00}
.popup .acts{flex-wrap:wrap}
table.keys{width:100%;border-collapse:collapse;margin-bottom:10px}table.keys td{padding:6px 4px;border-bottom:1px solid #f0f1f5;font-size:14px}
kbd{background:#f5f6fa;border:1px solid #d6d9e3;border-bottom-width:2px;border-radius:6px;padding:1px 8px;font-family:inherit;font-size:13px}
.opt{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:10px 0;font-size:14px}.opt>span{color:var(--mute);width:48px}.opt label{display:flex;gap:4px;align-items:center}.opt input{width:auto;margin:0}
.code-ok{background:#e6f7ee;color:#18794e;border-radius:10px;padding:8px 12px;font-size:13px}.code-ok.bad{background:#fff1e6;color:#c4540a}
/* 卡片页 / 收藏 / 记录 */
.cards-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.cards-head h2{margin:0}
.face .big.long{font-size:24px;line-height:1.3}.face .badge.kb{position:absolute;top:14px;left:14px}.face .sayb{margin-top:12px}
.badge.kb{background:#f2f4ff}
.wcard.k-phrase{border-left:3px solid #f59e0b}.wcard.k-expr{border-left:3px solid #a855f7}.wcard.k-word{border-left:3px solid #34c77b}
.wcard .src-l{font-size:12px;color:var(--brand)}
.flip.swr .flip-inner{transform:translateX(40px) rotate(4deg)}.flip.swl .flip-inner{transform:translateX(-40px) rotate(-4deg)}
.favlist{max-width:860px;margin:16px auto}.fday{font-size:13px;color:var(--mute);margin:16px 0 6px}
.fav{background:#fff;border-radius:14px;padding:14px 16px;margin-bottom:10px;border-left:4px solid #f5b400}
.fen{font-size:16px;line-height:1.5}.fzh{color:#555b6e;font-size:14px;margin-top:4px}
.fmeta{display:flex;gap:6px;align-items:center;margin-top:10px;font-size:12px;color:var(--mute);flex-wrap:wrap}
.mystats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mystats>*{background:#f7f8fc;border-radius:12px;padding:10px;text-align:center;font-size:12px;color:#555b6e}.mystats b{display:block;font-size:22px;color:var(--ink)}
.mystats.wide{grid-template-columns:repeat(6,1fr);margin:12px 0}
.rec-row{margin-bottom:10px}.rec-row .rr{flex:1;min-width:0}.rec-row .ct{width:140px}
.acct{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:900px;margin:0 auto}.acct .form{margin:0;max-width:none}
.side-col{display:flex;flex-direction:column;gap:14px}.side-col .panel button{margin-top:8px}.side-col .err{color:#e5484d;font-size:13px;min-height:16px;margin-top:6px}.side-col .hint{font-size:12px;color:var(--mute);margin-top:6px}
.logout-m{display:none;width:100%;margin-top:14px}
/* 打印页 */
.print-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;background:#fff;border-radius:12px;padding:10px 14px;margin-bottom:16px;flex-wrap:wrap;font-size:14px}
.sheet{background:#fff;max-width:800px;margin:0 auto;padding:40px 48px;box-shadow:0 4px 24px rgba(20,30,60,.08);color:#111;font-size:14px}
.sh-h{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid #111;padding-bottom:12px;margin-bottom:16px}
.sh-brand{font-size:12px;letter-spacing:2px;color:#666}.sh-h h1{font-size:22px;margin:4px 0}.sh-en{color:#555}.sh-meta{font-size:12px;color:#666;text-align:right}
.sh-lines{padding-left:24px;margin:0}.sh-lines li{margin:0 0 10px;page-break-inside:avoid}.sh-lines li>div{display:inline}
.sh-t{font-size:11px;color:#888;margin-right:8px;font-family:ui-monospace,monospace}.sh-en2{display:inline;line-height:1.55}.sh-zh{color:#555;font-size:13px;margin-top:2px}
.sh-study h3{margin:22px 0 8px;font-size:16px;border-left:4px solid #111;padding-left:8px}
.ptbl{width:100%;border-collapse:collapse;font-size:12.5px}.ptbl th,.ptbl td{border:1px solid #ccc;padding:5px 8px;text-align:left;vertical-align:top}.ptbl th{background:#f3f3f3}.ptbl tr{page-break-inside:avoid}
.notes i{display:block;border-bottom:1px solid #bbb;height:28px}
.sh-f{margin-top:26px;border-top:1px solid #ddd;padding-top:8px;font-size:11px;color:#777;word-break:break-all}
@media print{
  .topbar,.tabbar,.footer,.no-print,#toast{display:none!important}
  body{background:#fff}main{padding:0;max-width:none}.sheet{box-shadow:none;padding:0;max-width:none}
  @page{size:A4;margin:16mm 14mm}
}
/* tabbar：仅手机显示 */
.tabbar{display:none}
@media (max-width:1100px){.tool-groups{grid-template-columns:repeat(2,1fr)}.path-list{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){
  .hide-m{display:none!important}
  body{padding-bottom:calc(62px + env(safe-area-inset-bottom))}
  .topbar{position:static;padding:10px 14px}.logo small{display:none}.logo{font-size:17px}
  #userbox{gap:6px}#userbox .badge{font-size:11px}
  main{padding:14px 12px}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .tabbar a{flex:1;text-align:center;font-size:11px;color:var(--mute);display:flex;flex-direction:column;align-items:center;gap:1px}.tabbar a i{font-style:normal;font-size:20px;filter:grayscale(1);opacity:.7}
  .tabbar a.active{color:var(--brand);font-weight:600}.tabbar a.active i{filter:none;opacity:1}
  .hero2{grid-template-columns:1fr;padding:22px 18px;gap:18px;border-radius:18px}.hero2 h1{font-size:28px}
  .hero2 .hero-btns{flex-direction:column}.hero2 .hero-btns button,.hero2 .hero-btns a{width:100%}
  .stats2 b{font-size:24px}
  .cat-tabs{position:sticky;top:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -12px 14px;padding:8px 12px}.cat{white-space:nowrap;padding:6px 12px;font-size:14px}
  .filters select{flex:1;min-width:0}.search{min-width:100%}
  .grid{grid-template-columns:1fr 1fr;gap:10px}.card-body{padding:8px 10px 10px}.card-body h3{font-size:14px}.card-body .zh{font-size:12px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.meta span:nth-child(n+3){display:none}
  .tool-groups,.path-list,.buy-steps{grid-template-columns:1fr}
  .devices{grid-template-columns:1fr;padding:20px}.dev-art{height:200px}
  .continue .cont-row{grid-template-columns:1fr}
  /* 播放页：视频吸顶，字幕在下方滑动 */
  body.on-video main{padding:0 0 10px}
  .player-wrap{gap:10px}
  .vsticky{position:sticky;top:0;z-index:15;background:#000}
  .vhead{border-radius:0;padding:8px 10px;gap:6px}.vhead h2{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vhead .vm{display:none}.vacts button{padding:2px 6px}
  .vhead+.vbox,.vbox{border-radius:0}
  .subs{bottom:38px}.subs .en{font-size:15px}.subs .zhs{font-size:13px}
  .controls{margin:8px 10px;padding:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:6px}.controls>*{flex:none}.controls button{white-space:nowrap;padding:6px 10px;font-size:13px}
  .panel{margin:0 10px;border-radius:12px}.panel.side{order:-1}
  .player-wrap>.pl{display:contents}
  .player-wrap{display:flex;flex-direction:column}
  .vsticky{order:-3}.controls{order:-2}.c2{order:-2}
  .panel.side{order:-1}
  .transcript{max-height:52vh}
  .line-acts{position:static;display:none;margin-top:6px}.line.cur .line-acts{display:flex}.line-acts button{padding:4px 10px}
  .rec .row button{flex:1}
  .popup{max-width:calc(100vw - 16px)}
  .pricing-cols{grid-template-columns:1fr}.acct{grid-template-columns:1fr}.logout-m{display:block}
  .mystats.wide{grid-template-columns:repeat(3,1fr)}
  .rec-row .ct{width:96px}
  .flip{height:260px}
  .sheet{padding:18px 14px}.print-bar{position:sticky;top:0;z-index:5}
  .terms{padding:18px}
}
/* v2 细节修正 */
.subs .w.em{background:rgba(168,85,247,.28)}
.subs .w.pm{border-bottom-color:#fbbf24}
.line-acts{display:none}
.line.cur .line-acts{display:flex;position:static;justify-content:flex-end;margin-top:6px}
.line:not(.cur):hover .line-acts{display:flex;background:rgba(250,251,253,.96);box-shadow:0 2px 8px rgba(20,30,60,.12);border-radius:8px;padding:2px}
@media (max-width:760px){
  .subs{position:static;background:#111;padding:6px 10px 8px;pointer-events:auto}
  .subs .en,.subs .zhs{background:transparent;padding:0;margin:0}
  .subs .en{font-size:14px;line-height:1.45}.subs .zhs{font-size:12px}
  .line:not(.cur):hover .line-acts{display:none}
}

.noreturn{font-size:12.5px;color:#c4540a;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:6px 10px;margin:4px 0 10px;text-align:left}
.help a.mail{color:#4f6bff}
.agree{flex-wrap:wrap}

.danger-zone{border:1px solid #f5c2c2;background:#fff8f8}.danger-zone h4{color:#c62828}.danger-zone p{font-size:13px;color:#7a4b4b;margin:6px 0 10px}
.danger-btn{background:#e5484d;color:#fff;border:none;border-radius:8px;padding:9px 16px;cursor:pointer}.danger-btn:disabled{opacity:.45;cursor:not-allowed}
.del-dlg h3{color:#c62828;margin:0 0 8px}.del-dlg ul{margin:6px 0 12px 18px;font-size:13px;line-height:1.7;color:#555}.del-dlg p{font-size:14px}
.del-dlg label{display:block;font-size:13px;margin:10px 0 4px}.del-dlg input{width:100%;box-sizing:border-box}
.del-dlg .btns{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}

.buy-ch h3{margin:0 0 12px}.ch-list{display:flex;flex-direction:column;gap:8px}
.ch-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #e6e8f0;border-radius:12px;color:#1f2330;text-decoration:none}.ch-item:hover{border-color:#4f6bff;background:#f6f8ff}
.ch-item .ic{font-size:20px}.ch-item b{flex:1;font-weight:600}.ch-item .go{color:#4f6bff;font-size:13px}
.ch-tip{font-size:13px;color:#555b6e;margin:12px 0 8px}.ch-empty{background:#f7f8fc;border-radius:12px;padding:12px 14px;font-size:14px;margin-bottom:10px}.ch-empty p{margin:4px 0}
.buy-ch .btns{display:flex;justify-content:flex-end;margin-top:10px}

.manual{border:1px solid #e6e8f0;border-radius:12px;padding:10px 14px;margin-top:10px}.manual h4{margin:0 0 6px;font-size:14px}
.man-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0;font-size:14px}.man-row .acc{font-family:ui-monospace,Menlo,monospace}.man-row .qrw{flex-basis:100%}.man-row .qr{display:block;width:96px;height:96px;object-fit:contain;border:1px solid #eee;border-radius:8px}

/* ---- 2026-11 修订 ---- */
/* 句子操作按钮：桌面端浮在中文行右侧（不再盖住英文/中文文字），用 visibility 显隐，悬停时不跳动 */
@media (min-width:761px){
  .line{display:flow-root}
  .line-acts,.line.cur .line-acts,.line:not(.cur):hover .line-acts{display:flex;float:right;position:static;margin:3px 0 0 10px;background:none;box-shadow:none;padding:0;justify-content:flex-end}
  .line .line-acts{visibility:hidden}
  .line:hover .line-acts,.line.cur .line-acts,.line:focus-within .line-acts{visibility:visible}
}
@media (max-width:760px){
  .line{display:flex;flex-direction:column}.line .en{order:1}.line .zh{order:2}.line-acts{order:3;float:none}
  /* 工具栏横向滚动提示：右侧渐隐 + 箭头 */
  .controls{position:relative}
  .controls.more-r{-webkit-mask-image:linear-gradient(to right,#000 82%,transparent);mask-image:linear-gradient(to right,#000 82%,transparent)}
}
.pctx{font-size:15px;margin:6px 0 2px;color:#1d2235}.pctx i{color:#6b7186;margin-right:2px}.pctx .badge{font-size:11px;padding:1px 6px;background:#eef1ff;color:#4f6bff;border-radius:6px;vertical-align:1px}
/* 购买渠道弹窗里的「已有激活码？」等提示链接 */
.buy-ch .hint a,.modal .hint a,.buybox .hint a{color:#4f6bff;text-decoration:underline;text-underline-offset:2px}
.form .forgot{text-align:right;margin-top:8px;font-size:13px}.form .forgot a{color:#4f6bff}
#forgot-dlg a.mail{color:#4f6bff;font-weight:600}
.attrib a{color:#4f6bff}
