/* 故事工坊样式（2026-10-28 从 index.html 抽出，便于长缓存） */
  :root{
    --line:#e2e8f0; --ink:#0f172a; --ink2:#475569; --ink3:#94a3b8;
    --blue:#2563eb; --blue2:#1d4ed8; --soft:#f8fafc;
    --ring:rgba(37,99,235,.12);            /* 聚焦光环，随模块主题变色 */
    --glow:rgba(37,99,235,.45);            /* 按钮/选中态投影 */
    --ease:cubic-bezier(.22,1,.36,1);      /* 全站动效基准曲线（禁裸 ease/linear） */
    --line-soft:rgba(15,23,42,.08);   /* 细边框，模拟 0.5px 观感 */
    --radius:12px; --radius-lg:16px;  /* 利落圆角 */
    --gap:16px; --gap-lg:24px;        /* 8 节奏间距 */
  }
  *{box-sizing:border-box;}
  [hidden]{display:none !important;}
  html{background:transparent;}
  body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
    color:#1e293b; font-size:14px; line-height:1.65; -webkit-font-smoothing:antialiased;
    background:#f4f6fb; /* 视觉规范：背景一律纯色，禁渐变 */
  }
  h1,h2,h3{text-wrap:balance;}
  p{text-wrap:pretty;}
  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
  }
  /* ---- 每个模块一套主题色：切模块时 --blue 全局换色 ---- */
  body[data-mod="image"]{--blue:#7c3aed;--blue2:#6d28d9;--ring:rgba(124,58,237,.12);--glow:rgba(124,58,237,.45);}
  body[data-mod="intel"]{--blue:#db2777;--blue2:#be185d;--ring:rgba(219,39,119,.12);--glow:rgba(219,39,119,.45);}
  body[data-mod="audio"]{--blue:#0d9488;--blue2:#0f766e;--ring:rgba(13,148,136,.12);--glow:rgba(13,148,136,.45);}
  body[data-mod="video"]{--blue:#ea580c;--blue2:#c2410c;--ring:rgba(234,88,12,.12);--glow:rgba(234,88,12,.45);}
  .card{background:#fff;border:1px solid var(--line-soft);border-radius:var(--radius-lg);padding:24px;
    box-shadow:0 1px 2px rgba(15,23,42,.04),0 12px 32px -22px rgba(30,41,120,.18);}
  #editCard,#out,#history,#reader{width:100%;max-width:1600px;margin-left:auto;margin-right:auto;}
  .card + .card{margin-top:24px;}
  .title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line-soft);}
  /* 成稿生成后，上方创作区自动折叠，只留标题栏 + 展开按钮，成稿占满屏幕 */
  #editCard.compose-collapsed > *:not(.title-row){display:none !important;}
  /* 折叠时也保留操作行：否则生成一开始就折叠，「停止」被一起藏掉，中途停不下来 */
  #editCard.compose-collapsed > .action-row{display:flex !important;margin-top:10px;}
  #editCard.compose-collapsed{border-bottom:0;padding-bottom:0;}
  .title-row h1{display:flex;align-items:center;gap:9px;}
  .title-row h1::before{content:"";width:9px;height:9px;border-radius:3px;background:var(--blue);box-shadow:0 0 0 3px var(--ring);}
  h1{margin:0;font-size:20px;font-weight:700;color:var(--ink);letter-spacing:.02em;}
  .sub{margin:12px 0 0;font-size:13px;color:var(--ink3);line-height:1.6;}
  .lbl{display:block;margin:16px 0 8px;font-size:13px;font-weight:500;color:var(--ink2);}
  textarea{
    width:100%;min-height:76px;resize:vertical;padding:11px 13px;font:inherit;color:#1e293b;
    border:1px solid #cbd5e1;border-radius:10px;outline:none;background:#fff;transition:border-color .15s,box-shadow .15s;
  }
  textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--ring);}
  textarea::placeholder{color:#a8b3c2;}
  .modes{display:flex;gap:8px;margin-top:18px;padding:4px;background:#f1f5f9;border-radius:12px;width:fit-content;}
  .mode-toolbar{width:fit-content;max-width:100%;}
  .type-row{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;background:#f8fafc;border:1px solid #e8eef5;border-radius:10px;flex-wrap:wrap;}
  /* 子类型+换一批独占一行：选流量类创作时任务类型下拉不会被挤动 */
  #flowSubWrap{display:inline-flex;align-items:center;gap:8px;flex:1 1 100%;}
  /* 切类型时出现/消失的行做轻微滑入，减少「乱跳」的生硬感 */
  @keyframes rowIn{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}
  .title-opts:not([hidden]),#flowSubWrap:not([hidden]),#rewriteOpts:not([hidden]),#shortOpts:not([hidden]),#longOpts:not([hidden]){animation:rowIn .25s var(--ease);}
  .type-row .control-label{flex:0 0 auto;}
  .type-row select{max-width:220px;}
  .title-opts{margin-top:10px;}
  .title-opts select{max-width:180px;}
  .title-opts .control-label{color:var(--ink3);}
  .title-opts-hint{margin-left:auto;font-size:11px;color:var(--ink3);line-height:1.5;text-align:right;}
  .tt-list{display:flex;flex-direction:column;gap:10px;margin-top:4px;}
  .tt-card{border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:#fff;}
  .tt-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
  .tt-rank{font-size:12px;color:var(--ink3);font-variant-numeric:tabular-nums;min-width:18px;}
  .tt-grade{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;padding:0 7px;border-radius:7px;font-size:12px;font-weight:600;border:1px solid;}
  .g-S{background:#fef3c7;color:#92400e;border-color:#fde68a;}
  .g-A{background:#dcfce7;color:#166534;border-color:#bbf7d0;}
  .g-B{background:#dbeafe;color:#1e40af;border-color:#bfdbfe;}
  .g-C{background:#f1f5f9;color:#475569;border-color:#e2e8f0;}
  .tt-score{margin-left:auto;font-size:12px;color:var(--ink3);font-variant-numeric:tabular-nums;}
  .tt-title{margin:9px 0 0;font-size:15px;font-weight:500;line-height:1.6;color:var(--ink);word-break:break-word;}
  .tt-meta{margin:5px 0 0;font-size:11.5px;color:var(--ink3);}
  .tt-gate{color:#b45309;font-weight:500;}
  .tt-gate.bad{color:#be123c;}
  .tt-dims{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:10px;}
  .tt-dim{background:#f8fafc;border-radius:8px;padding:6px 7px;min-width:0;}
  .tt-dim-top{display:flex;justify-content:space-between;gap:4px;font-size:10.5px;color:var(--ink3);}
  .tt-bar{height:3px;border-radius:999px;background:#e2e8f0;margin-top:4px;overflow:hidden;}
  .tt-bar i{display:block;height:3px;background:var(--blue);border-radius:999px;}
  .tt-ev{margin-top:4px;font-size:10px;line-height:1.35;color:var(--ink3);word-break:break-word;}
  .tt-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;}
  .tt-parts{display:flex;gap:5px;flex-wrap:wrap;}
  .tt-part{background:#f1f5f9;color:var(--ink2);border-radius:999px;padding:2px 8px;font-size:10.5px;}
  .tt-note{margin-top:10px;font-size:11px;line-height:1.6;color:var(--ink3);}
  .title-score{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:#f8fafc;color:var(--ink2);font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;}
  .title-score.g-S{background:#fef3c7;color:#92400e;border-color:#fde68a;}
  .title-score.g-A{background:#dcfce7;color:#166534;border-color:#bbf7d0;}
  .title-score.g-B{background:#dbeafe;color:#1e40af;border-color:#bfdbfe;}
  .title-score.g-C{background:#f1f5f9;color:#475569;border-color:#e2e8f0;}
  .title-score-detail{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;}
  .tsd-head{font-size:11.5px;color:var(--ink3);line-height:1.6;}
  .tsd-head b{color:var(--ink2);font-weight:600;}
  .cover-reco{margin-top:8px;}
  .cover-reco-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;max-height:230px;overflow:auto;}
  .reco-item{display:flex;align-items:center;gap:8px;text-align:left;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;font:inherit;}
  .reco-item:hover{border-color:#bfdbfe;background:#f8fbff;}
  .reco-item.on{border-color:var(--blue);background:#eff6ff;}
  .reco-grade{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:6px;border:1px solid;font-size:10.5px;font-weight:600;}
  .reco-text{flex:1;min-width:0;font-size:12.5px;line-height:1.45;color:var(--ink);word-break:break-word;}
  .reco-score{font-size:11px;color:var(--ink3);font-variant-numeric:tabular-nums;}
  .reco-empty{margin:0;font-size:11.5px;color:var(--ink3);}
  .reco-empty.err{color:#be123c;}
  .reco-note{margin:7px 0 0;font-size:11px;line-height:1.5;color:var(--ink3);}
  .cover-prompt{margin-top:14px;padding-top:12px;border-top:1px solid #eef2f7;}
  .cover-prompt-row{display:flex;gap:8px;align-items:center;margin:6px 0;}
  .cover-prompt-row select{flex:1;min-width:0;}
  .cover-prompt textarea{min-height:112px;font-size:12px;line-height:1.55;}
  .cover-prompt-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;}
  .cover-prompt-acts .mini.ghost{color:var(--ink3);border-color:#dbe3ec;}
  .cover-gen-hint{margin:7px 0 0;font-size:11.5px;line-height:1.55;color:var(--ink3);}
  .chat-ins-side{padding:4px 6px;border:1px solid #dbe3ec;border-radius:8px;font-size:11.5px;background:#fff;}
  .wx-imgwrap{position:relative;display:inline-block;}
  .wx-img{max-width:min(260px,62%);border-radius:8px;display:block;cursor:pointer;}
  .wx-pay{position:relative;display:inline-flex;align-items:center;gap:10px;background:#f7a13c;border-radius:8px;padding:12px 16px;min-width:200px;}
  .wx-pay-ic{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.95);color:#f7a13c;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:19px;flex:none;}
  .wx-pay-tx{display:flex;flex-direction:column;gap:2px;color:#fff;}
  .wx-pay-tx em{font-style:normal;font-size:11.5px;opacity:.92;}
  .wx-pay-tx b{font-size:19px;font-weight:600;outline:none;}
  .wx-del{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;font-size:11px;line-height:20px;padding:0;cursor:pointer;}
  .wx-del:hover{background:rgba(0,0,0,.75);}
  /* 聊天对话体成稿渲染 */
  .wx-chat{display:flex;flex-direction:column;gap:13px;padding:8px 2px 4px;}
  .wx-time{align-self:center;font-size:11.5px;color:#a5a5a5;background:#e3e3e3;border-radius:5px;padding:2px 9px;}
  .wx-row{display:flex;padding:0 6px;}
  .wx-row.r{justify-content:flex-end;}
  .wx-col{max-width:76%;min-width:0;}
  .wx-row.r .wx-col{display:flex;flex-direction:column;align-items:flex-end;}
  .wx-name{font-size:11px;color:#9b9b9b;margin-bottom:4px;padding:0 2px;}
  .wx-c{padding:9px 12px;border-radius:9px;font-size:14.5px;line-height:1.62;white-space:pre-wrap;word-break:break-word;box-shadow:0 1px 1px rgba(15,23,42,.05);}
  .wx-l{background:#fff;border:1px solid #e8e8e8;border-top-left-radius:3px;}
  .wx-r{background:#95ec69;border-top-right-radius:3px;}
  .wx-c[contenteditable]:hover{outline:1.5px dashed rgba(37,99,235,.45);cursor:text;}
  .wx-c[contenteditable]:focus{outline:2px solid var(--blue);}
  .wx-edit-ta{position:absolute;z-index:30;border:2px solid var(--blue);border-radius:8px;padding:7px 9px;font-family:inherit;font-size:13px;line-height:1.55;resize:none;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.2);outline:none;}
  .mosaic-row{display:flex;align-items:center;gap:7px;margin-top:10px;font-size:13px;color:var(--ink2);cursor:pointer;}
  .mosaic-row input{width:15px;height:15px;accent-color:var(--blue);cursor:pointer;}
  .cover-gen-hint.err{color:#be123c;}
  .cover-gen-hint.ok{color:#15803d;}
  @media (max-width:640px){.tt-dims{grid-template-columns:repeat(2,minmax(0,1fr));}.title-opts-hint{display:none;}}
  .modes .chip{border-radius:9px;padding:6px 16px;background:transparent;}
  .modes .chip:hover{background:#e2e8f0;}
  .modes .chip.on{background:#fff;color:var(--blue);font-weight:600;box-shadow:0 1px 3px rgba(15,23,42,.10);}
  .modes .chip.on:hover{background:#fff;}
  .modes.disabled{pointer-events:none;opacity:.55;}
  .scene-panel{display:flex;flex-direction:column;margin-top:16px;padding:15px;background:#f8fafc;border:1px solid #e8eef5;border-radius:12px;}
  #scenePanel>.scene-heading{order:0;}
  #scenePanel>#sceneHint{order:1;}
  #scenePanel>#sceneOverview{order:2;}
  #scenePanel>.chips-wrap{order:3;}
  #scenePanel>#toneHelp{order:4;}
  #scenePanel>#mustPanel{order:5;}
  #scenePanel>.settings-divider{order:6;}
  .scene-panel .lbl-sm{margin-top:0;}
  .scene-heading{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap;}
  .scene-heading .lbl-sm{margin-bottom:0;}
  .scene-heading .type-row{margin:0;padding:0;background:transparent;border:0;}
  .scene-heading .type-row select{max-width:170px;}
  /* 创作类型行独占一行：无论场景选择器显示与否，下拉位置都不横跳 */
  .scene-heading .type-row{flex:1 1 100%;order:5;}
  .scene-heading .scene-clear{order:6;}
  .scene-picker{display:flex;align-items:center;gap:5px;padding:3px;background:#eef2f7;border-radius:9px;}
  .scene-picker button{padding:5px 10px;border:0;border-radius:7px;background:transparent;color:var(--ink2);font:inherit;font-size:11px;cursor:pointer;}
  .scene-picker button.active{background:#fff;color:var(--blue);font-weight:600;box-shadow:0 1px 3px rgba(15,23,42,.12);}
  .scene-kind-row{display:flex;align-items:center;gap:8px;margin:0;}
  .scene-kind-row .control-label{flex:0 0 auto;}
  .scene-clear{padding:2px 8px;font-size:11px;}
  .scene-overview{display:flex;align-items:center;gap:6px;min-height:32px;margin:9px 0 10px;padding:6px 8px;background:#fff;border:1px solid #e8eef5;border-radius:8px;overflow-x:auto;white-space:nowrap;}
  .scene-overview-label,.scene-overview-empty{flex:0 0 auto;font-size:10.5px;color:var(--ink3);}
  .scene-overview-tag{flex:0 0 auto;padding:2px 8px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:10.5px;}
  .scene-overview-tag.adult{background:#fce7f3;color:#9d174d;}
  .chips-wrap{min-width:0;width:100%;}
  .chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
  .scene-layout{display:block;width:100%;}
  .scene-standard{padding:10px;background:#fff;border:1px solid #e8eef5;border-radius:10px;}
  .standard-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:2px 0;border:0;background:transparent;color:var(--ink2);font:inherit;font-size:12px;font-weight:600;cursor:pointer;text-align:left;}
  .standard-toggle small{font-size:11px;font-weight:400;color:var(--ink3);}
  .standard-content{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start;margin-top:8px;padding:2px 3px 7px 0;}
  .standard-content .group-label,.adult-content .group-label{flex:0 0 100%;width:100%;margin:7px 0 1px;white-space:normal;}
  .standard-content .group-label:first-child,.adult-content .group-label:first-of-type{margin-top:0;}
  .standard-content .chip,.adult-content .chip{flex:0 0 auto;white-space:nowrap;}
  .standard-content[hidden],.adult-content[hidden]{display:none !important;}
  .standard-content .group-label:first-child{margin-top:0;}
  .group-label{width:100%;margin:10px 0 2px;font-size:11px;color:var(--ink3);letter-spacing:.02em;}
  .group-label:first-child{margin-top:0;}
  .adult-panel{width:auto;margin-top:0;padding:10px;background:#fff7fb;border:1px solid #fbcfe8;border-radius:10px;}
  .adult-panel[hidden],.scene-standard[hidden]{display:none !important;}
  .adult-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:2px 0;border:0;background:transparent;color:#9d174d;font:inherit;font-size:12px;font-weight:600;cursor:pointer;text-align:left;}
  .adult-toggle small{font-size:11px;font-weight:400;color:#be185d;}
  .adult-presets{display:flex;flex:0 0 100%;flex-wrap:wrap;gap:6px;margin:0 0 4px;padding:0 0 7px;border:0;border-bottom:1px solid #fbcfe8;}
  .adult-preset{padding:4px 9px;font:inherit;font-size:11px;color:#9d174d;background:#fff;border:1px solid #f9a8d4;border-radius:999px;cursor:pointer;}
  .adult-preset:hover{background:#fce7f3;}
  .adult-content{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start;align-items:center;padding:8px 4px 10px;}
  .adult-content .group-label:first-child{margin-top:0;}
  .adult-group-note{width:100%;margin:-2px 0 1px;font-size:10.5px;line-height:1.45;color:#be185d;}
  .adult-guide{margin:6px 0 0;font-size:10.5px;line-height:1.5;color:#be185d;}
  .adult-selection{margin:6px 0 0;padding:5px 8px;background:#fff;border:1px dashed #f9a8d4;border-radius:7px;color:#be185d;font-size:10.5px;line-height:1.45;}
  .adult-selection.has-selection{background:#fce7f3;color:#9d174d;font-weight:600;}
  .hint-multi{font-size:11px;color:var(--ink3);margin:4px 0 0;}
  .tone-help{margin:12px 0 0;padding:9px 10px;background:#fff;border:1px solid #e8eef5;border-radius:9px;font-size:11.5px;line-height:1.6;color:var(--ink2);}
  .tone-help strong{color:var(--ink);font-weight:600;}
  .must-panel{margin-top:12px;padding-top:12px;border-top:1px solid #e8eef5;}
  .must-input-row{display:flex;gap:8px;position:relative;}
  .must-input-row input{flex:1;min-width:0;padding:7px 9px;font:inherit;font-size:12px;color:var(--ink2);border:1px solid #cbd5e1;border-radius:8px;outline:none;}
  .must-input-row input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--ring);}
  .must-add{flex:0 0 auto;padding:5px 10px;}
  .must-hint{margin:5px 0 0;font-size:11px;color:var(--ink3);}
  .must-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
  .must-tag{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 8px;background:#eff6ff;border:1px solid #dbeafe;border-radius:999px;color:#1d4ed8;font-size:11.5px;}
  .must-tag span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .must-tag button{padding:0;border:0;background:transparent;color:#64748b;font-size:14px;line-height:1;cursor:pointer;}
  .must-suggest{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;max-height:180px;overflow:auto;padding:4px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 10px 24px rgba(15,23,42,.12);}
  .must-suggest[hidden]{display:none;}
  .must-suggest button{display:block;width:100%;padding:7px 9px;border:0;border-radius:6px;background:transparent;color:var(--ink2);font:inherit;font-size:12px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}
  .must-suggest button:hover,.must-suggest button.on{background:#eff6ff;color:#1d4ed8;}
  .rewrite-hint{margin:6px 0 0;font-size:10.5px;line-height:1.5;color:var(--ink3);}
  .risk-flag{background:#fee2e2;color:#dc2626;font-style:normal;padding:0 2px;border-radius:3px;}
  .risk-notice{margin:10px 0 0;padding:8px 12px;font-size:12px;line-height:1.6;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;}
  .risk-notice[hidden]{display:none;}
  .risk-notice.ok{color:#166534;background:#f0fdf4;border-color:#bbf7d0;}
  .lbl-sm{display:block;margin:12px 0 6px;font-size:12px;font-weight:500;color:var(--ink2);}
  .custom-label{display:block;margin:14px 0 6px;font-size:11px;color:var(--ink3);}
  .creative-controls{display:grid;grid-template-columns:1fr 1fr minmax(150px,1.4fr);align-items:end;gap:12px;margin-top:16px;padding-top:15px;border-top:1px solid #eef2f7;}
  .settings-divider{margin-top:14px;padding-top:12px;border-top:1px solid #e8eef5;}
  .settings-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:12px;}
  .settings-row .control-stack{min-width:0;}
  .settings-divider .creative-controls{display:contents;}
  .settings-row #shortOpts,.settings-row #longOpts{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;}
  .settings-row #shortOpts[hidden],.settings-row #longOpts[hidden]{display:none;}
  .settings-row .control-label,.settings-row .lbl-sm,.settings-row .lbl{display:block;min-height:18px;margin:0 0 6px;line-height:18px;}
  .settings-row select{width:100%;max-width:none;}
  .settings-row #rewriteOpts{display:contents;}
  .settings-row #rewriteOpts[hidden]{display:none;}
  .settings-row #rewriteOpts .control-stack{min-width:0;}
  .settings-row #voiceOpts{display:contents;}
  .settings-row #voiceOpts[hidden]{display:none;}
  .settings-row #voiceOpts .control-stack{min-width:0;}
  .settings-row #rewriteVoiceHint{order:9;grid-column:1/-1;margin:0;padding-top:2px;}
  .settings-row.rewrite-row{grid-template-columns:repeat(6,minmax(0,1fr));}
  /* 非成人场景：成人表达强度整块收起，行内自动少一列，不留空位 */
  .settings-row.intensity-off{grid-template-columns:repeat(3,minmax(0,1fr));}
  .settings-row.intensity-off.rewrite-row{grid-template-columns:repeat(5,minmax(0,1fr));}
  /* 改写成稿（11-05 从成稿工具条挪进来）：和叙事视角并排，下拉＋按钮一行 */
  .settings-row .rw-stack{min-width:0;}
  .rw-stack .rw-inline{display:flex;align-items:center;gap:6px;}
  .rw-stack .rw-inline select{flex:1 1 auto;min-width:0;height:30px;}
  .rw-stack .rw-inline .mini{flex:0 0 auto;height:30px;padding:0 12px;}
  .rw-stack .control-label{white-space:nowrap;}
  .action-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;}
  .action-row .acts{flex:1 1 auto;margin-top:0;padding-top:0;border-top:0;}
  .control-stack{display:flex;flex-direction:column;gap:6px;min-width:150px;}
  .control-stack[hidden]{display:none;}
  .control-label{font-size:11px;color:var(--ink3);}
  .control-hint{margin:0;font-size:10.5px;line-height:1.45;color:var(--ink3);}
  .control-stack select{max-width:none;width:100%;}
  .model-stack{flex:1 1 auto;}
  .model-stack select{max-width:260px;}
  @media (max-width:1000px){
    .settings-row.rewrite-row{grid-template-columns:repeat(3,minmax(0,1fr));}
    .settings-row.intensity-off.rewrite-row{grid-template-columns:repeat(3,minmax(0,1fr));}
  }
  @media (max-width:640px){
    .settings-row,.settings-row.rewrite-row{grid-template-columns:repeat(2,minmax(0,1fr));}
    .settings-row.intensity-off,.settings-row.intensity-off.rewrite-row{grid-template-columns:repeat(2,minmax(0,1fr));}
  }
  @media (max-width:460px){
    .settings-row,.settings-row.rewrite-row{grid-template-columns:minmax(0,1fr);}
    .settings-row.intensity-off,.settings-row.intensity-off.rewrite-row{grid-template-columns:minmax(0,1fr);}
  }
  @media (max-width:520px){
    .creative-controls{grid-template-columns:1fr 1fr;}
    .settings-row{grid-template-columns:1fr;gap:10px;}
    .control-stack{min-width:0;}
    .model-stack select{max-width:none;}
    .scene-layout{grid-template-columns:1fr;}
    .scene-picker{flex:0 0 auto;}
    .scene-heading{flex-wrap:wrap;}
  }
  .chip.adult{background:#fdf2f8;color:#9d174d;}
  .chip.adult:hover{background:#fce7f3;}
  .chip.adult.on{background:#db2777;border-color:#db2777;color:#fff;box-shadow:0 0 0 2px rgba(219,39,119,.2);font-weight:600;}
  .chip{
    padding:5px 11px;font:inherit;font-size:12.5px;color:var(--ink2);background:#f1f5f9;
    border:1px solid transparent;border-radius:999px;cursor:pointer;
    transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease);
  }
  .chip:active{transform:scale(.96);}
  .chip:hover{background:#e2e8f0;}
  .chip.on{background:linear-gradient(135deg,var(--blue),var(--blue2));border-color:transparent;color:#fff;font-weight:500;box-shadow:0 1px 6px -1px var(--glow);}
  select{
    padding:6px 9px;font:inherit;font-size:12.5px;color:var(--ink2);background:#fff;
    border:1px solid #cbd5e1;border-radius:8px;outline:none;max-width:190px;
  }
  .acts{display:flex;align-items:center;gap:10px;margin-top:18px;padding-top:15px;border-top:1px solid #eef2f7;flex-wrap:wrap;}
  .btn{
    padding:10px 24px;font:inherit;font-size:14px;font-weight:600;color:#fff;
    background:linear-gradient(135deg,var(--blue),var(--blue2));
    border:none;border-radius:10px;cursor:pointer;transition:.25s var(--ease);
    box-shadow:0 2px 10px -2px var(--glow);
  }
  .btn:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 4px 14px -2px var(--glow);}
  .btn:active:not(:disabled){transform:scale(.98);}
  .btn:disabled{opacity:.55;cursor:not-allowed;}
  .btn.ghost{background:#fff;color:var(--ink2);border:1px solid #cbd5e1;}
  .btn.ghost:hover{background:#f1f5f9;}
  .hint{font-size:12.5px;color:var(--ink3);}
  .hint.err{color:#b91c1c;}
  .credit-src{font-size:11.5px;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:1px 9px;white-space:nowrap;line-height:1.7;}
  /* ---- 积分池：地铁线路图式灯珠（顺序 / 当前付账 / 点击切换） ---- */
  .subway{margin:14px 0 4px;padding:11px 14px 8px;border:1px solid #e6ecf5;border-radius:14px;
          background:#f8fafd;}
  .subway-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px;}
  .subway-cap{font-size:11px;letter-spacing:.06em;color:#94a3b8;font-weight:600;white-space:nowrap;}
  .subway-now{font-size:12px;color:#5b6a83;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;}
  .subway-now b{color:#0f7a3d;font-weight:700;}
  .subway-now i{font-style:normal;color:#94a3b8;}
  .sw-track{display:flex;align-items:flex-start;overflow-x:auto;padding:14px 0 2px;scrollbar-width:none;
            max-width:620px;margin:0 auto;}
  .sw-track::-webkit-scrollbar{display:none;}
  .sw-stop{flex:1 0 auto;min-width:80px;display:flex;flex-direction:column;align-items:center;gap:5px;
           padding:0;background:none;border:none;font:inherit;cursor:pointer;position:relative;-webkit-tap-highlight-color:transparent;}
  .sw-dot{width:18px;height:18px;border-radius:50%;background:#cbd5e1;position:relative;z-index:2;
          box-shadow:inset 0 0 0 1px rgba(16,24,40,.08);transition:transform .15s,background .2s,box-shadow .2s;}
  .sw-stop:hover .sw-dot{transform:scale(1.16);}
  .sw-num{position:absolute;top:-13px;font-size:9.5px;color:#a5b0c2;line-height:1;}
  .sw-name{font-size:11.5px;color:#64748b;line-height:1.3;text-align:center;max-width:92px;
           overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .sw-meta{font-size:10px;color:#a9b4c4;line-height:1.2;white-space:nowrap;}
  .sw-wire{flex:1 0 16px;height:3px;margin-top:8px;border-radius:3px;background:#e2e8f0;position:relative;overflow:hidden;}
  .sw-wire::after{content:"";position:absolute;top:0;bottom:0;width:45%;border-radius:3px;
    background:linear-gradient(90deg,transparent,rgba(22,163,74,.6),transparent);animation:swrun 2.6s linear infinite;}
  .sw-wire.spent::after{display:none;}
  .sw-wire.spent{background:#bbf7d0;}
  @keyframes swrun{0%{transform:translateX(-130%)}100%{transform:translateX(330%)}}
  .sw-stop.on .sw-dot{background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.16),0 0 14px rgba(22,163,74,.5);}
  .sw-stop.on .sw-dot::after{content:"";position:absolute;inset:-7px;border-radius:50%;
    border:1.5px solid rgba(22,163,74,.42);animation:swbreathe 2s ease-in-out infinite;}
  @keyframes swbreathe{0%,100%{transform:scale(.9);opacity:.9}50%{transform:scale(1.14);opacity:.18}}
  .sw-stop.on .sw-name{color:#0f7a3d;font-weight:700;}
  .sw-stop.on .sw-meta{color:#15803d;}
  .sw-stop.cool .sw-dot{background:#f0a02a;box-shadow:0 0 0 4px rgba(240,160,42,.14);}
  .sw-stop.cool .sw-name{color:#a86800;}
  .sw-stop.dead .sw-dot{background:#dc2626;box-shadow:0 0 0 4px rgba(220,38,38,.12);}
  .sw-stop.dead .sw-name{color:#b91c1c;}
  .sw-stop.last .sw-name::after{content:"垫底";margin-left:3px;font-size:9px;color:#b6c0cf;font-weight:400;}
  .subway-foot{margin:9px 0 1px;font-size:10.5px;color:#a9b4c4;line-height:1.5;}
  /* ---- 内联迷你版（2026-10-27）：贴在「生成/开始改写」按钮旁边的一条线 ----
     不再有标题行、状态文字和说明脚注：圆点表状态（绿=正在付账·呼吸，橙=冷却，红=失效，
     灰=待命），名字缩在圆点下面，详情全在悬停提示里。 ---- */
  .subway.inline{margin:0 2px;padding:0;border:none;border-radius:0;background:none;
                 display:inline-flex;align-items:center;align-self:center;}
  .subway.inline .sw-track{display:flex;align-items:flex-start;gap:0;padding:0;max-width:none;
                           overflow:visible;margin:0;}
  .subway.inline .sw-stop{min-width:0;flex:0 0 auto;gap:2px;padding:2px 1px;}
  .subway.inline .sw-dot{width:10px;height:10px;}
  .subway.inline .sw-stop:hover .sw-dot{transform:scale(1.25);}
  .subway.inline .sw-num{display:none;}
  .subway.inline .sw-name{font-size:10px;max-width:60px;line-height:1.2;}
  .subway.inline .sw-meta{display:none;}
  .subway.inline .sw-wire{flex:0 0 10px;height:2px;margin-top:4px;border-radius:2px;}
  .subway.inline .sw-stop.on .sw-dot::after{inset:-4px;}
  .subway.inline .subway-top,.subway.inline .subway-foot{display:none;}
  .subway.inline .sw-stop.last .sw-name::after{font-size:8px;}
  .out-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #eef2f7;}
  .out-head-left{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap;}
  .title-reco-wrap{position:relative;display:inline-flex;}
  .title-reco-btn{padding:3px 10px;border-radius:999px;border:1px dashed #c7d2fe;background:#fff;color:#3730a3;font:inherit;font-size:11.5px;font-weight:500;cursor:pointer;line-height:1.5;}
  .title-reco-btn:hover{background:#eef2ff;border-color:#a5b4fc;}
  .title-reco-btn:disabled{opacity:.6;cursor:default;}
  .title-reco-pop{position:absolute;top:calc(100% + 8px);left:0;z-index:45;width:min(440px,86vw);max-height:320px;overflow:auto;padding:9px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 18px 44px rgba(15,23,42,.18);display:flex;flex-direction:column;gap:6px;}
  .title-reco-pop .reco-note{padding:0 2px;}
  #out.is-maximized{position:fixed;inset:12px;z-index:30;margin:0;overflow-y:auto;box-shadow:0 18px 60px rgba(15,23,42,.22);}
  #out.is-maximized #story{max-width:100%;margin:0;}
  #out.is-maximized .scroller{max-height:none;min-height:70vh;}
  #out.is-maximized #story p{font-size:15px;line-height:1.95;}
  body.output-maximized{overflow:hidden;}
  .badge{
    display:inline-flex;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:500;
    color:#1d4ed8;background:#eff6ff;border-radius:999px;
  }
  .mini{
    padding:6px 12px;font:inherit;font-size:11.5px;line-height:1.3;white-space:nowrap;color:var(--ink2);background:#fff;
    border:1px solid #cbd5e1;border-radius:8px;cursor:pointer;transition:border-color .15s,color .15s,background .15s;
  }
  .mini:hover{border-color:var(--blue);color:var(--blue);background:#f8fbff;}
  .mini.danger{color:#b91c1c;}
  .mini.danger:hover{border-color:#fca5a5;color:#b91c1c;background:#fef2f2;}
  /* 两步删除的「举起」态：实心红，和普通悬停明显不同，避免连点误伤 */
  .mini.danger.armed{background:#b91c1c;border-color:#b91c1c;color:#fff;}
  .hist-new{flex:0 0 auto;font-size:10px;font-weight:600;color:#fff;background:#db2777;
    border-radius:4px;padding:0 4px;line-height:15px;}
  .mini.solid{background:var(--blue);border-color:var(--blue);color:#fff;}
  .mini.solid:hover{background:#1d4ed8;border-color:#1d4ed8;color:#fff;}
  .mini.primary{background:linear-gradient(135deg,#db2777,#9333ea);border-color:#db2777;color:#fff;font-weight:600;}
  .mini.primary:hover{background:linear-gradient(135deg,#c026d3,#7e22ce);border-color:#c026d3;color:#fff;}
  #story{max-width:100%;margin:0;}
  #story h2{margin:0 0 18px;font-size:19px;font-weight:650;color:var(--ink);letter-spacing:.02em;}
  #story p{margin:0 0 14px;font-size:14.5px;line-height:1.95;color:#334155;}
  #story p:last-child{margin-bottom:0;}
  .cursor{display:inline-block;width:2px;height:15px;background:var(--blue);vertical-align:-2px;animation:blink 1s steps(2) infinite;}
  @keyframes blink{50%{opacity:0;}}
  .ph{color:#a8b3c2;}
  /* 成稿编辑：直接改字、整段删、自己重写 */
  .story-edit{max-width:100%;margin:0;}
  .story-edit-top{display:flex;gap:8px;align-items:center;margin-bottom:10px;}
  .story-edit-top input{flex:1;min-width:0;padding:9px 12px;font:inherit;font-size:15px;font-weight:600;color:var(--ink);background:#f8fafc;border:1px solid #dbe3ee;border-radius:9px;outline:none;}
  .story-edit-top input:focus{border-color:var(--blue);background:#fff;}
  #editBody{width:100%;min-height:46vh;padding:14px 16px;font:inherit;font-size:14.5px;line-height:1.95;color:#334155;background:#fbfcfe;border:1px solid #dbe3ee;border-radius:10px;outline:none;resize:vertical;box-sizing:border-box;}
  #editBody:focus{border-color:var(--blue);background:#fff;}
  /* 排版编辑：工具条 + contenteditable。选区在 mousedown 时用 preventDefault 保住，
     所以这里按钮一律不抢焦点；格式落在 p / b / u / span[style] 上，保存时按白名单清洗。 */
  .rich-bar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px;
    padding:6px 8px;background:#f8fafc;border:1px solid #dbe3ee;border-radius:9px;}
  .rich-bar[hidden],.rich-body[hidden]{display:none;}
  .rich-bar select{height:26px;padding:1px 5px;font:inherit;font-size:11.5px;color:var(--ink2);
    background:#fff;border:1px solid #dbe3ee;border-radius:6px;cursor:pointer;outline:none;}
  .rich-bar .rbtn{min-width:26px;height:26px;padding:0 5px;font:inherit;font-size:12px;line-height:1;
    color:var(--ink2);background:#fff;border:1px solid #dbe3ee;border-radius:6px;cursor:pointer;}
  .rich-bar .rbtn:hover{border-color:var(--blue);color:var(--blue);background:#f8fbff;}
  .rich-bar .rbtn.on{border-color:var(--blue);color:#fff;background:var(--blue);}
  .rich-bar .rsep{width:1px;height:17px;margin:0 3px;background:#dbe3ee;}
  .rich-bar .rich-tip{margin-left:auto;font-size:11px;color:var(--ink3);}
  .rich-body{width:100%;min-height:46vh;max-height:70vh;overflow:auto;padding:14px 16px;
    font:inherit;font-size:14.5px;line-height:1.95;color:#334155;background:#fbfcfe;
    border:1px solid #dbe3ee;border-radius:10px;outline:none;box-sizing:border-box;}
  .rich-body:focus{border-color:var(--blue);background:#fff;}
  .rich-body p,.rich-body div{margin:0 0 14px;}
  .rich-body p:last-child,.rich-body div:last-child{margin-bottom:0;}
  #story.rich div{margin:0 0 14px;font-size:14.5px;line-height:1.95;color:#334155;}
  .story-edit-acts{display:flex;gap:8px;align-items:center;margin-top:10px;}
  .story-edit-acts .btn{flex:0 0 auto;}
  .story-edit-acts .hint{flex:1;min-width:0;}
  .meta{margin:14px 0 0;font-size:12px;color:var(--ink3);}
  .empty{padding:2px 0;color:#a8b3c2;font-size:13.5px;}
  .history-list{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
  .history-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#f8fafc;border:1px solid #e8eef5;border-radius:10px;}
  .history-main{min-width:0;}
  .history-title{display:flex;align-items:baseline;gap:8px;min-width:0;font-size:13px;color:var(--ink);}
  .history-title > b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto;}
  .history-excerpt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-width:0;font-size:11.5px;font-weight:400;color:var(--ink3);}
  .risk-chip{flex:0 0 auto;padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:600;}
  .risk-chip.ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;}
  .risk-chip.r1{background:#fefce8;border:1px solid #fde047;color:#a16207;}
  .risk-chip.r2{background:#ffedd5;border:1px solid #fb923c;color:#c2410c;}
  .risk-chip.r3{background:#dc2626;border:1px solid #b91c1c;color:#ffffff;}
  .history-meta{margin-top:2px;font-size:11px;color:var(--ink3);}
  .history-actions{display:flex;gap:6px;flex:0 0 auto;}
  /* 记录搜索 */
  .history-head-right{display:flex;align-items:center;gap:8px;min-width:0;}
  .history-search{width:200px;font-size:12px;padding:4px 10px;border:1px solid var(--line);border-radius:8px;outline:none;font-family:inherit;background:#fff;color:var(--ink);}
  .history-search:focus{border-color:#93c5fd;box-shadow:0 0 0 2px rgba(59,130,246,.12);}
  .history-search::-webkit-search-cancel-button{-webkit-appearance:none;}
  /* 生成记录分组与标签（爆款训练用） */
  .hist-group-head{margin:14px 0 2px;font-size:12px;font-weight:600;color:var(--ink2);display:flex;align-items:center;}
  .hist-group-head:first-child{margin-top:0;}
  .hist-group-head .mini{font-size:11px;}
  .hist-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;}
  .hist-tag{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;background:#fff7ed;border:1px solid #fed7aa;color:#c2410c;font-size:11px;font-weight:600;}
  /* 程度色阶：数值越大越热——1=有数值（浅黄） 2=10万+（橙） 3=100万+（红） */
  .hist-tag-l1{background:#fefce8;border-color:#fde047;color:#a16207;}
  .hist-tag-l2{background:#ffedd5;border-color:#fb923c;color:#c2410c;}
  .hist-tag-l3{background:#dc2626;border-color:#b91c1c;color:#ffffff;}
  .hist-tag-x{padding:0;border:0;background:transparent;color:inherit;opacity:.5;font-size:12px;line-height:1;cursor:pointer;}
  .hist-tag-x:hover{opacity:1;}
  .hist-tag-wrap{position:relative;width:100%;max-width:280px;}
  .hist-tag-sug{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;background:#ffffff;border:1px solid #e8eef5;border-radius:8px;box-shadow:0 8px 24px rgba(15,23,42,.12);padding:5px;display:flex;flex-wrap:wrap;gap:4px;}
  .hist-tag-sug button{padding:2px 8px;border:1px solid #fed7aa;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;}
  .hist-tag-sug button.on,.hist-tag-sug button:hover{background:#f97316;border-color:#f97316;color:#ffffff;}
  .hist-tag-input{width:100%;max-width:280px;font-size:12px;padding:3px 8px;border:1px solid #fdba74;border-radius:6px;outline:none;font-family:inherit;}
  .hist-tag-input:focus{border-color:#f97316;box-shadow:0 0 0 2px rgba(249,115,22,.15);}
  .hist-flash{animation:histFlash 1.7s ease;}
  @keyframes histFlash{0%{background:#ffe4d1;border-color:#f97316;}100%{background:#f8fafc;border-color:#e8eef5;}}
  .out-check{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink2);cursor:pointer;user-select:none;white-space:nowrap;}
  .out-check input{accent-color:#f97316;margin:0;cursor:pointer;}

  /* 长篇 */
  .scroller{max-height:520px;overflow-y:auto;padding-right:8px;overscroll-behavior:contain;}
  .scroller::-webkit-scrollbar{width:8px;}
  .scroller::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px;}
  .scroller::-webkit-scrollbar-track{background:transparent;}
  .chapter + .chapter{margin-top:22px;padding-top:20px;border-top:1px dashed var(--line);}
  .chapter h3{margin:0 0 10px;font-size:15px;font-weight:600;color:var(--ink);letter-spacing:.01em;display:flex;align-items:center;gap:8px;}
  .chapter h3 .ch-title{flex:1;min-width:0;}
  .ch-copy{display:inline-flex;gap:5px;flex-shrink:0;}
  .ch-copy button{border:1px solid #e2e8f0;background:#fff;color:#64748b;border-radius:7px;padding:2px 9px;font-size:11.5px;cursor:pointer;font-family:inherit;line-height:1.5;}
  .ch-copy button:hover{border-color:#fdba74;color:#c2410c;}
  .chapter p{margin:0 0 11px;font-size:14.5px;line-height:1.85;color:#334155;}

  /* ===== 会员登录门 ===== */
  /* 锁定态高度固定 640：iframe 里父页按内容高度同步，高度一变就会把
     正在聚焦的输入框带得跳位；恒定 640 + 卡片垂直居中，聚焦零位移 */
  body.locked{min-height:640px;}
  body.locked #editCard,body.locked #out,body.locked #history,body.locked #reader{display:none !important;}
  .gate{display:none;}
  body.locked .gate{display:flex;position:fixed;inset:0;z-index:70;align-items:center;justify-content:center;overflow-y:auto;padding:24px 20px;background:#f3f5fa;}
  .gate-card{position:relative;width:100%;max-width:390px;padding:30px 26px 22px;background:#fff;border:1px solid #e2e8f0;
    border-radius:18px;box-shadow:0 20px 50px rgba(15,23,42,.10);overflow:hidden;}
  .gate-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;
    background:linear-gradient(90deg,#2563eb,#7c3aed 38%,#0d9488 68%,#ea580c);}
  .gate-brand{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:650;color:#0f172a;letter-spacing:.02em;}
  .gate-brand::before{content:"";width:9px;height:9px;border-radius:3px;background:#2563eb;box-shadow:0 0 0 4px var(--ring);}
  .gate-sub{margin:6px 0 20px;font-size:12.5px;color:#94a3b8;}
  .gate-field{margin-bottom:12px;}
  .gate-field label{display:block;margin-bottom:6px;font-size:12px;color:#475569;}
  .gate-field input{width:100%;padding:10px 12px;font:inherit;font-size:13.5px;color:#1e293b;background:#fff;border:1px solid #cbd5e1;border-radius:10px;outline:none;transition:.25s var(--ease);}
  .gate-field input:focus{border-color:#2563eb;box-shadow:0 0 0 3px var(--ring);}
  .gate-submit{width:100%;margin-top:6px;padding:11px;font:inherit;font-size:14px;font-weight:600;color:#fff;
    background:linear-gradient(135deg,#2563eb,#6d28d9);border:0;border-radius:10px;cursor:pointer;transition:.25s var(--ease);}
  .gate-submit:hover:not(:disabled){filter:brightness(1.08);}
  .gate-submit:disabled{opacity:.6;cursor:not-allowed;}
  .gate-msg{min-height:18px;margin:10px 0 0;font-size:12px;color:#b91c1c;}
  .gate-foot{margin:14px 0 0;padding-top:12px;border-top:1px solid #eef2f7;font-size:11.5px;line-height:1.6;color:#94a3b8;}
  .top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
  .user-chip{display:inline-flex;align-items:center;gap:6px;max-width:220px;padding:4px 10px;font-size:11.5px;color:#1d4ed8;background:#eff6ff;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .user-chip.is-admin{color:#9d174d;background:#fdf2f8;}

  /* ===== 通用弹层 ===== */
  .modal-mask{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.38);}
  .modal-mask[hidden]{display:none;}
  .modal{width:100%;max-width:860px;max-height:calc(var(--vis-h, 100vh) - 40px);overflow:auto;background:#fff;border-radius:16px;box-shadow:0 30px 80px rgba(15,23,42,.28);}
  .modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid #eef2f7;position:sticky;top:0;background:#fff;z-index:2;border-radius:16px 16px 0 0;}
  .modal-head h3{margin:0;font-size:15.5px;font-weight:600;color:#0f172a;}
  .modal-body{padding:18px 20px 22px;}
  .modal-x{padding:2px 9px;font-size:16px;line-height:1.4;color:#94a3b8;background:transparent;border:0;border-radius:8px;cursor:pointer;}
  /* ===== 国外模型 Key 弹层 ===== */
  #orModal .modal{max-width:640px;}
  .or-wrap{display:flex;flex-direction:column;gap:14px;}
  .or-lead{margin:0;font-size:13px;line-height:1.75;color:#475569;}
  .or-steps{margin:0;padding-left:20px;font-size:13px;line-height:1.95;color:#475569;}
  .or-steps a{color:#2563eb;}
  .or-steps code{padding:1px 5px;border-radius:4px;background:#f1f5f9;font-size:12px;}
  .or-acts{display:flex;gap:10px;flex-wrap:wrap;}
  .or-hint{margin:0;font-size:12.5px;line-height:1.6;color:#7b8798;min-height:1px;}
  .or-state{margin:0;font-size:12.5px;line-height:1.6;padding:7px 11px;border-radius:8px;background:#f4f6f9;color:#5b6675;}
  .or-state.on{background:#eefaf1;color:#15803d;}
  .or-state.off{background:#fdf4ec;color:#b45309;}
  .or-hint.err{color:#c0392b;}
  .or-hint.ok{color:#15803d;}
  .or-tip{margin:0;font-size:11.5px;line-height:1.7;color:#94a3b8;}
  .modal-x:hover{background:#f1f5f9;color:#475569;}

  /* ===== 会员管理 ===== */
  /* ---- 会员管理（参考 shadcn-admin 的数据面板布局） ---- */
  .adm-modal{width:min(960px,96vw);}
  .adm-sub{margin:4px 0 0;font-size:12px;color:var(--ink3);line-height:1.5;}
  .adm-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;}
  .adm-stat{padding:12px 14px;border:1px solid var(--line-soft);border-radius:12px;background:#fff;}
  .adm-stat b{display:block;font-size:22px;font-weight:700;color:var(--ink);line-height:1.2;font-variant-numeric:tabular-nums;}
  .adm-stat span{display:block;margin-top:3px;font-size:11px;color:var(--ink3);}
  .adm-stat.ok b{color:var(--blue);}
  .adm-stat.warn b{color:#b45309;}
  .adm-create{padding:14px;background:#f8fafc;border:1px solid #e8eef5;border-radius:12px;}
  .adm-create-head{margin-bottom:10px;font-size:12px;font-weight:600;color:var(--ink2);letter-spacing:.02em;}
  .adm-create-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:8px;align-items:end;}
  .adm-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .adm-field{display:flex;flex-direction:column;gap:5px;}
  .adm-field label{font-size:11px;color:#94a3b8;}
  .adm-field input,.adm-field select{padding:8px 10px;font:inherit;font-size:12.5px;color:#334155;border:1px solid #cbd5e1;border-radius:8px;outline:none;background:#fff;width:100%;}
  .adm-field input:focus,.adm-field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--ring);}
  .adm-toolbar{display:flex;align-items:center;gap:10px;margin:14px 0 8px;}
  .adm-toolbar input{flex:0 0 240px;padding:7px 11px;font:inherit;font-size:12.5px;color:#334155;border:1px solid #cbd5e1;border-radius:9px;outline:none;background:#fff;}
  .adm-toolbar input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--ring);}
  .adm-count{font-size:11.5px;color:var(--ink3);}
  .adm-table-wrap{border:1px solid var(--line-soft);border-radius:12px;overflow:auto;background:#fff;}
  .adm-table{width:100%;border-collapse:collapse;font-size:12.5px;}
  .adm-table th{text-align:left;padding:10px 12px;font-size:11px;font-weight:500;color:var(--ink3);background:#f8fafc;border-bottom:1px solid #eef2f7;white-space:nowrap;position:sticky;top:0;}
  .adm-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9;color:#334155;vertical-align:middle;}
  .adm-table tbody tr:last-child td{border-bottom:0;}
  .adm-table tbody tr:hover td{background:#fafbfe;}
  .adm-name{font-weight:500;color:#0f172a;white-space:nowrap;}
  .adm-ava{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-right:8px;border-radius:8px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;font-size:11px;font-weight:600;vertical-align:middle;}
  .adm-usage{display:flex;align-items:center;gap:8px;min-width:120px;}
  .adm-usage span{font-size:11.5px;color:var(--ink2);font-variant-numeric:tabular-nums;white-space:nowrap;}
  .adm-usage i{flex:0 0 64px;height:5px;border-radius:999px;background:#eef2f7;overflow:hidden;}
  .adm-usage b{display:block;height:100%;border-radius:999px;background:var(--blue);}
  .adm-usage b.full{background:#dc2626;}
  .adm-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10.5px;}
  .adm-tag.on{color:#15803d;background:#f0fdf4;}
  .adm-tag.off{color:#b91c1c;background:#fef2f2;}
  .adm-tag.exp{color:#b45309;background:#fffbeb;}
  .adm-tag.admin{color:#9d174d;background:#fdf2f8;}
  .adm-row-actions{display:flex;gap:5px;flex-wrap:wrap;}
  .adm-row-actions button{padding:3px 8px;font:inherit;font-size:11px;color:#475569;background:#fff;border:1px solid #cbd5e1;border-radius:7px;cursor:pointer;}
  .adm-row-actions button:hover{background:#f1f5f9;}
  .adm-row-actions button.danger{color:#b91c1c;border-color:#fecaca;}
  .adm-empty{padding:28px;text-align:center;font-size:12.5px;color:var(--ink3);}
  .adm-note{margin:0 0 12px;font-size:11.5px;line-height:1.6;color:var(--ink3);}
  .spec-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;}
  .spec-field label{font-size:11.5px;color:#64748b;font-weight:600;}
  .spec-field textarea{width:100%;box-sizing:border-box;resize:vertical;font-family:inherit;font-size:13px;line-height:1.7;color:#0f172a;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#fff;min-height:52px;}
  .spec-field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--ring);}
  .spec-foot{display:flex;align-items:center;gap:8px;margin-top:4px;}
  .spec-hint{font-size:11.5px;color:#22a06b;}

  /* ===== 封面工作室 ===== */
  .cover-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start;}
  #coverModal .modal{max-width:1080px;}
  .cover-preview{display:flex;align-items:center;justify-content:center;padding:16px;background:#f1f5f9;border-radius:12px;min-height:320px;}
  .cover-preview canvas{max-width:100%;max-height:52vh;border-radius:6px;box-shadow:0 12px 32px rgba(15,23,42,.18);}
  /* 长图预览：容器内滚动，图按宽度铺满，不把弹窗撑到无限高 */
  .cover-preview.long{align-items:flex-start;justify-content:center;max-height:64vh;overflow-y:auto;}
  .cover-preview.long canvas{max-height:none;width:100%;height:auto;}
  .cover-side{display:flex;flex-direction:column;gap:10px;}
  .cover-side label{font-size:11px;color:#94a3b8;}
  .cover-side input,.cover-side select,.cover-side textarea{padding:8px 10px;font:inherit;font-size:12.5px;color:#334155;border:1px solid #cbd5e1;border-radius:8px;outline:none;background:#fff;width:100%;}
  .cover-side textarea{min-height:58px;resize:vertical;}
  .cover-styles{display:flex;gap:6px;}
  .cover-styles button{flex:1;padding:7px 4px;font:inherit;font-size:11px;color:#475569;background:#fff;border:1px solid #cbd5e1;border-radius:8px;cursor:pointer;}
  .cover-styles button.on{color:#1d4ed8;border-color:#2563eb;background:#eff6ff;font-weight:600;}
  .cover-dl{position:sticky;bottom:-18px;z-index:3;display:flex;gap:8px;margin:2px -2px 0;padding:9px 2px;background:#fff;border-top:1px solid #eef2f7;}
.cover-dl .btn{flex:1;}
  .cover-dl .btn{flex:1;padding:9px 10px;font-size:12.5px;text-align:center;}
  .cover-tip{margin:0;font-size:10.5px;line-height:1.55;color:#94a3b8;}
  /* 2583 文字海报弹窗：左侧预览锁死在视口里，滚鼠标只滚右侧控件区。
     modal 自身不滚，cover-side 是唯一滚动容器；长图预览保留自己的内部滚动。 */
  #posterModal .modal{height:calc(var(--vis-h, 100vh) - 40px);max-height:calc(var(--vis-h, 100vh) - 40px);
    display:flex;flex-direction:column;overflow:hidden;}
  #posterModal .modal-head{flex:none;position:static;}
  #posterModal .modal-body{flex:1;min-height:0;overflow:hidden;padding-bottom:16px;}
  #posterModal .cover-layout{height:100%;min-height:0;align-items:stretch;gap:18px;}
  #posterModal .cover-preview{height:100%;min-height:0;max-height:none;overflow:hidden;
    align-self:stretch;overscroll-behavior:contain;}
  #posterModal .cover-preview canvas{max-height:100%;}
  #posterModal .cover-preview.long{overflow-y:auto;}
  #posterModal .cover-preview.long canvas{max-height:none;}
  #posterModal .cover-side{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;
    padding-right:6px;scrollbar-gutter:stable;}
  #posterModal .cover-side .cover-dl{bottom:0;}
  @media (max-width:760px){
    /* 窄屏回到自然文档流：预览在上、控件在下，整块跟着页面滚 */
    #posterModal .modal{height:auto;max-height:calc(var(--vis-h, 100vh) - 24px);display:block;overflow:auto;}
    #posterModal .modal-head{position:sticky;top:0;}
    #posterModal .modal-body{overflow:visible;}
    #posterModal .cover-layout{height:auto;display:flex;flex-direction:column;gap:12px;}
    #posterModal .cover-preview{height:52vh;min-height:260px;max-height:52vh;overflow:hidden;}
    #posterModal .cover-preview.long{overflow-y:auto;}
    #posterModal .cover-side{height:auto;overflow:visible;padding-right:0;}
  }
  /* 配图弹窗：顶部用途键横排 + 下方左右分栏（左控件 / 右预览），整块锁进视口 */
  .cover-layout.cover-split{display:flex;flex-direction:column;gap:12px;max-height:calc(var(--vis-h, 100vh) - 150px);}
  .cover-split .cv-top{border-bottom:1px solid #eef2f7;padding-bottom:11px;}
  .cover-split .cv-top>label{font-size:12px;}
  .cover-split .cv-purpose{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px;}
  .cover-split .cv-purpose button{flex:1;min-width:0;padding:9px 6px;font-size:12px;}
  .cover-split-body{display:flex;gap:16px;flex:1;min-height:0;}
  .cover-split-left{width:344px;flex:0 0 344px;overflow-y:auto;padding-right:8px;display:flex;flex-direction:column;}
  .cover-split-right{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px;min-height:0;}
  /* 预览篮：只是垫在画面后面的工作台底色（棋盘格），导出图里没有这一层 */
  .cover-split .cover-preview{flex:1;min-height:0;padding:12px;border-radius:12px;position:relative;
    background-color:#eef2f7;
    background-image:linear-gradient(45deg,#e2e8f0 25%,transparent 25%,transparent 75%,#e2e8f0 75%),
                     linear-gradient(45deg,#e2e8f0 25%,transparent 25%,transparent 75%,#e2e8f0 75%);
    background-size:18px 18px;background-position:0 0,9px 9px;}
  .cover-split .cover-preview canvas{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:6px;box-shadow:0 10px 26px rgba(15,23,42,.22);}
  /* 框选擦除的选区层：盖在画面上，跟着 canvas 的实际显示尺寸走 */
  .cover-pick{position:absolute;inset:0;cursor:crosshair;display:none;}
  .cover-pick.on{display:block;}
  .cover-pick-rect{position:absolute;border:1px solid #38bdf8;background:rgba(56,189,248,.16);
    box-shadow:0 0 0 9999px rgba(15,23,42,.32);display:none;pointer-events:none;}
  .cover-pick-rect.on{display:block;}
  .cover-split .cover-dl{position:static;border-top:0;padding:0;margin:0;background:transparent;}
  .cover-split .cover-dl .btn{flex:1;}
  @media (max-width:760px){
    .cover-split-body{flex-direction:column;}
    .cover-split-left{width:auto;flex:none;overflow:visible;padding-right:0;}
    .cover-split .cover-preview{max-height:52vh;}
  }
  /* 配图弹窗：分区块 + 用途胶囊 */
  .cv-block{display:flex;flex-direction:column;gap:7px;padding:11px 0 12px;border-top:1px solid #eef2f7;}
.cv-block:first-child{border-top:0;padding-top:2px;}
.cv-block>label{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;font-weight:600;color:#334155;}
.cv-no{flex:none;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#eef2ff;color:#4f46e5;font-size:10px;font-weight:700;}
.cv-block>label small{font-weight:400;color:#94a3b8;}
  .cv-block:first-child{padding-top:0;border-top:0;}
  .cv-purpose{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.cv-purpose button{white-space:nowrap;}
  .cv-purpose button{padding:8px 4px;font:inherit;font-size:11.5px;line-height:1.3;color:#475569;background:#fff;border:1px solid #cbd5e1;border-radius:9px;cursor:pointer;}
  .cv-purpose button:hover{border-color:#94a3b8;}
  .cv-purpose button.on{color:#1d4ed8;border-color:#2563eb;background:#eff6ff;font-weight:600;}
  .cv-tip{margin:0;font-size:10.5px;line-height:1.55;color:#94a3b8;}
  .cv-check{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#475569 !important;cursor:pointer;}
  .cv-check input{width:auto;margin:0;}
  .cv-row{display:flex;gap:6px;align-items:center;}
  .cv-row input{flex:1;min-width:0;}
  /* 配图升级：方向候选缩略图 + 设计体检（2026-10-27 吸收 huashu-design） */
  .cover-split .cover-dirs{display:flex;flex-wrap:wrap;gap:10px;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;}
  .cover-split .cover-dirs .dir-cap{width:100%;font-size:11px;color:#64748b;margin-bottom:2px;}
  .cover-split .cover-dirs canvas{width:188px;height:auto;border-radius:8px;border:2px solid transparent;cursor:pointer;box-shadow:0 4px 14px rgba(15,23,42,.18);}
  .cover-split .cover-dirs canvas:hover{border-color:#2563eb;}
  .cover-split .cover-dirs canvas.on{border-color:#2563eb;}
  .cover-split .cover-check{padding:10px 12px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;}
  .cover-split .cover-check .ck-row{font-size:13px;font-weight:600;margin-bottom:4px;}
  .cover-split .cover-check .ck-row.ck-err{color:#b91c1c;}
  .cover-split .cover-check .ck-row.ck-warn{color:#b45309;}
  .cover-split .cover-check .ck-item{font-size:12px;color:#7c2d12;margin:2px 0;line-height:1.5;}
  .cover-split .cover-check .ck-acts{display:flex;gap:8px;margin-top:8px;}
  .cv-row-quiet{gap:6px;}
  .cv-inline-note{font-size:10.5px;color:#94a3b8;flex:none;}
  .wimg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-height:260px;overflow-y:auto;padding:2px;}
  .wimg-grid img{width:100%;height:86px;object-fit:cover;border-radius:8px;cursor:pointer;border:2px solid transparent;display:block;background:#f1f5f9;}
  .wimg-grid img:hover{border-color:#2563eb;}
  .wimg-glabel{grid-column:1/-1;font-size:10.5px;line-height:1.5;color:#64748b;padding:2px 1px 0;border-top:1px dashed #e2e8f0;margin-top:2px;}
  .wimg-glabel:first-child{border-top:0;margin-top:0;}
  .wimg-glabel b{color:#0f172a;font-weight:600;}
  .wimg-glabel .wimg-site{color:#2563eb;}
  .wimg-grid img.on{border-color:#2563eb;box-shadow:0 0 0 2px var(--ring);}
  .wimg-grid img.wimg-dead{display:none;}
  /* 文字海报排版微调：字号 / 行距 / 标题字号 / 对齐 / 加粗，聊天截图模式下整组隐藏 */
  .poster-style{display:flex;flex-direction:column;gap:7px;padding:10px;
    border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;}
  .poster-style[hidden]{display:none;}
  .poster-style .ps-title{font-size:11px;font-weight:600;color:#475569;}
  .ps-row{display:grid;grid-template-columns:60px 1fr 44px;gap:6px;align-items:center;}
  .ps-row label{font-size:11px;color:#64748b;}
  .ps-row input[type=range]{width:100%;height:18px;padding:0;border:0;background:transparent;accent-color:var(--blue);}
  .ps-row output{font-size:11px;color:#475569;text-align:right;}
  .ps-row select{grid-column:2 / 4;width:100%;}
  .ps-check{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#475569;}
  .ps-check input{width:auto;}
  /* 2582 正文排版（点画布选中段落）/ 图片背景：与微调组同一套容器语言 */
  .poster-editor,.poster-bg{display:flex;flex-direction:column;gap:7px;padding:10px;
    border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;}
  .poster-editor[hidden],.poster-bg[hidden]{display:none;}
  .poster-editor .ps-title,.poster-bg .ps-title{font-size:11px;font-weight:600;color:#475569;}
  .pe-sel{padding:6px 8px;border-radius:6px;background:#eef2f7;color:#64748b;
    font-size:11px;line-height:1.5;min-height:28px;}
  .pe-sel.on{background:#e8f0ff;color:#1d4ed8;font-weight:600;}
  .poster-editor .rich-bar{margin-bottom:0;}
  .poster-editor .rich-bar .rich-tip{display:none;}
  #posterSelText{min-height:64px;max-height:150px;font-size:12px;line-height:1.65;}
  #posterSelText:disabled{background:#f1f5f9;color:#94a3b8;}
  .pe-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .pe-tip{flex:1;min-width:120px;font-size:10.5px;color:#94a3b8;line-height:1.4;}
  .bg-thumb{border-radius:7px;overflow:hidden;border:1px solid #e2e8f0;background:#fff;}
  .bg-thumb img{display:block;width:100%;height:92px;object-fit:cover;}
  .bg-acts{display:flex;gap:6px;}
  .bg-acts .mini{flex:1;}
  .bg-tip{margin:0;font-size:10.5px;color:#94a3b8;line-height:1.45;}
  #posterCanvas{cursor:pointer;}
  .poster-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;color:#475569;}
  .poster-nav .mini{padding:6px 10px;}
  @media (max-width:720px){
    .cover-layout{grid-template-columns:1fr;}
    .adm-create-grid{grid-template-columns:1fr 1fr;}
    .adm-stats{grid-template-columns:1fr 1fr;}
    .adm-grid{grid-template-columns:1fr;}
  }
  .chapter p:last-child{margin-bottom:0;}
  #novelTitle{margin:0 0 16px;font-size:17px;font-weight:600;color:var(--ink);letter-spacing:.02em;}
  .prog{margin-bottom:14px;}
  .prog .bar{height:6px;background:#eef2f7;border-radius:3px;overflow:hidden;}
  .prog .bar>i{display:block;height:100%;width:0;background:var(--blue);transition:width .35s;}
  .prog .txt{margin:7px 0 0;font-size:12.5px;color:var(--ink3);}
  .divider{height:1px;background:var(--line);margin:18px 0 2px;}
  .export .acts{margin-top:14px;}
  .export .hint{margin:10px 0 0;}
  .export-bottom .acts{margin-top:0;}
  .export-bottom .hint{margin:10px 0 0;}

  /* 在线阅读器 */
  .out-tools{display:flex;gap:8px;}
  .mini:disabled{opacity:.45;cursor:not-allowed;}

  /* 敏感词替换面板 */
  .repl-panel{border:1px solid var(--line);border-radius:12px;padding:12px;margin:12px 0;background:var(--bg,#fff);}
  .repl-head{display:flex;justify-content:space-between;align-items:center;}
  .repl-hint{font-size:12px;color:var(--ink3);margin:6px 0 2px;line-height:1.6;}
  .repl-words{margin:6px 0 2px;}
  .repl-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line);flex-wrap:wrap;}
  .repl-word{font-weight:600;color:#b91c1c;}
  .repl-word i{font-style:normal;font-weight:400;font-size:12px;color:var(--ink3);}
  .repl-arrow{color:var(--ink3);}
  .repl-to{color:#047857;font-weight:500;}
  .repl-edit{display:flex;gap:6px;padding:6px 0;align-items:center;}
  .repl-input{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:13px;}
  .repl-acts{display:flex;gap:8px;margin:10px 0 4px;flex-wrap:wrap;}
  .repl-dict{margin-top:8px;border-top:1px solid var(--line);padding-top:8px;}
  .repl-dict-note{font-size:11.5px;color:var(--ink3);}
  .repl-dict-list{max-height:160px;overflow-y:auto;margin-top:4px;}
  .repl-dict-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;font-size:12.5px;}
  .repl-dict-pair{color:var(--ink);}
  .repl-empty{color:var(--ink3);font-size:12.5px;padding:4px 0;}
  .reader-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
  .reader-kicker{font-size:12px;color:var(--ink3);letter-spacing:.03em;}
  .reader-title{margin:8px 0 18px;font-size:19px;font-weight:600;text-align:center;color:var(--ink);letter-spacing:.02em;}
  .reader-body{min-height:440px;max-height:560px;overflow-y:auto;padding:2px 6px 2px 2px;}
  .reader-body::-webkit-scrollbar{width:8px;}
  .reader-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px;}
  .reader-body h3{margin:0 0 15px;font-size:14px;font-weight:600;color:var(--blue);text-align:center;letter-spacing:.04em;}
  .reader-body p{margin:0 0 15px;font-size:15px;line-height:1.95;color:#334155;text-indent:2em;}
  .reader-body p:last-child{margin-bottom:0;}
  .reader-foot{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);}
  .page-ind{font-size:13px;color:var(--ink2);font-variant-numeric:tabular-nums;}

/* ===== 模块导航 + 图片/声音/视频三模块（2026-10-28） ===== */
.modnav{position:sticky;top:0;z-index:45;display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  max-width:1600px;margin:0 auto 14px;padding:8px 12px;background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);border:1px solid var(--line-soft);border-radius:14px;
  box-shadow:0 6px 20px rgba(15,23,42,.05);}
/* 导航条右侧：账号与全局操作，与左侧模块按钮同一层，登录后只有这一条顶栏 */
.modnav-acts{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
/* 站点入口下拉：一站一链接，新标签打开，免记网址 */
.site-links{position:relative;display:inline-flex;}
.site-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;background:#fff;
  border:1px solid var(--line-soft);border-radius:12px;box-shadow:0 14px 34px rgba(15,23,42,.14);
  padding:6px;display:flex;flex-direction:column;z-index:80;animation:paneIn .18s var(--ease);}
.site-menu a{padding:9px 12px;border-radius:8px;font-size:13px;color:var(--ink2);cursor:pointer;}
.site-menu a:hover{background:#f3f7fd;color:var(--blue);}
/* 每个模块一枚专属色标，激活的按钮整颗染上模块色 */
.modbtn{--mc:#2563eb;--mc2:#1d4ed8;border:1px solid transparent;background:transparent;color:var(--ink2);padding:7px 14px;
  border-radius:999px;font-size:13.5px;cursor:pointer;transition:background .25s var(--ease),color .25s var(--ease);
  display:inline-flex;align-items:center;gap:7px;}
.modbtn::before{content:"";width:8px;height:8px;border-radius:3px;background:var(--mc);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--mc) 16%,transparent);}
.modbtn[data-mod="image"]{--mc:#7c3aed;--mc2:#6d28d9;}
.modbtn[data-mod="intel"]{--mc:#db2777;--mc2:#be185d;}
.modbtn[data-mod="audio"]{--mc:#0d9488;--mc2:#0f766e;}
.modbtn[data-mod="video"]{--mc:#ea580c;--mc2:#c2410c;}
.modbtn:hover{background:#f1f5f9;color:var(--ink);}
.modbtn:active{transform:scale(.98);}
.modbtn.on{background:linear-gradient(135deg,var(--mc),var(--mc2));color:#fff;
  box-shadow:0 3px 12px -2px var(--mc);}
.modbtn.on::before{background:#fff;box-shadow:none;}
.modbtn .mod-tag{font-size:10.5px;margin-left:2px;padding:1px 5px;border-radius:5px;background:rgba(15,23,42,.08);}
.modbtn.on .mod-tag{background:rgba(255,255,255,.22);}
/* 外链型 modbtn（截图工坊）：同一套外壳，但不参与 tab 切换 */
.modbtn.modlink{display:inline-flex;align-items:center;text-decoration:none;white-space:nowrap;}
.modbtn.modlink::before{content:none;}
.modbtn.modlink:hover{color:var(--mc);border-color:var(--line);background:#fff;}
.pane{max-width:1600px;margin:0 auto;}
/* 模块切换显现：上移 24px + 淡入，基准曲线，只在该次切换播一次 */
.pane:not([hidden]){animation:paneIn .45s var(--ease);}
@keyframes paneIn{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.pane:not([hidden]){animation:none;}}
.mod-note{font-size:12px;color:var(--ink3);}
.media-grid{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:22px;margin-top:16px;align-items:start;}
@media (max-width:1080px){.media-grid{grid-template-columns:1fr;}}
.media-left{min-width:0;}
.media-right{min-width:0;}
.field-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:8px 10px;
  background:#f8fafc;border:1px solid #e8eef5;border-radius:10px;}
.field-row .lbl-sm{font-size:12px;color:var(--ink3);white-space:nowrap;}
.field-row select{max-width:190px;}
.field-row input[type=text]{flex:1;min-width:120px;}
.lbl-sm{font-size:12.5px;font-weight:500;color:var(--ink2);}
.val{font-size:12px;color:var(--ink3);font-variant-numeric:tabular-nums;min-width:42px;}
input[type=text],input[type=password]{width:100%;padding:9px 11px;border:1px solid #cbd5e1;border-radius:10px;
  font:inherit;color:#1e293b;outline:none;background:#fff;}
input[type=text]:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--ring);}
input[type=range]{flex:1;min-width:90px;accent-color:var(--blue);}
.canvas-wrap{background:#f1f5f9;border:1px solid var(--line);border-radius:12px;padding:12px;
  display:flex;align-items:center;justify-content:center;overflow:hidden;}
#imgCanvas{max-width:100%;height:auto;border-radius:8px;box-shadow:0 8px 24px rgba(15,23,42,.14);background:#0b1020;}
.canvas-meta{margin:8px 0 0;font-size:12px;color:var(--ink3);text-align:right;font-variant-numeric:tabular-nums;}
.hint-inline{font-size:11.5px;color:var(--ink3);}

/* 声音工坊分段表 */
.seg-head{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--ink2);
  padding-bottom:8px;border-bottom:1px solid var(--line);}
.seg-sum{color:var(--ink3);font-variant-numeric:tabular-nums;}
.seg-list{margin-top:10px;max-height:430px;overflow-y:auto;padding-right:4px;}
.seg-row{display:flex;gap:10px;align-items:flex-start;padding:8px 9px;border:1px solid var(--line);
  border-radius:10px;margin-bottom:7px;background:#fff;transition:background .15s,border-color .15s;}
.seg-row.on{background:#eff6ff;border-color:#bfdbfe;}
.seg-no{flex:0 0 26px;font-size:12px;color:var(--ink3);font-variant-numeric:tabular-nums;padding-top:2px;}
.seg-txt{flex:1;min-width:0;font-size:13.5px;line-height:1.7;color:var(--ink);word-break:break-word;}
.seg-meta{flex:0 0 auto;font-size:11.5px;color:var(--ink3);font-variant-numeric:tabular-nums;text-align:right;padding-top:2px;}
.seg-list .empty{color:var(--ink3);font-size:12.5px;text-align:center;padding:26px 0;}

/* 视频流水线 */
.pipe-setup{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;}
/* 五栏固定宽度 + 横向滚动：窄屏时左右滑得动，滚动条常显做提示 */
.pipe{display:flex;gap:18px;margin-top:16px;overflow-x:auto;padding:4px 2px 12px;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;}
.pipe::-webkit-scrollbar{height:9px;}
.pipe::-webkit-scrollbar-track{background:#eef2f7;border-radius:999px;}
.pipe::-webkit-scrollbar-thumb{background:#c3cddb;border-radius:999px;}
.pipe::-webkit-scrollbar-thumb:hover{background:#9fb0c4;}
.pipe-col{position:relative;flex:0 0 300px;display:flex;flex-direction:column;min-height:340px;
  border:1px solid var(--line);border-radius:14px;background:#fff;scroll-snap-align:start;
  box-shadow:0 1px 2px rgba(15,23,42,.04);}
/* 列与列之间的衔接箭头 */
.pipe-col + .pipe-col::after{content:"";position:absolute;left:-14px;top:24px;width:9px;height:9px;
  border-top:2.5px solid #a8b6c9;border-right:2.5px solid #a8b6c9;transform:rotate(45deg);}
/* 五道工序各一色：蓝 → 紫 → 青 → 橙 → 玫红 */
.pipe-col[data-step="1"]{--pc:#2563eb;--pc-soft:#eff6ff;}
.pipe-col[data-step="2"]{--pc:#7c3aed;--pc-soft:#f5f3ff;}
.pipe-col[data-step="3"]{--pc:#0d9488;--pc-soft:#f0fdfa;}
.pipe-col[data-step="4"]{--pc:#ea580c;--pc-soft:#fff7ed;}
.pipe-col[data-step="5"]{--pc:#e11d48;--pc-soft:#fff1f2;}
.pipe-col[data-step="6"]{--pc:#0891b2;--pc-soft:#ecfeff;}
.pipe-head{display:flex;align-items:center;gap:8px;padding:10px 12px;
  border-bottom:1px solid var(--line);background:var(--pc-soft,#f1f5f9);
  border-radius:14px 14px 0 0;}
.pipe-no{width:20px;height:20px;border-radius:6px;background:var(--pc,#2563eb);color:#fff;font-size:12px;
  display:flex;align-items:center;justify-content:center;font-weight:600;}
.pipe-name{font-size:13.5px;font-weight:600;color:var(--ink);}
.pipe-name::after{content:"";display:block;width:26px;height:2px;border-radius:2px;background:var(--pc,#2563eb);margin-top:2px;opacity:.55;}
.pipe-state{margin-left:auto;font-size:11px;padding:2px 8px;border-radius:999px;background:#fff;color:var(--ink3);border:1px solid var(--line-soft);}
.pipe-state.ok{background:#dcfce7;color:#166534;border-color:#bbf7d0;}
.pipe-state.warn{background:#fef3c7;color:#92400e;border-color:#fde68a;}
.pipe-state.bad{background:#fee2e2;color:#b91c1c;border-color:#fecaca;}
.pipe-body{flex:1;padding:10px 12px;font-size:12.5px;line-height:1.75;color:var(--ink2);overflow-y:auto;max-height:420px;}
.pipe-body .empty{color:var(--ink3);}
.pipe-body b{color:var(--ink);}
.pipe-body .shot{border-bottom:1px dashed var(--line);padding:6px 0;}
.pipe-body .shot:last-child{border-bottom:0;}
.pipe-body .bad{color:#b91c1c;}
.pipe-body pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;margin:0;font-size:12px;color:var(--ink2);}
.pipe-foot{padding:8px 12px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap;}
.pipe-foot .mini{font-size:12px;}

/* 第 6 栏 · 成片提交 / 进度 / 成品 */
.vd6{font-size:12.5px;line-height:1.7;color:var(--ink2);}
.vd6-row{padding:3px 0;}
.vd6-label{color:var(--ink3);font-size:11.5px;}
.vd6-bar{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin:6px 0;}
.vd6-fill{height:100%;width:0;background:linear-gradient(90deg,#0891b2,#22d3ee);transition:width .4s var(--ease);}
.vd6 #vidStage{font-weight:600;color:var(--ink);}
.vd6-tip{color:var(--ink3);font-size:11.5px;margin-top:6px;}
.vd6 code{background:#f1f5f9;padding:1px 6px;border-radius:5px;font-size:11.5px;color:#0e7490;user-select:all;}
.vd6-result video{display:block;background:#000;}

/* Genjutsu 替换面板（第 6 栏） */
.genj{border-top:1px dashed var(--line);padding:8px 12px;font-size:12.5px;color:var(--ink2);background:var(--pc-soft);}
.genj-h{font-weight:700;color:var(--pc);margin-bottom:6px;}
.genj-row{display:flex;align-items:flex-start;gap:8px;padding:5px 0;flex-wrap:wrap;}
.genj-lbl{flex:0 0 64px;color:var(--ink3);font-size:11.5px;line-height:1.4;}
.genj-lbl small{display:block;color:#94a3b8;font-size:10px;}
.seg{display:inline-flex;flex-wrap:wrap;gap:6px;}
.seg button{border:1px solid #cbd5e1;background:#fff;color:var(--ink2);border-radius:999px;padding:4px 10px;font-size:11.5px;cursor:pointer;}
.seg button.on{background:var(--pc);border-color:var(--pc);color:#fff;}
.chips{display:flex;flex-wrap:wrap;gap:6px;width:100%;}
.chips button{border:1px solid #cbd5e1;background:#fff;border-radius:8px;padding:4px 9px;font-size:11.5px;cursor:pointer;color:var(--ink2);}
.chips button.on{background:var(--pc);border-color:var(--pc);color:#fff;}
.genj-in{flex:1 1 200px;min-width:160px;height:28px;border:1px solid #d3dce6;border-radius:8px;padding:2px 8px;font-size:12px;}
.genj-sel{height:28px;border:1px solid #d3dce6;border-radius:8px;font-size:12px;padding:1px 4px;}
.sw{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;color:var(--ink2);}
.up{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.up-btn{border:1px dashed var(--pc);color:var(--pc);background:#fff;border-radius:8px;padding:4px 10px;font-size:11.5px;cursor:pointer;}
.up-btn.sm{padding:3px 8px;font-size:11px;}
.up-btn:hover{background:var(--pc-soft);}
.thumbs{display:flex;flex-wrap:wrap;gap:6px;}
.thumb{position:relative;width:48px;height:48px;border-radius:6px;overflow:hidden;border:1px solid #e2e8f0;}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.thumb-x{position:absolute;top:0;right:0;width:16px;height:16px;line-height:14px;text-align:center;background:rgba(15,23,42,.6);color:#fff;border:none;border-radius:0 0 0 6px;cursor:pointer;font-size:12px;padding:0;}
.thumb-name{font-size:11px;color:var(--pc);background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:3px 8px;}
.genj-tip{color:var(--ink3);font-size:11px;margin-top:4px;line-height:1.5;}

  /* ===== 经营后台标签页（leoread 变现） ===== */
  .biz-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;}
  .biz-tab{padding:7px 16px;font:inherit;font-size:13px;color:var(--ink2);background:#fff;
    border:1px solid var(--line);border-radius:999px;cursor:pointer;transition:.25s var(--ease);}
  .biz-tab:hover{background:#f1f5f9;}
  .biz-tab.on{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;border-color:transparent;
    font-weight:500;box-shadow:0 2px 10px -2px var(--glow);}
  /* 经营分析：统计卡 / 走势条 / 排行 */
  .stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:4px 0 16px;}
  .stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;
    box-shadow:0 6px 18px rgba(15,23,42,.04);transition:transform .25s var(--ease);}
  .stat-card:hover{transform:translateY(-2px);}
  .stat-label{font-size:12px;color:var(--ink3);}
  .stat-value{font-size:26px;font-weight:700;margin-top:4px;color:var(--ink);}
  .stat-sub{font-size:11.5px;color:var(--ink3);margin-top:6px;}
  .stat-block{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:14px;}
  .stat-block h4{margin:0 0 12px;font-size:14px;color:var(--ink2);}
  .stat-bars{display:flex;align-items:flex-end;gap:8px;min-height:120px;}
  .stat-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;}
  .stat-bar i{display:block;width:100%;max-width:34px;border-radius:6px 6px 2px 2px;
    background:linear-gradient(180deg,var(--blue),var(--blue2));opacity:.85;}
  .stat-bar:hover i{opacity:1;}
  .stat-bar-v{font-size:10.5px;color:var(--ink2);}
  .stat-bar-d{font-size:10.5px;color:var(--ink3);}
  .stat-line{font-size:13px;color:var(--ink2);margin:6px 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .biz-sub-h{margin:22px 0 10px;font-size:13.5px;color:var(--ink2);border-top:1px solid var(--line);padding-top:16px;}
  /* 链接拆解素材库（视频工坊）与图片工坊素材库 */
  .decon-item{border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px 16px;margin-top:12px;}
  .decon-item h3{margin:0 0 10px;font-size:14.5px;}
  .decon-item h3 small{color:var(--ink3);font-weight:400;font-size:12px;}
  .decon-frames{display:flex;flex-wrap:wrap;gap:8px;}
  .decon-frames img{width:118px;height:66px;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:zoom-in;}
  .decon-audios{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-top:10px;}
  .decon-au{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink3);}
  .decon-au audio{height:32px;flex:1;min-width:0;}
  /* 声音工坊 · 字幕提取（v2588） */
  .aux-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 2px 2px;font-size:12px;}
  .aux-toolbar select{max-width:280px;}
  .aux-toolbar .hint-inline{flex:1;min-width:200px;}
  .aux-badge{display:inline-block;background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;
    border-radius:20px;padding:1px 8px;margin-left:6px;font-size:10.5px;}
  .aux-subs{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px;}
  .aux-tip,.aux-running,.aux-err,.aux-notice{margin:2px 0 8px;font-size:12px;color:var(--ink3);}
  .aux-running{color:var(--blue);}
  .aux-running span{color:var(--ink3);}
  .aux-err,.aux-notice.bad{color:#b91c1c;}
  .aux-notice{color:#047857;}
  .aux-subs-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;}
  .aux-subs-head b{font-size:12.5px;}
  .aux-src{background:#f1f5f9;color:var(--ink3);border-radius:20px;padding:1px 8px;font-size:10.5px;}
  .aux-subs-head .acts{margin-left:auto;gap:5px;}
  .aux-lines{margin-top:9px;max-height:150px;overflow-y:auto;overscroll-behavior:contain;
    border:1px solid var(--line);border-radius:10px;background:#fafbfc;}
  .aux-lines.open{max-height:520px;}
  .aux-line{display:flex;gap:10px;padding:5px 10px;border-bottom:1px solid #f1f5f9;font-size:12.5px;line-height:1.6;}
  .aux-line:last-child{border-bottom:none;}
  .aux-t{flex:0 0 42px;color:var(--blue);font-variant-numeric:tabular-nums;font-size:11.5px;padding-top:1px;}
  .aux-x{flex:1;min-width:0;color:var(--ink2);white-space:pre-wrap;word-break:break-word;}
  .aux-imp{margin:4px 0 2px;}
  .aux-imp label{display:block;margin-bottom:6px;}
  .aux-imp textarea{width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;}
  .aux-imp .acts{margin-top:8px;}
  .decon-rec{margin-top:10px;}
  .decon-rec summary{cursor:pointer;font-size:13px;color:var(--blue);}
  .decon-rec pre{white-space:pre-wrap;font-size:12.5px;background:#f8fafc;border:1px solid var(--line);
    border-radius:10px;padding:12px;max-height:420px;overflow-y:auto;}
  .img-lib{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
  .lib-thumb{width:128px;cursor:pointer;position:relative;border-radius:8px;overflow:hidden;border:1px solid var(--line);}
  .lib-thumb img{width:128px;height:80px;object-fit:cover;display:block;transition:transform .25s var(--ease);}
  .lib-thumb:hover img{transform:scale(1.06);}
  .lib-thumb span{position:absolute;left:0;right:0;bottom:0;font-size:10px;color:#fff;background:rgba(15,23,42,.55);padding:1px 5px;}
  .lib-del{position:absolute;top:3px;right:3px;width:20px;height:20px;padding:0;border:none;border-radius:50%;
    background:rgba(15,23,42,.66);color:#fff;font-size:14px;line-height:1;cursor:pointer;
    display:flex;align-items:center;justify-content:center;opacity:.82;z-index:2;transition:background .15s,opacity .15s;}
  .lib-del:hover{background:#b91c1c;opacity:1;}
  .lib-check{position:absolute;top:4px;left:4px;width:16px;height:16px;margin:0;cursor:pointer;z-index:2;
    accent-color:#db2777;background:#fff;border-radius:4px;}
  .lib-thumb.picked{border-color:#db2777;box-shadow:0 0 0 2px rgba(219,39,119,.18);}
  /* 推荐配图浮层：成稿 → 候选图 → 选中落盘 */
  .reco-sheet{position:fixed;z-index:220;left:50%;top:50%;transform:translate(-50%,-50%);
    width:min(920px,92vw);max-height:86vh;overflow:auto;background:var(--card,#fff);
    border:1px solid var(--line,#e5e7eb);border-radius:14px;box-shadow:0 24px 60px rgba(15,23,42,.28);
    padding:14px 16px 12px;}
  .reco-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
  .reco-head b{font-size:15px;}
  .reco-sub{flex:1;font-size:12px;color:var(--muted,#6b7280);}
  .reco-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;}
  .reco-item{position:relative;border:1px solid var(--line,#e5e7eb);border-radius:10px;overflow:hidden;cursor:pointer;}
  .reco-item img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;}
  .reco-item span{position:absolute;left:0;right:0;bottom:0;font-size:11px;color:#fff;
    background:rgba(15,23,42,.55);padding:3px 8px;text-align:center;}
  .reco-item:hover{border-color:#db2777;box-shadow:0 0 0 2px rgba(219,39,119,.18);}
  .reco-foot{display:flex;align-items:center;gap:8px;margin-top:10px;}
  .reco-foot .hint{flex:1;font-size:12px;color:var(--muted,#6b7280);}
  .lib-bar{display:flex;align-items:center;gap:8px;margin-top:10px;padding:7px 10px;border:1px dashed var(--line);
    border-radius:10px;background:#fdf2f8;font-size:12.5px;color:#9d174d;}
  .lib-bar button{margin-left:0;}
  .lib-bar #imgLibDelSel{margin-left:auto;background:#db2777;border-color:#db2777;color:#fff;}

  /* ---- 图片工坊：三块一屏（横排控件条 / 左素材库 / 右预览） ---- */
  .img-ctrl{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;padding:9px 11px;
    background:#f8fafc;border:1px solid #e8eef5;border-radius:12px;}
  .ctrl-item{display:flex;align-items:center;gap:6px;min-width:0;}
  .ctrl-item > .lbl-sm{font-size:12px;color:var(--ink3);white-space:nowrap;}
  .ctrl-item textarea{flex:1;min-width:0;min-height:0;height:30px;padding:5px 8px;font:inherit;font-size:12.5px;
    line-height:1.3;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#1e293b;resize:none;outline:none;}
  .ctrl-item textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--ring);}
  .ctrl-item textarea:disabled,
  .ctrl-item input:disabled,
  .ctrl-item select:disabled{opacity:.5;cursor:not-allowed;}
  /* 文字组：内容框吃剩余宽度，其余控件按内容宽排 */
  .ctrl-item.ctrl-txt{flex:1 1 560px;}
  .ctrl-item.ctrl-txt #imgTextValue{flex:1 1 150px;min-width:90px;}
  .ctrl-item.ctrl-txt #imgTextFont{max-width:74px;}
  .ctrl-item input[type=color]{width:26px;height:26px;padding:0;border:1px solid #cbd5e1;border-radius:7px;
    background:#fff;cursor:pointer;flex:0 0 auto;}
  .ctrl-item input[type=color]::-webkit-color-swatch-wrapper{padding:2px;}
  .ctrl-item input[type=color]::-webkit-color-swatch{border:none;border-radius:4px;}
  .num-wrap{display:inline-flex;align-items:center;gap:2px;background:#fff;border:1px solid #cbd5e1;
    border-radius:8px;padding:0 5px 0 0;}
  .num-wrap input{width:52px;border:0;background:transparent;padding:5px 2px 5px 7px;font-size:12.5px;
    color:#1e293b;outline:none;text-align:right;}
  .num-wrap input[readonly]{color:var(--ink3);}
  .num-wrap em{font-style:normal;font-size:10.5px;color:var(--ink3);}
  .num-wrap:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--ring);}
  .chk-mini{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink3);white-space:nowrap;cursor:pointer;}
  .chk-mini input{margin:0;accent-color:#db2777;}
  .x-sep{font-size:12px;color:var(--ink3);}
  .img-ctrl select{padding:5px 8px;font-size:12.5px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;
    color:#1e293b;max-width:230px;}
  .img-ctrl .mini{padding:5px 10px;font-size:12.5px;}
  .img-ctrl .mini.on{background:#db2777;border-color:#db2777;color:#fff;}
  .img-ctrl input[type=text]{padding:6px 9px;font-size:12.5px;border-radius:8px;}
  .ctrl-hint{margin:0;font-size:11.5px;color:var(--ink3);}
  .img-ctrl.collapsed{display:none;}
  #imgCtrlToggle{margin-left:auto;flex:0 0 auto;}
  #paneImage .title-row .mod-note{margin-left:auto;}

  .img-body{display:grid;grid-template-columns:290px minmax(0,1fr);gap:12px;margin-top:12px;align-items:stretch;}
  .lib-box{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:12px;
    background:#fbfcfe;padding:9px 10px;}
  .lib-box-head{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink3);}
  .lib-box-head b{font-size:13px;color:var(--ink);}
  .lib-box-head span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .lib-tools{display:flex;gap:5px;margin-top:7px;}
  .lib-tools .mini{flex:1 1 0;padding:3px 4px;font-size:11px;white-space:nowrap;}
  .lib-x{display:flex;gap:5px;margin-top:8px;}
  .lib-x input{flex:1;min-width:0;padding:6px 8px;font-size:12px;border-radius:8px;}
  .lib-x select{padding:5px 4px;font-size:11px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;}
  .lib-x .mini{padding:5px 8px;font-size:11.5px;flex:0 0 auto;}
  .lib-box .lib-bar{margin-top:8px;padding:3px 7px;font-size:11.5px;gap:5px;}
  .lib-box .lib-bar .mini{padding:2px 7px;font-size:11.5px;}
  .lib-box .img-lib{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;flex:1;min-height:0;overflow-y:auto;
    align-content:flex-start;padding-right:3px;scrollbar-width:thin;}
  .lib-box .img-lib::-webkit-scrollbar{width:8px;}
  .lib-box .img-lib::-webkit-scrollbar-track{background:#eef2f7;border-radius:999px;}
  .lib-box .img-lib::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;}
  .lib-box .img-lib .lib-thumb{width:calc(50% - 3px);}
  .lib-box .img-lib .lib-thumb img{width:100%;height:62px;}
  .lib-box .img-lib .lib-thumb span{font-size:9.5px;}
  .lib-box .img-lib .hint{width:100%;margin:4px 0;}
  .pv-box{display:flex;flex-direction:column;min-height:0;}
  .pv-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;}
  .pv-foot .canvas-meta{margin:0;margin-right:auto;}
  .pv-foot .img-acts{margin:0;padding:0;border:0;}

  @media (min-width:1081px) and (min-height:720px){
    #paneImage .card.img-card{height:calc(100vh - 170px);display:flex;flex-direction:column;
      overflow:hidden;padding:16px 18px;}
    #paneImage .title-row{padding-bottom:10px;}
    .img-ctrl{margin-top:10px;}
    .img-body{flex:1;min-height:0;}
    .lib-box{max-height:100%;}
    .pv-box .canvas-wrap{flex:1;min-height:0;padding:8px;align-items:flex-start;}
    .pv-box #imgCanvas{max-height:100%;max-width:100%;width:auto;height:auto;}
  }
  @media (max-width:1080px){
    .img-body{grid-template-columns:1fr;}
    .lib-box .img-lib{max-height:240px;}
  }

  /* ---- 视频工坊：折叠豆腐块（链接拆解 / 参数 / 流水线 / 指挥台） ---- */
  .video-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;}
  .blk{border:1px solid #dbe4f0;border-radius:11px;background:#f8fafc;padding:0 10px;min-width:0;}
  .blk-head{display:flex;align-items:center;gap:8px;min-height:34px;}
  .blk-title{flex:0 0 auto;font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap;
    padding-right:9px;border-right:1px solid #e2e8f0;}
  .blk-sum{flex:1;min-width:0;font-size:11.5px;color:var(--ink3);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .blk-head input[type=text]{flex:1 1 200px;min-width:110px;height:28px;padding:4px 9px;font-size:12.5px;
    border-radius:8px;}
  .blk-head select{flex:0 0 auto;height:28px;padding:3px 6px;font-size:12px;border-radius:8px;max-width:140px;}
  .blk-head .mini{flex:0 0 auto;height:28px;padding:3px 10px;font-size:12px;}
  .blk-head .hint-inline{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .blk-fold{flex:0 0 auto;border:1px solid #dbe4f0;background:#fff;color:var(--ink2);border-radius:8px;
    padding:3px 9px;font-size:11.5px;line-height:1.5;cursor:pointer;transition:.15s;}
  .blk-fold:hover{border-color:#bfdbfe;color:var(--blue);background:#f0f7ff;}
  .blk-body{padding:2px 0 8px;min-width:0;}
  .blk-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .blk-row input[type=text]{flex:1 1 240px;min-width:140px;padding:6px 9px;font-size:12.5px;border-radius:8px;}
  .blk-row select{padding:5px 8px;font-size:12.5px;border-radius:8px;max-width:150px;}
  .blk-row .mini{padding:5px 10px;font-size:12.5px;}
  .pipe-gate{display:flex;align-items:center;gap:8px;margin-top:8px;padding:6px 10px;
    border:1px solid var(--line);border-radius:9px;background:#fff;flex-wrap:wrap;}
  .blk-pipe .pipe{margin-top:2px;padding-bottom:2px;}
  .blk-pipe .pipe-col{flex:1 1 220px;min-width:220px;}
  .blk-pipe .pipe-col + .pipe-col::after{left:-13px;}
  .blk-pipe .blk-body{overflow-x:auto;}
  @media (min-width:1081px) and (min-height:720px){
    /* 一屏放完：整卡锁高；流水线按内容自适应（全部显示、不留白），指挥台吃剩余空间 */
    .video-card{height:calc(var(--vis-h, 100vh) - 88px);overflow:hidden;}
    .blk-decon,.blk-setup{flex:0 0 auto;}
    .blk-pipe{flex:0 0 auto;min-height:0;display:flex;flex-direction:column;}
    .blk-pipe .blk-body{flex:0 1 auto;min-height:0;overflow-y:auto;max-height:48vh;}
    .blk-pipe .pipe-col{min-height:0;}
    .blk-pipe .pipe-body{max-height:none;}
    .video-card .ai-console{flex:1 1 auto;height:auto;min-height:300px;max-height:none;margin:0;}
    /* 流水线收起时：剩下的高度照样交给指挥台 */
    .video-card:has(#pipeBody[hidden]) .blk-pipe{flex:0 0 auto;min-height:0;}
    .video-card:has(#pipeBody[hidden]) .blk-pipe .blk-body{display:none;}
  }

  /* ---- 视频工坊：AI 指挥台 ---- */
  .ai-console{display:grid;grid-template-columns:212px minmax(0,1fr);gap:10px;margin:10px 0 0;
    height:340px;padding:10px;border:1px solid #dbe4f0;border-radius:14px;background:#f8fafc;}
  .ai-side{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:12px;
    background:#fff;padding:8px;}
  .ai-side-head{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);}
  .ai-side-head b{flex:1;font-size:13px;}
  .ai-side-head .mini{padding:1px 8px;font-size:13px;line-height:1.4;}
  .ai-sessions{flex:1;min-height:0;overflow-y:auto;margin-top:8px;display:flex;flex-direction:column;gap:4px;
    scrollbar-width:thin;}
  .ai-sess{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:9px;cursor:pointer;
    font-size:12px;color:var(--ink2);border:1px solid transparent;}
  .ai-sess:hover{background:#f1f5f9;}
  .ai-sess.on{background:#eef2ff;border-color:#c7d2fe;color:#3730a3;}
  .ai-sess-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .ai-sess-del{flex:0 0 auto;border:0;background:transparent;color:#94a3b8;cursor:pointer;font-size:13px;
    line-height:1;padding:0 2px;opacity:0;}
  .ai-sess:hover .ai-sess-del{opacity:1;}
  .ai-sess-del:hover{color:#dc2626;}
  .ai-side-foot{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);}
  .ai-model{margin-top:4px;font-size:10.5px;color:#94a3b8;white-space:nowrap;overflow:hidden;
    text-overflow:ellipsis;}
  .ai-main{display:flex;flex-direction:column;min-height:0;gap:8px;}
  .ai-screen{flex:1;min-height:0;overflow-y:auto;border-radius:12px;background:#0b1020;color:#dbe4f5;
    padding:10px 12px;font-size:12.5px;line-height:1.62;scrollbar-width:thin;}
  .ai-screen:empty::before{content:"这里是思考与执行进度。左栏开新对话，下面直接说要它做什么。";
    color:#64748b;font-size:12px;}
  .ai-msg{margin:0 0 8px;}
  .ai-msg.u{color:#bfdbfe;}
  .ai-msg.u::before{content:"你 · ";color:#60a5fa;}
  .ai-msg.a{color:#e2e8f0;}
  .ai-msg.a::before{content:"指挥 · ";color:#34d399;}
  .ai-think{display:block;color:#64748b;font-size:11.5px;margin:2px 0 4px;white-space:pre-wrap;}
  .ai-stage{display:inline-block;margin-right:6px;padding:0 6px;border-radius:6px;
    background:#1e293b;color:#93c5fd;font-size:10.5px;line-height:16px;vertical-align:1px;}
  .ai-stage-sum{color:#94a3b8;font-weight:400;margin-left:2px;}
  .ai-stage-sum.bad{color:#fca5a5;}
  .ai-stop{display:block;margin:6px 0 2px;padding:6px 9px;border-left:3px solid #f87171;border-radius:4px;
    background:#3b1d1d;color:#fecaca;font-size:11.5px;line-height:1.6;white-space:pre-wrap;}
  /* 协作口令弹窗（2026-10-30）：改线上代码前填一次，存本地 */
  .ck-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
    background:rgba(15,23,42,.55);backdrop-filter:blur(2px);}
  .ck-card{width:min(420px,92vw);background:#fff;border-radius:12px;padding:18px 20px 14px;
    box-shadow:0 20px 50px rgba(15,23,42,.28);font-size:13px;color:#1f2937;}
  .ck-card h4{margin:0 0 8px;font-size:15px;font-weight:700;color:#111827;}
  .ck-card p{margin:0 0 10px;font-size:12.5px;line-height:1.7;color:#4b5563;}
  .ck-in{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid #d1d5db;border-radius:8px;
    font-size:13px;font-family:ui-monospace,Menlo,monospace;letter-spacing:.5px;outline:none;}
  .ck-in:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12);}
  .ck-row{display:flex;gap:8px;align-items:center;margin-top:10px;}
  .ck-e{display:block;margin-top:6px;font-size:12px;color:#b91c1c;min-height:14px;}
  .ck-tip{margin:6px 0 0 !important;font-size:11.5px !important;color:#9ca3af !important;}
  .ai-input .btn.stop{background:#dc2626;border-color:#dc2626;}
  .ai-input .btn.stop:hover{background:#b91c1c;border-color:#b91c1c;}
  .ai-act{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;
    color:#86efac;margin:3px 0;white-space:pre-wrap;word-break:break-all;}
  .ai-act.err{color:#fca5a5;}
  .ai-act.done{color:#7dd3fc;}
  .ai-patch{display:block;border:1px solid #334155;border-radius:9px;padding:8px 10px;margin:6px 0;
    background:#111c33;font-size:12px;}
  .ai-patch b{color:#fde68a;}
  .ai-patch pre{margin:6px 0;padding:6px 8px;background:#0a1526;border-radius:7px;overflow:auto;
    font-size:11px;color:#cbd5e1;max-height:130px;}
  .ai-patch .acts{display:flex;gap:6px;margin-top:6px;}
  .ai-input{display:flex;gap:8px;align-items:flex-end;}
  .ai-input textarea{flex:1;min-height:52px;max-height:120px;padding:8px 10px;font:inherit;font-size:13px;
    line-height:1.5;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#1e293b;resize:vertical;outline:none;}
  .ai-input textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--ring);}
  .ai-input .btn{flex:0 0 auto;height:38px;}
  @media (max-width:820px){
    .ai-console{grid-template-columns:1fr;height:auto;}
    .ai-sessions{max-height:110px;}
    .ai-screen{min-height:200px;}
  }

  /* ---- 情报：曝光榜 v2（概览条 + 主榜 + 右栏） ---- */
  .intel-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;margin-top:12px;}
  .intel-kpis:empty{display:none;}
  .ikpi{background:var(--soft);border-radius:10px;padding:8px 11px;}
  .ikpi em{display:block;font-style:normal;font-size:11.5px;color:var(--ink3);}
  .ikpi b{display:block;font-size:19px;line-height:1.35;color:var(--ink);}
  .ikpi b i{font-style:normal;font-size:11px;font-weight:400;color:var(--ink3);margin-left:2px;}
  .ikpi b.ikpi-name{font-size:13px;display:flex;align-items:baseline;gap:6px;padding-top:4px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .ikpi b.ikpi-name i{color:#db2777;font-size:12.5px;font-weight:700;}

  /* 精细分析：发帖量 / 评论 / 认证与曝光 / 话题方向 / 其他特点 */
  .intel-ana:empty{display:none;}
  .iana-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;margin-top:10px;}
  .iana-h{display:flex;align-items:baseline;gap:8px;font-size:12.5px;font-weight:700;color:var(--ink);
    margin-bottom:8px;}
  .iana-h span{font-weight:400;font-size:11px;color:var(--ink3);}
  .iana-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(186px,1fr));gap:10px 16px;}
  .iana-sec{border-left:2px solid #fce7f3;padding-left:9px;min-width:0;}
  .iana-t{display:flex;align-items:baseline;gap:6px;font-size:11.5px;font-weight:700;color:#be185d;
    margin-bottom:3px;}
  .iana-t span{font-weight:400;font-size:10px;color:var(--ink3);}
  .iana-kv{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--ink3);line-height:1.7;}
  .iana-kv b{color:var(--ink);white-space:nowrap;}
  /* 热词云：字号跟着覆盖曝光走，一眼看得出哪几个方向在放量 */
  .iana-cloud{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 9px;margin-top:3px;}
  .iana-cloud b{font-weight:400;color:#993556;cursor:pointer;line-height:1.45;white-space:nowrap;}
  .iana-cloud b i{font-style:normal;font-size:9px;color:var(--ink3);margin-left:2px;}
  .iana-cloud b:hover{color:#be185d;text-decoration:underline;}

  .ivb{font-style:normal;font-size:10px;line-height:1.6;padding:0 4px;border-radius:4px;background:#e8f2fd;
    color:#1d6fb8;flex:0 0 auto;}
  .ivb.biz{background:#fdf3d7;color:#a4791a;}
  .ivb.gov{background:#eef0f3;color:#5f6b7a;}

  /* 话题标签榜：按曝光排，点一行切到该话题的账号维度 */
  .itagrow{display:flex;align-items:baseline;gap:6px;width:100%;border:none;background:none;text-align:left;
    padding:4px 6px;border-radius:7px;cursor:pointer;font:inherit;}
  .itagrow:hover{background:var(--soft);}
  .itagrow.on{background:#fbeaf0;}
  .itagrow .itn{font-size:11.5px;color:#993556;max-width:92px;overflow:hidden;text-overflow:ellipsis;
    white-space:nowrap;}
  .itagrow em{font-style:normal;font-size:10.5px;color:var(--ink3);white-space:nowrap;}
  .itagrow b{margin-left:auto;font-size:12px;color:var(--ink);white-space:nowrap;}
  .itagrow.on .itn{font-weight:700;}
  /* 标签行内剔除/恢复 */
  .itagrow .itag-x{font-style:normal;flex:0 0 auto;width:15px;height:15px;line-height:13px;text-align:center;
    border-radius:50%;font-size:11px;color:var(--ink3);border:1px solid var(--line);cursor:pointer;opacity:0;}
  .itagrow:hover .itag-x{opacity:1;}
  .itagrow .itag-x:hover{background:#db2777;border-color:#db2777;color:#fff;}
  .itagrow.off{opacity:.6;}
  .itagrow.off .itn{text-decoration:line-through;color:var(--ink3);}
  .itagrow.off:hover{background:none;}
  .itagrow .itag-off{font-style:normal;flex:0 0 auto;font-size:10px;color:#9a9aa2;border:1px dashed #e3e3e8;
    border-radius:20px;padding:1px 7px;white-space:nowrap;}
  .itagrow .itag-off u{text-decoration:none;color:#db2777;cursor:pointer;font-weight:700;}
  .intel-tagpick{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;background:#fbeaf0;
    color:#993556;border-radius:99px;padding:3px 10px;cursor:pointer;}
  .intel-tagpick i{font-style:normal;opacity:.7;}

  .intel-bar{display:flex;align-items:center;gap:8px;margin:12px 0 2px;flex-wrap:wrap;}  .intel-pills{display:flex;gap:4px;background:var(--soft);border-radius:99px;padding:3px;}
  .ipill{border:none;background:none;font-size:12px;color:var(--ink2);padding:3px 11px;border-radius:99px;
    cursor:pointer;transition:background .15s,color .15s;}
  .ipill:hover{color:var(--ink);}
  .ipill.on{background:#db2777;color:#fff;}
  .intel-when{margin-left:auto;font-size:11.5px;color:var(--ink3);}
  .intel-note{margin:2px 0 0;}

  .intel-body{display:grid;grid-template-columns:minmax(0,1fr) 252px;gap:16px;margin-top:10px;align-items:stretch;}
  .intel-col{min-width:0;}
  @media (max-width:1000px){ .intel-body{grid-template-columns:minmax(0,1fr);} }
  .intel-side{display:flex;flex-direction:column;gap:10px;}
  /* 左边榜单很长，右栏别缩在上头：卡片均摊拉通到底 */
  .intel-side .iside-card{flex:1 1 auto;}
  .pool-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;}
  .pool-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 9px;border:1px solid var(--line);
    border-radius:999px;font-size:12px;background:#fff;}
  .pool-chip i{font-style:normal;width:16px;height:16px;line-height:15px;text-align:center;border-radius:50%;
    background:var(--line);cursor:pointer;font-size:11px;color:var(--ink3);}
  .pool-chip i:hover{background:#db2777;color:#fff;}
  .iside-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;}
  .iside-h{display:flex;align-items:baseline;gap:6px;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:8px;}
  .iside-h span{font-weight:400;font-size:11px;color:var(--ink3);margin-left:auto;}
  .iserow{margin-bottom:7px;}
  .iseh{display:flex;align-items:baseline;gap:6px;font-size:11.5px;color:var(--ink2);}
  .iseh span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .iseh b{font-size:12px;color:var(--ink);}
  .iseh b.acc-nm{margin-left:0;font-weight:600;color:#24211c;}
  .iseh b.acc-v{margin-left:auto;}
  .isup{font-style:normal;color:#dc2626;font-size:10.5px;}
  .isdn{font-style:normal;color:#16a34a;font-size:10.5px;}
  .isflat{font-style:normal;color:var(--ink3);font-size:10.5px;}
  .ibar{display:block;height:3px;border-radius:2px;background:#f1f5f9;margin-top:3px;overflow:hidden;}
  .ibar u{display:block;height:100%;background:#f9a8d4;}
  .iside-kv{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink2);padding:2px 0;}
  .iside-kv b{color:var(--ink);}
  .iside-bad{margin:4px 0 0;font-size:11px;color:#b91c1c;}
  .iside-foot{margin:8px 0 0;padding-top:7px;border-top:1px solid var(--line-soft);font-size:11px;color:var(--ink3);}

  .intel-cfg{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:#fff;}
  .intel-cfg summary{font-size:12.5px;color:var(--ink2);cursor:pointer;padding:2px 0;}
  .intel-cfg[open] summary{margin-bottom:8px;}

  /* 主榜卡片：账号 / 内容 / 曝光 / 评论，四件事一眼看全 */
  .intel-list{display:flex;flex-direction:column;gap:8px;}
  .intel-item{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;
    padding:10px 12px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s;}
  .intel-item:hover{border-color:#f9a8d4;box-shadow:0 2px 10px rgba(219,39,119,.08);}
  .intel-item.top{border-left:3px solid #db2777;}
  .irank{width:30px;flex:0 0 30px;text-align:center;padding-top:1px;}
  .irank b{display:block;font-size:15px;font-weight:800;color:var(--ink3);line-height:1.2;}
  .intel-item.top .irank b{color:#db2777;}
  .irank i{display:block;font-style:normal;font-size:10px;line-height:1.6;color:var(--ink3);}
  .irank .irank-up{color:#dc2626;}
  .irank .irank-dn{color:#16a34a;}
  .irank .irank-new{color:#db2777;font-weight:700;}
  .ibody{flex:1;min-width:0;}
  .ihead{display:flex;align-items:center;gap:8px;}
  .iava{flex:0 0 22px;width:22px;height:22px;border-radius:50%;overflow:hidden;background:#eef2f7;}
  .iava img{width:100%;height:100%;object-fit:cover;display:block;}
  .iwho{min-width:0;display:flex;align-items:baseline;gap:5px;overflow:hidden;}
  .iwho b{font-size:13px;color:var(--ink);white-space:nowrap;}
  .iwho em{font-style:normal;font-size:11.5px;color:var(--ink3);white-space:nowrap;overflow:hidden;
    text-overflow:ellipsis;}
  .imets{margin-left:auto;display:flex;gap:12px;flex:0 0 auto;}
  .imets span{text-align:right;min-width:50px;}
  .imets b{display:block;font-size:14px;line-height:1.25;color:var(--ink);}
  .imets em{display:block;font-style:normal;font-size:10.5px;color:var(--ink3);line-height:1.3;}
  .imets .imv b{color:#db2777;}
  .itext{margin:5px 0 0;font-size:13px;line-height:1.55;color:var(--ink);white-space:pre-wrap;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .intel-item.open .itext{-webkit-line-clamp:unset;overflow:visible;}
  .intel-pics{display:flex;gap:6px;margin:6px 0 0;}
  .intel-pics img{width:72px;height:48px;object-fit:cover;border-radius:6px;border:1px solid var(--line);
    background:#f1f5f9;}
  .iacts{display:flex;align-items:center;gap:6px;margin-top:6px;}
  .iacts .mini{white-space:nowrap;text-decoration:none;text-align:center;}
  .inums{margin-left:auto;font-size:11px;color:var(--ink3);}

  /* 抢眼贴文：四个数里有一项明显压过同批贴才高亮（规则见 hotOf，悬停能看到依据） */
  .intel-item.hot{background:#fffdf5;border-color:#f0c274;box-shadow:inset 3px 0 0 #e08a00;}
  .inums .ihot{display:inline-block;margin-right:7px;padding:0 6px;border-radius:6px;
    background:#fde68a;color:#92400e;font-style:normal;font-weight:700;font-size:10.5px;}
  .iwho b[data-whyacc]{cursor:pointer;border-bottom:1px dashed transparent;}
  .iwho b[data-whyacc]:hover{border-bottom-color:#c98a2a;color:#a8620a;}
  .iserow{cursor:pointer;border-radius:8px;transition:background .12s;}
  .iserow:hover{background:#faf7f0;}
  .ikpi-go{cursor:pointer;text-align:left;font:inherit;display:block;width:100%;}
  .ikpi-go em u{text-decoration:none;font-size:10.5px;color:#a8620a;margin-left:4px;font-weight:700;}
  .ikpi-go:hover{border-color:#d9ab63;}
  /* 时间窗六档：按钮变多，字号和内边距收一点，别让它掉行 */
  #intelPillsWin .ipill{padding:3px 8px;font-size:11.5px;}

  /* ---- 为什么跑得最快：多维分析 ---- */
  .why-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--ink3);margin-bottom:10px;}
  .why-badge{font-size:11px;padding:1px 6px;border-radius:6px;background:#eef2f7;color:#475569;font-style:normal;}
  .why-verdict{display:flex;flex-direction:column;gap:7px;margin:0 0 12px;padding:0;list-style:none;}
  .why-verdict li{font-size:12.5px;line-height:1.62;color:var(--ink);padding-left:21px;position:relative;}
  .why-verdict li b{color:#a8620a;}
  .why-verdict li::before{content:attr(data-i);position:absolute;left:0;top:1px;width:15px;height:15px;
    border-radius:50%;background:#f3e3c3;color:#8a5a12;font-size:10px;font-weight:700;text-align:center;line-height:15px;}
  .why-sec{margin:14px 0 0;}
  .why-sec-h{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:6px;display:flex;gap:6px;align-items:baseline;}
  .why-sec-h span{font-weight:400;font-size:11px;color:var(--ink3);}
  .why-bar{display:flex;flex-direction:column;gap:5px;}
  .why-bar .wrow{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink3);}
  .why-bar .wrow .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:12px;}
  .why-bar .wrow u{flex:0 0 32%;height:7px;border-radius:4px;background:#f1f5f9;text-decoration:none;overflow:hidden;}
  .why-bar .wrow u i{display:block;height:100%;background:#e08a00;border-radius:4px;}
  .why-bar .wrow em{flex:0 0 84px;text-align:right;font-style:normal;color:#8a5a12;white-space:nowrap;}
  .why-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
  .why-kv{border:1px solid var(--line);border-radius:9px;padding:6px 8px;}
  .why-kv span{display:block;font-size:10.5px;color:var(--ink3);}
  .why-kv b{font-size:14px;color:var(--ink);}
  .why-tags{display:flex;flex-direction:column;gap:4px;}
  .why-tag{display:flex;align-items:center;gap:6px;font-size:11.5px;border:1px solid var(--line);
    border-radius:8px;padding:5px 8px;flex-wrap:wrap;}
  .why-tag b{font-size:12px;color:var(--ink);}
  .why-tag em{font-style:normal;color:var(--ink3);}
  .why-tag u{margin-left:auto;text-decoration:none;font-weight:700;color:#a8620a;font-size:12px;}
  .why-miss{font-size:11.5px;color:var(--ink3);line-height:1.65;background:#f8fafc;border:1px dashed var(--line);
    border-radius:9px;padding:8px 10px;}
  .why-days{display:flex;align-items:flex-end;gap:4px;height:52px;}
  .why-days i{flex:1;background:#f1d7a8;border-radius:3px 3px 0 0;min-height:2px;position:relative;}
  .why-days i.hi{background:#e08a00;}
  .why-x{display:flex;justify-content:space-between;font-size:10px;color:var(--ink3);margin-top:2px;}

  .intel-ava{flex:0 0 40px;width:40px;height:40px;border-radius:50%;overflow:hidden;background:#eef2f7;}
  .intel-ava img{width:100%;height:100%;object-fit:cover;display:block;}
  .intel-acts{display:flex;flex-direction:column;gap:6px;flex:0 0 auto;}
  .intel-acts .mini{white-space:nowrap;text-decoration:none;text-align:center;}
  .itag{font-style:normal;font-size:10.5px;padding:0 5px;border-radius:5px;margin-left:4px;}
  .itag.pic{background:rgba(124,58,237,.12);color:#6d28d9;}
  .itag.vid{background:rgba(234,88,12,.12);color:#c2410c;}

  /* ---- 情报：三视图 + 发现榜 + 精细分析 + 故事素材 ---- */
  .intel-tabs{display:flex;gap:6px;margin:12px 0 6px;border-bottom:1px solid var(--line);align-items:center;}
  .intel-tabs .mini{margin-left:auto;margin-bottom:4px;flex:none;}
  .itab{border:none;background:none;padding:8px 12px;font-size:13px;color:var(--ink3);cursor:pointer;
    border-bottom:2px solid transparent;margin-bottom:-1px;}
  .itab:hover{color:var(--ink);}
  .itab.on{color:#db2777;border-bottom-color:#db2777;font-weight:600;}
  .itab em{font-style:normal;font-size:10.5px;background:#db2777;color:#fff;border-radius:8px;
    padding:0 5px;margin-left:4px;vertical-align:1px;}
  .itab em:empty{display:none;}
  .intel-auto{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 10px;}
  .chk{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ink);cursor:pointer;}
  .intel-chk{accent-color:#db2777;}

  .acc-list{display:flex;flex-direction:column;gap:8px;margin-top:10px;}
  .acc-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;
    padding:10px 12px;background:#fff;}
  /* ---- 素材分析 + 工坊体检（爆款基准 = 扩展沉淀数据）---- */
  .seed-ana-bar{display:flex;align-items:center;gap:8px;margin:6px 0 2px;}
  #seedAna{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:6px 0;background:#fff;max-width:860px;}
  .ana-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .ana-score{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;
    border-radius:10px;color:#fff;font-weight:800;font-size:15px;}
  .ana-head b{font-size:14px;color:var(--ink);}
  .ana-why{font-size:12px;color:var(--ink3);}
  .ana-pts,.ana-risks{margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.7;}
  .ana-risks li{color:#b45309;}
  .ana-angle{margin:8px 0 0;font-size:13px;color:var(--ink);}
  #seedAna .mini.pri{margin-top:10px;}
  /* 推荐设置回显：改之前看推荐项，改之后逐项打勾，控件处再闪一下 */
  #seedAna .ana-set{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:9px;padding:7px 10px;
    border:1px dashed var(--line);border-radius:10px;background:#fbfcfe;}
  .ana-set-k{font-size:11.5px;color:var(--ink3);}
  .ana-chip{font-size:12px;line-height:1.7;padding:1px 9px;border:1px solid var(--line);border-radius:999px;
    background:#fff;color:var(--ink2);}
  .ana-chip.on{border-color:#16a34a;background:#f0fdf4;color:#15803d;font-weight:600;}
  .ana-chip.no{border-color:#f1c9a5;background:#fff7ed;color:#b45309;}
  .ana-chip.same{color:var(--ink3);border-style:dashed;background:#fff;}
  .ana-chip[data-k='angle'],.ana-chip[data-k='angleOld']{cursor:pointer;border-style:dashed;}
  .ana-chip[data-k='angle']:hover,.ana-chip[data-k='angleOld']:hover{border-color:#db2777;color:#db2777;}
  .ana-set-e{font-size:11.5px;color:var(--ink3);}
  /* 这个角度需要、但工坊里没有的控件：提醒用户去加 */
  #seedAna .ana-gap{margin-top:8px;padding:8px 10px;border:1px solid #f2d6b3;border-radius:10px;background:#fffaf3;
    font-size:12px;color:#92400e;display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
  .ana-gap b{font-size:12px;color:#b45309;}
  .gap-item{background:#fff;border:1px dashed #e6b686;border-radius:999px;padding:1px 9px;color:#92400e;}
  .gap-item i{font-style:normal;color:#a98255;}
  /* 结构骨架推荐：套用前看骨架、一键灌进成稿 */
  #seedAna .ana-sk{margin-top:10px;padding:9px 11px;border:1px solid #d9e2f1;border-radius:10px;background:#f5f8ff;}
  .sk-head{font-size:12.5px;color:var(--ink2);margin-bottom:7px;}
  .sk-head b{color:#1d4ed8;}
  .sk-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px;}
  .sk-chip{font-size:12px;line-height:1.6;padding:2px 9px;border:1px solid #888;border-radius:8px;background:#fff;}
  .sk-chip b{margin-right:3px;}
  .gap-note{font-size:11.5px;color:#a98255;}
  .ctl-flash{animation:ctlFlash 1.7s var(--ease) 1;}
  @keyframes ctlFlash{
    0%{box-shadow:0 0 0 0 var(--glow);border-color:var(--blue);}
    65%{box-shadow:0 0 0 8px rgba(15,23,42,0);border-color:var(--blue);}
    100%{box-shadow:0 0 0 0 rgba(15,23,42,0);}
  }
  .studio-tip{border:1px solid #f3d9e6;background:#fff7fb;border-radius:12px;padding:8px 12px;margin:8px 0;max-width:860px;}
  .tip-h{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#db2777;}
  .tip-acts{margin-left:auto;display:flex;gap:6px;}
  .tip-acts .mini{padding:1px 8px;font-size:11.5px;}
  .tip-body{margin:5px 0 0;font-size:13px;line-height:1.7;color:var(--ink);}
  .tip-set{margin-top:6px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--ink3);}
  .tip-set b{font-size:11.5px;color:var(--ink3);font-weight:600;}
  .tip-gap{margin-top:6px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:#92400e;}
  .topic-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;max-width:720px;}
  .topic-card:hover{border-color:#db2777;box-shadow:0 2px 10px rgba(219,39,119,.10);}
  .tp-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
  .tp-h b{font-size:15px;color:var(--ink);}
  .tp-views{font-size:12px;color:var(--ink3);white-space:nowrap;}
  .tp-angle{margin:6px 0 0;font-size:12.5px;color:#db2777;}
  .tp-seed{margin:8px 0 0;font-size:13px;line-height:1.7;color:var(--ink);}
  .tp-src{margin:8px 0 0;font-size:11.5px;color:var(--ink3);}
  .tp-acts{flex-direction:row !important;margin-top:10px;}
  .acc-card:hover{border-color:#db2777;box-shadow:0 2px 10px rgba(219,39,119,.10);}
  .acc-card.in{background:#fff7fb;}
  /* 被剔除（永不上榜）：灰掉 + 名次占位为 —，数据还在、随时可恢复 */
  .acc-card.off{opacity:.62;background:#f7f7f8;border-style:dashed;}
  .acc-card.off:hover{border-color:var(--line);box-shadow:none;}
  .acc-card.off .acc-h b{text-decoration:line-through;color:var(--ink3);}
  .acc-off{font-style:normal;font-size:10.5px;color:#9a9aa2;border:1px solid #e3e3e8;
    border-radius:20px;padding:1px 8px;background:#fff;}
  .mini.warn{color:#b45309;}
  .mini.warn:hover{border-color:#fcd34d;color:#92400e;background:#fffbeb;}
  .acc-rank{width:22px;flex:0 0 22px;font-weight:800;font-size:13px;color:var(--ink3);text-align:center;padding-top:2px;}
  .acc-main{flex:1;min-width:0;}
  .acc-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px;}
  .acc-h b{color:var(--ink);}
  .acc-cn{color:var(--ink3);font-size:12px;}
  .acc-field{font-style:normal;font-size:10.5px;padding:0 6px;border-radius:5px;background:var(--ring);color:var(--blue2);}
  .acc-views{margin-left:auto;font-size:12px;color:var(--ink3);}
  .acc-views b{color:#db2777;font-size:14px;}
  .acc-nums{font-size:11.5px;color:var(--ink3);margin-top:4px;}
  .acc-best{margin:5px 0 0;font-size:12px;color:var(--ink2);line-height:1.5;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .acc-best .iv{color:#db2777;font-weight:700;}
  .acc-best-pic{display:block;width:100%;max-height:150px;object-fit:cover;border-radius:8px;
    border:1px solid var(--line);margin-top:6px;background:#f1f5f9;}

  .intel-modal{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:60;display:flex;
    align-items:center;justify-content:center;padding:24px;}
  .intel-modal-box{background:#fff;border-radius:16px;width:min(760px,100%);max-height:86vh;
    display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(15,23,42,.28);}
  .intel-modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;
    border-bottom:1px solid var(--line);}
  .intel-modal-body{padding:14px 16px;overflow:auto;}
  .im-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
  .im-kv{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;}
  .im-kv span{font-size:11px;color:var(--ink3);}
  .im-kv b{font-size:15px;color:var(--ink);}
  .im-h{margin:16px 0 8px;font-size:12.5px;color:var(--ink3);font-weight:600;}
  .im-hours{display:flex;align-items:flex-end;gap:2px;height:80px;border-bottom:1px solid var(--line);}
  .im-hours i{flex:1;background:rgba(219,39,119,.28);border-radius:2px 2px 0 0;min-height:2px;}
  .im-hours i.hi{background:#db2777;}
  .im-hours-x{display:flex;justify-content:space-between;font-size:10px;color:var(--ink3);margin-top:3px;}
  .im-words{display:flex;flex-wrap:wrap;gap:6px;}
  .wchip{font-size:12px;border:1px solid var(--line);border-radius:8px;padding:2px 8px;color:var(--ink2);}
  .wchip b{margin-left:4px;color:#db2777;font-size:11px;}
  .im-top{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
  .im-top li{display:flex;gap:8px;align-items:baseline;font-size:12.5px;}
  .im-top .ti-rank{flex:0 0 16px;color:var(--ink3);font-weight:700;}
  .im-top a{color:var(--ink);text-decoration:none;flex:1;min-width:0;}
  .im-top a:hover{color:var(--blue);}
  .im-top .iv{color:#db2777;font-weight:700;}

  .mat-list{display:flex;flex-direction:column;gap:10px;margin-top:10px;}
  .mat-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;position:relative;}
  .mat-h{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink3);}
  .mat-h b{color:var(--ink);}
  .mat-h .iv{color:#db2777;font-weight:700;}
  .mat-h .mat-ts{margin-left:auto;}
  .mat-h .lib-del{position:static;opacity:.55;}
  .mat-text{margin:6px 0;font-size:13px;color:var(--ink);line-height:1.55;}
  .mat-line{margin:3px 0;font-size:12.5px;color:var(--ink2);}
  .mat-line em{font-style:normal;display:inline-block;min-width:32px;color:#db2777;margin-right:6px;font-weight:600;}
  .cb-stats{color:#7c3aed;}
  .mat-tags{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0 0;}
  .mat-tags span{font-size:11px;background:var(--ring);color:var(--blue2);border-radius:6px;padding:1px 6px;}
  .mat-acts{display:flex;gap:6px;margin-top:8px;}
  .mm-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .mm-grid .lbl{margin-top:8px;}
  @media (max-width:720px){.im-sum{grid-template-columns:repeat(2,1fr);}.mm-grid{grid-template-columns:1fr;}}

  /* ---- 文案素材库（2587）：扩展收 + 手动加 + 用过后打标签 ---- */
  .cb-bar{flex-wrap:wrap;align-items:center;}
  .cb-bar input[type="search"]{flex:1 1 200px;min-width:150px;max-width:280px;
    border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:12.5px;}
  .cb-addbox{border:1px solid var(--line);background:var(--soft);border-radius:12px;padding:12px 14px;margin-top:10px;}
  .cb-addbox textarea,.cb-addgrid input{width:100%;box-sizing:border-box;
    border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:13px;}
  .cb-addbox textarea{resize:vertical;}
  .cb-lbl-note{font-weight:400;color:var(--ink3);font-size:11.5px;}
  .cb-addgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 10px;}
  @media (max-width:720px){.cb-addgrid{grid-template-columns:1fr;}}
  .cb-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 2px;}
  .cb-flabel{font-size:11.5px;color:var(--ink3);margin-right:2px;}
  .cb-fchip{border:1px solid var(--line);background:#fff;border-radius:999px;
    padding:2px 10px;font-size:11.5px;color:var(--ink2);cursor:pointer;}
  .cb-fchip.on{background:var(--blue);border-color:var(--blue);color:#fff;}
  .cb-card .cb-src{font-size:10.5px;border-radius:5px;padding:1px 6px;background:#eef2ff;color:#4f46e5;}
  .cb-card .cb-src-ext{background:#fff7ed;color:#c2410c;}
  .cb-used{font-size:11px;color:#b8730f;background:#fff7ed;border-radius:5px;padding:1px 6px;}
  .cb-unused{font-size:11px;color:var(--ink3);}
  .cb-text{white-space:pre-wrap;word-break:break-word;}
  .cb-tags .cb-tag{display:inline-flex;align-items:center;gap:3px;font-size:11px;
    background:var(--ring);color:var(--blue2);border-radius:6px;padding:1px 3px 1px 7px;}
  .cb-tags .cb-tag button{border:none;background:none;color:inherit;cursor:pointer;
    font-size:12px;line-height:1;padding:0 2px;opacity:.6;}
  .cb-tags .cb-tag button:hover{opacity:1;}
  .cb-tagadd{border:1px dashed var(--line);background:none;border-radius:6px;
    font-size:11px;color:var(--ink3);cursor:pointer;padding:1px 8px;}
  .cb-tagadd:hover{color:var(--blue);border-color:var(--blue);}
  .cb-tagedit{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:7px;}
  .cb-tagedit input{flex:1 1 220px;min-width:160px;border:1px solid var(--line);
    border-radius:8px;padding:5px 9px;font-size:12.5px;}
  .cb-lastuse{font-size:11px;color:var(--ink3);align-self:center;margin-left:auto;}

  /* ==== 图文工坊：三块豆腐块 + 焦点自适应（2026-10-29） ==== */
  .txt-pane{display:flex;flex-direction:column;gap:10px;position:relative;}
  #editCard.blk{padding:0 12px;background:#f8fafc;border:1px solid #dbe4f0;border-radius:11px;
    box-shadow:none;transition:padding .15s var(--ease);}
  /* 控件区头部：标题 + 素材摘要 + hint + 折叠按钮 */
  .txt-setup .blk-head{flex-wrap:nowrap;min-height:38px;gap:8px;}
  .txt-setup .blk-head .blk-title{flex:0 0 auto;font-size:13px;font-weight:600;color:var(--ink);}
  .txt-setup .setup-bar .blk-sum{flex:0 1 auto;max-width:300px;font-size:11.5px;}
  .txt-setup .blk-head .hint{flex:1 1 auto;min-width:0;font-size:11.5px;color:var(--ink3);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;}
  .txt-setup .setup-bar .blk-fold{flex:0 0 auto;}
  .txt-setup .blk-body{padding:2px 2px 10px;}

  /* 控件行：横排、紧凑、行间虚线分隔 */
  .txt-setup .ctl-row{display:flex;align-items:center;flex-wrap:wrap;gap:5px 9px;padding:4px 0;}
  .txt-setup .ctl-row + .ctl-row{border-top:1px dashed #eef2f7;}
  /* 六个创作类型：窄屏时允许类型 chip 换行，别把整行撑出去 */
  .txt-setup .row-mode .modes{margin:0;padding:3px;border-radius:9px;flex-wrap:wrap;}
  .txt-setup .row-mode .modes .chip{padding:3px 10px;font-size:12px;}
  .txt-setup .row-mode .control-label{flex:0 0 auto;font-size:12px;color:var(--ink2);}
  .txt-setup .row-mode #flowSubWrap{flex:0 0 auto;margin:0;}
  .txt-setup .row-mode #flowSub{height:28px;font-size:12.5px;max-width:150px;}
  .txt-setup .row-mode #clearTones{height:26px;padding:1px 8px;font-size:12px;}
  .txt-setup .row-mode .scene-kind-row{margin:0;}
  .txt-setup .row-seed{align-items:center;}
  .txt-setup .row-seed .lbl-sm{flex:0 0 auto;font-size:11.5px;color:var(--ink3);margin:0;white-space:nowrap;}
  .txt-setup .row-seed #seed{flex:1 1 auto;min-width:200px;min-height:46px;max-height:360px;
    resize:none;box-sizing:border-box;padding:7px 10px;font-size:12.5px;line-height:1.55;overflow-y:auto;border-radius:9px;}
  .txt-setup .title-opts{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:5px 0;
    margin:0;background:transparent;border:0;border-top:1px dashed #eef2f7;}
  .txt-setup .title-opts .control-label{font-size:12px;color:var(--ink2);}
  .txt-setup .title-opts select{height:28px;font-size:12.5px;max-width:170px;}
  .txt-setup .title-opts .title-opts-hint{flex:1 1 200px;font-size:11px;color:var(--ink3);margin:0;}

  .txt-setup .row-scene-head{padding-bottom:2px;}
  .txt-setup .row-scene-head .lbl-sm{flex:0 0 auto;font-size:11.5px;color:var(--ink3);}
  .txt-setup .row-scene-head .hint-multi{flex:1 1 200px;margin:0;font-size:11px;color:var(--ink3);
    min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .txt-setup .row-scene-head .scene-overview{flex:0 1 auto;margin:0;}
  /* 场景标签：紧凑 chip（目标两三行铺完，别把参数行挤出屏） */
  .txt-setup .chips .chip{padding:1px 7px;font-size:10.5px;border-radius:7px;}
  .txt-setup .chips .group-label{font-size:10px;}
  .txt-setup .chips .adult-group-note{font-size:10px;}
  .txt-setup .chips-wrap .chips{gap:4px 5px;}
  .txt-setup .scene-panel{padding-top:2px;}
  /* 分组标题做「组头」独占一行：原来内联进 chip 流，三组标签糊成一片、看不出边界 */
  .txt-setup .standard-content,.txt-setup .adult-content{gap:4px 5px;margin-top:0;align-content:flex-start;}
  .txt-setup .standard-content .group-label,.txt-setup .adult-content .group-label{flex:0 0 100%;width:100%;
    margin:7px 0 1px;padding-left:6px;border-left:2px solid #cfdcea;font-weight:700;line-height:1.25;}
  .txt-setup .standard-content .group-label:first-child,.txt-setup .adult-content .group-label:first-of-type{margin-top:0;}
  .txt-setup .tone-help{font-size:11px;margin:2px 0 0;}
  .txt-setup .must-panel{margin:0;padding:5px 0;border-top:1px dashed #eef2f7;}
  .txt-setup .must-panel .custom-label{font-size:11.5px;}
  .txt-setup .must-panel .must-input-row{display:flex;gap:6px;align-items:center;}
  .txt-setup .must-panel #mustInput{height:28px;font-size:12.5px;flex:1 1 200px;min-width:120px;}
  .txt-setup .must-panel .must-hint{margin:2px 0 0;font-size:10.5px;color:var(--ink3);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .txt-setup .must-panel .must-list{margin-top:4px;}

  /* 参数行：视角/强度/文风/篇幅…横排 + 生成按钮行尾 */
  .txt-setup .row-params{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:5px 0 0;
    border-top:1px dashed #eef2f7;}
  .txt-setup .row-params .control-stack{flex-direction:row;align-items:center;gap:6px;min-width:0;flex:0 1 auto;}
  .txt-setup .row-params .control-stack .control-label{margin:0;min-height:0;font-size:12px;color:var(--ink2);white-space:nowrap;}
  .txt-setup .row-params .control-stack select{width:auto;max-width:150px;height:28px;font-size:12.5px;}
  .txt-setup .row-params .control-stack .control-hint{display:none;}
  .txt-setup .row-params #shortOpts,.txt-setup .row-params #longOpts{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 10px;}
  .txt-setup .row-params #shortOpts .lbl-sm,.txt-setup .row-params #longOpts .lbl{margin:0;font-size:12px;color:var(--ink2);white-space:nowrap;}
  .txt-setup .row-params #shortOpts select,.txt-setup .row-params #longOpts select{width:auto;max-width:150px;height:28px;font-size:12.5px;}
  /* 观点短文「写法形态」/ 我的日常「调子 + 写法」：跟篇幅并排，只对各自类型出现 */
  .txt-setup .row-params #shortOpts #opinionFormWrap,
  .txt-setup .row-params #shortOpts #personalToneWrap,
  .txt-setup .row-params #shortOpts #personalFormWrap{display:inline-flex;align-items:center;gap:6px 10px;min-width:0;}
  .txt-setup .row-params #shortOpts #opinionFormWrap[hidden],
  .txt-setup .row-params #shortOpts #personalToneWrap[hidden],
  .txt-setup .row-params #shortOpts #personalFormWrap[hidden]{display:none;}
  /* 我的日常：说话习惯（选填，一次填写永久记住） */
  .voice-box{display:flex;flex-direction:column;gap:4px;}
  .voice-box[hidden]{display:none;}
  .voice-box .lbl-sm{margin:0;font-size:12px;color:var(--ink2);}
  .voice-box .voice-note{font-weight:400;font-size:11px;color:var(--ink3);margin-left:2px;}
  .voice-box input{width:100%;box-sizing:border-box;border:1px solid #dbe4f0;border-radius:8px;padding:6px 10px;
    font-size:12.5px;font-family:inherit;background:#fff;color:var(--ink);}
  .voice-box input:focus{outline:none;border-color:var(--brand,#07c160);background:#fff;}
  /* 我的真实底细：多行 + 「从这篇记住」 */
  .facts-box textarea{width:100%;box-sizing:border-box;border:1px solid #dbe4f0;border-radius:8px;padding:6px 10px;
    font-size:12.5px;font-family:inherit;background:#fff;color:var(--ink);resize:vertical;min-height:46px;line-height:1.55;}
  .facts-box textarea:focus{outline:none;border-color:var(--brand,#07c160);}
  .facts-box .facts-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  .facts-box .facts-acts .mini{height:24px;padding:0 10px;font-size:11.5px;white-space:nowrap;}
  .facts-box .facts-acts .hint-inline{margin:0;font-size:11px;color:var(--ink3);}
  .txt-setup .row-params .out-check{font-size:11.5px;white-space:nowrap;}
  .txt-setup .row-params #go{margin-left:auto;height:30px;padding:4px 16px;font-size:13px;}
  .txt-setup .row-params #stop{height:30px;padding:4px 14px;font-size:12.5px;}
  .txt-setup .row-params .rewrite-hint{flex:1 1 100%;margin:0;font-size:11px;}
  .txt-setup .row-params .rewrite-hint:empty{display:none;}
  /* 成稿出现后自动收成一行：只留标题条 */
  #editCard.compose-collapsed{padding:0 12px;}
  #editCard.compose-collapsed > .blk-head{display:flex !important;}
  #editCard.compose-collapsed > .blk-body{display:none !important;}
  /* 2026-11-05：改写成稿搬进「叙事视角」那一排之后，整块收掉会把这个按钮一起藏掉
     （改写恰恰是生成完才用的），所以折叠后仍留这一排控件，其余照常收起。
     折叠态空间富余，这排改用 flex 一行排完，别让「生成故事」掉到第二行。 */
  #editCard.compose-collapsed > .blk-body{display:block !important;}
  #editCard.compose-collapsed > .blk-body > *{display:none !important;}
  #editCard.compose-collapsed > .blk-body > #settingsRow{
    display:flex !important;flex-wrap:wrap;align-items:flex-end;gap:8px 18px;margin-top:8px;
  }
  #editCard.compose-collapsed > .blk-body > #settingsRow > *{flex:0 0 auto;}
  #editCard.compose-collapsed > .blk-body > #settingsRow > #go{margin-left:auto;}
  #editCard.compose-collapsed > .blk-body > #settingsRow > #voiceOpts{display:contents;}
  #editCard.compose-collapsed > .blk-body > #settingsRow > #voiceOpts > #rewriteVoiceHint{display:none !important;}
  #editCard.compose-collapsed > .blk-body > #topicRow{display:flex !important;align-items:center;gap:8px;flex:1 0 100%;margin:6px 0 2px;}
  #editCard.compose-collapsed > .blk-body > #topicRow > .topic-head{flex:0 0 auto;}
  #editCard.compose-collapsed > .blk-body > #topicRow .topic-hint{display:none;}
  #editCard.compose-collapsed > .blk-body > #topicRow .topic-chips{flex-wrap:nowrap;overflow-x:auto;max-width:100%;}

  .blk-hist .blk-head{min-height:36px;}
  .hist-latest{flex:1;min-width:0;font-size:12px;color:var(--ink2);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .hist-latest b{font-weight:600;color:var(--ink);}
  .hist-latest em{font-style:normal;color:var(--ink3);}
  .hist-latest .hl-meta{color:var(--ink3);margin-left:6px;font-size:11.5px;}
  .hist-latest .hl-del{color:var(--ink2);}
  .hist-latest .hl-undo{margin-left:8px;padding:0;border:0;border-bottom:1px solid currentColor;
    background:none;color:#b91c1c;font-size:11.5px;cursor:pointer;}
  .hist-latest .hl-undo:hover{color:#7f1d1d;}
  .blk-head #histDel[disabled]{opacity:.45;cursor:default;}

  /* ---- 单屏双模式：成稿 / 指挥台，操作哪块显示哪块 ---- */
  .txt-body{display:flex;gap:10px;min-height:0;flex:1 1 auto;}
  .txt-col{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0;position:relative;width:100%;}
  .txt-body.mode-draft .txt-col-r{display:none;}
  .txt-body.mode-console .txt-col-l{display:none;}

  .scr-tabs{display:flex;border:1px solid #dbe4f0;border-radius:9px;overflow:hidden;
    width:max-content;background:#fff;flex:0 0 auto;}
  .scr-tab{border:0;background:transparent;padding:3px 16px;font-size:12.5px;color:var(--ink2);
    cursor:pointer;line-height:1.6;}
  .scr-tab.on{background:#eff6ff;color:var(--blue);font-weight:600;}

  .blk-draft{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding-bottom:6px;}
  /* 成稿屏弹性收缩：正文短时屏幕贴着内容（工具条紧跟正文），正文长时封顶滚动 */
  .draft-screen{flex:0 1 auto;min-height:200px;max-height:100%;display:flex;flex-direction:column;padding:0;overflow:hidden;
    background:#fff;border:1px solid #e2e8f0;border-radius:10px;}
  .draft-flag{flex:0 0 auto;font-size:11px;color:#0f766e;background:#ecfdf5;border-radius:6px;padding:1px 7px;}
  .draft-flag:empty{display:none;}
  .draft-empty{margin:auto;padding:24px;text-align:center;font-size:12.5px;color:var(--ink3);line-height:1.9;}
  .draft-empty b{color:var(--ink2);font-weight:500;}
  #draftScreen:has(#out:not([hidden])) > .draft-empty{display:none;}
  #out{max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;
    box-shadow:none;flex:0 1 auto;min-height:0;max-height:100%;display:flex;flex-direction:column;}
  #out[hidden]{display:none !important;}
  #out .draft-scroll{flex:0 1 auto;min-height:0;overflow-y:auto;padding:10px 14px 4px;scrollbar-width:thin;}
  #out .out-head{margin-bottom:10px;padding-bottom:8px;}
  #out #story{max-width:none;}
  #out .draft-tools{flex:0 0 auto;border-top:1px solid #eef2f7;background:#fbfcfe;padding:7px 10px 8px;
    display:flex;flex-direction:column;gap:6px;border-radius:0 0 9px 9px;}
  #out .draft-tools .out-tools{flex-wrap:wrap;gap:6px;}
  #out .draft-tools .out-tools .mini{padding:3px 9px;font-size:12px;}
  /* 工具条内的「改写方式 + 改写」「爆款开头」小组 */
  .mini-group{display:inline-flex;align-items:center;gap:4px;position:relative;}
  .mini-group[hidden]{display:none;}
  .mini-group select{height:24px;font-size:12px;padding:1px 4px;max-width:76px;}
  .opener-pop{position:absolute;left:0;bottom:calc(100% + 8px);z-index:60;width:340px;max-height:300px;overflow-y:auto;
    background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 10px 30px rgba(15,23,42,.14);padding:8px;}
  .opener-pop[hidden]{display:none;}
  .opener-pop .op-head{font-size:11.5px;color:var(--ink3);margin:2px 2px 6px;}
  .opener-pop .op-item{display:block;width:100%;text-align:left;background:#f8fafc;border:1px solid #eef2f7;border-radius:8px;
    padding:7px 9px;margin-bottom:6px;font:inherit;font-size:12.5px;line-height:1.55;color:var(--ink);cursor:pointer;}
  .opener-pop .op-item:hover{background:#eef4ff;border-color:#c7d7f5;}
  .opener-pop .op-item b{display:block;font-weight:600;margin-bottom:2px;white-space:pre-line;line-height:1.5;}
  .opener-pop .op-item span{color:var(--ink3);font-size:11px;}
  .opener-pop .op-empty{font-size:12px;color:var(--ink3);margin:4px 2px;}
  .opener-pop .op-hook{display:inline-block;font-style:normal;font-size:10.5px;color:var(--blue);background:#eef4ff;border:1px solid #d7e5fb;border-radius:5px;padding:1px 5px;margin-bottom:4px;}
  .reco-hook{font-size:10.5px;color:var(--blue);background:#eff6ff;border-radius:5px;padding:1px 5px;white-space:nowrap;flex:none;}
  .topic-row{display:block;margin:8px 0 2px;}
  .topic-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
  .topic-hint{font-size:11px;color:var(--ink3);}
  .topic-clear{margin-left:auto;}
  .topic-chips{display:flex;flex-wrap:wrap;gap:5px;}
  .topic-chips .chip{font-size:11.5px;padding:3px 9px;}
  #out .draft-tools .export{margin:0;padding:0;border:0;background:transparent;}
  #out .draft-tools .export .acts{gap:6px;flex-wrap:wrap;margin:0;}
  #out .draft-tools .export .btn{padding:4px 12px;font-size:12px;}
  #out.is-maximized{padding:18px;flex:1 1 auto;}
  #out.is-maximized .draft-scroll{overflow-y:auto;}
  #draftScreen:has(#out.is-maximized){flex:1 1 auto;}

  .blk-scene{flex:0 1 auto;min-height:34px;max-height:64%;display:flex;flex-direction:column;}
  .blk-scene .blk-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
    padding:0 0 8px;scrollbar-width:thin;}
  .blk-scene .scene-panel{margin:0;padding:8px 2px 0;background:transparent;border:0;}
  .blk-scene .scene-panel .settings-divider{margin-top:10px;padding-top:10px;}
  .blk-scene .scene-panel .lbl{margin-top:6px;}

  .blk-ai{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:#f8fafc;}
  .blk-ai .ai-console{flex:1;height:auto;margin:0;padding:8px;min-height:0;
    display:flex;flex-direction:column;gap:6px;background:transparent;border:0;}
  .ai-console-txt .ai-bar{display:flex;align-items:center;gap:6px;min-width:0;}
  .ai-console-txt .ai-bar b{font-size:13px;color:var(--ink);flex:0 0 auto;}
  .ai-sess-cur{flex:0 1 auto;min-width:0;font-size:11.5px;color:var(--ink3);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px;}
  .ai-bar-sp{flex:1 1 auto;min-width:4px;}
  .ai-console-txt .ai-bar .ai-model{flex:0 1 150px;min-width:90px;height:24px;padding:1px 4px;
    font-size:11.5px;border-radius:7px;border:1px solid #dbe4f0;background:#fff;color:var(--ink2);}
  .ai-console .chk-mini{flex:0 0 auto;font-size:11.5px;color:var(--ink2);display:inline-flex;
    align-items:center;gap:3px;white-space:nowrap;}
  .ai-console-txt .ai-bar .mini{height:24px;padding:1px 8px;font-size:12.5px;line-height:1.2;}
  .ai-console-txt .ai-sessions{flex:0 0 auto;display:flex;gap:4px;overflow-x:auto;overflow-y:hidden;
    margin:0;padding-bottom:2px;scrollbar-width:thin;}
  .ai-console-txt .ai-sessions:empty{display:none;}
  .ai-console-txt .ai-sess{flex:0 0 auto;max-width:150px;padding:2px 7px;font-size:11.5px;}
  .ai-console-txt .ai-main{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:6px;}
  .ai-console-txt .ai-screen{flex:1 1 auto;min-height:90px;}
  .ai-quick{display:flex;gap:5px;flex-wrap:wrap;}
  .ai-quick .mini{padding:2px 8px;font-size:11.5px;}
  .ai-console-txt .ai-input textarea{min-height:44px;font-size:12.5px;padding:7px 9px;}
  .ai-console-txt .ai-input .btn{height:36px;padding:0 14px;font-size:13px;}
  .ai-model-row{display:flex;align-items:center;gap:6px;margin-top:4px;}
  .ai-model-lbl{font-size:11px;color:#94a3b8;flex:0 0 auto;}
  .ai-model{flex:1;min-width:0;height:24px;padding:1px 4px;font-size:11.5px;border-radius:7px;
    border:1px solid #dbe4f0;background:#fff;color:var(--ink2);}
  /* 指挥台工具条：模型 / 自动 / ＋新对话 / 积分灯珠 */
  .ai-tools{display:flex;align-items:center;gap:6px;flex:0 0 auto;padding:1px 0;}
  .ai-tools .model-stack{display:inline-flex;align-items:center;min-width:0;flex:0 1 170px;}
  .ai-tools .model-stack[hidden]{display:none;}
  .ai-tools #model{flex:1;min-width:0;height:26px;padding:1px 5px;font-size:11.5px;border-radius:7px;
    border:1px solid #dbe4f0;background:#fff;color:var(--ink2);}
  .ai-tools .chk-mini{flex:0 0 auto;font-size:11.5px;color:var(--ink2);display:inline-flex;
    align-items:center;gap:3px;white-space:nowrap;}
  .ai-tools .mini{height:26px;padding:1px 9px;font-size:12.5px;line-height:1.2;}
  .ai-tools .subway.inline{flex:0 0 auto;}
  /* 三视图切换：对话 / 思考 / 文件控制台 */
  .ai-viewbar{display:flex;gap:4px;flex:0 0 auto;background:#eef2f7;border-radius:8px;padding:2px;width:max-content;max-width:100%;}
  .ai-viewbar button{border:0;background:transparent;padding:2px 10px;font-size:11.5px;border-radius:6px;
    color:var(--ink2);cursor:pointer;line-height:1.5;}
  .ai-viewbar button.on{background:#fff;color:var(--blue);font-weight:600;box-shadow:0 1px 3px rgba(15,23,42,.10);}
  .ai-think-item{border:1px solid #e2e8f0;border-radius:9px;padding:7px 9px;background:#fff;font-size:11.5px;margin-bottom:5px;}
  .ai-think-item b{font-size:12px;color:var(--ink);margin-right:6px;}
  .ai-think-item i{font-style:normal;color:#94a3b8;margin-right:6px;font-size:10.5px;}
  .ai-think-item pre{margin:4px 0 0;white-space:pre-wrap;word-break:break-word;color:var(--ink2);font-size:11px;font-family:inherit;}
  .ai-think-item .ai-act{margin-top:3px;}
  .ai-empty{color:var(--ink3);font-size:12px;padding:14px 6px;text-align:center;line-height:1.8;}
  .ai-files-head{display:flex;align-items:baseline;gap:8px;margin:8px 0 4px;}
  .ai-files-head b{font-size:12.5px;color:var(--ink);}
  .ai-files-head span{font-size:11px;color:#94a3b8;}
  .ai-file-row{display:flex;align-items:center;gap:8px;padding:4px 8px;border:1px solid #eef2f7;
    border-radius:8px;background:#fff;margin-bottom:4px;font-size:11.5px;}
  .ai-file-row .f-name{font-weight:600;color:var(--ink);flex:0 0 auto;}
  .ai-file-row .f-meta{flex:1;min-width:0;color:var(--ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .ai-file-row .mini{flex:0 0 auto;padding:1px 8px;font-size:11px;}

  .txt-sheet{position:absolute;inset:0;z-index:20;display:flex;align-items:stretch;justify-content:center;}
  .txt-sheet-inner{width:100%;max-width:1120px;min-height:0;background:#fff;border:1px solid var(--line);
    border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;
    box-shadow:0 18px 50px -20px rgba(15,23,42,.35);}
  .txt-sheet-head{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--line-soft);}
  .txt-sheet-head b{flex:1;font-size:13px;}
  .txt-sheet #history{flex:1;min-height:0;overflow-y:auto;max-width:none;width:100%;margin:0;
    padding:6px 2px 0;border:0;background:transparent;box-shadow:none;}

  @media (min-width:1081px) and (min-height:720px){
    .txt-pane{height:calc(var(--vis-h, 100vh) - 88px);overflow:hidden;}
    .txt-setup{flex:0 0 auto;max-height:64%;}
    .txt-pipe{flex:0 0 auto;}
    .blk-hist{flex:0 0 auto;}
    .txt-body{flex:1 1 auto;min-height:0;}
  }
  @media (max-width:1080px), (max-height:719px){
    .txt-body{flex-direction:column;}
    .blk-scene{max-height:none;}
    .blk-ai{min-height:320px;}
  }

  /* ---- iframe 承载（LeoQuick）：父页面可视高度已知时，一屏版式不挑屏宽 ----
     窄屏（992px）进不了上面的 min-width:1081 媒体查询，但成稿/指挥台是 tab 单屏
     双模式，锁高一屏照样成立。未收到 lq-story-view 前不启用（100vh 在 iframe 里
     等于整篇文档高，会产生高度正反馈）。 */
  html.in-frame.vis-known .txt-pane{height:calc(var(--vis-h) - 88px);overflow:hidden;}
  html.in-frame.vis-known .txt-setup{flex:0 0 auto;max-height:64%;}
  html.in-frame.vis-known .txt-pipe{flex:0 0 auto;}
  html.in-frame.vis-known .blk-hist{flex:0 0 auto;}
  html.in-frame.vis-known .txt-body{flex:1 1 auto;min-height:0;}
  html.in-frame.vis-known .video-card{height:calc(var(--vis-h) - 88px);overflow:hidden;}
  html.in-frame.vis-known .blk-decon,html.in-frame.vis-known .blk-setup{flex:0 0 auto;}
  html.in-frame.vis-known .blk-pipe{flex:0 0 auto;min-height:0;display:flex;flex-direction:column;}
  html.in-frame.vis-known .blk-pipe .blk-body{flex:0 1 auto;min-height:0;overflow-y:auto;
    max-height:calc(var(--vis-h) * .48);}
  html.in-frame.vis-known .blk-pipe .pipe-col{min-height:0;}
  html.in-frame.vis-known .blk-pipe .pipe-body{max-height:none;}
  html.in-frame.vis-known .video-card .ai-console{flex:1 1 auto;height:auto;min-height:300px;max-height:none;margin:0;}
  html.in-frame.vis-known .video-card:has(#pipeBody[hidden]) .blk-pipe{flex:0 0 auto;min-height:0;}
  html.in-frame.vis-known .video-card:has(#pipeBody[hidden]) .blk-pipe .blk-body{display:none;}

  /* ============ 情报模块视觉 v3：暖纸底 + 琥珀点色（参考 kkkkeric.com 的清爽感） ============
     原来是大白卡 + 高饱和玫红，白得晃眼、红得吵。改成暖白纸面、墨色文字、琥珀只做强调，
     饱和度整体压下来，长时间看榜单不刺眼。 */
  #paneIntel .card{background:#fffdf8;border-color:#ece3d3;
    box-shadow:0 1px 2px rgba(58,46,28,.05),0 18px 46px -32px rgba(58,46,28,.38);}
  #paneIntel .title-row{border-bottom-color:#efe7d7;}
  #paneIntel .sub,#paneIntel .hint,#paneIntel .mod-note,#paneIntel .intel-when,#paneIntel .intel-note{color:#8b8375;}
  #paneIntel{--ink:#24211c;--ink2:#5c554a;--ink3:#8d8577;--line:#e9e1d0;--line-soft:rgba(60,50,32,.10);--soft:#faf6ee;
    --blue:#b8730f;--blue2:#8f5500;--ring:rgba(184,115,15,.15);--glow:rgba(184,115,15,.35);}

  /* 三个 tab */
  #paneIntel .intel-tabs{border-bottom-color:#eae1d0;}
  #paneIntel .itab{color:#8b8375;}
  #paneIntel .itab:hover{color:#24211c;}
  #paneIntel .itab.on{color:#a8620a;border-bottom-color:#b8730f;}
  #paneIntel .itab em{background:#b8730f;color:#fffdf8;}

  /* 概览条 */
  #paneIntel .ikpi{background:#faf5ea;border:1px solid #f0e7d6;}
  #paneIntel .ikpi em{color:#8b8375;}
  #paneIntel .ikpi b{color:#24211c;}
  #paneIntel .ikpi b i{color:#8b8375;}
  #paneIntel .ikpi b.ikpi-name i{color:#a8620a;}

  /* 精细分析 */
  #paneIntel .iana-card{background:#fffdf8;border-color:#ece3d3;}
  #paneIntel .iana-h{color:#24211c;}
  #paneIntel .iana-h span{color:#8b8375;}
  #paneIntel .iana-sec{border-left-color:#f0e2c8;}
  #paneIntel .iana-t{color:#a8620a;}
  #paneIntel .iana-t span{color:#8b8375;}
  #paneIntel .iana-kv{color:#8b8375;}
  #paneIntel .iana-kv b{color:#24211c;}
  #paneIntel .iana-cloud b{color:#96601a;}
  #paneIntel .iana-cloud b i{color:#a09889;}
  #paneIntel .iana-cloud b:hover{color:#b8730f;}

  /* 窗口 / 排序 pill */
  #paneIntel .intel-pills{background:#f6f1e6;}
  #paneIntel .ipill{color:#5c554a;}
  #paneIntel .ipill:hover{color:#24211c;}
  #paneIntel .ipill.on{background:#b8730f;color:#fffdf8;}

  /* 主榜卡片 */
  #paneIntel .intel-item{background:#fffdf8;border-color:#eae2d2;}
  #paneIntel .intel-item:hover{border-color:#d9ab63;box-shadow:0 2px 10px rgba(184,115,15,.10);}
  #paneIntel .intel-item.top{border-left:3px solid #c98a2a;}
  #paneIntel .intel-item.top .irank b{color:#a8620a;}
  #paneIntel .intel-item.hot{background:#fff8e6;border-color:#e6b95c;box-shadow:inset 3px 0 0 #d98511;}
  #paneIntel .intel-item.hot.top{box-shadow:none;}
  #paneIntel .inums .ihot{background:#f6d98a;color:#7a4a06;}
  #paneIntel .why-miss{background:#fbf7ee;}
  #paneIntel .irank .irank-new{color:#a8620a;}
  #paneIntel .irank .irank-up{color:#c0392b;}
  #paneIntel .irank .irank-dn{color:#2f7d4f;}
  #paneIntel .imets .imv b{color:#a8620a;font-weight:700;}
  #paneIntel .iava{background:#f2ece0;}
  #paneIntel .iwho b{color:#24211c;}

  /* 头像：真图在上、首字母色块在下垫着——图挂了就自动露出来，永远不会是破图 */
  .iava{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;
    width:22px;height:22px;border-radius:50%;overflow:hidden;background:#eef2f7;vertical-align:-6px;}
  .iava .ava-mono{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    color:#fff;font-size:11px;font-weight:600;font-style:normal;letter-spacing:0;}
  .iava img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;display:block;background:#eef2f7;}
  .iava.sm{flex:0 0 18px;width:18px;height:18px;}
  .iava.sm .ava-mono{font-size:9.5px;}
  .iava.xs{flex:0 0 14px;width:14px;height:14px;vertical-align:-2px;}
  .iava.xs .ava-mono{font-size:8px;}
  .pool-chip .iava{margin-right:3px;}
  .iava.lg{flex:0 0 34px;width:34px;height:34px;}
  .iava.lg .ava-mono{font-size:15px;}
  /* 可点头像：跳作者的 X 主页。只加描边，不改尺寸，免得破坏 flex 布局 */
  .iava[data-xprofile]{cursor:pointer;transition:box-shadow .15s,transform .15s;}
  .iava[data-xprofile]:hover{box-shadow:0 0 0 2px #db2777;transform:scale(1.08);}
  .iava[data-xprofile]:focus-visible{outline:2px solid #db2777;outline-offset:2px;}
  .iserow .iseh{display:flex;align-items:center;gap:6px;}
  .acc-card .iava.lg{align-self:flex-start;margin-top:2px;}

  /* 账号池保存记录（找回被清掉的号） */
  .pool-hist-box{max-height:240px;overflow:auto;margin-top:6px;display:flex;flex-direction:column;gap:4px;}
  .pool-hist-row{display:flex;align-items:center;gap:8px;font-size:12px;padding:4px 6px;
    border-radius:6px;background:#faf6ee;color:#4a4438;}
  .pool-hist-row span{flex:0 0 auto;color:#8b8375;}
  .pool-hist-row b{flex:0 0 auto;color:#a8620a;}
  .pool-hist-row em{flex:1 1 auto;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6b6457;}
  .pool-hist-row .mini{flex:0 0 auto;}
  #paneIntel .itext{color:#2b2721;}
  #paneIntel .inums{color:#8b8375;}

  /* 认证徽章：降饱和，别在纸面上跳 */
  #paneIntel .ivb{background:#e9eff8;color:#2c5c96;}
  #paneIntel .ivb.biz{background:#fbf0d9;color:#8a5a12;}
  #paneIntel .ivb.gov{background:#eeeee9;color:#635f56;}

  /* 话题标签榜 */
  #paneIntel .itagrow:hover{background:#f8f2e6;}
  #paneIntel .itagrow.on{background:#fbf0d9;}
  #paneIntel .itagrow .itn{color:#96601a;}
  #paneIntel .intel-tagpick{background:#fbf0d9;color:#8a5a12;}

  /* 右栏 */
  #paneIntel .iside-card{background:#fffdf8;border-color:#eae2d2;}
  #paneIntel .iside-h{color:#24211c;}
  #paneIntel .iseh b{color:#24211c;}
  #paneIntel .ibar{background:#efe8d9;}
  #paneIntel .ibar u{background:linear-gradient(90deg,#e0aa5c,#b8730f);}
  #paneIntel .isup{color:#c0392b;}
  #paneIntel .isdn{color:#2f7d4f;}

  /* 表单控件跟着纸面走 */
  #paneIntel input[type="text"],#paneIntel input[type="number"],#paneIntel select,#paneIntel textarea{
    background:#fffdf8;border-color:#e3d9c6;color:#24211c;}
  #paneIntel .intel-cfg summary{color:#5c554a;}

/* ---- 视频工坊流水线（v2528）：剧本/配音/分镜/字幕/成片包 五栏内容样式 ---- */
.vid-title{font-weight:700;color:var(--ink);font-size:13.5px;margin-bottom:2px;}
.vid-meta{color:var(--ink3);font-size:12px;margin-bottom:8px;}
.vid-meta.ok{color:#047857;}
.vid-meta.warn{color:#b45309;}
.vid-beat{border-top:1px dashed var(--line);padding:7px 0;}
.vid-beat:first-of-type{border-top:0;}
.vid-beat-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;color:var(--ink);}
.vid-beat-head b{font-weight:700;}
.vid-beat-head span{color:var(--ink3);font-size:11.5px;}
.vid-ta,.vid-in{width:100%;box-sizing:border-box;margin-top:4px;border:1px solid var(--line);border-radius:6px;
  padding:5px 7px;font:inherit;font-size:12.5px;line-height:1.6;color:var(--ink);background:#fff;resize:vertical;}
.vid-ta:focus,.vid-in:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px var(--ring);}
.vid-tbl{width:100%;border-collapse:collapse;font-size:12px;}
.vid-tbl th{text-align:left;color:var(--ink3);font-weight:600;padding:4px 6px;border-bottom:1px solid var(--line);white-space:nowrap;}
.vid-tbl td{padding:4px 6px;border-bottom:1px dashed var(--line);vertical-align:top;color:var(--ink2);}
.vid-tbl tr.bad td{color:#b91c1c;}
.vid-tbl td.warn{color:#b45309;}
.vid-pre{white-space:pre-wrap;word-break:break-word;font-size:11.5px;line-height:1.7;color:var(--ink2);
  background:#f8fafc;border:1px solid var(--line);border-radius:6px;padding:8px;margin:8px 0 0;max-height:220px;overflow:auto;}
.vid-dl{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 6px;}
.hint-inline.warn{color:#b45309;}
.hint-inline.ok{color:#047857;}

  /* ============ 成稿区重排（2026-11-02 指挥台下线） ============
     原来成稿与指挥台左右分屏，成稿只有半宽、屏高也被 tab 切一半。
     指挥台去掉后成稿独占整宽：正文收成居中阅读栏，工具条贴屏底，长短稿都不空。 */
  #txtBody{display:flex;flex-direction:column;}
  #txtColL{flex:1 1 auto;width:100%;}
  #txtBody .blk-draft{flex:1 1 auto;}
  #draftScreen{flex:1 1 auto;max-height:none;border-radius:12px;background:#fff;}
  #out{flex:1 1 auto;}
  #out .draft-scroll{flex:1 1 auto;padding:0;}
  #out .out-head{position:sticky;top:0;z-index:5;margin:0;padding:9px 22px 8px;
    background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid #eef2f7;}
  #out #story{max-width:100%;margin:0;padding:20px 24px 10px;}
  #out #story p{font-size:15.5px;line-height:1.98;color:#1f2937;margin:0 0 16px;}
  #out #story h2{font-size:20px;line-height:1.5;margin:0 0 18px;}
  #out .meta{max-width:100%;margin:0;padding:0 24px 12px;}
  #out .draft-tools{padding:8px 16px 9px;background:#fbfcfe;border-top:1px solid #eef2f7;}
  #out .draft-tools .out-tools{display:flex;align-items:center;gap:6px;}
  #out .draft-tools .out-tools #maximize{margin-left:auto;}
  #out.is-maximized #story{max-width:100%;}
  /* 空态：一块屏只做一件事——告诉人下一步点哪儿 */
  .draft-empty{display:flex;flex-direction:column;align-items:center;gap:8px;margin:auto;padding:40px 24px;
    text-align:center;color:var(--ink3);}
  .draft-empty .de-mark{font-size:30px;line-height:1;opacity:.85;}
  .draft-empty b{font-size:14.5px;font-weight:600;color:var(--ink2);}
  .draft-empty .de-line{font-size:13px;line-height:1.8;}
  .draft-empty .de-steps{display:flex;align-items:center;gap:6px;margin-top:10px;flex-wrap:wrap;
    justify-content:center;font-size:11.5px;color:#94a3b8;}
  .draft-empty .de-steps i{display:inline-flex;align-items:center;justify-content:center;
    width:16px;height:16px;margin:0 0 0 6px;border-radius:50%;background:#eff6ff;color:#2563eb;
    font-style:normal;font-size:10px;}
  .draft-empty .de-steps i:first-child{margin-left:0;}
  @media (max-width:760px){
    #out #story{padding:16px 16px 8px;}
    #out #story p{font-size:15px;line-height:1.95;margin-bottom:14px;}
    #out .out-head{padding:8px 14px;}
    #out .draft-tools{padding:7px 10px;}
    .draft-empty{padding:26px 16px;}
  }
  /* 设定条：模型下拉从指挥台工具条搬到这里 */
  .row-mode .model-stack{display:inline-flex;align-items:center;gap:5px;min-width:0;margin-left:auto;}
  .row-mode .model-stack[hidden]{display:none;}
  .row-mode .model-stack .lbl-sm{flex:0 0 auto;white-space:nowrap;}
  .row-mode #model{height:26px;max-width:200px;padding:1px 6px;font-size:12px;border-radius:7px;
    border:1px solid #dbe4f0;background:#fff;color:var(--ink2);}
  /* 设定卡与成稿分高度：设定卡封在 52%，把省下的高度留给成稿（原来给指挥台的那份） */
  @media (min-width:1081px) and (min-height:720px){
    .txt-setup{max-height:52%;}
  }
  html.in-frame.vis-known .txt-setup{max-height:52%;}
  #draftScreen{min-height:200px;}
  /* 视频卡：指挥台移除后，流水线自己吃满剩余高度 */
  @media (min-width:1081px) and (min-height:720px){
    .blk-pipe{flex:1 1 auto;}
    .blk-pipe .blk-body{flex:1 1 auto;max-height:none;}
  }
  html.in-frame.vis-known .blk-pipe{flex:1 1 auto;}
  html.in-frame.vis-known .blk-pipe .blk-body{flex:1 1 auto;max-height:none;}

  /* ============ 场景类别上移 + 叙事风格细项（2026-11-02 v2545） ============ */
  /* 场景切换放在「控件区」标题右边：所有类型都能选成人 / 非成人，一眼看见 */
  .txt-setup .setup-bar .head-scene{flex:0 0 auto;margin:0 2px 0 4px;}
  .txt-setup .setup-bar .head-scene .scene-picker{padding:2px;border-radius:8px;background:#e9eff7;}
  .txt-setup .setup-bar .head-scene .scene-picker button{padding:3px 9px;font-size:11px;border-radius:6px;}
  .txt-setup .setup-bar .head-scene[hidden]{display:none;}
  /* 叙事风格细项：风格定大方向，这里按风格自动长出可定的细项 */
  .voice-detail{margin:0 0 8px;padding:7px 9px 8px;border:1px solid #e2ecf9;border-radius:9px;background:#f7fbff;}
  .voice-detail[hidden]{display:none;}
  .vd-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px;}
  .vd-title{font-size:11.5px;font-weight:600;color:var(--ink2);white-space:nowrap;}
  .vd-sub{flex:1 1 200px;min-width:0;font-size:11px;color:var(--ink3);}
  .vd-sub b{color:var(--blue);font-weight:600;}
  .vd-head .mini{flex:0 0 auto;height:22px;padding:1px 7px;font-size:11px;}
  .vd-group{display:flex;align-items:center;flex-wrap:wrap;gap:4px 5px;padding:2px 0;}
  .vd-group + .vd-group{border-top:1px dashed #e6eef9;}
  .vd-label{flex:0 0 auto;min-width:54px;font-size:11px;color:var(--ink3);}
  .vd-chip{padding:1px 7px;font-size:10.5px;border-radius:7px;}
  @media (max-width:760px){
    .txt-setup .setup-bar .head-scene{order:3;margin-left:0;}
    .vd-label{min-width:0;}
  }

  /* ============ 情报台 · 每日简报（Horizon 雷达） ============ */
  .brief-body{max-width:860px;margin:0 auto;background:#fff;border:1px solid var(--line);
    border-radius:12px;padding:22px 26px 18px;overflow:auto;}
  .brief-body h2{font-size:19px;margin:18px 0 10px;padding-top:12px;border-top:1px dashed #e5eaf1;}
  .brief-body h2:first-child,.brief-body h3:first-child{margin-top:0;padding-top:0;border-top:none;}
  .brief-body h3{font-size:16px;margin:14px 0 8px;}
  .brief-body h4{font-size:14.5px;margin:12px 0 6px;}
  .brief-body p{font-size:13.8px;line-height:1.85;color:#1f2937;margin:0 0 10px;word-break:break-word;}
  .brief-body ul{margin:0 0 12px;padding-left:20px;}
  .brief-body li{font-size:13.8px;line-height:1.85;color:#1f2937;margin:0 0 6px;word-break:break-word;}
  .brief-body a{color:#2563eb;text-decoration:none;}
  .brief-body a:hover{text-decoration:underline;}
  .brief-body blockquote{margin:0 0 10px;padding:6px 12px;border-left:3px solid #cbd5e1;
    color:#64748b;font-size:13px;background:#f8fafc;border-radius:0 8px 8px 0;}
  .brief-body code{font-size:12px;background:#f1f5f9;border-radius:4px;padding:1px 5px;}
  .brief-body hr{border:none;border-top:1px solid #e5eaf1;margin:14px 0;}
  .brief-body details.brief-en{margin-top:16px;padding-top:12px;border-top:1px dashed #e5eaf1;}
  .brief-body details.brief-en summary{cursor:pointer;font-size:12.5px;color:#64748b;font-weight:600;}

  /* ---- GitHub 话题雷达（2026-11-05）---- */
  .gh-report-wrap{border:1px solid var(--line);border-radius:14px;background:#fff;margin:14px 0;}
  .gh-report-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);}
  .gh-report-head b{font-size:14px;color:var(--ink);}
  .gh-report-head .hint-inline{margin-left:auto;font-size:11.5px;}
  .gh-report{padding:2px 16px 14px;max-height:560px;overflow:auto;font-size:13px;line-height:1.8;color:#3f352a;}
  .gh-report h2{font-size:15px;margin:14px 0 6px;color:var(--ink);}
  .gh-report h3{font-size:13.5px;margin:16px 0 6px;color:#b45309;font-weight:700;}
  .gh-report h4{font-size:13px;margin:14px 0 5px;color:#8a6a2f;font-weight:700;}
  .gh-report p{margin:5px 0;}
  .gh-report ul{margin:4px 0 4px 18px;padding:0;}
  .gh-report li{margin:2px 0;}
  .gh-report code{background:#f6f2ea;border-radius:4px;padding:1px 5px;font-size:12px;color:#8a5a1f;}
  .gh-report blockquote{margin:8px 0;padding:7px 11px;border-left:3px solid #e6b95c;
    background:#fffdf5;color:#8a6a2f;font-size:12.5px;border-radius:0 8px 8px 0;}
  .gh-list{margin-top:6px;}
  .gh-list-h{font-size:12px;color:var(--ink3);margin:10px 0 8px;}
  .gh-card{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--line);
    border-radius:12px;padding:10px 12px;margin-bottom:8px;}
  .gh-card.hot{background:#fffdf5;border-color:#e6b95c;box-shadow:inset 3px 0 0 #d98511;}
  .gh-rank{flex:0 0 20px;font-size:12px;color:#b9aa96;text-align:right;padding-top:3px;}
  .gh-ava{flex:0 0 28px;width:28px;height:28px;border-radius:8px;object-fit:cover;background:#f2ece1;display:block;}
  .gh-main{flex:1;min-width:0;}
  .gh-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
  .gh-h a{font-weight:600;font-size:13px;color:var(--ink);text-decoration:none;}
  .gh-h a:hover{text-decoration:underline;}
  .gh-kind{font-style:normal;font-size:10.5px;padding:1px 6px;border-radius:6px;background:#f3eee5;color:#7a6a52;}
  .gh-kind.k-risk{background:#fdeceb;color:#b3261e;}
  .gh-kind.k-agent{background:#eaf2fd;color:#1d4ed8;}
  .gh-kind.k-localize{background:#eafaf0;color:#15803d;}
  .gh-kind.k-template{background:#f3ecfd;color:#6d28d9;}
  .gh-kind.k-tool{background:#eef6f6;color:#0f766e;}
  .gh-hot{font-style:normal;font-size:10.5px;padding:1px 5px;border-radius:5px;background:#fff1d6;color:#a8620a;}
  .gh-off{font-style:normal;font-size:10.5px;color:#9a8b76;}
  .gh-odd{font-style:normal;font-size:10.5px;padding:1px 5px;border-radius:5px;background:#fdeceb;color:#b3261e;}
  .gh-desc{margin:3px 0 4px;font-size:12.5px;color:#6b5d4b;line-height:1.5;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .gh-nums{display:flex;flex-wrap:wrap;gap:3px 10px;font-size:11.5px;color:var(--ink3);}
  .gh-nums .gh-speed{color:#b45309;font-weight:700;}
  .gh-side{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:5px;}
  .gh-side .mini{text-decoration:none;white-space:nowrap;}
  .gh-spark{display:block;}
  .gh-nospark{font-size:11px;color:#c3b6a4;line-height:22px;}
  .gh-kpiname{display:block;font-size:12.5px;max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  @media (max-width:720px){
    .gh-card{flex-wrap:wrap;}
    .gh-side{flex-direction:row;align-items:center;width:100%;justify-content:flex-end;}
  }

  /* ============ 2584 图文工坊：成稿面积最大 + 控件区/生成记录浮在上层 ============
     #txtBody 铺满整个 pane（成稿不再被上面的豆腐块挤着）；#txtTop 是 z 轴上层：
     展开是带阴影的面板，折叠压成一条 38px 工具条，成稿几乎独占整屏。 */
  .txt-pane{height:calc(var(--vis-h, 100dvh) - 88px);min-height:520px;overflow:hidden;}
  .txt-top{position:absolute;left:0;right:0;top:0;z-index:26;display:flex;flex-direction:column;gap:6px;
    max-height:calc(100% - 8px);}
  .txt-top #editCard{flex:0 1 auto;max-height:min(60vh,600px);overflow:hidden;
    background:rgba(248,250,252,.985);box-shadow:0 16px 40px -18px rgba(15,23,42,.42);}
  .txt-top #txtHist{flex:0 0 auto;background:rgba(255,255,255,.985);border:1px solid #dbe4f0;
    border-radius:11px;padding:0 12px;box-shadow:0 10px 28px -18px rgba(15,23,42,.38);}
  .txt-top .blk-title{cursor:pointer;user-select:none;}
  /* 上层展开时成稿从上层下方开始（不重叠、按钮点得到）；折叠时只让出 46px，成稿铺满 */
  /* 成稿层不设 z-index：否则会建独立层叠上下文，成稿里的爆款开头/标题候选浮层
     （z-index 45~60）反而被上层的 26 盖住。auto 时内部浮层能与上层直接比大小。 */
  .txt-body{position:absolute;inset:0;padding-top:calc(var(--txt-top-h, 38px) + 8px);
    display:flex;align-items:stretch;transition:padding-top .18s var(--ease);}
  .txt-body > .txt-col{height:100%;min-height:0;}
  .txt-body .blk-draft{height:100%;min-height:0;}
  .txt-body .draft-screen{flex:1 1 auto;max-height:none;min-height:0;}
  .txt-body #out{flex:1 1 auto;max-height:none;min-height:0;}
  .txt-body #out .draft-scroll{flex:1 1 auto;}
  .txt-sheet{z-index:27;}
  /* 折叠态：控件区和生成记录并排压成一条，两边只留标题与开关 */
  .txt-top.is-collapsed{flex-direction:row;align-items:center;gap:8px;height:38px;max-height:38px;
    padding:0 10px;background:rgba(255,255,255,.985);border:1px solid #dbe4f0;border-radius:11px;
    box-shadow:0 8px 24px -16px rgba(15,23,42,.4);overflow:hidden;}
  .txt-top.is-collapsed #editCard{flex:1 1 auto;min-width:0;max-height:none;overflow:visible;
    border:0;background:transparent;box-shadow:none;padding:0;}
  .txt-top.is-collapsed #txtHist{flex:0 0 auto;border:0;background:transparent;box-shadow:none;padding:0;}
  .txt-top.is-collapsed #editCard > .blk-body,
  .txt-top.is-collapsed #editCard.compose-collapsed > .blk-body{display:none !important;}
  .txt-top.is-collapsed .setup-bar > .blk-sum,
  .txt-top.is-collapsed .setup-bar > .head-scene,
  .txt-top.is-collapsed .setup-bar > .hint,
  .txt-top.is-collapsed .setup-bar > .credit-src,
  .txt-top.is-collapsed #txtHist .hist-latest,
  .txt-top.is-collapsed #txtHist #histDel{display:none !important;}
  .txt-top.is-collapsed .setup-bar > .blk-fold{margin-left:auto;}
  .txt-top.is-collapsed #txtHist .blk-head{min-height:30px;}
  .txt-top.is-collapsed #txtHist .blk-title{white-space:nowrap;}
  /* 窄屏：回到自然上下布局，绝对定位会把内容压没 */
  @media (max-width:760px){
    .txt-pane{height:auto;min-height:0;overflow:visible;}
    .txt-top{position:static;max-height:none;}
    .txt-top.is-collapsed{height:auto;max-height:none;flex-direction:column;align-items:stretch;}
    .txt-body{position:static;padding-top:0;min-height:calc(100dvh - 180px);}
    .txt-body .draft-screen{min-height:320px;}
  }

  /* ---- 2584 成稿编辑：滚鼠标时控件吸顶/吸底，正文照常跟页面走 ----
     用户明确要求「正文不自己滚动」，所以去掉 .rich-body 的独立滚动，
     textarea 也由 JS 撑到内容高度，滚动发生在成稿卡片自己的 .draft-scroll 里。 */
  .story-edit-sticky{position:sticky;top:0;z-index:6;margin:-10px -14px 10px;padding:10px 14px 8px;
    background:#fff;border-bottom:1px solid #eef2f7;}
  .story-edit-sticky .story-edit-top{margin-bottom:0;}
  .story-edit-sticky .rich-bar{margin:8px 0 0;}
  .story-edit-acts{position:sticky;bottom:0;z-index:6;margin:10px -14px -4px;padding:8px 14px 4px;
    background:#fff;border-top:1px solid #eef2f7;}
  /* 编辑态收掉成稿头部，让控件一开始就贴在滚动区顶边，滚动全程位置不变 */
  #out.editing .draft-scroll > .out-head,
  #out.editing .draft-scroll > .risk-notice,
  #out.editing .draft-scroll > .repl-panel,
  #out.editing .draft-scroll > .prog{display:none !important;}
  #editBody{resize:none;}
  .rich-body{max-height:none;overflow:visible;}
  /* 上层展开把成稿区压矮时，向上弹出的候选浮层不能被成稿屏的圆角 overflow 裁掉 */
  #draftScreen:has(#openerPop:not([hidden])),
  #draftScreen:has(#titleRecoList:not([hidden])),
  #draftScreen:has(#titleScoreDetail:not([hidden])){overflow:visible;}
  .opener-pop,.title-reco-pop{z-index:80;}
