:root{
  --primary:#1a5276;
  --primary-d:#144160;
  --primary-a:#2e74a6;
  --primary-b:#3fa7d6;
  --primary-05:rgba(26,82,118,.05);
  --primary-10:rgba(26,82,118,.10);
  --primary-20:rgba(26,82,118,.20);

  --bg:#eef1f4;
  --card:#ffffff;
  --warm:#f7f5f2;
  --warm-2:#eee9e4;
  --secondary:rgba(238,233,228,.55);
  --line:rgba(0,0,0,.09);
  --line-soft:rgba(0,0,0,.055);
  --line-strong:rgba(0,0,0,.15);
  --ink:#201b18;
  --ink2:#4a443f;
  --ink3:#6f6862;
  --ink4:#a39a91;

  --gold:#a1741a;   --gold-l:#fdf8ea;
  --green:#1a8f6a;  --green-l:#eaf7f2;
  --purple:#6d4fc4; --purple-l:#f3f0fd;
  --red:#c0392b;    --red-l:#fdeeec;
  --amber:#b7791f;

  --r:20px; --r2:15px; --r3:12px; --r-full:999px;
  --sh-xs:0 1px 2px rgba(20,30,45,.05);
  --sh:0 1px 2px rgba(20,30,45,.05), 0 8px 24px rgba(20,30,45,.055);
  --sh-lg:0 2px 6px rgba(20,30,45,.06), 0 18px 44px rgba(20,30,45,.10);
  --sh-primary:0 8px 22px rgba(26,82,118,.24);
  --grad-primary:linear-gradient(135deg,#1a5276,#20618c 45%,#2e74a6);
  --grad-accent:linear-gradient(135deg,#1a5276,#2e74a6 55%,#3fa7d6);
  --grad-text:linear-gradient(120deg,#1a5276 10%,#2e74a6 55%,#3fa7d6);

  --shell:1440px;
  --header-h:66px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--ink);
  font:15px/1.72 "Inter","Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
a{color:var(--primary-a);text-decoration:none}
button{font-family:inherit;letter-spacing:inherit}
input,select,textarea{font-family:inherit;font-size:14px;color:var(--ink)}
::selection{background:var(--primary-20)}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-thumb{background:rgba(0,0,0,.14);border-radius:9px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.26);background-clip:content-box}
*::-webkit-scrollbar-track{background:transparent}
/* 面板内滚动条：细、主色半透明（对标它的 custom-scrollbar） */
.panel-b::-webkit-scrollbar,.copy-block::-webkit-scrollbar{width:4px;height:4px}
.panel-b::-webkit-scrollbar-track,.copy-block::-webkit-scrollbar-track{background:transparent}
.panel-b::-webkit-scrollbar-thumb,.copy-block::-webkit-scrollbar-thumb{background:var(--primary-20);border-radius:4px;border:0}
.panel-b::-webkit-scrollbar-thumb:hover,.copy-block::-webkit-scrollbar-thumb:hover{background:rgba(26,82,118,.5)}

/* ---------- 顶部导航栏 ---------- */
.topbar{
  position:sticky;top:0;z-index:60;width:100%;
  background:rgba(255,255,255,.86);backdrop-filter:blur(16px) saturate(1.5);
  border-bottom:1px solid rgba(0,0,0,.07);
}
.topbar-in{
  max-width:var(--shell);margin:0 auto;height:var(--header-h);
  display:flex;align-items:center;gap:14px;padding:0 26px;
}
.brand{display:flex;align-items:center;gap:10px;flex:0 0 auto;cursor:pointer}
.brand .mark{
  width:38px;height:38px;border-radius:13px;flex:0 0 38px;
  background-image:var(--grad-primary);
  color:#fff;display:grid;place-items:center;font-size:19px;font-weight:800;
  box-shadow:var(--sh-primary);
}
.brand b{font-size:15px;font-weight:800;letter-spacing:-.25px;line-height:1.2;display:block}
.brand small{display:block;font-size:10.5px;color:var(--ink4);font-weight:500;letter-spacing:.2px}

.topnav{display:flex;align-items:center;gap:1px;flex:1;overflow-x:auto;overflow-y:visible;scrollbar-width:none}
.topnav::-webkit-scrollbar{display:none}
.topnav button{
  display:flex;align-items:center;gap:6px;white-space:nowrap;border:0;background:none;cursor:pointer;
  border-radius:var(--r-full);padding:9px 14px;font-size:13.5px;font-weight:700;color:var(--ink2);min-height:40px;
  transition:background .16s,color .16s;
}
.topnav button:hover{background:var(--primary-05);color:var(--primary)}
.topnav button.on{
  background-image:var(--grad-primary);color:#fff;
  box-shadow:0 6px 16px rgba(26,82,118,.26);
}
.topnav button .ico{font-size:14px}
.topnav button .lock{font-size:10px;opacity:.55}

.top-right{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.ai-status{
  font-size:11.5px;padding:5px 12px;border-radius:var(--r-full);background:var(--warm);color:var(--ink3);
  font-weight:700;border:1px solid var(--line-soft);white-space:nowrap;
}
.ai-status.on{background:var(--green-l);color:var(--green);border-color:rgba(26,143,106,.2)}

/* ---------- 主容器 ---------- */
main.shell{position:relative;padding-bottom:104px}
.shell-in{max-width:var(--shell);margin:0 auto;padding:32px 32px 44px;position:relative}
/* 底部有 sticky 行动条时，给内容留出它占的高度，避免最后一块被压住 */
.shell-in:has(.actionbar),.shell-in:has(.planbar){padding-bottom:112px}
.bottom-nav{padding-bottom:env(safe-area-inset-bottom,0)}
.crumb{
  display:flex;align-items:center;gap:18px;margin-bottom:24px;flex-wrap:wrap;
  padding-left:2px;
}
.backlink{
  display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--ink4);
  background:#fff;border:1px solid var(--line);cursor:pointer;padding:7px 13px;border-radius:var(--r-full);
  transition:.16s;flex:0 0 auto;
}
.backlink:hover{color:var(--primary);border-color:var(--primary-20);background:var(--primary-05)}
.crumb .page-title{font-size:18px;font-weight:800;letter-spacing:-.35px;line-height:1.3}
.crumb .page-sub{font-size:12.5px;color:var(--ink3);font-weight:600;margin-top:2px}
.crumb .spacer{flex:1}
.page-actions{display:flex;gap:10px;flex-wrap:wrap}

/* ---------- 圆形步骤条 ---------- */
.stepper{display:flex;align-items:flex-start;justify-content:center;margin:0 0 34px;flex-wrap:wrap;gap:6px}
.stepper .sitem{display:flex;align-items:flex-start}
.stepper .sbtn{
  display:flex;flex-direction:column;align-items:center;gap:9px;border:0;background:none;cursor:pointer;
  padding:0;transition:opacity .2s;
}
.stepper .dot{
  width:50px;height:50px;border-radius:50%;border:2px solid var(--line);background:#fff;
  display:grid;place-items:center;font-size:19px;transition:.22s;position:relative;
}
.stepper .sbtn:hover .dot{border-color:var(--primary-20);transform:translateY(-2px)}
.stepper .slabel{font-size:12px;font-weight:800;color:var(--ink4);transition:color .2s;letter-spacing:-.1px}
.stepper .sbtn.on .dot{border-color:var(--primary);background:var(--primary-10);box-shadow:0 8px 22px rgba(26,82,118,.16)}
.stepper .sbtn.on .slabel{color:var(--primary)}
.stepper .sbtn.done .dot{border-color:var(--primary);background:var(--primary);color:#fff}
.stepper .sbtn.done .slabel{color:var(--ink2)}
.stepper .sbtn.todo{opacity:.5}
.stepper .sline{
  width:38px;height:2px;background:var(--line);border-radius:2px;margin:24px 14px 0;
  transition:background .3s;
}
.stepper .sline.done{background:var(--primary)}
@media(max-width:820px){
  .stepper .sline{width:18px;margin:22px 8px 0}
  .stepper .dot{width:42px;height:42px;font-size:16px}
  .stepper .slabel{font-size:11px}
}

/* ---------- 左右分栏 ---------- */
.split{display:grid;grid-template-columns:290px minmax(0,1fr);gap:22px;align-items:start}
@media(max-width:1080px){.split{grid-template-columns:1fr;gap:16px}}

/* 左侧：选择面板（sticky + 内部可滚动） */
.panel{
  border:1px solid var(--line);border-radius:var(--r);background:var(--secondary);
  box-shadow:var(--sh-xs);position:sticky;top:calc(var(--header-h) + 22px);
  display:flex;flex-direction:column;
  /* 留出底部 sticky 行动条（约 71px）+ 安全间距，保证面板底部按钮永远可见可点 */
  max-height:calc(100vh - var(--header-h) - 120px);
}
.panel-h{
  padding:18px 20px 12px;display:flex;align-items:center;gap:8px;
  font-size:13.5px;font-weight:800;color:var(--primary);flex:0 0 auto;
}
.panel-h .spacer{flex:1}
.panel-h .mini{color:var(--ink4);font-weight:600}
.panel-b{padding:0 14px 16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:7px}
.panel-f{padding:12px 16px 16px;border-top:1px solid var(--line-soft);flex:0 0 auto;border-radius:0 0 var(--r) var(--r)}

/* 面板内的选项按钮（对标它的整块实心按钮） */
.opt{
  width:100%;text-align:left;padding:13px 16px;border-radius:var(--r3);border:1px solid var(--line);
  background:rgba(255,255,255,.6);color:var(--ink2);font-size:13.5px;font-weight:800;cursor:pointer;
  transition:.16s;line-height:1.45;
}
.opt:hover{background:rgba(255,255,255,.95);border-color:var(--line-strong);color:var(--ink)}
.opt.on{
  background-image:var(--grad-primary);background-color:var(--primary);color:#fff;border-color:var(--primary);
  box-shadow:0 7px 18px rgba(26,82,118,.26);transform:scale(1.015);
}
.opt.on:hover{background:var(--primary-d);color:#fff}
.opt .sub{display:block;font-size:11px;font-weight:600;color:var(--ink4);margin-top:3px}
.opt.on .sub{color:rgba(255,255,255,.78)}
.opt-group{font-size:11px;font-weight:800;color:var(--ink4);letter-spacing:.6px;text-transform:uppercase;margin:10px 4px 2px}
.opt-group:first-child{margin-top:2px}

/* 右侧：结果区 */
.result{min-width:0;display:flex;flex-direction:column;gap:16px}
/* 分栏里的卡片用暖米色系（对标它的 secondary/10 + secondary/20） */
.result .card{background:#fff;border-color:var(--line);border-radius:var(--r)}

/* ---------- 底部操作条 ---------- */
.actionbar{
  position:sticky;bottom:0;z-index:40;margin-top:8px;
  background:rgba(255,255,255,.94);backdrop-filter:blur(14px);
  border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--sh);
  padding:14px 18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
}
.actionbar .spacer{flex:1}
.planbar{
  position:sticky;bottom:0;z-index:39;margin-top:14px;
  background:rgba(255,255,255,.94);backdrop-filter:blur(14px);
  border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--sh);
  padding:12px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.planbar .pt{font-size:11px;font-weight:800;color:var(--ink4);letter-spacing:.7px;text-transform:uppercase;flex:0 0 auto}
.planbar .pi{
  font-size:11.5px;color:var(--ink2);background:var(--warm);border:1px solid var(--line-soft);
  border-radius:9px;padding:6px 11px;max-width:330px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;
}
.planbar .pi b{color:var(--ink4);font-weight:700;margin-right:6px}
.planbar .pi.off{opacity:.5}
.planbar .spacer{flex:1}

/* ---------- 移动端底部 tab ---------- */
.tabbar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:70;
  border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(16px);
  padding:6px 4px calc(6px + env(safe-area-inset-bottom));
}
.tabbar button{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  border:0;background:none;cursor:pointer;padding:7px 2px;color:var(--ink4);font-size:10.5px;font-weight:700;
  border-radius:10px;min-height:44px;
}
.tabbar button .ico{font-size:17px;line-height:1}
.tabbar button.on{color:var(--primary);background:var(--primary-05)}
@media(max-width:860px){
  .tabbar{display:flex}
  main.shell{padding-bottom:86px}
  .actionbar .planbar{position:static}
}

/* ---------- 卡片 ---------- */
.card{
  background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r);
  box-shadow:var(--sh-xs);padding:22px;margin-bottom:14px;
}
.card.warm{background:var(--warm);border-color:var(--line)}
.card>h2{margin:0 0 5px;font-size:16.5px;font-weight:800;letter-spacing:-.25px}
.card>h2+.tip{margin-bottom:18px}
.tip{font-size:12.5px;color:var(--ink3);line-height:1.7;font-weight:500}
.row{display:flex;gap:16px;flex-wrap:wrap}
.row>*{flex:1 1 220px;min-width:0}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:700;color:var(--ink2);margin-bottom:7px}
.field label .req{color:var(--red)}
.field .hint{font-size:11.5px;color:var(--ink4);margin-top:6px;line-height:1.6;font-weight:500}

.inp{
  width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:var(--r3);background:#fff;
  outline:none;transition:border-color .16s,box-shadow .16s;font-weight:500;
}
.inp::placeholder{color:var(--ink4);font-weight:400}
.inp:hover{border-color:var(--line-strong)}
.inp:focus{border-color:var(--primary-a);box-shadow:0 0 0 3px var(--primary-10)}
textarea.inp{resize:vertical;min-height:80px;line-height:1.72}
select.inp{
  appearance:none;cursor:pointer;padding-right:34px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2.5 4.5L6 8l3.5-3.5' stroke='%236f6862' stroke-width='1.7' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;background-position:right 13px center;
}

/* ---------- 按钮 ---------- */
.btn{
  border:1px solid var(--line);background:#fff;color:var(--ink2);padding:10px 17px;border-radius:var(--r3);
  cursor:pointer;font-size:13.5px;font-weight:700;transition:.16s;display:inline-flex;align-items:center;gap:7px;
  white-space:nowrap;
}
.btn:hover{border-color:var(--line-strong);color:var(--ink);background:#fcfcfd}
.btn.primary{background-image:var(--grad-primary);background-color:var(--primary);border-color:var(--primary);color:#fff;box-shadow:var(--sh-primary)}
.btn.primary:hover{background:var(--primary-d);border-color:var(--primary-d);color:#fff;transform:translateY(-1px)}
.btn.accent{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 8px 22px rgba(26,143,106,.24)}
.btn.accent:hover{background:#157a5a;border-color:#157a5a;color:#fff;transform:translateY(-1px)}
.btn.dark{background:#1e2a33;border-color:#1e2a33;color:#fff}
.btn.dark:hover{background:#0f1a22;color:#fff}
.btn.ghost{background:transparent;border-color:transparent;color:var(--primary)}
.btn.ghost:hover{background:var(--primary-05);color:var(--primary)}
.btn.sm{padding:7px 12px;font-size:12.5px;border-radius:11px}
.btn:disabled{opacity:.38;cursor:not-allowed;box-shadow:none;transform:none}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding-top:6px}

/* ---------- 行业卡 ---------- */
.ind-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(166px,1fr));gap:12px}
.ind{
  border:1px solid var(--line);border-radius:var(--r2);padding:16px;cursor:pointer;
  background:rgba(255,255,255,.72);transition:.18s;text-align:left;
}
.ind:hover{border-color:var(--line-strong);background:#fff;transform:translateY(-2px);box-shadow:var(--sh)}
.ind.on{border-color:var(--primary);background:var(--primary-05);box-shadow:0 6px 20px rgba(26,82,118,.13)}
.ind .em{font-size:20px;line-height:1}
.ind b{display:block;font-size:14px;font-weight:800;margin:9px 0 4px;color:var(--ink)}
.ind span{font-size:11.5px;color:var(--ink4);line-height:1.5;display:block;font-weight:500}
.ind.on b{color:var(--primary)}

/* ---------- 胶囊 ---------- */
.pillbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:13px}
.pill{
  padding:7px 14px;border-radius:var(--r-full);border:1px solid var(--line);background:#fff;font-size:12.5px;
  cursor:pointer;color:var(--ink2);font-weight:600;transition:.16s;
}
.pill:hover{border-color:var(--primary-20);color:var(--primary);background:var(--primary-05)}
.pill.on{background-image:var(--grad-primary);background-color:var(--primary);border-color:var(--primary);color:#fff;font-weight:700;box-shadow:0 4px 14px rgba(26,82,118,.22)}

/* ---------- 选题 / 结构 ---------- */
.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:12px}
.st{border:1px solid var(--line);border-radius:var(--r2);padding:16px;cursor:pointer;background:#fff;transition:.18s}
.st:hover{border-color:var(--line-strong);box-shadow:var(--sh);transform:translateY(-2px)}
.st.on{border-color:var(--primary);background:var(--primary-05);box-shadow:0 8px 24px rgba(26,82,118,.12)}
.st b{font-size:14px;font-weight:800;display:block;margin-bottom:6px;color:var(--ink);letter-spacing:-.15px;line-height:1.5}
.st .desc{font-size:12px;color:var(--ink4);line-height:1.6;margin-bottom:9px;font-weight:500}
.st .flow{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--ink2)}
.st .flow i{font-style:normal;color:var(--ink4)}
.st .flow div{display:flex;gap:7px}
.st .flow em{
  font-style:normal;flex:0 0 17px;height:17px;border-radius:6px;background:var(--warm-2);color:var(--ink3);
  display:grid;place-items:center;font-size:10px;font-weight:800;margin-top:2px;
}
.st.on .flow em{background:#fff;color:var(--primary)}
.st .meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

.tag{
  font-size:11px;padding:3px 9px;border-radius:var(--r-full);background:var(--warm);color:var(--ink3);
  white-space:nowrap;font-weight:600;border:1px solid var(--line-soft);
}
.tag.hot{background:var(--primary-10);color:var(--primary);border-color:var(--primary-20)}
.tag.blue{background:rgba(46,116,166,.10);color:var(--primary-a);border-color:rgba(46,116,166,.18)}
.tag.green{background:var(--green-l);color:var(--green);border-color:rgba(26,143,106,.18)}
.tag.gold{background:var(--gold-l);color:var(--gold);border-color:rgba(161,116,26,.18)}
.tag.purple{background:var(--purple-l);color:var(--purple);border-color:rgba(109,79,196,.18)}
.tag.red{background:var(--red-l);color:var(--red);border-color:rgba(192,57,43,.18)}

/* ---------- 成稿 / 剧本 ---------- */
.script-wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:16px;align-items:start}
@media(max-width:1180px){.script-wrap{grid-template-columns:1fr}}
.box{border:1px solid var(--line-soft);border-radius:var(--r2);overflow:hidden;background:#fff}
.box-h{
  padding:12px 16px;background:#fafbfc;border-bottom:1px solid var(--line-soft);font-size:12.5px;font-weight:800;
  color:var(--ink2);display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.box-h .spacer{flex:1}
.box-b{padding:16px}
.part{margin-bottom:16px;padding-left:13px;border-left:3px solid var(--warm-2)}
.part.hook{border-left-color:var(--primary)}
.part.body{border-left-color:var(--primary-b)}
.part.cta{border-left-color:var(--green)}
.part.punch{border-left-color:var(--gold)}
.part .plabel{
  font-size:11px;font-weight:800;color:var(--ink4);letter-spacing:.7px;margin-bottom:7px;
  display:flex;gap:8px;align-items:center;flex-wrap:wrap;text-transform:uppercase;
}
.part .ptext{font-size:14.5px;line-height:1.88;white-space:pre-wrap;word-break:break-word;color:var(--ink)}
.part .pnote{
  font-size:11.5px;color:var(--ink4);margin-top:8px;line-height:1.62;padding-top:8px;
  border-top:1px dashed var(--line-soft);font-weight:500;
}
.cue{
  font-size:13px;color:#7a5c06;background:var(--gold-l);border:1px solid rgba(161,116,26,.16);
  border-radius:10px;padding:8px 12px;margin:8px 0 7px;line-height:1.6;font-weight:600;
}
.part.hook .cue{background:var(--primary-05);border-color:var(--primary-20);color:var(--primary)}
.part.cta .cue{background:var(--green-l);border-color:rgba(26,143,106,.18);color:var(--green)}
.part.punch .cue{background:var(--purple-l);border-color:rgba(109,79,196,.18);color:var(--purple)}
.copy-block{
  white-space:pre-wrap;font-size:14px;line-height:1.92;padding:17px;background:#fafbfc;
  border:1px solid var(--line-soft);border-radius:var(--r3);max-height:640px;overflow:auto;
}

.check{display:flex;gap:10px;padding:11px 0;border-bottom:1px dashed var(--line-soft);font-size:12.5px;line-height:1.65}
.check:last-child{border-bottom:0}
.check .ci{flex:0 0 19px;height:19px;border-radius:50%;display:grid;place-items:center;font-size:11px;color:#fff;margin-top:1px;font-weight:800}
.check.ok .ci{background:var(--green)}
.check.warn .ci{background:var(--amber)}
.check.bad .ci{background:var(--red)}
.check b{display:block;font-size:12.5px;font-weight:800;color:var(--ink);margin-bottom:1px}
.check span{color:var(--ink4);font-size:11.5px;font-weight:500}
.score{
  display:flex;align-items:center;gap:15px;padding:15px 17px;background:linear-gradient(135deg,#fafbfc,#fff);
  border:1px solid var(--line-soft);border-radius:var(--r2);margin-bottom:15px;
}
.score .num{font-size:34px;font-weight:800;line-height:1;letter-spacing:-1.5px}
.score .num small{font-size:12px;color:var(--ink4);font-weight:600;letter-spacing:0}
.score .txt{font-size:12.5px;color:var(--ink2);line-height:1.65;font-weight:500}

/* ---------- 日历 ---------- */
.cal{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px}
.cal-d{
  border:1px solid var(--line-soft);border-radius:var(--r3);padding:12px;background:#fff;font-size:12px;
  line-height:1.58;transition:.16s;
}
.cal-d:hover{border-color:var(--primary-20);box-shadow:var(--sh-xs);transform:translateY(-1px)}
.cal-d .d{font-size:11px;color:var(--ink4);font-weight:800;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}
.cal-d .t{font-weight:700;font-size:12.5px;margin-bottom:5px;color:var(--ink);line-height:1.5}
.cal-d .a{color:var(--ink4);font-size:11px;font-weight:500}
.cal-d.rest{background:#fafbfc;color:var(--ink4)}

/* ---------- 文案库 ---------- */
.lib-item{
  border:1px solid var(--line-soft);border-radius:var(--r2);padding:16px;margin-bottom:10px;background:#fff;
  display:flex;gap:14px;align-items:flex-start;transition:.16s;
}
.lib-item:hover{border-color:var(--line-strong);box-shadow:var(--sh-xs)}
.lib-item .l-main{flex:1;min-width:0}
.lib-item h3{margin:0 0 7px;font-size:14.5px;font-weight:800;letter-spacing:-.15px}
.lib-item .l-meta{font-size:11.5px;color:var(--ink4);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:9px;align-items:center;font-weight:500}
.lib-item .l-body{
  font-size:12.5px;color:var(--ink3);line-height:1.72;display:-webkit-box;-webkit-line-clamp:3;
  -webkit-box-orient:vertical;overflow:hidden;font-weight:500;
}
.empty{text-align:center;padding:52px 22px;color:var(--ink4);font-size:13px;font-weight:500;line-height:1.8}
.empty .em{font-size:34px;display:block;margin-bottom:12px;opacity:.55}
.guide{display:flex;flex-direction:column;align-items:center;gap:12px;padding:46px 22px;text-align:center}
.guide .em{font-size:38px;opacity:.6}
.guide h3{margin:0;font-size:16px;font-weight:800;letter-spacing:-.2px}
.guide p{margin:0;font-size:12.5px;color:var(--ink4);line-height:1.75;max-width:460px;font-weight:500}

/* ---------- 弹窗 / toast / 提示 ---------- */
.mask{position:fixed;inset:0;background:rgba(20,26,33,.44);backdrop-filter:blur(3px);z-index:100;display:grid;place-items:center;padding:20px}
.modal{background:#fff;border-radius:20px;box-shadow:var(--sh-lg);width:100%;max-width:620px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
.modal-h{padding:18px 22px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:10px}
.modal-h b{font-size:15px;flex:1;font-weight:800}
.modal-b{padding:22px;overflow:auto}
.modal-f{padding:15px 22px;border-top:1px solid var(--line-soft);display:flex;gap:10px;justify-content:flex-end;background:#fafbfc}
.x{border:0;background:none;font-size:20px;color:var(--ink4);cursor:pointer;line-height:1;padding:3px 7px;border-radius:8px}
.x:hover{background:var(--warm);color:var(--ink)}
#toast{
  position:fixed;left:50%;bottom:36px;transform:translate(-50%,20px);background:#1e2a33;color:#fff;
  padding:12px 22px;border-radius:var(--r3);font-size:13.5px;font-weight:600;opacity:0;pointer-events:none;
  transition:.26s cubic-bezier(.2,.8,.2,1);z-index:200;box-shadow:var(--sh-lg);max-width:80vw;
}
#toast.on{opacity:1;transform:translate(-50%,0)}
.notice{
  font-size:12.5px;line-height:1.72;padding:13px 15px;border-radius:var(--r3);
  background:var(--gold-l);border:1px solid rgba(161,116,26,.18);color:#7a5c06;margin-bottom:15px;font-weight:500;
}
.notice.blue{background:var(--primary-05);border-color:var(--primary-20);color:var(--primary)}
.notice.green{background:var(--green-l);border-color:rgba(26,143,106,.2);color:var(--green)}
.notice b{font-weight:800}
.mini{font-size:11.5px;color:var(--ink4);line-height:1.65;font-weight:500}
hr.sep{border:0;border-top:1px solid var(--line-soft);margin:18px 0}
.kv{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:13px}
.kv .chip{font-size:11.5px;padding:5px 11px;border-radius:var(--r-full);background:var(--warm);color:var(--ink3);font-weight:600}
.kv .chip b{color:var(--ink);font-weight:800}
.hidden{display:none !important}

@media(max-width:860px){
  .shell-in{padding:18px 14px 30px}
  .topbar-in{padding:0 14px;gap:10px}
  .brand small{display:none}
  .card{padding:18px;border-radius:var(--r2)}
}


/* ==========================================================================
   多页面站点新增样式：账号 · 积分 · 首页 · 认证页
   ========================================================================== */

/* 品牌文字块（顶栏用 a 标签） */
.brand-txt{display:block}
.topnav a{
  display:flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none;
  border-radius:var(--r-full);padding:9px 14px;font-size:13.5px;font-weight:700;color:var(--ink2);
  transition:background .16s,color .16s;min-height:40px;
}
.topnav a:hover{background:var(--primary-05);color:var(--primary)}
.topnav a.on{background-image:var(--grad-primary);color:#fff;box-shadow:0 6px 16px rgba(26,82,118,.26)}
.topnav a .ico{font-size:14px}

/* 积分胶囊 */
.credit-chip{
  display:inline-flex;align-items:center;gap:6px;text-decoration:none;
  background:linear-gradient(135deg,#fffaf0,#fdf3dd);border:1px solid rgba(161,116,26,.25);
  border-radius:var(--r-full);padding:7px 14px;transition:.16s;white-space:nowrap;
}
.credit-chip:hover{border-color:rgba(161,116,26,.5);box-shadow:0 4px 14px rgba(161,116,26,.14)}
.credit-chip .cc-ico{font-size:14px}
.credit-chip .cc-num{font-size:14px;font-weight:800;color:#8a6508;font-variant-numeric:tabular-nums}
.credit-chip .cc-unit{font-size:11px;color:#a1741a;font-weight:600}

/* 账号菜单 */
.acct{position:relative}
.acct-btn{
  display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;
  border-radius:var(--r-full);padding:5px 12px 5px 5px;cursor:pointer;transition:.16s;min-height:40px;
}
.acct-btn:hover{border-color:var(--line-strong);background:#fcfcfd}
.acct-btn .avatar{
  width:29px;height:29px;border-radius:50%;background-image:var(--grad-primary);color:#fff;
  display:grid;place-items:center;font-size:13px;font-weight:800;flex:0 0 29px;
}
.acct-btn .acct-name{font-size:13px;font-weight:700;color:var(--ink2);max-width:88px;overflow:hidden;text-overflow:ellipsis}
.acct-btn .caret{font-size:10px;color:var(--ink4)}
.acct-pop{
  position:absolute;right:0;top:calc(100% + 10px);width:252px;background:#fff;
  border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--sh-lg);
  padding:8px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.18s;z-index:80;
}
.acct-pop.on{opacity:1;visibility:visible;transform:translateY(0)}
.acct-head{padding:12px 12px 10px;border-bottom:1px solid var(--line-soft)}
.acct-head b{display:block;font-size:14px;font-weight:800}
.acct-head span{display:block;font-size:11.5px;color:var(--ink4);margin-top:2px;word-break:break-all}
.acct-credits{
  display:flex;align-items:center;justify-content:space-between;padding:11px 12px;margin:6px 0;
  background:linear-gradient(135deg,#fffaf0,#fdf3dd);border-radius:10px;
}
.acct-credits span{font-size:12px;color:#8a6508;font-weight:600}
.acct-credits b{font-size:15px;color:#8a6508;font-weight:800;font-variant-numeric:tabular-nums}
.acct-item{
  display:block;width:100%;text-align:left;border:0;background:none;cursor:pointer;
  padding:10px 12px;border-radius:9px;font-size:13px;font-weight:600;color:var(--ink2);
  text-decoration:none;transition:.14s;
}
.acct-item:hover{background:var(--primary-05);color:var(--primary)}
.acct-item.danger:hover{background:var(--red-l);color:var(--red)}

/* ---------- 首页 Hero ---------- */
.hero{
  position:relative;overflow:hidden;border-radius:26px;padding:60px 54px 56px;margin-bottom:26px;
  background:
    radial-gradient(1100px 420px at 88% -12%, rgba(63,167,214,.30), transparent 62%),
    radial-gradient(760px 380px at 6% 106%, rgba(26,82,118,.20), transparent 60%),
    linear-gradient(150deg,#123f5c 0%,#1a5276 42%,#2e74a6 100%);
  color:#fff;box-shadow:0 24px 60px rgba(18,63,92,.26);
}
.hero::after{
  content:'';position:absolute;right:-120px;top:-110px;width:460px;height:460px;border-radius:50%;
  background:radial-gradient(circle at 34% 34%, rgba(255,255,255,.24), rgba(255,255,255,0) 62%);
  pointer-events:none;
}
.hero::before{
  content:'';position:absolute;left:-70px;bottom:-160px;width:360px;height:360px;border-radius:50%;
  background:radial-gradient(circle at 50% 50%, rgba(63,167,214,.30), rgba(63,167,214,0) 66%);
  pointer-events:none;
}
.hero .h-in{position:relative;z-index:2;max-width:730px}
.hero .kicker{
  display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.4px;
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.22);
  padding:6px 14px;border-radius:var(--r-full);margin-bottom:20px;backdrop-filter:blur(6px);
}
.hero h1{
  margin:0 0 16px;font-size:40px;line-height:1.24;font-weight:800;letter-spacing:-1px;
}
.hero h1 em{
  font-style:normal;
  background-image:linear-gradient(100deg,#bfe3f7,#7fc8ea 60%,#ffffff);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p{margin:0 0 26px;font-size:15px;line-height:1.8;color:rgba(255,255,255,.86);max-width:600px}
.hero .h-btns{display:flex;gap:12px;flex-wrap:wrap}
.hero .btn-hero{
  display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;text-decoration:none;
  padding:14px 26px;border-radius:var(--r3);font-size:14.5px;font-weight:800;transition:.18s;
}
.hero .btn-hero.light{background:#fff;color:var(--primary);box-shadow:0 10px 26px rgba(0,0,0,.18)}
.hero .btn-hero.light:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.24)}
.hero .btn-hero.ghost{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.28)}
.hero .btn-hero.ghost:hover{background:rgba(255,255,255,.22)}
.hero-stats{display:flex;gap:34px;flex-wrap:wrap;margin-top:34px;padding-top:26px;border-top:1px solid rgba(255,255,255,.18)}
.hero-stats .hs b{display:block;font-size:26px;font-weight:800;letter-spacing:-.6px;font-variant-numeric:tabular-nums}
.hero-stats .hs span{font-size:12px;color:rgba(255,255,255,.72);font-weight:600}

/* 首页区块标题 */
.sec-head{display:flex;align-items:flex-end;gap:14px;margin:34px 0 16px;flex-wrap:wrap}
.sec-head h2{margin:0;font-size:21px;font-weight:800;letter-spacing:-.4px}
.sec-head p{margin:0;font-size:12.5px;color:var(--ink4);font-weight:500}
.sec-head .spacer{flex:1}

/* 专区卡片网格 */
.zone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:14px}
.zone{
  display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line-soft);
  border-radius:var(--r);padding:22px;transition:.2s;position:relative;overflow:hidden;
}
.zone:hover{transform:translateY(-3px);box-shadow:var(--sh-lg);border-color:var(--primary-20)}
.zone .z-ico{
  width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:22px;
  background:var(--primary-05);border:1px solid var(--primary-10);margin-bottom:14px;
}
.zone h3{margin:0 0 7px;font-size:15.5px;font-weight:800;letter-spacing:-.25px;display:flex;align-items:center;gap:8px}
.zone p{margin:0;font-size:12.5px;color:var(--ink4);line-height:1.68;font-weight:500}
.zone .z-foot{margin-top:14px;display:flex;gap:6px;flex-wrap:wrap}
.zone .z-arrow{
  position:absolute;right:20px;top:22px;font-size:16px;color:var(--ink4);opacity:0;transition:.2s;
}
.zone:hover .z-arrow{opacity:1;transform:translateX(3px);color:var(--primary)}
.zone.soon{opacity:.72}
.zone.soon:hover{opacity:1}

/* 首页人设库条 */
.mine{display:flex;gap:12px;flex-wrap:wrap}
.mine .mcard{
  display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r2);padding:13px 16px;text-decoration:none;color:inherit;transition:.18s;min-width:200px;
}
.mine .mcard:hover{border-color:var(--primary-20);box-shadow:var(--sh);transform:translateY(-2px)}
.mine .mcard .av{
  width:36px;height:36px;border-radius:11px;background-image:var(--grad-primary);color:#fff;
  display:grid;place-items:center;font-size:15px;font-weight:800;flex:0 0 36px;
}
.mine .mcard b{display:block;font-size:13.5px;font-weight:800;line-height:1.3}
.mine .mcard span{display:block;font-size:11px;color:var(--ink4);margin-top:2px}
.mine .mcard.add{
  border-style:dashed;background:transparent;color:var(--ink4);justify-content:center;font-weight:700;font-size:13px;
}
.mine .mcard.add:hover{color:var(--primary);border-color:var(--primary-20);background:var(--primary-05)}

/* ---------- 认证页（登录/注册） ---------- */
.auth-wrap{max-width:460px;margin:56px auto 80px}
.auth-card{
  background:#fff;border:1px solid var(--line-soft);border-radius:var(--r);
  box-shadow:var(--sh);padding:34px 34px 30px;
}
.auth-card h1{margin:0 0 8px;font-size:23px;font-weight:800;letter-spacing:-.5px}
.auth-card .lead{margin:0 0 24px;font-size:13px;color:var(--ink3);line-height:1.7}
.auth-foot{margin-top:18px;text-align:center;font-size:12.5px;color:var(--ink4)}
.auth-foot a{font-weight:700}
.perk{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--ink3);line-height:1.65;margin-bottom:9px}
.perk .pi{
  flex:0 0 20px;height:20px;border-radius:50%;background:var(--green-l);color:var(--green);
  display:grid;place-items:center;font-size:11px;font-weight:800;margin-top:1px;
}

/* ---------- 个人中心 ---------- */
.stat-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.stat{
  background:linear-gradient(135deg,#fffaf0,#fdf3dd);border:1px solid rgba(161,116,26,.2);
  border-radius:var(--r2);padding:18px;
}
.stat .sv{font-size:27px;font-weight:800;color:#8a6508;letter-spacing:-.8px;font-variant-numeric:tabular-nums}
.stat .sl{font-size:12px;color:#a1741a;font-weight:700;margin-top:3px}
.hist-h{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:10px;font-size:11.5px;font-weight:800;
  color:var(--ink4);padding:0 4px 10px;border-bottom:1px solid var(--line-soft);text-transform:uppercase;letter-spacing:.4px}
.hist-r{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:10px;font-size:12.5px;padding:11px 4px;
  border-bottom:1px dashed var(--line-soft);align-items:center}
.hist-r:last-child{border-bottom:0}
.hist-r .amt{font-weight:800;font-variant-numeric:tabular-nums}
.hist-r .amt.out{color:var(--red)}
.hist-r .amt.in{color:var(--green)}
.hist-r .bal{color:var(--ink4);font-variant-numeric:tabular-nums}
@media(max-width:640px){
  .hist-h,.hist-r{grid-template-columns:1.2fr 1fr 1fr;font-size:11.5px}
  .hist-h span:nth-child(4),.hist-r span:nth-child(4){display:none}
}

/* 充值套餐 */
.packs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.pack{
  border:1.5px solid var(--line);border-radius:var(--r2);padding:18px;cursor:pointer;background:#fff;
  text-align:center;transition:.18s;
}
.pack:hover{border-color:var(--primary-20);transform:translateY(-2px);box-shadow:var(--sh)}
.pack.on{border-color:var(--primary);background:var(--primary-05)}
.pack b{display:block;font-size:18px;font-weight:800;color:var(--primary);font-variant-numeric:tabular-nums}
.pack .pk-y{font-size:11px;color:var(--ink4);margin-top:3px}
.pack .pk-p{font-size:15px;font-weight:800;margin-top:11px}
.pack .pk-t{font-size:11px;color:var(--ink4);margin-top:2px}

/* 首页空态与提示 */
.tipbar{
  display:flex;align-items:center;gap:12px;background:var(--primary-05);border:1px solid var(--primary-20);
  border-radius:var(--r2);padding:13px 16px;font-size:12.5px;color:var(--primary);font-weight:600;margin-bottom:16px;
}
.tipbar .spacer{flex:1}


/* ==========================================================================
   发布复盘看板
   ========================================================================== */

/* 自动洞察 */
.insight{
  display:flex;gap:11px;align-items:flex-start;padding:13px 14px;border-radius:var(--r3);
  background:#fafbfc;border:1px solid var(--line-soft);margin-bottom:9px;
}
.insight:last-child{margin-bottom:0}
.insight .i-ico{
  flex:0 0 22px;height:22px;border-radius:50%;display:grid;place-items:center;
  font-size:12px;font-weight:800;color:#fff;margin-top:1px;
}
.insight.good{background:var(--green-l);border-color:rgba(26,143,106,.2)}
.insight.good .i-ico{background:var(--green)}
.insight.warn{background:var(--gold-l);border-color:rgba(161,116,26,.2)}
.insight.warn .i-ico{background:var(--amber)}
.insight.bad{background:var(--red-l);border-color:rgba(192,57,43,.2)}
.insight.bad .i-ico{background:var(--red)}
.insight.info .i-ico{background:var(--primary-a)}
.insight .i-body b{display:block;font-size:13.5px;font-weight:800;margin-bottom:3px;color:var(--ink)}
.insight .i-body span{display:block;font-size:12.5px;line-height:1.72;color:var(--ink2);font-weight:500}

/* 归因表 */
.perf-table{margin-top:6px;border:1px solid var(--line-soft);border-radius:var(--r2);overflow:hidden}
.pt-h,.pt-r{
  display:grid;grid-template-columns:minmax(140px,1.6fr) 54px 88px 76px 84px 84px 96px;
  gap:8px;align-items:center;padding:11px 14px;
}
.pt-h{
  background:#fafbfc;font-size:11px;font-weight:800;color:var(--ink4);
  text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--line-soft);
}
.pt-r{font-size:12.5px;border-bottom:1px dashed var(--line-soft);color:var(--ink2)}
.pt-r:last-child{border-bottom:0}
.pt-r:hover{background:#fcfdfe}
.pt-r.best{background:linear-gradient(90deg,var(--green-l),transparent 70%)}
.pt-r .pt-k{font-weight:800;color:var(--ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pt-r .pt-k .mini{font-weight:500}
.pt-r .num{font-variant-numeric:tabular-nums;font-weight:600}
.pt-r .pt-score{
  position:relative;font-weight:800;font-variant-numeric:tabular-nums;
  display:flex;flex-direction:column;gap:4px;align-items:flex-start;
}
.pt-r .pt-score i{
  display:block;height:4px;border-radius:3px;background:currentColor;opacity:.28;
  max-width:100%;min-width:6px;
}
@media(max-width:900px){
  .pt-h,.pt-r{grid-template-columns:minmax(110px,1.4fr) 44px 74px 68px;font-size:11.5px;padding:9px 10px}
  .pt-h span:nth-child(5),.pt-r span:nth-child(5),
  .pt-h span:nth-child(6),.pt-r span:nth-child(6){display:none}
}

/* 发布记录卡 */
.rec-wrap{display:flex;flex-direction:column;gap:10px}
.rec{
  display:flex;gap:14px;align-items:flex-start;padding:15px 16px;background:#fff;
  border:1px solid var(--line-soft);border-radius:var(--r2);transition:.16s;
}
.rec:hover{border-color:var(--line-strong);box-shadow:var(--sh-xs)}
.rec-main{flex:1;min-width:0}
.rec-title{font-size:14.5px;font-weight:800;line-height:1.5;margin-bottom:7px;color:var(--ink)}
.rec-meta{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.rec-nums{
  display:flex;gap:16px;flex-wrap:wrap;padding:9px 12px;background:var(--warm);
  border-radius:10px;font-size:11.5px;color:var(--ink4);font-weight:600;
}
.rec-nums span{display:flex;align-items:baseline;gap:4px;white-space:nowrap}
.rec-nums b{font-size:14px;color:var(--ink);font-weight:800;font-variant-numeric:tabular-nums}
.rec-nums .hl b{color:var(--primary)}
@media(max-width:720px){
  .rec{flex-direction:column}
  .rec-nums{gap:11px}
}

/* 日期输入对齐 */
input[type=date].inp{font-family:inherit}


/* ==========================================================================
   顶栏适配：导航加到 10 项后，中屏要把空间让给导航
   ========================================================================== */

/* 品牌副标题在窄屏先隐藏，把宽度让给导航 */
@media (max-width: 1900px){
  .brand .brand-txt small{ display:none }
}
/* 1760 及以下：整体收紧一档，10 项仍带图标 */
@media (max-width: 1920px){
  .topbar-in{ gap:12px }
  .topnav{ gap:1px }
  .topnav a{ padding:8px 10px; font-size:13px; gap:5px }
  .navmore-btn{ padding:8px 10px; font-size:13px; gap:5px }
  .topnav a .ico{ font-size:13px }
  .brand .brand-txt b{ font-size:14.5px }
  .credit-chip{ padding:6px 11px }
  .credit-chip .cc-num{ font-size:13px }
  .acct-btn .acct-name{ max-width:60px }
}
/* 1660 及以下：图标让位，保文字完整可读 */
@media (max-width: 1660px){
  .topnav a{ padding:8px 9px; font-size:12.5px }
  .topnav a .ico{ display:none }
  .navmore-btn{ padding:8px 9px; font-size:12.5px }
  .navmore-btn .ico{ display:none }
}
/* 1500 及以下：账号名与积分单位收起 */
@media (max-width: 1500px){
  .acct-btn .acct-name{ display:none }
  .acct-btn{ padding:5px 9px 5px 5px }
  .credit-chip .cc-unit{ display:none }
  .topnav a{ padding:8px 8px; font-size:12px }
  .navmore-btn{ padding:8px 8px; font-size:12px }
}
/* 1380 及以下：只留 logo 方块 */
@media (max-width: 1380px){
  .brand .brand-txt{ display:none }
  .topnav a{ padding:8px 7px }
  .navmore-btn{ padding:8px 7px }
}
/* 导航条允许横向滚动，任何宽度都不会把最后一项挤没 */
.topnav{
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.topnav::-webkit-scrollbar{ display:none }
.topnav a{ flex:0 0 auto }
/* 顶栏右侧永不被压缩 */
.top-right{ flex:0 0 auto }


/* ==========================================================================
   选择面板：宽屏固定高度可滚动；窄屏（分栏变单栏）时恢复正常流式高度
   ========================================================================== */
.split 单栏时面板不固定高度{}
@media (max-width: 1080px){
  .panel{ position:static; max-height:none }
  .panel-b{ overflow:visible }
}


/* ==========================================================================
   纯文本版：把「（表演提示）」和台词区分开
   —— 提示是给拍的人看的，台词才是要念的，两者视觉上必须一眼分得清
   ========================================================================== */
.copy-block .pt-cue{
  display:inline;
  color:#a1741a;                    /* 琥珀色：和正文黑区分 */
  background:rgba(253,248,234,.9);  /* 极浅暖底，像便签 */
  font-size:12.5px;                 /* 比台词小一号 */
  font-style:italic;                /* 斜体：一眼看出是说明 */
  font-family:ui-monospace,"SF Mono",Consolas,"Courier New",monospace;  /* 等宽：更像场记标注 */
  padding:1px 6px;
  border-radius:6px;
  letter-spacing:.2px;
}
.copy-block .pt-line{display:block}
/* 台词行：正常字重，稍微加深一点保证对比 */
.copy-block .pt-say{color:var(--ink);font-weight:500}
/* 纯台词模式：提示整行隐藏 */
.copy-block.clean-only .pt-cue{display:none}
/* 顶部的小工具条 */
.copy-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.copy-tools .mini{color:var(--ink4)}
.switch{
  display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;
  color:var(--ink3);cursor:pointer;user-select:none;
}
.switch input{width:auto;margin:0;cursor:pointer}


/* ==========================================================================
   顶栏「更多」下拉
   导航项加到 11 项后 1920 宽度也装不下，横向滚动用户发现不了，
   所以次要项收进下拉 —— 主项直接可见，次要项点一下就有。
   ========================================================================== */
.navmore{position:relative;display:flex;align-items:center}
.navmore-btn{
  display:flex;align-items:center;gap:6px;white-space:nowrap;border:0;background:none;cursor:pointer;
  border-radius:var(--r-full);padding:9px 14px;font-size:13.5px;font-weight:700;color:var(--ink2);
  min-height:40px;font-family:inherit;transition:background .16s,color .16s;
}
.navmore-btn:hover{background:var(--primary-05);color:var(--primary)}
.navmore-btn.on{background-image:var(--grad-primary);color:#fff;box-shadow:0 6px 16px rgba(26,82,118,.26)}
.navmore-btn .caret{font-size:10px;opacity:.7}
.navmore-pop{
  /* 用 fixed 绕开 .topnav 的 overflow 裁剪（位置由 JS 设） */
  position:fixed;top:0;right:0;z-index:200;min-width:190px;
  background:#fff;border:1px solid var(--line-soft);border-radius:var(--r3);
  box-shadow:0 18px 44px rgba(16,42,67,.16);padding:7px;
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:all .16s;
}
.navmore-pop.on{opacity:1;visibility:visible;transform:none}
.navmore-item{
  display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:var(--r2);
  text-decoration:none;color:var(--ink2);font-size:13.5px;font-weight:700;white-space:nowrap;
}
.navmore-item:hover{background:var(--primary-05);color:var(--primary)}
.navmore-item.on{background-image:var(--grad-primary);color:#fff}
.navmore-item .ico{font-size:14px}

/* AI 状态条可点击（点了去设置页） */
.ai-status{text-decoration:none;cursor:pointer;transition:all .16s}
.ai-status:hover{background:#fff;border-color:var(--primary-30);color:var(--primary)}
.ai-status.on{background:rgba(46,125,50,.10);color:var(--green);border-color:rgba(46,125,50,.28)}
.ai-status.on:hover{background:rgba(46,125,50,.16);border-color:rgba(46,125,50,.45)}


/* ==========================================================================
   自检状态徽章（取代原来的分数）
   原因：给分数会诱导用户反复重生成刷到 100 分 —— 每次都要调大模型花 token。
   改成状态：直接用 / 小问题（可免费修补）/ 需要改。
   ========================================================================== */
.qstate{
  display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:var(--r3);
  margin-bottom:14px;border:1px solid transparent;
}
.qs-badge{
  flex:0 0 auto;font-size:12.5px;font-weight:800;padding:5px 11px;border-radius:var(--r-full);
  white-space:nowrap;
}
.qs-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.qs-txt b{font-size:13.5px}
.qs-txt span{font-size:12.5px;line-height:1.6;opacity:.82}

.qstate.ready{background:rgba(46,125,50,.07);border-color:rgba(46,125,50,.22)}
.qstate.ready .qs-badge{background:var(--green);color:#fff}
.qstate.ready .qs-txt b{color:var(--green)}

.qstate.fixable{background:rgba(183,121,31,.07);border-color:rgba(183,121,31,.24)}
.qstate.fixable .qs-badge{background:#b7791f;color:#fff}
.qstate.fixable .qs-txt b{color:#8a5a15}

.qstate.retry{background:rgba(198,40,40,.06);border-color:rgba(198,40,40,.22)}
.qstate.retry .qs-badge{background:var(--red);color:#fff}
.qstate.retry .qs-txt b{color:var(--red)}


/* ==========================================================================
   专区页面版面（朋友圈 / 小红书 / 直播话术 / 爆款二创 共用）
   注意：类名用 .zwrap / .zgrid，避开首页已经占用的 .zone / .zone-grid
   组织方式：① 选类型 + ② 填要求 | 右栏人设背景  →  ③ 结果  →  生成历史
   ========================================================================== */
.zwrap{display:flex;flex-direction:column;gap:16px}
.zgrid{display:grid;grid-template-columns:252px minmax(0,1fr) 266px;gap:16px;align-items:start}

.zcol,.zside{
  background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r4);
  overflow:hidden;display:flex;flex-direction:column;min-width:0;
}
.zside{background:linear-gradient(180deg,rgba(26,82,118,.035),rgba(26,82,118,0) 120px),var(--card)}

.zhead{
  display:flex;align-items:center;gap:9px;padding:14px 16px;
  border-bottom:1px solid var(--line-soft);background:rgba(26,82,118,.028);
  font-weight:700;font-size:14px;color:var(--ink);flex-shrink:0;
}
.znum{
  width:21px;height:21px;border-radius:50%;flex-shrink:0;
  background-image:var(--grad-primary);color:#fff;
  font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;
}
.ztitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.zbody{padding:12px;display:flex;flex-direction:column;gap:9px;min-width:0}
.zscroll{overflow-y:auto;max-height:min(58vh,520px)}

.zpicked{
  margin-top:2px;padding:9px 11px;border-radius:var(--r2);
  background:rgba(26,82,118,.06);font-size:12.5px;color:var(--ink-2);
}
.zpicked b{color:var(--primary-d)}

.zempty{
  padding:16px 12px;border:1px dashed var(--line);border-radius:var(--r3);
  font-size:12.5px;color:var(--ink-3);line-height:1.75;text-align:center;
}
.zempty a{color:var(--primary-d);font-weight:600}

/* 右栏人设背景 */
.zsel{
  width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:var(--r2);
  font-size:13px;font-family:inherit;background:#fff;color:var(--ink);box-sizing:border-box;
}
.zsel-fixed{background:rgba(26,82,118,.05);font-weight:600}
.zkv{display:flex;gap:8px;align-items:baseline;font-size:12.5px;line-height:1.7;
  padding:7px 10px;background:rgba(26,82,118,.035);border-radius:var(--r2)}
.zk{color:var(--ink-3);flex-shrink:0;width:56px}
.zv{color:var(--ink);word-break:break-word}
.zhint{
  margin-top:2px;padding:9px 11px;border-radius:var(--r2);
  background:rgba(214,158,46,.09);color:#8a6412;font-size:12px;line-height:1.7;
}

/* ② 里的表单元素 */
.zlabel{font-size:13px;font-weight:600;color:var(--ink);display:block;margin-bottom:-3px}
.zlabel i{color:var(--red);font-style:normal}
.zta{
  width:100%;min-height:96px;padding:11px 12px;border:1px solid var(--line);
  border-radius:var(--r2);font-family:inherit;font-size:13px;line-height:1.75;
  resize:vertical;box-sizing:border-box;color:var(--ink);
}
.zta:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,82,118,.1)}
.zta::placeholder{color:var(--ink-3)}
.zbtn-wide{width:100%;justify-content:center}

.opt-badge{
  margin-left:6px;padding:1px 6px;border-radius:99px;font-size:10.5px;font-style:normal;
  background:rgba(214,158,46,.16);color:#8a6412;font-weight:600;
}

/* 生成历史 */
.zhist-item{padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--r2);background:#fbfcfd}
.zhist-t{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:3px}
.zhist-m{font-size:11.5px;color:var(--ink-3)}

/* 窄屏：三栏折成单栏，右栏排到最前（先看人设背景） */
@media (max-width:1180px){
  .zgrid{grid-template-columns:1fr}
  .zgrid .zside{order:-1}
  .zscroll{max-height:none}
}
