:root{
  --paper:#f6f4ef;
  --card:#fffdf9;
  --ink:#1d1c19;
  --ink2:#5a5751;
  --ink3:#8e8a81;
  --line:#e5e1d7;
  --line2:#d5d0c3;
  --accent:#a8452b;
  --accent2:#c96a45;
  --accent-soft:#f7ebe5;
  --sage:#47634f;
  --sage-soft:#e9f0e9;
  --amber:#8a6410;
  --amber-soft:#faf0d8;
  --r:14px;
  --r-sm:9px;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --serif:"Source Han Serif SC","Songti SC","Noto Serif SC",Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html,body{height:100%}
body{
  background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}
input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}
::selection{background:#f3d9cd}

/* ---------------- topbar ---------------- */
.topbar{
  height:64px;display:flex;align-items:center;justify-content:space-between;
  padding:0 26px;border-bottom:1px solid var(--line);background:rgba(246,244,239,.92);
  position:sticky;top:0;z-index:20;backdrop-filter:blur(8px);
}
.brand{display:flex;align-items:center;gap:12px}
.mark{
  width:34px;height:34px;border-radius:10px;background:var(--ink);color:#f6f4ef;
  display:grid;place-items:center;font-family:var(--serif);font-size:19px;letter-spacing:0;
}
.brand b{display:block;font-size:15px;font-weight:600;letter-spacing:.5px}
.brand i{display:block;font-style:normal;font-size:11.5px;color:var(--ink3);letter-spacing:.3px}
.top-right{display:flex;align-items:center;gap:10px}
.pill{
  display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;
  border-radius:999px;font-size:12px;border:1px solid var(--line2);color:var(--ink2);background:var(--card);
}
.pill .dot{width:6px;height:6px;border-radius:50%;background:var(--ink3)}
.pill.on{border-color:#bfd3c4;background:var(--sage-soft);color:var(--sage)}
.pill.on .dot{background:var(--sage)}
.pill.demo{border-color:#e6d4ac;background:var(--amber-soft);color:var(--amber)}
.pill.demo .dot{background:var(--amber)}
.ghost{
  height:30px;padding:0 12px;border:1px solid var(--line2);border-radius:8px;
  font-size:12.5px;color:var(--ink2);background:var(--card);transition:.15s;
}
.ghost:hover{border-color:var(--ink3);color:var(--ink)}

/* ---------------- shell ---------------- */
.shell{display:grid;grid-template-columns:212px 1fr;align-items:start}
.rail{
  position:sticky;top:64px;height:calc(100vh - 64px);padding:26px 14px;
  border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px;
}
.step-item{
  display:flex;gap:11px;align-items:flex-start;padding:11px 12px;border-radius:10px;
  text-align:left;width:100%;transition:.15s;color:var(--ink3);
}
.step-item:hover{background:#efece4}
.step-item .n{
  width:21px;height:21px;border-radius:50%;border:1px solid var(--line2);
  display:grid;place-items:center;font-size:11px;flex:0 0 auto;margin-top:1px;background:var(--card);
  font-variant-numeric:tabular-nums;
}
.step-item .lab{display:block;font-size:13.5px;font-weight:500;color:var(--ink2);line-height:1.4}
.step-item .sub{display:block;font-size:11px;color:var(--ink3);margin-top:2px;line-height:1.45}
.step-item.active{background:var(--card);border:1px solid var(--line);box-shadow:0 1px 4px rgba(29,28,25,.06)}
.step-item.active .n{background:var(--accent);border-color:var(--accent);color:#f6f4ef}
.step-item.active .lab{color:var(--ink)}
.step-item.done .n{background:var(--sage-soft);border-color:#bfd3c4;color:var(--sage)}
.rail-foot{margin-top:auto;padding:12px;font-size:11px;color:var(--ink3);line-height:1.7;border-top:1px solid var(--line)}

main{padding:36px 40px 90px;max-width:1180px}
.step{display:none;animation:fade .28s ease}
.step.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------------- typography ---------------- */
.eyebrow{font-size:11.5px;letter-spacing:2.5px;color:var(--accent);text-transform:uppercase;margin-bottom:12px}
h1.page{font-family:var(--serif);font-size:32px;font-weight:700;letter-spacing:.5px;line-height:1.3}
p.lead{color:var(--ink2);font-size:14px;margin-top:10px;max-width:680px;line-height:1.85}
.sec-title{font-size:14px;font-weight:600;letter-spacing:.3px;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.sec-title::before{content:"";width:3px;height:14px;background:var(--accent);border-radius:2px}
.muted{color:var(--ink3)}

/* ---------------- cards ---------------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:0 1px 3px rgba(29,28,25,.04)}
.card + .card{margin-top:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}

/* ---------------- form ---------------- */
.field{margin-bottom:16px}
.field label{display:block;font-size:12px;color:var(--ink2);margin-bottom:7px;letter-spacing:.3px}
.field label span{color:var(--ink3);margin-left:6px;font-size:11px}
.inp,textarea.inp,select.inp{
  width:100%;border:1px solid var(--line2);background:#fff;border-radius:var(--r-sm);
  padding:11px 13px;font-size:14px;outline:none;transition:.15s;color:var(--ink);
}
textarea.inp{resize:vertical;line-height:1.75}
.inp:focus{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(201,106,69,.12);background:#fff}
.inp::placeholder{color:#b6b2a8}
.inp.big{font-size:19px;padding:15px 16px;font-family:var(--serif);letter-spacing:.5px}
.row{display:flex;gap:12px}
.row > *{flex:1}

/* platform chips */
.chip-wrap{display:flex;flex-wrap:wrap;gap:9px}
.chip{
  padding:8px 15px;border:1.5px solid var(--line2);border-radius:10px;font-size:13px;font-weight:500;
  color:var(--ink2);background:#fff;transition:.15s;display:inline-flex;align-items:center;gap:7px;
  letter-spacing:.2px;
}
.chip:hover{border-color:var(--ink3);box-shadow:0 2px 6px rgba(29,28,25,.07);transform:translateY(-1px)}
.chip:active{transform:none}
.chip.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);font-weight:600}
.chip .tick{font-size:11px;font-weight:700;opacity:0;transform:scale(.6);transition:.15s}
.chip.on .tick{opacity:1;transform:scale(1)}
.chip-head{font-size:11px;color:var(--ink3);letter-spacing:1px;margin:14px 0 8px}
.chip-head:first-child{margin-top:0}

/* buttons */
.btn{
  height:42px;padding:0 22px;border-radius:10px;background:var(--ink);color:#f8f5ee;
  font-size:13.5px;font-weight:500;letter-spacing:.4px;transition:.18s;display:inline-flex;
  align-items:center;gap:8px;justify-content:center;box-shadow:0 1px 3px rgba(29,28,25,.12);
}
.btn:hover{background:#000;transform:translateY(-1px)}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
.btn.wide{width:100%}
.btn.line{background:transparent;color:var(--ink);border:1px solid var(--line2)}
.btn.line:hover{background:#fff;border-color:var(--ink2)}
.btn.sm{height:32px;padding:0 12px;font-size:12.5px;border-radius:8px}
.btn.accent{background:var(--accent)}
.btn.accent:hover{background:#93381f}

/* ---------------- analysis ---------------- */
.meta-strip{display:flex;flex-wrap:wrap;gap:26px;padding:16px 0;border-bottom:1px solid var(--line);margin-bottom:20px}
.meta-item .k{font-size:11px;color:var(--ink3);letter-spacing:.5px}
.meta-item .v{font-size:15px;font-weight:600;margin-top:3px;font-variant-numeric:tabular-nums}
.formula{border-top:1px solid var(--line);padding:14px 0;display:grid;grid-template-columns:130px 1fr;gap:16px}
.formula:first-child{border-top:none;padding-top:0}
.formula .name{font-size:12.5px;color:var(--accent);font-weight:500}
.formula .ex{font-size:14.5px;line-height:1.6}
.formula .why{font-size:11.5px;color:var(--ink3);margin-top:4px}
.kw{display:inline-block;padding:3px 9px;background:var(--sage-soft);color:var(--sage);border-radius:5px;font-size:12px;margin:0 6px 6px 0}
.diag li{list-style:none;padding-left:18px;position:relative;font-size:13px;color:var(--ink2);margin-bottom:9px;line-height:1.65}
.diag li::before{content:"";position:absolute;left:2px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--accent2)}
.risk{display:flex;gap:10px;padding:10px 12px;background:#fdf4f0;border:1px solid #f0d9cf;border-radius:9px;margin-bottom:8px;font-size:12.5px}
.risk b{color:var(--accent);font-weight:600;min-width:52px}
.risk .fix{color:var(--ink3);font-size:11.5px;margin-top:2px}
.sk{border:1px solid var(--line);border-radius:10px;padding:14px}
.sk h4{font-size:13px;margin-bottom:6px;display:flex;justify-content:space-between;align-items:baseline}
.sk h4 em{font-style:normal;font-size:11px;color:var(--ink3)}
.sk p{font-size:12px;color:var(--ink2);line-height:1.7}
.sk .len{font-size:11px;color:var(--ink3);margin-top:8px;letter-spacing:.3px}

/* ---------------- article editor ---------------- */
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto;padding-bottom:0}
.tab{
  padding:10px 15px;font-size:13px;color:var(--ink3);border-bottom:2px solid transparent;
  white-space:nowrap;display:flex;align-items:center;gap:7px;transition:.15s;
}
.tab:hover{color:var(--ink)}
.tab.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:500}
.tab .st{width:5px;height:5px;border-radius:50%;background:var(--line2)}
.tab .st.has{background:var(--sage)}
.tab .st.busy{background:var(--amber)}
.tab .st.err{background:#c0503f}
.tab.failed{color:#b0453a}

/* ---------------- 生成状态栏 ---------------- */
.genbar{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:18px}
.gb-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.gb-count{display:flex;align-items:baseline;gap:4px;min-width:78px}
.gb-count b{font-size:30px;font-weight:600;letter-spacing:-1px;line-height:1;font-variant-numeric:tabular-nums}
.gb-count span{font-size:13px;color:var(--ink3)}
.gb-mid{flex:1;min-width:220px;display:flex;flex-direction:column;gap:7px}
.gb-track{height:6px;border-radius:99px;background:#e6e1d6;overflow:hidden}
.gb-track i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .35s ease}
.gb-sub{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--ink3)}
.gb-done{color:var(--sage)}
.gb-run{color:var(--amber)}
.gb-err{color:#b0453a}
.gb-wait{color:var(--ink3)}
.gb-status{color:var(--ink2)}
.gb-acts{display:flex;gap:8px;flex:0 0 auto}
.failbox{display:flex;flex-direction:column;gap:3px;background:#fbf1ef;border:1px solid #eddbd6;
  border-left:3px solid #c0503f;border-radius:8px;padding:11px 13px;margin-bottom:14px;font-size:12px}
.failbox b{color:#a03d33;font-weight:600}
.failbox span{color:#7a5a54;line-height:1.6;word-break:break-all}
.runbox{background:#fdf6e8;border:1px solid #f0e3c4;border-radius:8px;padding:11px 13px;
  margin-bottom:14px;font-size:12px;color:#8a6d2f}

.edit-head{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.title-input{
  flex:1;min-width:320px;border:none;border-bottom:1px dashed var(--line2);background:transparent;
  font-size:19px;font-family:var(--serif);padding:8px 2px;outline:none;letter-spacing:.3px;
}
.title-input:focus{border-bottom-color:var(--ink2)}
.body-input{
  width:100%;min-height:460px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;
  padding:18px 20px;font-size:14px;line-height:1.95;outline:none;resize:vertical;
}
.body-input:focus{border-color:var(--line2)}
.alt-titles{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 14px}
.alt{font-size:12px;padding:5px 10px;background:var(--paper);border:1px solid var(--line);border-radius:6px;color:var(--ink2);cursor:pointer}
.alt:hover{border-color:var(--ink3);color:var(--ink)}
.bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0}
.bar .spacer{flex:1}
.counter{font-size:12px;color:var(--ink3);font-variant-numeric:tabular-nums}
.counter.warn{color:var(--accent)}

/* ---------------- cover / preview ---------------- */
.cover-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;align-items:start}
.cover-stage{
  background:#efebe3;border:1px solid var(--line);border-radius:var(--r);padding:20px;
  display:grid;place-items:center;min-height:340px;
}
.cover-stage svg{max-width:100%;max-height:420px;border-radius:8px;display:block}
.slides-strip{display:flex;gap:12px;overflow-x:auto;padding:14px 16px}
.slides-strip .sl{flex:0 0 auto;cursor:pointer;border-radius:8px;position:relative;line-height:0;
  border:2px solid transparent;transition:border-color .15s, transform .15s}
.slides-strip .sl:hover{transform:translateY(-2px)}
.slides-strip .sl.cur{border-color:var(--accent)}
.slides-strip .sl svg{width:104px;height:auto;border-radius:6px;display:block}
.slides-strip .sl i{position:absolute;left:5px;top:5px;font-style:normal;font-size:9.5px;line-height:1;
  background:rgba(0,0,0,.55);color:#fff;padding:3px 5px;border-radius:4px;letter-spacing:.5px}
.hist-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 4px;
  border-bottom:1px solid var(--line);cursor:pointer;border-radius:6px;transition:background .12s}
.hist-row:hover{background:var(--card2,#f4f1ea)}
.hist-row .ht{display:flex;flex-direction:column;gap:3px;min-width:0}
.hist-row .ht b{font-weight:500;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist-row .ht .muted{font-size:11px}
.hist-row .mini{flex:0 0 auto}
.phone{
  width:330px;margin:0 auto;border:1px solid var(--line2);border-radius:24px;background:#fff;
  padding:16px 16px 24px;max-height:600px;overflow-y:auto;
}
.phone-top{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;color:var(--ink3);margin-bottom:14px}
.phone h3{font-size:17px;line-height:1.45;margin-bottom:12px;font-weight:600}
.phone p{font-size:12.5px;line-height:1.95;color:#333;margin-bottom:10px}
.phone h2{font-size:14px;margin:16px 0 8px;font-weight:600}
.phone .tags{font-size:11px;color:#3b6ea5;margin-top:14px;line-height:1.9}
.ph-xhs p{font-size:13px;line-height:2.05}

/* ---------------- publish ---------------- */
.table{width:100%;border-collapse:collapse;font-size:12.5px}
.table th{
  text-align:left;font-weight:500;color:var(--ink3);font-size:11px;letter-spacing:.5px;
  padding:9px 10px;border-bottom:1px solid var(--line2);
}
.table td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:hover td{background:#fbf9f4}
.badge{font-size:10.5px;padding:2px 7px;border-radius:4px;letter-spacing:.3px;white-space:nowrap}
.badge.auto{background:var(--sage-soft);color:var(--sage)}
.badge.half{background:var(--amber-soft);color:var(--amber)}
.badge.manual{background:#f2efea;color:var(--ink3)}
.badge.deep{background:var(--accent-soft);color:var(--accent)}
.ops{display:flex;gap:6px}
.mini{
  width:26px;height:26px;border:1px solid var(--line2);border-radius:6px;display:grid;place-items:center;
  font-size:11px;color:var(--ink2);background:#fff;transition:.15s;
}
.mini:hover{border-color:var(--ink);color:var(--ink)}
.mini.wide{width:auto;padding:0 9px;font-size:11.5px}
.export-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:16px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);margin-bottom:20px}
.log-item{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.log-item .pl{width:74px;color:var(--ink2);flex:0 0 auto}
.log-item .tt{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------------- modal ---------------- */
.modal{position:fixed;inset:0;background:rgba(29,28,25,.34);display:grid;place-items:center;z-index:60;padding:20px}
.modal.hidden{display:none}
.modal-box{background:var(--card);border-radius:16px;width:100%;max-width:520px;padding:26px;border:1px solid var(--line);
  max-height:92vh;overflow-y:auto}
.modal-box.wide{max-width:660px}
.modal-box h3{font-size:17px;font-family:var(--serif);margin-bottom:5px}
.modal-box .hint{font-size:12px;color:var(--ink3);line-height:1.75;margin-bottom:0}
.modal-box .hint b{color:var(--accent);font-weight:500}
.modal-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}
.x{width:28px;height:28px;border-radius:7px;color:var(--ink3);font-size:14px;display:grid;place-items:center;flex:0 0 auto}
.x:hover{background:var(--paper);color:var(--ink)}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}

.prov-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}
.prov{
  text-align:left;border:1px solid var(--line2);border-radius:10px;padding:10px 12px;background:#fff;
  transition:.15s;display:flex;flex-direction:column;gap:3px;
}
.prov:hover{border-color:var(--ink3)}
.prov b{font-size:13px;font-weight:500;line-height:1.35}
.prov span{font-size:10.5px;color:var(--ink3)}
.prov .tg{align-self:flex-start;margin-top:2px;font-size:10px;padding:1px 6px;border-radius:4px;letter-spacing:.3px}
.prov .tg.free{background:var(--sage-soft);color:var(--sage)}
.prov .tg.paid{background:#f2efea;color:var(--ink3)}
.prov .tg.local{background:#eef1f5;color:#41586d}
.prov.on{border-color:var(--ink);background:#fbf9f4;box-shadow:inset 0 0 0 1px var(--ink)}

.guide{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:16px}
.guide .free{font-size:12.5px;color:var(--ink2);line-height:1.7;margin-bottom:10px}
.guide .free b{color:var(--sage);font-weight:500}
.guide ol{margin:0 0 10px 16px}
.guide li{font-size:12px;color:var(--ink2);line-height:1.85}
.guide .warnbox{font-size:11.5px;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:7px 10px;margin-bottom:10px}
.guide a{color:var(--accent);text-decoration:none;border-bottom:1px solid #e5c2b4;font-size:12px}
.cfg{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cfg .field{margin-bottom:0}
.cfg .field:last-child{grid-column:1 / -1}
.test-line{font-size:12px;line-height:1.7;margin-top:12px;display:none}
.test-line.show{display:block}
.test-line.ok{color:var(--sage)}
.test-line.bad{color:var(--accent)}
.test-line .det{display:block;color:var(--ink3);font-size:11px;margin-top:3px;word-break:break-all}

.engine-banner{
  margin-top:20px;border:1px solid #e6d4ac;background:var(--amber-soft);border-radius:12px;
  padding:13px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.engine-banner.hide{display:none}
.engine-banner .txt{font-size:12.5px;color:#6b5310;line-height:1.7;flex:1;min-width:240px}
.engine-banner .txt b{font-weight:600}
.engine-banner button{flex:0 0 auto}

/* ---------------- toast ---------------- */
#toast{
  position:fixed;bottom:32px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;
  background:var(--ink);color:#f8f5ee;padding:11px 20px;border-radius:10px;font-size:13px;
  transition:.25s;z-index:80;max-width:70vw;text-align:center;
}
#toast.show{opacity:1;transform:translate(-50%,0)}

/* misc */
.empty{padding:60px 20px;text-align:center;color:var(--ink3);font-size:13px}
.spinner{width:13px;height:13px;border:1.5px solid rgba(255,255,255,.35);border-top-color:#fff;
  border-radius:50%;animation:spin .7s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.skeleton{background:linear-gradient(90deg,#f2efe8 25%,#f9f7f2 37%,#f2efe8 63%);
  background-size:400% 100%;animation:sk 1.4s infinite;border-radius:8px;height:14px;margin-bottom:10px}
@keyframes sk{0%{background-position:100% 50%}100%{background-position:0 50%}}
@media(max-width:1100px){
  .shell{grid-template-columns:1fr}
  .rail{position:static;height:auto;flex-direction:row;overflow-x:auto;border-right:none;
    border-bottom:1px solid var(--line);padding:10px 14px}
  .rail-foot{display:none}
  .step-item .sub{display:none}
  main{padding:24px 18px 80px}
  .grid2,.grid3,.cover-layout{grid-template-columns:1fr}
}
body.e2e *{animation:none!important;transition:none!important}
body.e2e .step{opacity:1}

/* ---- 出图风格 / 配图方式 ---- */
.style-card{padding:18px 22px}
.sw{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;
    border-radius:999px;padding:7px 14px 7px 8px;cursor:pointer;font-size:12.5px;color:var(--ink2);
    transition:border-color .15s,box-shadow .15s,transform .12s}
.sw:hover{border-color:var(--ink3);transform:translateY(-1px)}
.sw.on{border-color:var(--ink);box-shadow:0 0 0 2px rgba(20,20,20,.06);color:var(--ink);font-weight:500}
.sw i{width:18px;height:18px;border-radius:50%;display:block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.sw small{font-size:10.5px;color:var(--ink3);font-weight:400;margin-left:2px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:#faf8f4}
.seg button{border:0;background:transparent;color:var(--ink2);font-size:12.5px;padding:6px 14px;border-radius:999px;cursor:pointer}
.seg button.on{background:var(--ink);color:#f8f5ee}
.seg button:disabled{opacity:.45;cursor:not-allowed}
.imgtest{display:flex;gap:12px;align-items:center;margin-top:10px}
.imgtest img{width:132px;height:74px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:none}

/* ---- 图库 Key 引导 ---- */
.warn-text{color:#a8613a}
#imgModeHint a{color:var(--ink);border-bottom:1px solid var(--ink3);text-decoration:none;cursor:pointer}
#imgGuide{margin-top:14px}
#imgGuide .muted{color:var(--ink3)}

/* ---- AI 生图 / 本地图库 ---- */
.mini-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.mini-row{display:flex;align-items:baseline;gap:8px;border:1px solid var(--line);border-radius:8px;
  padding:8px 11px;background:#fff;font-size:11.5px;color:var(--ink3)}
.mini-row b{font-size:12.5px;font-weight:500;color:var(--ink)}
.mini-row span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.mini-row em{font-style:normal;font-size:10px;padding:1px 6px;border-radius:4px;
  background:var(--sage-soft);color:var(--sage);flex:0 0 auto}
.mini-row.on{border-color:var(--ink);background:#fbf9f4}
.mini-note{font-size:11.5px;color:var(--ink3);line-height:1.75;margin-top:2px}
.mini-note b{color:var(--ink);font-weight:500}
.mini-note a{color:var(--accent);text-decoration:none;border-bottom:1px solid #e5c2b4}
.lib-thumb{width:100%;border-radius:8px;margin-top:8px;border:1px solid var(--line)}
#aiThumb{display:none;width:132px;height:74px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}

/* ---- 搜索话题 ---- */
.hots-bar{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.hot-row{display:flex;align-items:center;gap:10px;padding:8px 6px;border-bottom:1px dashed var(--line)}
.hot-row:last-child{border-bottom:0}
.hot-rank{width:22px;height:22px;border-radius:6px;background:var(--paper);color:var(--ink3);
  font-size:11px;font-weight:600;display:grid;place-items:center;flex:0 0 auto}
.hot-row:nth-child(-n+3) .hot-rank{background:var(--accent-soft);color:var(--accent)}
.hot-main{flex:1;min-width:0}
.hot-title{font-size:12.8px;color:var(--ink);line-height:1.5;overflow:hidden;text-overflow:ellipsis;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
.hot-meta{font-size:10.5px;color:var(--ink3);margin-top:2px}
.hot-meta b{color:var(--sage);font-weight:500}
.hot-acts{display:flex;gap:6px;flex:0 0 auto}
.hot-acts button{border:1px solid var(--line2);background:#fff;border-radius:7px;font-size:11px;
  padding:4px 9px;color:var(--ink2);cursor:pointer}
.hot-acts button:hover{border-color:var(--ink);color:var(--ink)}

/* ================================================================
   v2 视觉层：更轻的边框、更清楚的层级、选题抽屉
   ================================================================ */
:root{
  --r:16px;
  --r-sm:10px;
  --line-soft:#efebe2;
  --shadow-1:0 1px 2px rgba(29,28,25,.04), 0 10px 30px -26px rgba(29,28,25,.5);
  --shadow-2:0 -10px 30px -24px rgba(29,28,25,.5);
}
body{
  background:
    radial-gradient(880px 420px at 10% -10%, #fdf9f2 0%, rgba(253,249,242,0) 62%),
    radial-gradient(720px 380px at 96% 2%, #f1ede4 0%, rgba(241,237,228,0) 58%),
    var(--paper);
  background-attachment:fixed;
}
.topbar{height:66px;border-bottom:1px solid var(--line-soft);background:rgba(248,246,241,.82)}
.mark{
  background:linear-gradient(155deg,#33302a 0%,#171613 70%);
  box-shadow:0 2px 6px -2px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.14);
}
.brand b{letter-spacing:.8px}
.brand i{letter-spacing:.2px}

/* 侧栏 */
.rail{padding:28px 14px 20px;gap:4px;background:linear-gradient(180deg,#f8f5ef 0%,rgba(248,245,239,0) 70%)}
.step-item{padding:10px 12px;border-radius:11px}
.step-item.active{border:1px solid var(--line);box-shadow:0 1px 2px rgba(29,28,25,.05)}
.step-item.active .n{background:var(--accent);border-color:var(--accent)}
.step-item.done .n{background:var(--sage-soft);border-color:#c9dbcf}
.rail-foot{border-top:1px solid var(--line-soft)}

main{padding:40px 44px 110px;max-width:1080px}
.hero{margin-bottom:26px;max-width:730px}
h1.page{font-size:33px;letter-spacing:.2px}
p.lead{margin-top:10px;max-width:690px}
.eyebrow{display:inline-flex;align-items:center;gap:9px;margin-bottom:12px}
.eyebrow::after{content:"";width:26px;height:1px;background:currentColor;opacity:.4}
.sec-title{margin-bottom:0}
.sec-desc{font-size:12px;color:var(--ink3);line-height:1.65;margin-top:5px}

/* 卡片 */
.card{
  border:1px solid var(--line);border-radius:var(--r);padding:24px;
  box-shadow:var(--shadow-1);background:var(--card);
}
.card + .card{margin-top:14px}
.card-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:18px;
  margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line-soft);
}
.card-head-txt{min-width:0}
.card-head .sec-title{margin-bottom:0}
.count-pill{
  flex:0 0 auto;font-size:11.5px;color:var(--ink2);background:var(--paper);
  border:1px solid var(--line);border-radius:999px;padding:4px 11px;
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.main-card{padding:26px 28px 22px}

/* 表单 */
.field label{letter-spacing:.2px}
.label-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:8px;flex-wrap:wrap}
.label-row label{margin-bottom:0}
.inp{border-radius:var(--r-sm);border-color:#ded9cd;background:#fff;transition:border-color .15s, box-shadow .15s}
.inp:focus{border-color:var(--ink3);box-shadow:0 0 0 3px rgba(29,28,25,.055)}
.topic-input{
  font-family:var(--serif);font-size:20px;letter-spacing:.4px;height:60px;padding:0 18px;
  background:#fff;border-color:#d9d3c5;
}
.topic-input::placeholder{font-size:17px}
.topic-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(168,69,43,.09)}
.topic-input.flash{animation:topicFlash 1.1s ease}
@keyframes topicFlash{
  0%{background:#fff6f0;border-color:var(--accent)}
  60%{background:#fffaf6;border-color:var(--accent2)}
  100%{background:#fff;border-color:#d9d3c5}
}
.lnk-search{
  display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink2);
  border:1px dashed var(--line2);border-radius:999px;padding:5px 11px;background:#fffdf9;
  transition:.16s;
}
.lnk-search i{font-style:normal;font-size:11px;color:var(--accent)}
.lnk-search b{font-weight:500;color:var(--accent)}
.lnk-search:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}
.lnk-mini{
  font-size:11.5px;color:var(--ink2);border-bottom:1px solid var(--line2);padding:0 0 1px;
  background:none;transition:.15s;white-space:nowrap;
}
.lnk-mini:hover{color:var(--accent);border-color:var(--accent)}
.lnk-mini:disabled{opacity:.45;cursor:default}

/* 参考样本回执 */
.ref-note{
  display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.6;
  padding:9px 12px;border-radius:9px;margin:-4px 0 16px;flex-wrap:wrap;
}
.ref-note.ok{background:var(--sage-soft);border:1px solid #d2e1d6;color:#3d5946}
.ref-note.hint{background:#fbf7ee;border:1px solid #eee2c8;color:#7d5f18}
.ref-note .rn-ico{font-size:11px;opacity:.8}
.ref-note b{font-variant-numeric:tabular-nums}
.ref-note i{font-style:normal;color:var(--ink3);font-size:11px}
.ref-note .lnk-mini{margin-left:auto;color:inherit;border-color:currentColor;opacity:.75}
.ref-note .lnk-mini:hover{opacity:1;color:inherit}

/* 更多设置 */
.more-toggle{
  display:flex;align-items:center;gap:10px;width:100%;margin-top:2px;padding:13px 0 0;
  border-top:1px dashed var(--line);font-size:12.5px;color:var(--ink2);text-align:left;
}
.more-toggle em{font-style:normal;flex:1;color:var(--ink3);font-size:11.5px}
.more-toggle i{font-style:normal;color:var(--ink3);transition:transform .2s}
.more-toggle:hover{color:var(--ink)}
.more-toggle.on i{transform:rotate(180deg)}
.more-fields{margin-top:16px;padding-top:16px;border-top:1px dashed var(--line)}

/* 状态胶囊 */
.fill-status{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.fs-chip{
  font-size:11px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);
  background:#fbf9f4;color:var(--ink3);white-space:nowrap;
}
.fs-chip.on{background:var(--sage-soft);border-color:#cfe0d4;color:var(--sage)}

/* 平台预设 */
.preset-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px dashed var(--line)}
.preset-row .ghost{height:30px;font-size:12px}

/* 底部主行动条 */
.cta-bar{
  position:sticky;bottom:14px;z-index:16;display:flex;align-items:center;gap:16px;
  margin-top:18px;padding:13px 16px 13px 20px;border:1px solid var(--line);
  border-radius:14px;background:rgba(255,253,249,.93);backdrop-filter:blur(12px);
  box-shadow:var(--shadow-2);flex-wrap:wrap;
}
.cta-info{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink3);flex-wrap:wrap}
.cta-info b{font-size:17px;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.cta-bar .spacer{flex:1}
.dotsep{width:3px;height:3px;border-radius:50%;background:var(--line2);display:inline-block}
.btn.lg{height:46px;padding:0 26px;font-size:14px}
.btn{box-shadow:0 1px 2px rgba(0,0,0,.1)}
.btn.line{box-shadow:none}

/* 解析页信息条 */
.meta-strip{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;
  border:none;padding:0;margin-bottom:18px;
}
.meta-item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.meta-item .k{font-size:10.5px;letter-spacing:.6px}
.meta-item .v{margin-top:2px}

/* ================================================================
   找选题抽屉
   ================================================================ */
body.drawer-open{overflow:hidden}
.drawer-mask{
  position:fixed;inset:0;z-index:58;background:rgba(29,28,25,.3);
  opacity:0;transition:opacity .24s;backdrop-filter:blur(2px);
}
.drawer-mask.on{opacity:1}
.drawer{
  position:fixed;top:0;right:0;z-index:59;height:100vh;width:min(566px,95vw);
  display:flex;flex-direction:column;background:var(--card);
  border-left:1px solid var(--line);box-shadow:-30px 0 70px -34px rgba(0,0,0,.45);
  transform:translateX(103%);transition:transform .3s cubic-bezier(.22,.72,.3,1);
}
.drawer.open{transform:none}
.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 24px 16px}
.drawer-head h2{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:.5px}
.drawer-head p{font-size:12px;color:var(--ink3);margin-top:5px;line-height:1.6}
.drawer-src{padding:0 24px}
.seg-src{
  display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;
  background:var(--paper);border:1px solid var(--line);border-radius:12px;
}
.seg-src button{
  padding:9px 2px;border-radius:9px;font-size:12.5px;color:var(--ink2);transition:.15s;white-space:nowrap;
}
.seg-src button:hover{color:var(--ink);background:rgba(255,255,255,.6)}
.seg-src button.on{background:#fff;color:var(--ink);font-weight:500;box-shadow:0 1px 3px rgba(29,28,25,.12)}
.drawer-search{display:flex;gap:8px;padding:12px 24px 10px}
.drawer-search .inp{height:40px;padding:0 13px;font-size:13px}
.drawer-search .btn{flex:0 0 auto;height:40px;padding:0 18px}
.filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:2px 24px 6px}
.filters select.inp{width:auto;flex:0 0 auto}
.mini-sel{
  width:auto;flex:0 0 auto;height:30px;padding:0 24px 0 10px;font-size:11.5px;border-radius:8px;
  appearance:none;-webkit-appearance:none;
  background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238e8a81' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 9px center;
  border-color:var(--line);
}
.filters-note{font-size:11px;color:var(--ink3)}
.drawer-status{padding:2px 24px 6px;font-size:11.5px;color:var(--ink3);min-height:20px;line-height:1.6}
.drawer-status.bad{color:var(--accent)}
.hot-list{flex:1;overflow-y:auto;padding:0 14px 16px;overscroll-behavior:contain}
.hot-row{
  display:flex;align-items:flex-start;gap:12px;padding:14px 10px;border-radius:12px;
  cursor:pointer;transition:background .14s, border-color .14s;border:1px solid transparent;
  border-bottom:1px solid var(--line-soft);
}
.hot-row:last-child{border-bottom-color:transparent}
.hot-row:hover{background:#fbf8f1;border-color:var(--line)}
.hot-rank{
  width:24px;height:24px;border-radius:8px;background:var(--paper);color:var(--ink3);
  font-size:10.5px;font-weight:600;display:grid;place-items:center;flex:0 0 auto;
  margin-top:1px;font-variant-numeric:tabular-nums;letter-spacing:.2px;
}
.hot-row:nth-child(-n+3) .hot-rank{background:var(--accent-soft);color:var(--accent)}
.hot-title{
  font-size:13.5px;line-height:1.55;color:var(--ink);font-weight:500;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.hot-snippet{
  font-size:11.5px;line-height:1.65;color:var(--ink3);margin-top:4px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.hot-meta{display:flex;gap:9px;flex-wrap:wrap;font-size:10.5px;color:var(--ink3);margin-top:7px}
.hot-meta .hs-heat{color:var(--accent);font-weight:500}
.hot-meta .hs-src{color:var(--ink2)}
.hot-pick{
  flex:0 0 auto;align-self:center;height:30px;padding:0 14px;border-radius:999px;
  border:1px solid var(--line2);background:#fff;font-size:12px;color:var(--ink2);transition:.15s;
}
.hot-row:hover .hot-pick{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.hot-pick:active{transform:scale(.96)}
.hot-empty{padding:64px 24px;text-align:center;color:var(--ink3);font-size:12.5px;line-height:1.8}
.sk-row{pointer-events:none;border-bottom-color:transparent}
.sk-row .hot-rank{background:var(--paper)}
.sk-row .skeleton{margin-bottom:8px;height:11px}
.drawer-foot{
  display:flex;align-items:center;gap:12px;padding:12px 24px;border-top:1px solid var(--line);
  background:#fbf9f4;font-size:11.5px;color:var(--ink3);line-height:1.6;
}
.drawer-foot span{flex:1}

@media(max-width:760px){
  .drawer{width:100vw;border-left:none}
  .seg-src{grid-template-columns:repeat(2,1fr)}
  .cta-bar .btn.lg{width:100%}
  .card-head{flex-direction:column;gap:10px}
  .fill-status{justify-content:flex-start}
  h1.page{font-size:27px}
  .topic-input{font-size:17px;height:54px}
  .topic-input::placeholder{font-size:15px}
  .row{flex-direction:column;gap:14px}
  main{padding:26px 18px 90px}
}

/* ================================================================
   v3：顶部历史项目面板 + 抽屉筛选栏
   ================================================================ */
.top-right{position:relative;display:flex;align-items:center;gap:10px}

.hist-wrap{position:relative}
.hist-btn{
  display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;
  border:1px solid #e3d4cd;border-radius:9px;background:linear-gradient(180deg,#fff9f5,#fdf1ea);
  color:var(--accent);font-size:12.5px;font-weight:500;transition:.16s;white-space:nowrap;
}
.hist-btn:hover{border-color:var(--accent);background:#fff4ec;box-shadow:0 2px 10px -6px rgba(168,69,43,.6)}
.hist-btn.on{border-color:var(--accent);background:#fdeee6}
.hist-ico{font-size:12px;opacity:.85}
.hist-badge{
  min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;
  font-size:10.5px;font-weight:600;line-height:18px;text-align:center;font-variant-numeric:tabular-nums;
}

.hist-pop{
  position:absolute;top:calc(100% + 10px);right:0;z-index:46;width:404px;
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 24px 60px -30px rgba(29,28,25,.6), 0 2px 6px rgba(29,28,25,.06);
  overflow:hidden;animation:popIn .16s ease;
}
@keyframes popIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.hist-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 14px 10px 16px;border-bottom:1px solid var(--line-soft);
}
.hist-head b{font-family:var(--serif);font-size:15px;letter-spacing:.4px}
.hist-head span{font-size:11.5px;color:var(--ink3);margin-left:7px}
.hist-head .x.sm{width:24px;height:24px;font-size:12px}

.hist-tools{display:flex;align-items:center;gap:9px;padding:9px 16px;background:#fbf9f4;border-bottom:1px solid var(--line-soft)}
.hist-all{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink2);cursor:pointer;user-select:none}
.hist-all input{width:13px;height:13px;accent-color:var(--accent);cursor:pointer}
.hist-selinfo{font-size:11px;color:var(--ink3)}
.hist-selinfo b{color:var(--accent);font-variant-numeric:tabular-nums}
.hist-tools .spacer,.hist-foot .spacer{flex:1}
.lnk-mini.danger{color:var(--ink2);border-color:var(--line2)}
.lnk-mini.danger:hover{color:#a8452b;border-color:#e0b6a8}
.lnk-mini:disabled{color:var(--ink3);border-color:var(--line);opacity:.55;cursor:default}
.lnk-mini:disabled:hover{color:var(--ink3);border-color:var(--line)}

.hist-list{max-height:min(52vh,430px);overflow-y:auto;padding:6px;overscroll-behavior:contain}
.hist-item{
  display:flex;align-items:flex-start;gap:10px;padding:10px 10px;border-radius:9px;
  cursor:pointer;transition:background .13s;border:1px solid transparent;
}
.hist-item:hover{background:#fbf8f1}
.hist-item .cb{width:14px;height:14px;margin-top:2px;accent-color:var(--accent);cursor:pointer;flex:0 0 auto}
.hist-item-main{min-width:0;flex:1}
.hist-item-t{font-size:13px;line-height:1.5;color:var(--ink);font-weight:500;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.hist-item-m{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:10.5px;color:var(--ink3);flex-wrap:wrap}
.hist-item-m .hs-step{background:var(--paper);border:1px solid var(--line-soft);border-radius:999px;padding:1px 7px;color:var(--ink2)}
.hist-item-m .hs-done{color:var(--sage)}
.hist-item-go{flex:0 0 auto;font-size:11.5px;color:var(--ink3);align-self:center;opacity:0;transition:.13s}
.hist-item:hover .hist-item-go{opacity:1;color:var(--accent)}
.hist-empty{padding:44px 20px;text-align:center;color:var(--ink3);font-size:12px;line-height:1.8}

.hist-foot{
  display:flex;align-items:center;gap:6px;padding:9px 14px;border-top:1px solid var(--line-soft);
  background:#fbf9f4;
}
.pg{
  width:26px;height:26px;border:1px solid var(--line);border-radius:7px;background:#fff;
  color:var(--ink2);font-size:14px;line-height:1;display:grid;place-items:center;transition:.14s;
}
.pg:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.pg:disabled{opacity:.4;cursor:default}
.hist-pg{font-size:11.5px;color:var(--ink2);padding:0 4px;font-variant-numeric:tabular-nums}

/* 抽屉筛选：两列网格，标签在输入框上方 */
.flt-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;
  padding:4px 24px 10px;
}
.flt-grid.one{grid-template-columns:1fr}
.flt{display:flex;flex-direction:column;gap:5px;min-width:0}
.flt > span{font-size:10.5px;letter-spacing:.6px;color:var(--ink3)}
.flt select,.flt .inp{
  width:100%;min-width:0;height:34px;padding:0 26px 0 10px;font-size:12.5px;border-radius:8px;
  appearance:none;-webkit-appearance:none;text-overflow:ellipsis;
  background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238e8a81' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 9px center;
}
.flt select:focus{border-color:var(--ink3);box-shadow:0 0 0 3px rgba(29,28,25,.055)}

@media(max-width:520px){
  .hist-pop{width:calc(100vw - 24px);right:-6px}
  .flt-grid{grid-template-columns:1fr}
}

/* ================================================================
   v4：一键全流程按钮 + 渠道表去发布
   ================================================================ */
.oneflow{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;
  margin:14px 0 4px;padding:12px 14px;border:1px solid #e3d4cd;border-radius:12px;
  background:linear-gradient(150deg,#fff7f1,#fdeee4);cursor:pointer;transition:.16s;text-align:left;
}
.oneflow b{font-size:13px;font-weight:600;color:var(--accent);letter-spacing:.3px}
.oneflow span{font-size:10.5px;color:var(--ink3);letter-spacing:.2px}
.oneflow:hover{border-color:var(--accent);box-shadow:0 4px 14px -8px rgba(168,69,43,.55);transform:translateY(-1px)}
.mini.accent{background:var(--accent-soft);border-color:#e0b6a8;color:var(--accent)}
.mini.accent:hover:not(:disabled){background:#fdeee6;border-color:var(--accent)}

/* ================================================================ v5：版本切换 + 任务队列 + 分组 */
.ver-row{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink3);margin-bottom:12px;flex-wrap:wrap}
.ver-chip{
  min-width:26px;height:24px;border:1px solid var(--line);border-radius:7px;background:#fff;
  color:var(--ink2);font-size:11.5px;font-variant-numeric:tabular-nums;transition:.14s;
}
.ver-chip:hover{border-color:var(--accent);color:var(--accent)}
.ver-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.ver-chip.cur{cursor:default}

/* 平台分组头 */
.chip-head{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink3);margin:14px 0 8px;letter-spacing:.3px}
.chip-head::after{content:"";flex:1;height:1px;background:var(--line-soft)}
.chip-wrap .chip-head{margin-top:0}

/* 任务队列 */
.taskpop{
  position:absolute;top:calc(100% + 10px);left:0;right:auto;z-index:47;width:min(340px,calc(100vw - 32px));
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 24px 60px -30px rgba(29,28,25,.6);overflow:hidden;animation:popIn .16s ease;
}
.task-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 10px 16px;border-bottom:1px solid var(--line-soft)}
.task-head b{font-family:var(--serif);font-size:14px}
.task-head span{font-size:11px;color:var(--ink3);margin-left:6px}
.task-list{max-height:300px;overflow-y:auto;padding:6px}
.task-item{display:flex;align-items:flex-start;gap:9px;padding:9px 9px;border-radius:9px;border:1px solid transparent;transition:.13s}
.task-item:hover{background:#fbf8f1}
.task-item.running{background:#fff6ef;border-color:#f0d9c8}
.task-item.done{opacity:.62}
.task-item .cb{width:13px;height:13px;margin-top:3px;accent-color:var(--accent);cursor:pointer;flex:0 0 auto}
.task-main{min-width:0;flex:1}
.task-t{font-size:12.5px;line-height:1.45;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-m{display:flex;gap:7px;margin-top:3px;font-size:10.5px;color:var(--ink3);flex-wrap:wrap;align-items:center}
.task-m .st{border-radius:999px;padding:1px 7px;background:var(--paper);border:1px solid var(--line-soft)}
.task-m .st.run{color:#a8672b;background:#fdf3ea;border-color:#efd9c4}
.task-m .st.ok{color:var(--sage);background:var(--sage-soft);border-color:#cfe0d4}
.task-m .st.bad{color:var(--accent);background:var(--accent-soft);border-color:#e0b6a8}
.task-empty{padding:34px 16px;text-align:center;color:var(--ink3);font-size:11.5px;line-height:1.8}
.task-foot{display:flex;align-items:center;gap:10px;padding:9px 14px;border-top:1px solid var(--line-soft);background:#fbf9f4;font-size:11.5px;color:var(--ink3)}

/* 分发发布：投递方式 */
.pub-mode{display:inline-flex;gap:0;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.pub-mode button{font-size:10.5px;padding:3px 9px;background:#fff;color:var(--ink3);white-space:nowrap}
.pub-mode button.on{background:var(--accent-soft);color:var(--accent);font-weight:500}

/* oneflow 改为容器：按钮 + 是否发布勾选 */
.oneflow{flex-direction:column;align-items:stretch;gap:6px;margin-bottom:10px;cursor:default;padding:0;border:none;background:none}
.oneflow-btn{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;
  padding:12px 14px;border:1px solid #e3d4cd;border-radius:12px;
  background:linear-gradient(150deg,#fff7f1,#fdeee4);cursor:pointer;transition:.16s;text-align:left;
}
.oneflow-btn b{font-size:13px;font-weight:600;color:var(--accent);letter-spacing:.3px}
.oneflow-btn span{font-size:10.5px;color:var(--ink3);letter-spacing:.2px}
.oneflow-btn:hover{border-color:var(--accent);box-shadow:0 4px 14px -8px rgba(168,69,43,.55);transform:translateY(-1px)}
.oneflow-btn:disabled{opacity:.55;cursor:default;transform:none}
.oneflow-opt{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink2);padding:0 2px;cursor:pointer;user-select:none}
.oneflow-opt input{width:13px;height:13px;accent-color:var(--accent);cursor:pointer}
.task-btn{width:100%;justify-content:center}
.task-btn .hist-badge{background:var(--ink2)}

/* ===== v6：同题多篇 + 平台登录状态 ===== */
/* 侧栏一键全流程区块 */
.oneflow-title{font-size:13px;font-weight:600;color:var(--accent);letter-spacing:.3px;padding:0 2px}
.oneflow-desc{font-size:10.5px;color:var(--ink3);padding:0 2px;margin-top:-4px}
/* 侧栏 oneflow：勾选 + 重复次数一行两列 */
.oneflow-opts{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 2px;flex-wrap:wrap}
.num-in{
  width:44px;padding:3px 5px;border:1px solid var(--line);border-radius:7px;
  font-size:12px;font-family:inherit;color:var(--ink);background:#fff;text-align:center;
}
.num-in:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
/* 第 3 步编辑器：篇数输入 */
.gen-count{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink2);white-space:nowrap;user-select:none}
/* 渠道表：登录状态徽标 */
.login-st{
  display:inline-block;margin-left:7px;padding:1.5px 8px;border-radius:999px;
  font-size:10px;letter-spacing:.4px;vertical-align:1px;
  background:#f1efec;color:var(--ink3);border:1px solid var(--line);
}
.login-st.ok{background:#eaf5ea;color:#2c7a39;border-color:#cfe8d2}

/* ===== v7：手动创作 / 一键全流程 双视图 ===== */
.view-tabs{display:flex;gap:6px;margin-bottom:12px}
.view-tabs .vt{
  flex:1;padding:8px 6px;border:1px solid var(--line);border-radius:10px;background:#fff;
  font-size:11.5px;color:var(--ink2);cursor:pointer;transition:.15s;white-space:nowrap;
}
.view-tabs .vt:hover{border-color:var(--ink3)}
.view-tabs .vt.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}
/* 自动化工作台 */
.auto-opts{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin-top:18px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#faf8f6;
}
.auto-opts .oneflow-opt{font-size:12.5px}
.auto-queue{max-height:460px;overflow:auto}
.auto-queue .task-item{padding:12px 16px}

/* ===== v8：平台登录弹窗（扫码 / 账号密码，登录自动保存）===== */
.login-mask{
  position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:24px;
  background:rgba(28,26,24,.42);backdrop-filter:blur(3px);
}
.login-mask.hidden{display:none}
.login-dlg{
  width:432px;max-width:100%;background:#fff;border-radius:16px;padding:20px 22px 14px;
  box-shadow:0 24px 60px rgba(0,0,0,.2);animation:lgIn .18s ease;
}
@keyframes lgIn{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
.login-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.login-head-t b{display:block;font-size:15px;color:var(--ink)}
.login-head-t span{display:block;margin-top:3px;font-size:11.5px;color:var(--ink3)}
.login-x{border:0;background:transparent;font-size:20px;line-height:1;color:var(--ink3);cursor:pointer;padding:1px 7px;border-radius:7px}
.login-x:hover{background:#f3f1ee;color:var(--ink)}
.login-tabs{display:flex;gap:6px;margin:15px 0 14px;border-bottom:1px solid var(--line)}
.login-tabs button{
  flex:1;border:0;background:transparent;padding:8px 4px 9px;margin-bottom:-1px;
  font-size:12.5px;font-family:inherit;color:var(--ink2);cursor:pointer;border-bottom:2px solid transparent;
}
.login-tabs button.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.login-body.hidden{display:none}
.login-tip{font-size:12px;color:var(--ink2);line-height:1.7;margin:0 0 12px}
.login-tip.sm{font-size:11px;color:var(--ink3);margin:10px 0 0}
.login-tip b{color:var(--ink);font-weight:600}
.btn.block{width:100%;justify-content:center;text-align:center}
.lg-field{display:block;margin-bottom:10px}
.lg-field span{display:block;font-size:11.5px;color:var(--ink3);margin-bottom:5px}
.lg-field .inp{width:100%}
.login-state{
  display:flex;align-items:center;gap:8px;margin-top:14px;padding:9px 12px;border-radius:10px;
  background:#f7f5f2;font-size:12px;color:var(--ink2);line-height:1.55;
}
.lg-dot{width:7px;height:7px;border-radius:50%;background:#c9c4bd;flex:none}
.login-state.wait .lg-dot{background:#e0a03a;animation:lgPulse 1.1s infinite}
.login-state.ok{background:#eef7ee;color:#2c7a39}
.login-state.ok .lg-dot{background:#3ba34a}
.login-state.warn{background:#fdf3e8;color:#96601f}
.login-state.warn .lg-dot{background:#e08a2a}
@keyframes lgPulse{0%,100%{opacity:1}50%{opacity:.3}}
.login-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.login-st.wait{background:#fdf3e8;color:#96601f;border-color:#f0dcc2}

/* ===== v9：任务队列右侧抽屉 + 自动化页完整平台选择 ===== */
.queue-fab{
  position:fixed;right:26px;bottom:26px;z-index:70;
  display:flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;
  border:1px solid rgba(255,255,255,.14);background:var(--ink);color:#fff;
  font-size:13px;font-family:inherit;cursor:pointer;
  box-shadow:0 10px 28px rgba(0,0,0,.22);transition:.18s;
}
.queue-fab:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.3)}
.queue-fab .hist-badge{background:#e0562e;color:#fff;border:0}
.queue-drawer{
  position:fixed;top:0;right:0;bottom:0;width:384px;max-width:94vw;z-index:80;
  background:#fff;border-left:1px solid var(--line);box-shadow:-18px 0 44px rgba(0,0,0,.14);
  display:flex;flex-direction:column;padding:18px;animation:qdIn .2s ease;
}
.queue-drawer[hidden]{display:none}
@keyframes qdIn{from{transform:translateX(36px);opacity:0}to{transform:none;opacity:1}}
.queue-drawer .task-head{display:flex;align-items:center;justify-content:space-between}
.queue-drawer .task-head b{font-size:14px}
.queue-drawer .task-list{flex:1;overflow:auto;margin-top:12px;padding-right:2px}
.queue-drawer .task-foot{border-top:1px solid var(--line);padding-top:10px;margin-top:10px;display:flex;align-items:center;gap:8px}
.queue-drawer .task-item{padding:11px 4px;border-bottom:1px solid var(--line)}
.num-sel{
  padding:5px 8px;border:1px solid var(--line);border-radius:8px;font-size:12px;
  font-family:inherit;color:var(--ink);background:#fff;cursor:pointer;
}
.num-sel:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
#autoPicker .chip-wrap{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 10px}
.queue-drawer .task-list{max-height:none;flex:1;overflow-y:auto}

/* ===== v10：分发发布 / 模型设置 移到侧栏底部 ===== */
.rail-bottom{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding-top:10px;border-top:1px solid var(--line)}
.rail-bottom .n{background:#f1efe9;border-color:var(--line)}
.rail-bottom .step-item.active .n{background:var(--accent);border-color:var(--accent);color:#fff}
.rail-foot{margin-top:8px}
@media(max-width:1100px){
  .rail-bottom{flex-direction:row;gap:6px;padding-top:0;border-top:0}
}

/* ===== v11：自动发布按钮 + 账号昵称 ===== */
.lg-nick{
  display:flex;align-items:center;gap:8px;margin-top:10px;padding:9px 12px;
  border:1px dashed var(--line);border-radius:10px;background:#fbfaf8;
}
.lg-nick.hidden{display:none}
.lg-nick span{font-size:11.5px;color:var(--ink3);white-space:nowrap}
.lg-nick .inp{flex:1;padding:5px 9px;font-size:12px}

/* ===== v12：登录按钮不换行 ===== */
.pub-ops [data-login], #channelTable [data-login]{white-space:nowrap}

/* ===== v12b：视图切换更醒目 ===== */
.view-tabs{gap:6px;margin-bottom:14px;padding:4px;background:#efe9e0;border-radius:13px;min-width:0}
.view-tabs .vt{
  flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  padding:8px 4px;border:2px solid transparent;border-radius:10px;background:transparent;
  font-size:12.5px;font-weight:600;line-height:1.25;color:var(--ink2);cursor:pointer;transition:.18s;
  text-align:center;overflow:hidden;
}
.view-tabs .vt .vt-ico{font-size:14px;line-height:1}
.view-tabs .vt:hover{background:#fff}
.view-tabs .vt.on{
  background:linear-gradient(135deg,var(--accent),var(--accent2));border-color:var(--accent);
  color:#fff;box-shadow:0 3px 12px rgba(168,69,43,.38);
}

/* ===== v13：发布记录清空按钮 ===== */
#btnClearLogs{flex:0 0 auto;white-space:nowrap;color:var(--ink2)}
#btnClearLogs:hover{color:#a8452b;border-color:#e0b6a8;background:#fdf4f0}
#btnClearLogs:disabled{opacity:.55;cursor:default}

/* ===== v14：已登录昵称 = 纯文本，不要按钮框 ===== */
.nick-txt{
  background:none;border:none;padding:0;margin:0;
  font:inherit;font-size:12.5px;line-height:1.2;color:var(--ink);
  cursor:pointer;border-bottom:1px dashed var(--line2);
  white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis;
}
.nick-txt:hover{color:var(--accent);border-bottom-color:var(--accent)}

/* ===== v15：草稿箱检测结果 ===== */
.pubcheck-out{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fdfbf7}
.pubcheck-out.hidden{display:none}
.pc-item{font-size:12.5px;line-height:1.9;color:var(--ink2)}
.pc-item.ok{color:#2f7d4f}
.pc-item.bad{color:#a8452b}

/* ===== v17：发布记录状态徽标 + 静默发布提示 ===== */
.log-item .lgst{
  flex:0 0 auto;font-size:11px;padding:2px 8px;border-radius:999px;
  background:var(--paper);border:1px solid var(--line-soft);color:var(--ink2);white-space:nowrap;
}
.log-item .lgst.ok{color:var(--sage);background:var(--sage-soft);border-color:#cfe0d4}
.log-item .lgst.warn{color:#a8672b;background:#fdf3ea;border-color:#efd9c4}
.log-item .lgst.bad{color:var(--accent);background:var(--accent-soft);border-color:#e0b6a8}
.log-item .lgopen{font-size:11px;color:var(--accent);text-decoration:none;flex:0 0 auto}
.log-item .lgopen:hover{text-decoration:underline}
.task-m .st.warn{color:#a8672b;background:#fdf3ea;border-color:#efd9c4}
.task-item.partial .task-t::after{content:" ⚠";color:#a8672b;font-size:11px}

/* ===== v18：发布结果弹窗（失败原因一目了然） ===== */
#pubResultMask{
  position:fixed;inset:0;z-index:400;background:rgba(40,30,20,.42);
  display:flex;align-items:center;justify-content:center;
}
.pub-result{
  width:min(620px,92vw);max-height:80vh;display:flex;flex-direction:column;
  background:#fffdf8;border-radius:16px;box-shadow:0 18px 60px rgba(60,40,20,.28);
  overflow:hidden;
}
.pub-result .pr-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;border-bottom:1px solid var(--line);font-size:15px;
}
.pub-result .pr-head b{color:var(--ink)}
.pub-result .pr-x{
  border:none;background:none;font-size:14px;color:var(--ink2);cursor:pointer;padding:4px 8px;border-radius:8px;
}
.pub-result .pr-x:hover{background:var(--paper)}
.pub-result .pr-list{overflow-y:auto;padding:6px 18px}
.pub-result .pr-row{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 0;border-bottom:1px dashed var(--line-soft);
}
.pub-result .pr-row:last-child{border-bottom:none}
.pub-result .pr-badge{
  flex:0 0 auto;font-size:11px;padding:2px 9px;border-radius:999px;margin-top:1px;
  border:1px solid var(--line-soft);background:var(--paper);color:var(--ink2);white-space:nowrap;
}
.pub-result .pr-ok{color:var(--sage);background:var(--sage-soft);border-color:#cfe0d4}
.pub-result .pr-unv{color:#8a6d1f;background:#faf3dc;border-color:#ead9a6}
.pub-result .pr-warn{color:#a8672b;background:#fdf3ea;border-color:#efd9c4}
.pub-result .pr-bad{color:var(--accent);background:var(--accent-soft);border-color:#e0b6a8}
.pub-result .pr-main{flex:1;min-width:0}
.pub-result .pr-name{font-size:13.5px;color:var(--ink);line-height:1.5}
.pub-result .pr-why{
  font-size:12px;color:var(--ink2);line-height:1.55;margin-top:2px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  word-break:break-all;
}
.pub-result .pr-act{flex:0 0 auto;font-size:11.5px;color:#8a6d1f;max-width:150px;text-align:right;line-height:1.5}
.pub-result .pr-foot{
  display:flex;align-items:center;gap:12px;
  padding:12px 18px;border-top:1px solid var(--line);background:#fbf7ee;
}
.pub-result .pr-tip{flex:1;font-size:11.5px;color:var(--ink2);line-height:1.5}
.pub-result .pr-ok{padding:8px 22px}

/* ================= v19：桌面软件版整体美化 ================= */

/* —— 全局：应用质感底色 + 细滚动条 —— */
html{scrollbar-gutter:stable}
body{background:linear-gradient(180deg,#f8f5ef 0%,#f4f1ea 100%)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#d8d3c6;border-radius:8px;border:2.5px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background-color:#c4beae}
.rail,nav{-webkit-user-select:none;user-select:none}

/* —— 顶栏：毛玻璃 + 底部柔光 —— */
.topbar{
  background:rgba(248,245,239,.85);
  box-shadow:0 1px 0 var(--line),0 6px 18px -14px rgba(29,28,25,.28);
}
.mark{
  background:linear-gradient(135deg,#2a2925,#45423a);
  box-shadow:0 2px 8px rgba(29,28,25,.22);
}
.brand b{letter-spacing:1px}

/* —— 侧栏：独立底色 + 步骤激活态 —— */
.rail{background:linear-gradient(180deg,#f1ede3,#efe9dd);border-right:1px solid var(--line)}
.step-item{border:1px solid transparent;margin-bottom:3px}
.step-item:hover{background:rgba(255,253,249,.75);border-color:var(--line)}
.step-item .n{
  background:rgba(255,255,255,.85);font-weight:600;
  box-shadow:inset 0 0 0 1px var(--line2);
}
.step-item.active{
  background:linear-gradient(135deg,#fffdf9,#fbf6ec);
  border-color:var(--line2);
  box-shadow:0 2px 10px -2px rgba(120,90,60,.14),0 1px 3px rgba(29,28,25,.05);
}
.step-item.active{position:relative}
.step-item.active::before{
  content:"";position:absolute;left:-14px;top:12px;bottom:12px;width:3px;
  border-radius:0 3px 3px 0;background:var(--accent);
}
.step-item.active .lab{font-weight:600}
.step-item.done .n{background:var(--sage-soft);box-shadow:inset 0 0 0 1px #bfd3c4}
.view-tabs{
  padding:5px;border-radius:13px;background:rgba(29,28,25,.06);
  display:flex;gap:4px;margin-bottom:16px;
}
.vt{
  flex:1;height:38px;border-radius:9px;font-size:13px;color:var(--ink2);transition:.18s;
  display:flex;align-items:center;justify-content:center;gap:7px;
}
.vt:hover{color:var(--ink)}
.vt.on{background:#fffdf9;color:var(--ink);font-weight:600;box-shadow:0 2px 8px rgba(29,28,25,.13)}
.rail-foot{background:rgba(255,255,255,.5);border-radius:10px;border-top:none;padding:12px 14px}

/* —— 卡片：双层阴影 + 悬浮微动 —— */
.card{
  border-radius:16px;
  box-shadow:0 1px 2px rgba(29,28,25,.05),0 8px 24px -18px rgba(60,45,30,.25);
  transition:box-shadow .2s,transform .2s;
}
.main-card:hover,.card:hover{box-shadow:0 1px 2px rgba(29,28,25,.05),0 14px 34px -18px rgba(60,45,30,.32)}
.card-head{padding-bottom:14px;border-bottom:1px dashed var(--line);margin-bottom:18px}
.sec-title{font-size:14.5px;font-weight:650;letter-spacing:.4px}
.sec-desc{font-size:12.5px;color:var(--ink3);margin-top:4px}

/* —— 按钮：主次分明 + 按压反馈 —— */
.btn{
  border-radius:11px;font-weight:600;
  box-shadow:0 2px 6px -1px rgba(29,28,25,.22),inset 0 1px 0 rgba(255,255,255,.08);
}
.btn:hover{background:#2a2925;transform:translateY(-1px);box-shadow:0 4px 12px -2px rgba(29,28,25,.3)}
.btn:active{transform:translateY(0) scale(.985)}
.btn.accent{
  background:linear-gradient(135deg,#b04c2e,#a8452b);
  box-shadow:0 3px 10px -2px rgba(168,69,43,.45),inset 0 1px 0 rgba(255,255,255,.15);
}
.btn.accent:hover{background:linear-gradient(135deg,#9d4226,#8f3820)}
.btn.line{box-shadow:none;background:rgba(255,255,255,.7)}
.btn.line:hover{background:#fff;border-color:var(--ink3);transform:translateY(-1px)}
.lnk-mini{border-radius:7px;padding:3px 9px;transition:.15s}
.lnk-mini:hover{background:var(--accent-soft);color:var(--accent)}

/* —— 输入框：更挺 + focus 光圈 —— */
.inp,textarea.inp,select.inp{
  border-radius:10px;border-color:var(--line2);background:rgba(255,255,255,.85);
  transition:border-color .15s,box-shadow .15s,background .15s;
}
.inp:hover{border-color:#bfb8a8}
.inp:focus{
  border-color:var(--accent2);background:#fff;
  box-shadow:0 0 0 3px rgba(201,106,69,.14),0 1px 2px rgba(29,28,25,.04);
}
.topic-input{background:#fff}
label{font-weight:550;letter-spacing:.2px}
label span{font-weight:400}

/* —— 平台选择卡 —— */
.chip{border-radius:11px;background:rgba(255,255,255,.8)}
.chip:hover{border-color:#b3aa96;box-shadow:0 3px 10px -2px rgba(60,45,30,.16);transform:translateY(-1.5px)}
.chip.on{
  background:linear-gradient(135deg,#fdf2ec,#f9e7dc);
  border-color:var(--accent);color:var(--accent);
  box-shadow:0 2px 8px -2px rgba(168,69,43,.28);
}
.count-pill{border-radius:999px;background:var(--ink);color:#f6f4ef;border:none;padding:4px 12px;font-weight:600}

/* —— 表格/列表行 hover —— */
table tr,.row-line{transition:background .15s}
tbody tr:hover{background:rgba(246,241,231,.6)}

/* —— toast：悬浮通知质感 —— */
#toast{
  border-radius:12px;font-size:13px;line-height:1.6;
  box-shadow:0 10px 34px -8px rgba(29,28,25,.45),0 0 0 1px rgba(255,255,255,.08) inset;
  padding:12px 22px;max-width:76vw;
}

/* —— 空状态 & 弹窗 —— */
.empty{border:1.5px dashed var(--line2);border-radius:14px;background:rgba(255,255,255,.4)}
.modal-card,.login-dlg,.pub-result{border-radius:18px;box-shadow:0 24px 80px -16px rgba(40,25,12,.4)}

/* —— hero 排版精修 —— */
.eyebrow{letter-spacing:3px;font-weight:600}
h1.page{font-size:33px;letter-spacing:1px}
.hero{margin-bottom:26px}
p.lead{font-size:14.5px}

/* —— 桌面窗口里的细节 —— */
main{padding:34px 44px 90px;max-width:1220px}
@media (max-width:1240px){main{padding:28px 26px 80px}}
.inp.big{font-size:20px;padding:16px 18px;border-radius:12px;background:#fff}
.more-toggle{border-radius:10px;transition:.15s}
.more-toggle:hover{background:rgba(255,255,255,.7)}

/* ===== v20：账号失效标识 ===== */
.login-st.bad{background:#fdeceb;color:#b4321f;border-color:#f2c4bd;font-weight:600}
.nick-txt.invalid{color:#b4321f;border-bottom-color:#e0a89e}
.nick-txt.invalid:hover{color:#8f2a18;border-bottom-color:#8f2a18}
