
:root{
  --bg:#FBF3EA; --card:#FFFFFF; --ink:#4A3B34; --sub:#A0887B; --line:#F2E6DA;
  --primary:#F68A6B; --primary-soft:#FDE3D8; --rose:#E8909A; --rose-soft:#FBE6EA;
  --grape:#B7A8E0; --grape-soft:#F0EDFB; --mint:#8FBFAD; --mint-soft:#E8F5EF;
  --gold:#E8B14E; --gold-soft:#FBF0D9;
  --r:22px; --r-sm:15px; --shadow:0 6px 20px rgba(160,120,90,.12);
}
body.girl{
  --bg:#F6F0FB; --ink:#4A3358; --sub:#A78FB8; --line:#EFE4F6;
  --primary:#E06AA6; --primary-soft:#FDE5F2; --rose:#F49AC1; --rose-soft:#FDEBF3;
  --grape:#9B7FE0; --grape-soft:#F0EBFB; --mint:#7FC4A8; --mint-soft:#E6F5EE;
  --gold:#F2B84B; --gold-soft:#FBF0D9; --shadow:0 6px 20px rgba(180,120,200,.14);
}
body.man{
  --bg:#EEF2F6; --card:#FFFFFF; --ink:#31404D; --sub:#7D8D9B; --line:#E0E7EE;
  --primary:#3D82C4; --primary-soft:#E4EFFA; --rose:#5BA6A0; --rose-soft:#E2F2F0;
  --grape:#6C7BB8; --grape-soft:#EBEEF9; --mint:#6FA98E; --mint-soft:#E6F1EC;
  --gold:#E8A93A; --gold-soft:#FBF0D9; --shadow:0 6px 20px rgba(60,90,130,.12);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;background:#EFE3D4;color:var(--ink);line-height:1.6;transition:background .3s}
.phone{max-width:430px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;overflow:hidden;box-shadow:0 0 60px rgba(0,0,0,.18);transition:background .3s}
/* 顶栏 */
.topbar{position:sticky;top:0;z-index:30;background:linear-gradient(180deg,var(--bg),var(--bg) 70%,rgba(0,0,0,0));padding:14px 20px 10px}
.greet{font-size:22px;font-weight:800}
.greet .wave{color:var(--primary)}
.greet-sub{font-size:12.5px;color:var(--sub);margin-top:2px}
.toprow{display:flex;align-items:center;justify-content:space-between}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--primary-soft),var(--rose-soft));display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:var(--shadow)}
.pill-credit{background:#fff;border:1px solid var(--line);border-radius:14px;padding:7px 12px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow);min-width:108px}
.pill-credit .pi{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:11.5px;color:var(--sub);font-weight:600;line-height:1}
.pill-credit .pi b{font-size:15px;font-weight:800;color:var(--primary)}
.pill-credit .pi.lt b{color:#f5a623}
/* 页面 */
.page{display:none;padding-bottom:126px}
.page.on{display:block}
/* 功能介绍查看器（原生应用内页面，非 iframe：底部导航栏保持不动，内容在 #guideBox 内滚动） */
#pgGuide{display:none;flex-direction:column;height:100vh;padding-bottom:126px;box-sizing:border-box}
#pgGuide.on{display:flex}
#guideBox{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;background:transparent}
/* 首页「功能介绍」入口卡 */
.guide-entry{display:flex;align-items:center;gap:12px;margin:0 20px 0;padding:13px 15px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--card);box-shadow:var(--shadow);cursor:pointer}
.guide-entry:active{transform:scale(.98)}
.guide-entry .ge-emo{font-size:24px;flex:none}
.guide-entry .ge-t{font-size:13.5px;font-weight:800}
.guide-entry .ge-s{font-size:11px;color:var(--sub);margin-top:2px;line-height:1.5}
.guide-entry .ge-go{color:#cbb;font-size:16px;margin-left:auto;flex:none}
/* 三步引导 */
.steps3{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin:6px 20px 0;box-shadow:var(--shadow)}
.step{flex:1;text-align:center}
.step .sn{width:30px;height:30px;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;margin:0 auto 4px}
.step .sl{font-size:11.5px;color:var(--sub)}
.step-arrow{color:#D9C4AE;font-size:14px}
/* 快捷 */
.quick{padding:22px 20px 14px}
.quick-title{font-size:14px;font-weight:700;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center}
.quick-title .more{font-size:12px;color:var(--primary);font-weight:600}
.quick-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:14px}
.qc{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 3px;text-align:center;cursor:pointer;box-shadow:var(--shadow)}
.qc .qi{font-size:24px;margin-bottom:5px}
.qc .qt{font-size:11px;color:var(--sub)}
.qc.hot{background:linear-gradient(135deg,var(--primary-soft),var(--rose-soft));border-color:var(--line)}
.qc.hot .qt{color:var(--ink)}
/* 区块 */
.sec{padding:18px 20px 0}
.sec-h{font-size:15px;font-weight:800;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center}
.sec-h .more{font-size:12.5px;color:var(--primary);font-weight:600}
.scroll-x{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.scroll-x::-webkit-scrollbar{display:none}
.tpl{flex:0 0 152px;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;cursor:pointer;box-shadow:var(--shadow)}
.tpl .cov{height:96px;display:flex;align-items:center;justify-content:center;font-size:38px}
.tpl .body{padding:10px 12px}
.tpl .t{font-size:12.5px;font-weight:700}
.tpl .m{font-size:10.5px;color:var(--sub);margin-top:2px}
.tpl .tag{display:inline-block;font-size:9.5px;padding:2px 7px;border-radius:99px;margin-top:6px;background:var(--primary-soft);color:var(--primary);font-weight:700}
.cov-a{background:linear-gradient(135deg,var(--primary-soft),var(--rose-soft))}
.cov-b{background:linear-gradient(135deg,var(--mint-soft),var(--grape-soft))}
.cov-c{background:linear-gradient(135deg,var(--gold-soft),var(--primary-soft))}
.cov-d{background:linear-gradient(135deg,var(--grape-soft),var(--rose-soft))}
.cov-e{background:linear-gradient(135deg,var(--primary),var(--rose))}
/* 短剧风格：首页醒目区卡片 */
.qc.drama{background:linear-gradient(135deg,var(--primary),var(--grape));border-color:var(--primary);box-shadow:0 6px 16px rgba(120,90,160,.30)}
.qc.drama .qi{font-size:22px}
.qc.drama .qt{color:#fff;font-weight:700}
/* 短剧创作页：风格选择卡片 */
.drama-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:0 20px}
#pgDrama .create-title,#pgDrama .create-sub,#pgDrama .field-label,#pgDrama .sample-note{margin-left:20px;margin-right:20px}
#pgDrama .create-title{margin-top:18px}
.drama-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 12px;text-align:center;cursor:pointer;box-shadow:var(--shadow);transition:transform .15s}
.drama-card:active{transform:scale(.96)}
.drama-card .dc-emo{font-size:30px;margin-bottom:6px}
.drama-card .dc-t{font-size:14px;font-weight:800;color:var(--ink)}
.drama-card .dc-s{font-size:10.5px;color:var(--sub);margin-top:3px}
/* 副业/灵感入口 */
.money{background:linear-gradient(135deg,var(--primary),var(--rose));border-radius:var(--r);padding:16px;margin:16px 20px 0;color:#fff;display:flex;align-items:center;justify-content:space-between;cursor:pointer;box-shadow:0 8px 22px rgba(120,90,160,.35)}
.money .mt{font-size:15px;font-weight:800}
.money .ms{font-size:11.5px;opacity:.9;margin-top:3px}
.money .btn-w{background:#fff;color:var(--primary);border-radius:99px;padding:8px 14px;font-size:12px;font-weight:800;flex:none}
/* tabbar */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:430px;max-width:100%;display:flex;z-index:80;padding:10px 0 14px;background:#fff;margin-bottom:-12px}
/* 中间向上凸出的圆形鼓包：被创作圆形顶出的圆形凸出 */
.tabbar::before{content:'';position:absolute;left:50%;transform:translateX(-50%);top:-16px;width:80px;height:80px;background:#fff;border-radius:50%;z-index:0;pointer-events:none;box-shadow:0 -8px 20px rgba(220,80,70,.10)}
.tab{flex:1;padding:6px 0 12px;background:none;border:none;color:rgba(246,138,107,.62);font-size:10.5px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;font-family:inherit;position:relative;z-index:1}
.tab svg{width:23px;height:23px}
.tab.on{color:var(--primary);font-weight:700}
/* 创作凸起按钮 */
.tab-create{position:relative;width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#f96a5a,#e94a4a);color:#fff;border:5px solid #fff;box-shadow:0 8px 22px rgba(220,80,70,.45);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:9px;font-weight:700;font-family:inherit;margin-top:-14px;flex:none;z-index:2;transition:transform .15s}
.tab-create:active{transform:scale(.94)}
.tab-create svg{width:26px;height:26px}
.tab-create.on{background:linear-gradient(135deg,var(--primary),var(--grape));transform:translateY(-2px)}
/* 创作弹出菜单 */
.cmask{position:fixed;inset:0;z-index:65;display:none}
.cmask.on{display:block;background:rgba(255,255,255,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.create-menu{position:fixed;bottom:92px;left:50%;transform:translateX(-50%);width:400px;max-width:calc(100% - 20px);z-index:70;display:none;flex-direction:column;gap:10px;align-items:stretch}
.create-menu.on{display:flex;animation:slideUp .28s}
.cmenu-item{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 18px;display:flex;align-items:center;gap:14px;cursor:pointer;box-shadow:0 6px 20px rgba(120,90,160,.16)}
.cmenu-item:hover{border-color:var(--primary)}
.cmenu-item .ci{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:24px;flex:none}
.cmenu-item .ct{font-size:14.5px;font-weight:800}
.cmenu-item .cs{font-size:10.5px;color:var(--sub);margin-top:2px}
.cmenu-item .cg{margin-left:auto;color:var(--primary);font-size:18px}
.cmenu-arrow{width:16px;height:16px;background:#fff;border-left:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(-45deg);margin:-6px auto 0}
/* 通用 */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:12px 20px 0;box-shadow:var(--shadow)}
.cats{padding:12px 20px 0;display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;-webkit-overflow-scrolling:touch;cursor:grab}
.cats::-webkit-scrollbar{height:5px}
.cats::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.cats::-webkit-scrollbar-track{background:transparent}
.cat{flex:none;background:#fff;border:1px solid var(--line);border-radius:99px;padding:7px 15px;font-size:12.5px;cursor:pointer}
.cat.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}
.tpl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px 20px 0}
.tpl-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;cursor:pointer;box-shadow:var(--shadow)}
.tpl-card .cov{height:110px;display:flex;align-items:center;justify-content:center;font-size:42px;position:relative}
.tpl-card .badge{position:absolute;top:8px;left:8px;font-size:9.5px;padding:3px 8px;border-radius:99px;background:rgba(255,255,255,.92);color:var(--primary);font-weight:800}
.tpl-card .badge.hot{background:var(--primary);color:#fff}
.tpl-card .body{padding:10px 12px}
.tpl-card .t{font-size:12.5px;font-weight:700}
.tpl-card .m{font-size:10.5px;color:var(--sub);margin-top:2px}
.tpl-card .stat{display:flex;gap:8px;align-items:center;margin-top:6px;font-size:10px;color:var(--sub)}
.tpl-card .stat .s{color:var(--gold);font-weight:700}
/* 创作 */
.steps-prog{padding:14px 0 0;display:flex;align-items:center;gap:6px}
.sp{flex:1;height:5px;border-radius:99px;background:#EBDBC8;position:relative}
.sp.fill{background:var(--primary)}
.sp.done{background:var(--mint)}
.sp-dot{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid #EBDBC8;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--sub)}
.sp-dot.fill{background:var(--primary);border-color:var(--primary);color:#fff}
.sp-dot.done{background:var(--mint);border-color:var(--mint);color:#fff}
.create-title{padding:16px 0 4px;font-size:17px;font-weight:800}
.mode-tabs{display:flex;gap:8px;margin:6px 0 2px}
.mode-tabs span{flex:1;text-align:center;padding:9px 0;border-radius:14px;background:var(--card);color:var(--sub);font-size:13px;font-weight:700;cursor:pointer;border:1px solid var(--line)}
.mode-tabs span.on{background:linear-gradient(135deg,var(--primary),var(--rose));color:#fff;border-color:transparent;font-weight:800;box-shadow:0 6px 16px rgba(120,90,160,.28)}
#pgCreate{padding:0 18px 126px}
.create-sub{font-size:12px;color:var(--sub)}
.field-label{font-size:13px;font-weight:700;margin:14px 0 8px;display:flex;align-items:center;gap:5px}
.field-label .tip{font-size:10.5px;color:var(--sub);font-weight:400}
.sel-tpl{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;cursor:pointer}
.img-model-list{display:flex;flex-direction:column;gap:8px;margin:8px 0 12px}
.img-model{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;transition:border-color .15s}
.img-model.on{border-color:var(--primary);background:rgba(127,127,140,.10)}
.img-model .st{font-size:14px;font-weight:700;color:var(--ink)}
.img-model .sm{font-size:12px;color:var(--sub)}
#pgImg{padding:0 18px 126px}
#pgImg textarea.inp{width:100%;box-sizing:border-box;padding:14px 15px;margin:2px 0 6px;border-radius:14px;border:1.5px solid var(--line);background:#fff;color:var(--ink);outline:none;font-size:13.5px;font-family:inherit;line-height:1.7;min-height:80px;resize:none;transition:border-color .2s,box-shadow .2s,background .2s}
#pgImg textarea.inp:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(246,138,107,.14);background:#fff}
#pgImg textarea.inp::placeholder{color:var(--sub);opacity:.8}
#pgImg .field-label .cnt{font-size:10.5px;color:var(--sub);font-weight:400;margin-left:auto}
#pgImg .field-label .cnt.warn{color:#e05b4c;font-weight:600}
.sel-tpl .emo{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex:none}
.sel-tpl .st{font-size:12.5px;font-weight:700}
.sel-tpl .sm{font-size:10.5px;color:var(--sub)}
.sel-tpl .go{margin-left:auto;color:var(--primary);font-size:18px}
.mat3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mat-s{background:#fff;border:1.5px dashed var(--line);border-radius:var(--r-sm);padding:18px 6px;text-align:center;cursor:pointer}
.mat-s.have{border-style:solid;border-color:var(--mint);background:var(--mint-soft)}
.mat-s .mi{font-size:26px}
.mat-s .mt{font-size:11px;font-weight:600;margin-top:4px}
.mat-s .ms{font-size:9.5px;color:var(--sub)}
.sample-note{background:var(--gold-soft);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:11.5px;color:#8A6A1F;margin-top:10px}
.gen-zone{background:linear-gradient(135deg,var(--primary),var(--rose));border-radius:var(--r);padding:22px 20px;margin:18px 0 0;color:#fff;text-align:center;cursor:pointer;box-shadow:0 10px 26px rgba(120,90,160,.35)}
.gen-zone .gi{font-size:34px}
.gen-zone .gt{font-size:17px;font-weight:800;margin-top:6px}
.gen-zone .gs{font-size:11.5px;opacity:.92;margin-top:4px}
/* 反推卖点 */
.reason-btn{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:14px 16px;display:flex;align-items:center;gap:12px;cursor:pointer}
.reason-btn .ri{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--rose));display:flex;align-items:center;justify-content:center;font-size:22px;flex:none;color:#fff}
.reason-btn .rt{font-size:14px;font-weight:700}
.reason-btn .rs{font-size:11px;color:var(--sub)}
#reasonForm .inp{width:100%;padding:10px 12px;margin-bottom:8px;border-radius:10px;border:1px solid var(--line);background:#fff;color:inherit;outline:none;font-size:12.5px;font-family:inherit;resize:none;height:40px}
/* AI帮写弹窗的输入框独立补样式（原 .inp 只在 #reasonForm 内生效，这里让它占满可用、不再显示过窄） */
#aiWriteMask .inp{width:100%;box-sizing:border-box;padding:10px 12px;margin-bottom:8px;border-radius:10px;border:1px solid var(--line);background:#fff;color:inherit;outline:none;font-size:12.5px;font-family:inherit;resize:vertical}
#aiWriteMask input.inp{height:40px}
#aiWriteMask textarea.inp{min-height:64px;line-height:1.6}
#aiWriteMask .inp:focus{border-color:var(--primary)}
#tplNote{width:100%;box-sizing:border-box;min-height:96px;padding:14px 16px;border-radius:16px;border:1.5px solid var(--line);background:linear-gradient(180deg,#fff,var(--bg));color:var(--ink);outline:none;font-size:13.5px;line-height:1.7;font-family:inherit;resize:vertical;transition:border-color .15s,box-shadow .15s}
#tplNote::placeholder{color:var(--sub)}
#tplNote:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
#freeFeats{width:100%;box-sizing:border-box;min-height:108px;padding:13px 14px;border-radius:14px;border:1.5px solid var(--line);background:linear-gradient(180deg,#fff,var(--bg));color:var(--ink);outline:none;font-size:13.5px;line-height:1.8;font-family:inherit;resize:vertical;transition:border-color .15s,box-shadow .15s}
#freeFeats::placeholder{color:var(--sub)}
#freeFeats:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
#freeFeats::-webkit-scrollbar{width:6px}
#freeFeats::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}

#reasonForm .inp:focus{border-color:var(--primary)}
.reason-btns{display:flex;gap:8px;margin-top:4px}
.reason-btns .act{flex:1;padding:13px;border-radius:14px;font-size:14px;font-weight:800;text-align:center;cursor:pointer;border:none;font-family:inherit;transition:transform .1s}
.reason-btns .act:active{transform:translateY(1px)}
.ratio-row{display:flex;gap:10px;margin:6px 0 2px}
.ratio-sel{flex:1;padding:12px 14px;border-radius:var(--r-sm);border:1px solid var(--line);background:#fff;color:inherit;font-size:13px;font-family:inherit}
#scriptLines .sline{border-left:3px solid var(--primary);background:#fff;border-radius:8px;padding:8px 10px;margin-bottom:8px;font-size:12px;color:#444}
#scriptLines .sline b{color:var(--primary);font-weight:700}
/* 模板详情弹窗 */
.tpl-info{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.tpl-info .row{display:flex;justify-content:space-between;font-size:12.5px;padding:6px 0;border-bottom:1px dashed rgba(0,0,0,.06)}
.tpl-info .row:last-child{border-bottom:none}
.tpl-info .row b{color:var(--primary);font-weight:700}
.tpl-info .rows-title{font-size:11px;color:var(--sub);margin:8px 0 2px}
.mfoot{display:flex;gap:10px}
.mfoot .mconfirm{flex:1}
.progress{display:none;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;margin:16px 0 0;text-align:center}
.progress .prog-ring{position:relative;width:118px;height:118px;margin:0 auto 10px}
.progress .prog-pct{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:26px;font-weight:800;color:var(--primary)}
.progress .pt{font-size:13.5px;font-weight:700}
.progress .ps{font-size:11px;color:var(--sub);margin-top:4px}
.out{display:none;background:#fff;border:1px solid var(--line);border-radius:var(--r);margin:16px 0 0;overflow:hidden;box-shadow:var(--shadow)}
.out .screen{height:180px;background:linear-gradient(160deg,var(--primary-soft),var(--grape-soft) 60%,var(--mint-soft));display:flex;align-items:center;justify-content:center;font-size:40px}
.out .screen video{width:100%;height:100%;object-fit:contain;background:#000}
.out .body{padding:14px}
.out .ot{font-size:14px;font-weight:800}
.out .om{font-size:11px;color:var(--sub);margin-top:3px}
.out .actions{display:flex;gap:8px;margin-top:12px}
.out .act{flex:1;padding:11px;border-radius:13px;font-size:12.5px;font-weight:700;text-align:center;cursor:pointer;border:none;font-family:inherit}
.act.save{background:linear-gradient(135deg,var(--primary),var(--rose));color:#fff;box-shadow:0 8px 18px rgba(120,90,160,.28)}
.act.share{background:var(--grape-soft);color:#7A63C9}
.act.retry{background:linear-gradient(135deg,var(--rose),var(--primary));color:#fff;box-shadow:0 8px 18px rgba(220,110,150,.28)}
/* 我的 */
.profile{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,var(--primary-soft),var(--rose-soft));border:1px solid var(--line);border-radius:var(--r);padding:18px 16px;margin:12px 20px 0;box-shadow:var(--shadow)}
.profile .av{width:54px;height:54px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:26px}
.profile .pn{font-size:16px;font-weight:800}
.profile .pe{font-size:11px;color:var(--sub)}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 20px 0}
.stat{border-radius:var(--r-sm);padding:14px;text-align:center;cursor:pointer;transition:transform .12s}
.stat:active{transform:scale(.96)}
.stat .sv{font-size:20px;font-weight:800}
.stat .sl{font-size:10.5px;color:var(--sub);margin-top:2px}
.stat.s1{background:#fff;border:1px solid var(--line)}
.stat.s2{background:var(--mint-soft);border:1px solid var(--line)}
.stat.s3{background:var(--gold-soft);border:1px solid var(--line)}
.list{margin:12px 20px 0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.list .lr{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;border-bottom:1px solid var(--line)}
.list .lr:last-child{border-bottom:none}
.list .lr .li{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:19px;flex:none}
.list .lr .lt{font-size:13px;font-weight:600}
.list .lr .ls{font-size:10.5px;color:var(--sub)}
.list .lr .rt{margin-left:auto;color:#D9C4AE;font-size:16px}
/* 弹窗 */
.mask{position:fixed;inset:0;background:rgba(74,59,52,.62);z-index:60;display:none;align-items:flex-end;justify-content:center;padding-bottom:86px}
.mask.on{display:flex}
.mask.media-mask{align-items:center;justify-content:center;padding-bottom:0;background:rgba(15,15,20,.80)}
.mask.media-mask .media-view{position:relative;max-width:94vw;max-height:90vh;display:flex;align-items:center;justify-content:center}
.mask.media-mask .media-close{position:fixed;top:18px;right:22px;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.20);border:none;color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:62;box-shadow:0 4px 16px rgba(0,0,0,.35)}
.mask.media-mask .media-dl{position:absolute;top:12px;right:12px;width:42px;height:42px;border-radius:50%;background:rgba(0,0,0,.30);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:62;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.mask.media-mask .media-dl svg{width:21px;height:21px;stroke:currentColor}
.mask.media-mask img,.mask.media-mask video{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:14px;box-shadow:0 18px 60px rgba(0,0,0,.55)}
.mask.media-mask video{background:#000}
.mbox{width:430px;max-width:100%;background:var(--bg);border-radius:26px 26px 0 0;max-height:88vh;display:flex;flex-direction:column;animation:slideUp .3s}
@keyframes slideUp{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.mhead{padding:18px 20px 6px;position:relative}
.mhead .mt{font-size:18px;font-weight:800}
.mhead .ms{font-size:12px;color:var(--sub);margin-top:2px}
.mclose{position:absolute;right:16px;top:16px;width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--line);color:var(--sub);font-size:16px;cursor:pointer}
.mback{position:absolute;left:16px;top:16px;height:30px;padding:0 12px;border-radius:99px;background:#fff;border:1px solid var(--line);color:var(--txt);font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:3px}
.mbody{overflow-y:auto;padding:10px 20px 18px;flex:1}
.mlbl{font-size:13px;font-weight:700;margin:10px 0 8px}
.tpl-cats{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}
.tpl-cats::-webkit-scrollbar{display:none}
.cat-chip{flex:none;padding:7px 14px;border-radius:999px;font-size:12px;font-weight:700;color:#7A63C9;background:var(--grape-soft);cursor:pointer;border:1px solid transparent}
.cat-chip.on{background:linear-gradient(135deg,var(--primary),var(--rose));color:#fff;box-shadow:0 6px 14px rgba(120,90,160,.25)}
.minds{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.tplcard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 4px;text-align:center;cursor:pointer;transition:.15s}
.tplcard.on{border-color:var(--primary);background:#fff5f2;box-shadow:0 2px 8px rgba(255,107,77,.18)}
.tplcard .tc-emo{font-size:20px;line-height:1.1}
.tplcard .tc-name{font-size:11px;color:#333;font-weight:700;margin-top:4px;line-height:1.2;word-break:break-all}
.tplcard .tc-meta{font-size:9.5px;color:var(--sub);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tplcard .tc-price{font-size:10px;color:var(--primary);font-weight:700;margin-top:3px}
.mind{background:#fff;border:1px solid var(--line);border-radius:99px;padding:8px 15px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:5px}
.mind.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}
.mstyles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.mstyle{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:12px;cursor:pointer}
.mstyle .mi{font-size:22px}
.mstyle .mt{font-size:13px;font-weight:700;margin-top:4px}
.mstyle .ms{font-size:10.5px;color:var(--sub);margin-top:2px}
.mstyle.on{border-color:var(--primary);background:var(--primary-soft)}
.preview{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;display:none}
.preview .pv-h{background:var(--primary-soft);color:var(--primary);font-size:12.5px;font-weight:700;padding:10px 12px}
.shot{display:flex;gap:10px;padding:10px 12px;border-top:1px solid var(--line)}
.shot:first-of-type{border-top:none}
.shot .st{flex:none;background:var(--grape-soft);color:#7A63C9;border-radius:8px;padding:3px 8px;font-size:10.5px;font-weight:700;height:fit-content}
.shot .sd{flex:1;font-size:11.5px}
.shot .sd .vn{color:var(--sub);font-weight:600}
.shot .sd .vo{margin-top:3px;color:var(--rose)}
.mfoot{padding:12px 20px 20px;background:var(--bg);border-top:1px solid var(--line)}
.mconfirm{width:100%;padding:14px;border:none;border-radius:15px;background:var(--primary);color:#fff;font-size:15px;font-weight:800;cursor:pointer;font-family:inherit;box-shadow:0 8px 20px rgba(120,90,160,.3)}
.mconfirm:disabled{background:#E6C9B2;box-shadow:none;cursor:not-allowed}
/* 启动身份选择 */
.welcome{position:fixed;inset:0;z-index:100;background:linear-gradient(160deg,#FFF7EF,var(--primary-soft) 45%,var(--rose-soft));display:flex;align-items:center;justify-content:center;padding:26px}
body.girl .welcome{background:linear-gradient(160deg,#FDF6FB,var(--primary-soft) 45%,var(--grape-soft))}
body.man .welcome{background:linear-gradient(160deg,#F2F6FA,var(--primary-soft) 45%,var(--mint-soft))}
.wbox{width:100%;max-width:380px;text-align:center}
.wlogo{font-size:52px;margin-bottom:6px}
.wtitle{font-size:23px;font-weight:800;letter-spacing:.5px}
.wsub{font-size:12.5px;color:var(--sub);margin:8px 0 22px}
.wcards{display:flex;flex-direction:column;gap:12px}
.wcard{background:rgba(255,255,255,.9);border:1.5px solid var(--line);border-radius:18px;padding:15px 18px;display:flex;align-items:center;gap:14px;cursor:pointer;text-align:left;box-shadow:0 4px 14px rgba(120,90,160,.08);transition:.15s}
.wcard:hover{border-color:var(--primary);transform:translateY(-2px)}
.wcard .wi{width:48px;height:48px;border-radius:14px;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;font-size:26px;flex:none}
.wcard .wn{font-size:15.5px;font-weight:800}
.wcard .wd{font-size:11px;color:var(--sub);margin-top:2px;line-height:1.5}
.wcard .wgo{margin-left:auto;color:var(--primary);font-size:20px}
.wskip{margin-top:16px;font-size:12px;color:var(--sub);cursor:pointer;text-decoration:underline}
/* 通用 */
.toast{position:fixed;top:64px;left:50%;transform:translateX(-50%);background:rgba(74,59,52,.92);color:#fff;padding:10px 18px;border-radius:99px;font-size:12.5px;z-index:99;opacity:0;transition:.25s;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1}

/* 登录/注册弹窗 */
.a-inp{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font-size:15px;outline:none;margin-bottom:12px}
.a-inp:focus{border-color:var(--primary)}
.a-lbl{font-size:13px;color:var(--sub);margin:4px 0 8px}
.a-pop{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.apc{padding:12px;border:1px solid var(--line);border-radius:12px;text-align:center;font-size:13px;color:var(--sub);cursor:pointer}
.apc.on{border-color:var(--primary);background:var(--primary-soft);color:var(--ink);font-weight:600}
.a-err{font-size:12.5px;color:var(--rose);min-height:16px;margin-bottom:4px}
.a-switch{text-align:center;padding:14px 0 6px;color:var(--primary);font-size:13.5px;cursor:pointer}
.ahide{display:none!important}
/* 创作闭环：模型选择/预估/上传 */
.gen-cost{display:inline-block;margin-top:10px;padding:4px 12px;border-radius:20px;background:rgba(255,255,255,.22);font-size:13px;font-weight:700;color:#fff}
.lib-entry{font-size:12.5px;color:var(--primary);font-weight:600;padding:9px 2px 12px;cursor:pointer}
.mlist{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}
.mli{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--line)}
.mli:last-child{border-bottom:0}
.mli.on{background:var(--primary-soft)}
.mli .mn{font-size:14px;font-weight:600;flex:1}
.mli .mv{font-size:12px;color:var(--sub)}
.mli .mp{font-size:14px;color:var(--primary);font-weight:700}
.uploaded-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.pick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:4px 0 8px}
.pick-it{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;background:var(--card)}
.pick-it img,.pick-it video{width:100%;height:96px;object-fit:cover;display:block;background:#000}
.pick-it .pt{position:absolute;bottom:0;left:0;right:0;padding:3px 8px;font-size:10.5px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.pick-it:active{opacity:.75}
.pick-it .pick-view{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer;z-index:2;color:#fff}
/* 任务管理 */
.tl-item{display:flex;align-items:center;gap:11px;padding:13px 6px;border-bottom:1px solid var(--line);cursor:pointer}
.tl-item:active{background:var(--primary-soft)}
.tl-ic{font-size:20px}
.tl-b{flex:1;min-width:0}
.tl-t{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-s{font-size:11.5px;color:var(--sub);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-time{font-size:11px;color:var(--sub);white-space:nowrap}
.td-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px}
.td-title{font-size:16px;font-weight:800;margin-bottom:8px}
.td-st{font-size:12.5px;font-weight:700;margin-bottom:12px}
.td-st.st-success{color:var(--primary)}
.td-st.st-failed{color:var(--rose)}
.td-st.st-running{color:#b8860b}
.td-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed var(--line);font-size:13px}
.td-row span{color:var(--sub)}
.td-wait{font-size:12.5px;color:var(--sub);background:var(--mint-soft);border-radius:10px;padding:10px 12px;margin-top:8px}
.td-wait.fail{background:rgba(255,110,130,.1);color:var(--rose)}
/* 脚本库 */
.sl-item{display:flex;align-items:center;gap:11px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;cursor:pointer;background:var(--card)}
.sl-item:active{background:var(--primary-soft)}
.sl-ic{font-size:20px}
.sl-b{flex:1;min-width:0}
.sl-t{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sl-m{font-size:11.5px;color:var(--sub);margin-top:2px}
/* 素材分类 Tab */
.m-tab{padding:6px 13px;border-radius:16px;border:1px solid var(--line);background:var(--card);font-size:12.5px;font-weight:600;color:var(--sub);cursor:pointer;font-family:inherit}
.m-tab.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.ul-item{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}
.ul-item img,.ul-item video{width:100%;height:90px;object-fit:cover;display:block}
.ul-item .ul-type{position:absolute;top:4px;left:4px;font-size:10px;padding:2px 6px;border-radius:8px;background:rgba(0,0,0,.5);color:#fff}
.ul-item .ul-del{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:12px;line-height:20px;text-align:center;cursor:pointer}
/* 视频缩略图播放角标 */
.vid-thumb{position:relative;display:block;line-height:0}
.vid-thumb video{width:100%;height:90px;object-fit:cover;display:block;background:#000;pointer-events:none}
.vid-thumb .vb{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.vid-thumb .vb::before{content:'';width:42px;height:42px;border-radius:50%;background:rgba(0,0,0,.42)}
.vid-thumb .vb::after{content:'';position:absolute;width:0;height:0;border-left:15px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:5px}
/* 素材统计卡选中态 */
.mat-s.have.on{border-color:var(--primary);background:rgba(246,138,107,.10)}
/* 最近作品卡片 */
.rp-item{position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;box-shadow:var(--shadow)}
.rp-item img,.rp-item .vid-thumb video{width:100%;height:120px;object-fit:cover;display:block;background:#000}
.rp-item .rp-tag{position:absolute;top:6px;left:6px;font-size:9.5px;padding:2px 7px;border-radius:8px;background:rgba(0,0,0,.55);color:#fff;font-weight:700}
.rp-item .rp-t{padding:8px 10px 2px;font-size:12px;font-weight:700;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rp-item .rp-meta{display:flex;align-items:center;justify-content:space-between;padding:2px 10px 9px;font-size:10px;color:var(--sub)}

/* ============ 站内课程（新手学堂 → 课程中心） ============ */
.course-card{cursor:pointer;flex:0 0 150px;width:150px;position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}
.course-card .cc-cover{height:92px;background:linear-gradient(135deg,#FDD7CB,#F4C9F0);display:flex;align-items:center;justify-content:center;font-size:34px;overflow:hidden}
.course-card .cc-cover img{width:100%;height:100%;object-fit:cover}
.course-card .cc-body{padding:9px 11px 10px}
.course-card .cc-t{font-size:13px;font-weight:700;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.course-card .cc-s{font-size:11px;color:var(--sub);margin-top:4px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.course-card .cc-badge{position:absolute;top:6px;left:6px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;color:#fff;background:rgba(0,0,0,.5)}
.course-card .cc-badge.got{background:#4CAF87}
.course-card .cc-price{font-size:12px;font-weight:800;color:var(--primary);margin-top:5px}
/* 课程中心页 */
.course-top{display:flex;align-items:center;gap:10px;padding:16px 20px 6px;position:relative}
.course-top .ct-back{width:34px;height:34px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-size:22px;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.course-top .ct-t{font-size:17px;font-weight:800}
.course-top .ct-s{font-size:12px;color:var(--sub);margin-top:2px}
.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:14px 20px 26px}
.course-grid .cc-grid-card{flex:none;width:auto;max-width:none}
/* 课程阅读弹窗 */
.course-box{position:relative;overflow:hidden}
.course-box .mbody.course-body{padding:0 0 150px;max-height:76vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
.course-stage{position:relative;width:375px;max-width:100%;margin:0 auto}
.course-el{position:absolute;line-height:1.25}
.course-el img{width:100%;height:100%;object-fit:cover;display:block}
.course-el video{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}
/* 解锁浮层（固定在弹窗底部，不随内容滚动） */
.course-lock{position:absolute;left:0;right:0;bottom:0;height:130px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 40%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:18px;z-index:90}
.course-lock .lock-tip{font-size:13px;font-weight:700;color:#33262E}
.course-lock .lock-price{font-size:12px;color:var(--sub);margin:5px 0 10px}
.course-lock .lock-btn{background:var(--primary);color:#fff;border:0;border-radius:99px;padding:12px 34px;font-size:15px;font-weight:800;cursor:pointer;font-family:inherit}
/* ============ 系列课（主课程-子课程） ============ */
.series-card{position:relative}
.series-flag{position:absolute;top:6px;right:6px;font-size:10px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--primary),var(--rose));border-radius:10px;padding:2px 8px;z-index:2}
.series-card .series-badge{background:rgba(0,0,0,.5)}
.series-card .series-badge.got{background:#4CAF87}
.series-detail{padding:6px 2px 0}
.series-head{padding:14px 6px 4px}
.series-name{font-size:17px;font-weight:900;color:var(--ink)}
.series-intro2{font-size:12px;color:var(--sub);margin-top:4px}
.series-own{display:inline-block;font-size:11px;font-weight:800;color:#3f7a68;background:var(--mint-soft,#E8F5EF);border-radius:99px;padding:3px 10px;margin-top:8px}
.series-unlocked{text-align:center;font-size:13px;font-weight:800;color:#3f7a68;background:var(--mint-soft,#E8F5EF);border-radius:12px;padding:11px;margin-top:12px}
.series-chapter-title{font-size:14px;font-weight:800;color:var(--ink);padding:16px 6px 8px}
.series-chapter{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px 14px;margin:0 6px 10px;cursor:pointer;box-shadow:var(--shadow,0 4px 12px rgba(0,0,0,.05))}
.series-chapter:active{transform:scale(.98)}
.series-chapter .sc-idx{width:34px;height:34px;border-radius:11px;background:var(--primary-soft);color:var(--primary);font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none}
.series-chapter.locked .sc-idx{background:#F3EAE2;color:#C9B8AA}
.series-chapter .sc-info{flex:1;min-width:0}
.series-chapter .sc-name{font-size:13.5px;font-weight:800;color:var(--ink)}
.series-chapter .sc-intro{font-size:11px;color:var(--sub);margin-top:2px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.series-chapter .sc-state{flex:none;font-size:11px;font-weight:800;color:var(--sub)}
.series-chapter .sc-state.locked{color:#C9B8AA}
.series-chapter .sc-lock{flex:none;font-size:13px;width:18px;text-align:center}
.series-chapter .sc-lock.locked{color:#C9B8AA}
/* ============ 长图动画（搭建器导出复用） ============ */
.ain-fadeIn{animation:afadeIn .8s ease both}
.ain-fadeInUp{animation:afadeInUp .8s ease both}
.ain-fadeInDown{animation:afadeInDown .8s ease both}
.ain-fadeInLeft{animation:afadeInLeft .8s ease both}
.ain-fadeInRight{animation:afadeInRight .8s ease both}
.ain-zoomIn{animation:azoomIn .8s ease both}
.ain-zoomOut{animation:azoomOut .8s ease both}
.ain-rotateIn{animation:arotateIn .8s ease both}
.ain-bounceIn{animation:abounceIn .9s ease both}
.ain-flipIn{animation:aflipIn .8s ease both}
.ain-blindsX{animation:ablindsX .8s ease both}
.ain-blindsY{animation:ablindsY .8s ease both}
.ain-lightSweep{animation:alightSweep 1s ease both}
.ain-dropIn{animation:adropIn .8s ease both}
.ain-zoomFade{animation:azoomFade .9s ease both}
.loop-float{animation:lfloat 2.6s ease-in-out infinite}
.loop-pulse{animation:lpulse 2s ease-in-out infinite}
.loop-swing{animation:lswing 2.4s ease-in-out infinite}
.loop-heartbeat{animation:lheartbeat 1.4s ease-in-out infinite}
.loop-shake{animation:lshake .5s ease-in-out infinite}
.loop-spin{animation:lspin 3s linear infinite}
.loop-ring{animation:lring 1.8s ease-out infinite}
@keyframes afadeIn{from{opacity:0}}
@keyframes afadeInUp{from{opacity:0;transform:translateY(30px)}}
@keyframes afadeInDown{from{opacity:0;transform:translateY(-30px)}}
@keyframes afadeInLeft{from{opacity:0;transform:translateX(-40px)}}
@keyframes afadeInRight{from{opacity:0;transform:translateX(40px)}}
@keyframes azoomIn{from{opacity:0;transform:scale(.5)}}
@keyframes azoomOut{from{opacity:0;transform:scale(1.4)}}
@keyframes arotateIn{from{opacity:0;transform:rotate(-180deg) scale(.6)}}
@keyframes abounceIn{0%{opacity:0;transform:scale(.3)}55%{opacity:1;transform:scale(1.1)}75%{transform:scale(.95)}100%{transform:scale(1)}}
@keyframes aflipIn{from{opacity:0;transform:perspective(600px) rotateX(90deg)}}
@keyframes ablindsX{from{opacity:0;transform:scaleX(0)}}
@keyframes ablindsY{from{opacity:0;transform:scaleY(0)}}
@keyframes alightSweep{0%{opacity:0;transform:translateX(-30px) skewX(-12deg)}60%{opacity:1;transform:translateX(0) skewX(-6deg)}100%{transform:skewX(0)}}
@keyframes adropIn{from{opacity:0;transform:translateY(-70px)}}
@keyframes azoomFade{from{opacity:0;transform:scale(.85)}}
@keyframes lfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes lpulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.72;transform:scale(.96)}}
@keyframes lswing{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes lheartbeat{0%,100%{transform:scale(1)}25%{transform:scale(1.12)}40%{transform:scale(1)}55%{transform:scale(1.12)}}
@keyframes lshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@keyframes lspin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes lring{0%{transform:scale(.9);opacity:.7;box-shadow:0 0 0 0 rgba(246,138,107,.5)}70%{box-shadow:0 0 0 12px rgba(246,138,107,0)}100%{transform:scale(1);opacity:1;box-shadow:0 0 0 0 rgba(246,138,107,0)}}
@media (prefers-reduced-motion:reduce){[class^="ain-"],[class^="loop-"]{animation:none!important;opacity:1!important;transform:none!important}}
/* ===== 通用·七维分镜 ===== */
.seven-top{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:13px}
.seven-top .back{cursor:pointer;color:var(--primary);font-weight:600;padding:2px 6px;border-radius:6px}
.seven-top .back:hover{background:rgba(246,138,107,.1)}
/* ===== 视频复刻页 ===== */
#pgRef .ref-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin:14px 16px;box-shadow:0 2px 8px rgba(120,90,60,.05)}
#pgRef .create-title,#pgRef .create-sub,#pgRef .seven-top{margin-left:16px;margin-right:16px}
.ref-slot-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:4px 0}
.ref-slot{background:#fff;border:1.5px dashed var(--line);border-radius:12px;padding:14px 8px;text-align:center;cursor:pointer;position:relative}
.ref-slot.have{border-style:solid;border-color:var(--mint);background:var(--mint-soft)}
.ref-slot .rs-ic{font-size:24px}
.ref-slot .rs-t{font-size:11.5px;font-weight:700;margin-top:4px}
.ref-slot .rs-s{font-size:9.5px;color:var(--sub)}
.ref-slot img,.ref-slot video{width:100%;height:64px;object-fit:cover;border-radius:8px;margin-top:4px}
.ref-slot .rs-del{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:11px;line-height:18px;text-align:center;cursor:pointer}
#pgRef .ref-inp{width:100%;box-sizing:border-box;padding:10px 12px;margin:4px 0 8px;border-radius:10px;border:1px solid var(--line);background:#fff;color:inherit;outline:none;font-size:12.5px;font-family:inherit;resize:vertical;min-height:52px;line-height:1.6;word-break:break-word}
#pgRef .ref-inp:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(246,138,107,.12)}
.ref-gen{display:block;width:calc(100% - 32px);margin:18px 16px 6px;padding:15px;border:none;border-radius:14px;background:linear-gradient(135deg,var(--primary),var(--rose));color:#fff;font-size:15px;font-weight:800;font-family:inherit;cursor:pointer;box-shadow:0 6px 16px rgba(246,138,107,.3)}
.ref-gen:active{transform:translateY(1px)}
.ref-prog-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin:14px 16px 6px;text-align:center;box-shadow:var(--shadow)}
.ref-prog-head{position:relative;width:88px;height:88px;margin:0 auto}
.ref-ring{width:88px;height:88px;transform:rotate(-90deg)}
.ref-ring-bg,.ref-ring-fg{fill:none;stroke-width:9;stroke-linecap:round}
.ref-ring-bg{stroke:#f3e4d6}
.ref-ring-fg{stroke:var(--primary);stroke-dasharray:326.7;stroke-dashoffset:326.7;transition:stroke-dashoffset .4s}
.ref-spinner{position:absolute;inset:0;margin:auto;width:30px;height:30px;border:3px solid rgba(246,138,107,.25);border-top-color:var(--primary);border-radius:50%;animation:refSpin 1s linear infinite;opacity:0;transition:opacity .3s}
.ref-prog-box.spin .ref-spinner{opacity:1}
.ref-prog-pct{position:absolute;inset:0;margin:auto;height:20px;line-height:20px;font-weight:800;font-size:15px;color:var(--text)}
.ref-prog-t{margin-top:8px;font-size:13px;font-weight:700}
.ref-prog-s{margin-top:3px;font-size:11px;color:var(--sub)}
.ref-prog-out{margin-top:10px}
.ref-prog-out video{width:100%;border-radius:10px;background:#000;max-height:300px}
@keyframes refSpin{to{transform:rotate(360deg)}}

/* ===== 任务列表双 Tab + 全局快捷图标 ===== */
.task-tabs{display:flex;gap:8px;padding:12px 16px 0;border-bottom:1px solid var(--line)}
.task-tab{flex:1;padding:9px 0;border:none;background:transparent;font-size:14px;font-weight:700;color:var(--sub);cursor:pointer;border-bottom:2px solid transparent}
.task-tab.on{color:var(--primary);border-bottom-color:var(--primary)}
.task-fab{position:fixed;right:14px;bottom:76px;z-index:130;display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--primary);color:#fff;box-shadow:0 6px 18px rgba(246,138,107,.5);cursor:pointer;user-select:none;transform:translateX(calc(100% - 12px));transition:transform .25s ease}
.task-fab .tf-ic{font-size:21px;line-height:1}
.task-fab .tf-t{font-size:10px;font-weight:700;margin-top:2px}
.task-fab:hover,.task-fab.expanded{transform:translateX(0)}
.task-fab:active{transform:translateX(0) scale(.94)}
.td-morebtn{margin-top:12px;display:flex;gap:8px}
#pgRef .switch{width:44px;height:24px;border-radius:12px;background:var(--line);position:relative;cursor:pointer;transition:background .2s;flex:none}
#pgRef .switch::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
#pgRef .switch.on{background:var(--primary)}
#pgRef .switch.on::after{left:22px}
.seven-form{display:flex;gap:8px;margin:8px 0 14px}
.seven-form .sf{flex:1;text-align:center;padding:12px 6px;border-radius:10px;border:1px solid rgba(246,138,107,.25);background:rgba(246,138,107,.05);font-size:12.5px;cursor:pointer;color:var(--text)}
.seven-form .sf.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.seven-frame .field-label{font-size:11px;color:var(--sub);margin:6px 0 3px}

/* ===== 七维脚本区输入框统一样式（视频总览/场景/逐镜）===== */
#sevenScript .inp{width:100%;box-sizing:border-box;padding:10px 12px;margin-bottom:8px;border-radius:10px;border:1px solid var(--line);background:#fff;color:inherit;outline:none;font-size:12.5px;font-family:inherit;resize:vertical}
#sevenScript input.inp{height:40px}
#sevenScript textarea.inp{min-height:62px;line-height:1.6}
#sevenScript .inp:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(246,138,107,.12)}
#sevenScript .seven-frame .inp{margin-bottom:6px}

/* ===== 七维 UI 优化（换行滚动 / 按钮 / 折叠 / 回顶）===== */
#sevenScript textarea.inp{height:auto;overflow-y:auto;word-break:break-word;white-space:pre-wrap}
#sevenScript input.inp{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seven-fold{display:flex;justify-content:center;align-items:center;padding:9px;margin:12px 0 4px;border:1.5px dashed rgba(246,138,107,.45);border-radius:10px;color:var(--primary);font-size:12px;font-weight:700;cursor:pointer;background:rgba(246,138,107,.06)}
.seven-fold:hover{background:rgba(246,138,107,.12)}
.seven-add{width:100%;margin:6px 0;padding:12px;border:1.5px dashed var(--primary);border-radius:12px;background:transparent;color:var(--primary);font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;box-sizing:border-box}
.seven-add:hover{background:rgba(246,138,107,.08)}
.seven-btns{display:flex;gap:8px;margin-top:12px}
.seven-apply{flex:1;padding:12px;border:none;border-radius:12px;background:var(--primary);color:#fff;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit}
.seven-apply:hover{opacity:.9}
.seven-regen{flex:1;padding:12px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--sub);font-weight:700;font-size:13px;cursor:pointer;font-family:inherit}
.seven-regen:hover{background:#f7f1f7}
.back-top{position:fixed;right:16px;bottom:72px;width:44px;height:44px;border-radius:50%;background:var(--primary);color:#fff;font-size:22px;display:none;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.2);cursor:pointer;z-index:999;border:none;font-family:inherit;line-height:1}
.back-top:hover{opacity:.9}
