:root{
  color-scheme:light;
  -webkit-tap-highlight-color:transparent;
  --bg:#FBF8F3; --fg:#1A1815;
  --card:#FBF8F3; --input-bg:#FFFDF9;
  --primary:#1A1815; --primary-fg:#FBF8F3;
  --blue:#3550C4; --blue-hover:#2E47B0; --blue-fg:#FBF8F3;
  --blue-tint:rgba(59,91,219,.10);
  --old:#6A6457; --dawn:#F6C177; --muted-fg:#655E52; --fg-soft:#655E52;
  --hover:#EFEAE1; --border:#E8E3D9;
  --danger:#C02929; --danger-bg:#FEF2F2; --success:#2E7A32;
  --radius-lg:12px; --radius-sm:8px; --pill:999px;
  --font-ui:"MiSans","Alibaba PuHuiTi","Inter","Microsoft YaHei","PingFang SC",system-ui,sans-serif;
  --font-serif:"Fraunces","Source Han Serif SC","Noto Serif SC",Georgia,"Times New Roman",SimSun,serif;
  --font-mono:"JetBrains Mono",Consolas,"Courier New",monospace;
  --shadow-modal:0 12px 40px rgba(26,24,21,.14);
  --card-head-bg:#F2ECE0;       /* 卡头米色带原色 */
  --window-head-bg:#EBE3D2;     /* 窗口头比卡头加深一档 */
  --split-ratio:1fr;             /* 双栏分割比例（持久化由 JS 写入 style） */
  --panel-w:250px;               /* 二级面板宽度（悬浮/推挤/窄屏统一走此变量） */
}
/* ===== 格式配置页改造 tokens（规格书 §1.1；值映射到应用现有变量，深色自动跟随） ===== */
:root{
  --c-primary:var(--blue); --c-primary-weak:var(--blue-tint);
  --c-danger:var(--danger); --c-warn:#8F5300;
  --c-text:var(--fg); --c-text-2:var(--muted-fg); --c-text-3:var(--muted-fg);
  --c-ghost:#6C6558;
  --c-bg:var(--bg); --c-card:var(--card); --c-head:var(--card-head-bg);
  --c-border:var(--border); --c-field-bg:var(--input-bg);
  --r-sm:6px; --r-md:8px; --r-lg:10px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px;
  --fs-xs:12px; --fs-sm:13px; --fs-md:14px;
  --dur:180ms;
}
.dark{
  --c-head:#2A261F; --c-ghost:#A39E92;
}

/* ===== 格式配置页改造 · 组件样式（规格书 §1.2–1.4、§3） ===== */
/* 44px 热区扩展 */
.hit44{position:relative}
.hit44::before{content:"";position:absolute;inset:-8px}
/* 全局动效开关（r234：动效强度三态——html[data-motion="full"] 豁免 OS 劫持；
   system=无属性→media query 生效；reduce=属性强制压平；full=豁免） */
@media (prefers-reduced-motion: reduce){
  html:not([data-motion="full"]) *{transition-duration:0s !important;animation-duration:0s !important}
}
/* r234：skip link——sr-only 式视觉隐藏（transform 移出视口），键盘聚焦时显现于左上；
   点击/回车跳转 #editor-container 并把焦点真正移入编辑器（JS 在 a11y-utils.js） */
.skip-link{position:fixed;top:8px;left:8px;z-index:100000;padding:8px 14px;
  background:var(--input-bg);color:var(--fg);border:1px solid var(--blue);
  border-radius:6px;font-size:13px;line-height:1.4;box-shadow:var(--shadow-modal);
  transform:translateY(-220%);transition:transform .15s ease-out;text-decoration:none;white-space:nowrap}
.skip-link:focus-visible,.skip-link:focus{transform:translateY(0)}
/* 分段控件 */
.seg{display:inline-flex;background:var(--c-head);border-radius:var(--r-md);padding:2px;gap:0}
.seg [role=radio]{
  min-width:72px;height:28px;padding:0 10px;border:0;background:transparent;
  border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--c-text-2);cursor:pointer;
  transition:background var(--dur),color var(--dur);display:inline-flex;align-items:center;justify-content:center;gap:4px;
}
.seg [role=radio] svg{flex:0 0 auto}
.seg [role=radio]:focus-visible{outline:2px solid var(--c-primary);outline-offset:1px}
.seg [aria-checked=true]{background:var(--c-field-bg);color:var(--c-text);font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.seg.mini [role=radio]{min-width:56px;height:24px;font-size:var(--fs-xs)}
.seg.two [role=radio]{min-width:52px}
/* NumberField 步进器 */
.nf{display:inline-flex;align-items:stretch;background:var(--c-field-bg);
    border:1px solid var(--c-border);border-radius:var(--r-sm);overflow:hidden;height:32px;max-width:100%}
.nf-btn{width:28px;border:0;background:transparent;color:var(--c-text-2);cursor:pointer;font-size:15px;line-height:1}
.nf-btn:hover{background:var(--c-head)}
.nf-btn:active{background:var(--c-border)}
.nf-input{width:56px;border:0;text-align:right;font-size:var(--fs-sm);color:var(--c-text);
          background:transparent;padding:0 4px;min-width:0}
.nf-input:focus{outline:none}
.nf:focus-within{border-color:var(--c-primary)}
.nf-unit{display:flex;align-items:center;padding:0 8px;font-size:var(--fs-xs);
         background:var(--c-head);color:var(--c-text-3);white-space:nowrap}
.nf.is-error{border-color:var(--c-danger)}
.nf-err{font-size:var(--fs-xs);color:var(--c-danger);margin:4px 0 0;display:none}
.nf.is-error + .nf-err, .nf.is-error ~ .nf-err{display:block}
/* Switch 开关 */
.sw{display:inline-flex;align-items:center;gap:8px;background:none;border:0;cursor:pointer;padding:0;height:28px}
.sw-track{width:40px;height:24px;border-radius:12px;background:var(--c-head);position:relative;transition:background var(--dur);flex:0 0 auto}
.sw-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;
         background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform var(--dur)}
.dark .sw-knob{background:#E8E2D8}
.sw[aria-checked=true] .sw-track{background:var(--c-primary)}
.sw[aria-checked=true] .sw-knob{transform:translateX(16px)}
.sw-label{font-size:var(--fs-sm);color:var(--c-text)}
.sw:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;border-radius:4px}
/* 折叠分组 */
.fgroup{border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-card);margin-bottom:var(--sp-3);overflow:hidden}
.fgroup-head{width:100%;display:flex;align-items:center;gap:8px;padding:9px 12px;border:0;background:none;
             font-size:15px;font-weight:600;color:var(--c-text);cursor:pointer;text-align:left}
.fgroup-head:hover{background:var(--c-head)}
.fgroup-head .chev{transition:transform var(--dur);flex:0 0 auto}
.fgroup[aria-expanded=false] .chev{transform:rotate(-90deg)}
.fgroup-count{margin-left:auto;font-size:var(--fs-xs);font-weight:400;color:var(--c-ghost)}
.fgroup-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows 250ms ease}
.fgroup[aria-expanded=false] .fgroup-body{grid-template-rows:0fr}
.fgroup-body-inner{overflow:hidden;padding:0 var(--sp-4) var(--sp-3)}
/* 吸顶锚点导航 */
.anchor-nav{display:flex;gap:6px;flex-wrap:wrap;padding:var(--sp-2) 0;position:sticky;top:0;z-index:10;background:var(--c-bg)}
.anchor-nav button{height:28px;padding:0 12px;border:1px solid var(--c-border);border-radius:14px;
                   background:var(--c-card);font-size:var(--fs-xs);color:var(--c-text-2);cursor:pointer;white-space:nowrap}
.anchor-nav button:hover{border-color:var(--c-primary);color:var(--c-primary)}
.anchor-nav button.active{background:var(--c-primary);color:var(--c-primary-fg);border-color:var(--c-primary)}
.anchor-nav .spacer{flex:1}
/* 三级标题对比表格 */
.htbl-wrap{overflow-x:auto}
.htbl{border-collapse:separate;border-spacing:0;width:100%;min-width:640px}
.htbl th,.htbl td{padding:6px 8px;border-bottom:1px solid var(--c-border);text-align:left;vertical-align:middle}
.htbl thead th{font-size:var(--fs-xs);color:var(--c-text-3);font-weight:400;white-space:nowrap}
.htbl tbody th{font-size:var(--fs-sm);color:var(--c-text);font-weight:500;white-space:nowrap}
.htbl tr:last-child th,.htbl tr:last-child td{border-bottom:0}
.htbl .seg.mini [role=radio]{min-width:44px;height:24px;font-size:var(--fs-xs);padding:0 6px}
/* 编号迷你预览 */
.numprev{background:var(--c-card);border:1px dashed var(--c-border);border-radius:var(--r-md);padding:var(--sp-3);margin-top:var(--sp-3)}
.numprev [data-lv="1"]{font-size:15px;font-weight:600;color:var(--c-text)}
.numprev [data-lv="2"]{font-size:14px;padding-left:16px;color:var(--c-text)}
.numprev [data-lv="3"]{font-size:13px;padding-left:32px;color:var(--c-text-2)}
.numprev b{color:var(--c-ghost);font-weight:400;margin-right:8px}
/* 预设模板 */
.preset{display:flex;align-items:center;gap:8px;padding:var(--sp-2) 0;flex-wrap:wrap}
.preset-label{font-size:var(--fs-sm);color:var(--c-text-2);font-weight:500}
.preset button{height:28px;padding:0 14px;border:1px solid var(--c-border);border-radius:14px;
               background:var(--c-card);font-size:var(--fs-sm);color:var(--c-text-2);cursor:pointer;transition:background var(--dur),border-color var(--dur),color var(--dur)} /* P2：transition:all → 具体属性（避免布局/滤镜属性也被动画） */
.preset button:hover{border-color:var(--c-primary);color:var(--c-primary)}
.preset button[aria-pressed=true]{background:var(--c-primary);color:var(--c-primary-fg);border-color:var(--c-primary);font-weight:500}
.preset button:disabled{opacity:.45;cursor:not-allowed}
/* 吸底摘要栏 */
.fmt-left-pos{position:relative}
.sumbar{display:flex;align-items:center;gap:4px;height:36px;padding:0 var(--sp-3);background:var(--c-card);
        border-top:1px solid var(--c-border);font-size:var(--fs-xs);position:absolute;bottom:0;left:0;right:0;overflow-x:auto;z-index:5}
.sumbar button{border:0;background:none;color:var(--c-text-2);cursor:pointer;padding:0 8px;height:28px;
               border-radius:var(--r-sm);white-space:nowrap;font-size:var(--fs-xs)}
.sumbar button:hover{background:var(--c-head)}
.sumbar b{color:var(--c-text);font-weight:600}
.sumbar .spacer{flex:1}
.sumbar .dirty{color:var(--c-warn);white-space:nowrap}
/* 悬停字段联动 */
.pv-hint{outline:2px dashed rgba(59,91,219,.55) !important;outline-offset:2px;border-radius:2px}
/* 字段闪烁 */
.flash{animation:fmtFlash 2s ease 1}
@keyframes fmtFlash{0%,60%{outline:2px solid var(--c-primary);outline-offset:2px}100%{outline:2px solid transparent}}
/* 字段行（新表单通用） */
.frow{display:flex;align-items:center;gap:var(--sp-3);padding:6px 0;flex-wrap:wrap}
.frow .flabel{flex:0 0 86px;font-size:var(--fs-sm);color:var(--c-text-2)}
.frow .fctrl{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.frow .fhelp{flex-basis:100%;font-size:var(--fs-xs);color:var(--c-text-3);margin:0;padding-left:98px}
.frow-block{display:flex;flex-direction:column;gap:2px;padding:6px 0}
.frow-block .flabel{font-size:var(--fs-sm);color:var(--c-text-2)}
/* 只读预览片 */
.readonly-chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--r-sm);
                background:var(--c-head);color:var(--c-text-2);font-size:var(--fs-xs)}
/* 禁用下拉 */
select:disabled{opacity:.55;cursor:not-allowed;background:var(--c-head)}
/* 提示气泡（悬停联动首次引导） */
.fmt-hint-bubble{position:fixed;z-index:999;background:#2C3A47;color:#fff;font-size:var(--fs-xs);
                 padding:8px 12px;border-radius:var(--r-md);max-width:240px;box-shadow:0 4px 12px rgba(0,0,0,.2);
                 pointer-events:none;transition:opacity .2s}
.fmt-hint-bubble .close-x{pointer-events:auto;cursor:pointer;margin-left:8px;color:#fff;background:none;border:0;font-size:14px}
/* 尺寸下拉 optgroup 字号 */
.wcfg-size-select optgroup{font-size:var(--fs-sm)}
.wcfg-size-select optgroup option{font-size:var(--fs-sm)}
/* 复选框 accent-color */
.wcfg-check-row input[type=checkbox]{accent-color:var(--c-primary);width:16px;height:16px}
.dark{
  color-scheme:dark;
  --bg:#1A1815; --fg:#F0ECE4;
  --card:#221F19; --input-bg:#26221B;
  --primary:#FBF8F3; --primary-fg:#1A1815;
  --blue:#91A8F5; --blue-hover:#A9BAF8; --blue-fg:#1A1815;
  --blue-tint:rgba(145,168,245,.16);
  --muted-fg:#A39E92; --old:#A8A296; --fg-soft:#A8A296; --hover:#2A261F; --border:#3A352C;
  --danger:#F87171; --danger-bg:#3A2323; --success:#6FCF8E; --c-warn:#C98A2D;
  --shadow-modal:0 12px 40px rgba(0,0,0,.5);
  --card-head-bg:#2A261F;
  --window-head-bg:#332E25;
}

/* ===== 颜色主题（顶栏设置菜单切换；Apple Design 风格） =====
   深色主题（高级黑）带 dark class（组件级 .dark 适配仍生效），data-theme 记录具体主题；
   每套主题完整覆盖核心变量，背景色相与主色差异鲜明；主色/次要文字对比度满足 WCAG AA。 */
/* 极简白：纯白底 + 中性黑（克制、高对比） */
body[data-theme="minimal"]{
  --bg:#FFFFFF; --fg:#1D1D1F; --card:#FFFFFF; --input-bg:#FFFFFF;
  --primary:#1D1D1F; --primary-fg:#FFFFFF;
  --blue:#1D1D1F; --blue-hover:#333336; --blue-fg:#FFFFFF;
  --blue-tint:rgba(0,0,0,.07);
  --old:#86868B; --muted-fg:#6E6E73; --fg-soft:#6E6E73;
  --hover:#F2F2F2; --border:#D8D8DD;
  --danger:#D70015; --danger-bg:#FFF0F0; --success:#248A3D;
  --c-ghost:#6E6E73;
  --card-head-bg:#F2F2F2; --window-head-bg:#ECECEE;
}
/* 高级黑：深灰黑 + 鎏金点缀（r189 整体黑色调亮一档） */
body.dark[data-theme="noir"]{
  color-scheme:dark;
  --bg:#141417; --fg:#F5F5F7; --card:#1D1D20; --input-bg:#26262A;
  --primary:#F5F5F7; --primary-fg:#141417;
  --blue:#D4AF37; --blue-hover:#C5A12E; --blue-fg:#1A1405;
  --blue-tint:rgba(212,175,55,.16);
  --muted-fg:#A1A1A8; --old:#8E8E93; --fg-soft:#A1A1A8; --hover:#2C2C31; --border:#38383E;
  --danger:#FF453A; --danger-bg:#4A2020; --success:#30D158;
  --c-ghost:#A1A1A8; --c-head:#1D1D20;
  --shadow-modal:0 12px 40px rgba(0,0,0,.55);
  --card-head-bg:#1D1D20; --window-head-bg:#18181C;
}
/* 经典蓝：淡蓝白 + 深蓝 */
body[data-theme="classic"]{
  --bg:#EDF3FC; --fg:#12294D; --card:#FFFFFF; --input-bg:#FFFFFF;
  --primary:#12294D; --primary-fg:#FFFFFF;
  --blue:#1D4ED8; --blue-hover:#1A45C2; --blue-fg:#FFFFFF;
  --blue-tint:rgba(29,78,216,.13);
  --old:#5A6B87; --muted-fg:#4A5B78; --fg-soft:#5A6B87;
  --hover:#DCE8F7; --border:#C3D4EC;
  --danger:#B42318; --danger-bg:#FDEEEC; --success:#2E7A32;
  --c-ghost:#5A6B87;
  --card-head-bg:#D8E6F6; --window-head-bg:#C6D7EF;
}
/* 樱语粉：淡樱粉 + 玫红 */
body[data-theme="sakura"]{
  --bg:#FDF0F4; --fg:#43232F; --card:#FFFFFF; --input-bg:#FFFFFF;
  --primary:#43232F; --primary-fg:#FFFFFF;
  --blue:#C2185B; --blue-hover:#AC1551; --blue-fg:#FFFFFF;
  --blue-tint:rgba(194,24,91,.13);
  --old:#8A6272; --muted-fg:#7A5266; --fg-soft:#8A6272;
  --hover:#F5DEE8; --border:#E9C2D3;
  --danger:#B42318; --danger-bg:#FDEEEC; --success:#2E7A32;
  --c-ghost:#8A6272;
  --card-head-bg:#F2D9E5; --window-head-bg:#E8C8D6;
}
/* 丁香紫：淡紫白 + 丁香紫 */
body[data-theme="lilac"]{
  --bg:#F3F0FB; --fg:#251C46; --card:#FFFFFF; --input-bg:#FFFFFF;
  --primary:#251C46; --primary-fg:#FFFFFF;
  --blue:#6A3FC7; --blue-hover:#5E38B2; --blue-fg:#FFFFFF;
  --blue-tint:rgba(106,63,199,.14);
  --old:#7A6C9E; --muted-fg:#6A5B8F; --fg-soft:#7A6C9E;
  --hover:#E5DFF5; --border:#D0C5EA;
  --danger:#B42318; --danger-bg:#FDEEEC; --success:#2E7A32;
  --c-ghost:#7A6C9E;
  --card-head-bg:#E2DBF4; --window-head-bg:#D1C5EA;
}
/* 元气红：淡红白 + 正红 */
body[data-theme="rouge"]{
  --bg:#FDF1EF; --fg:#45201D; --card:#FFFFFF; --input-bg:#FFFFFF;
  --primary:#45201D; --primary-fg:#FFFFFF;
  --blue:#C62828; --blue-hover:#B02323; --blue-fg:#FFFFFF;
  --blue-tint:rgba(198,40,40,.13);
  --old:#93605A; --muted-fg:#81504A; --fg-soft:#93605A;
  --hover:#F5DED9; --border:#E9C1BA;
  --danger:#B42318; --danger-bg:#FDEEEC; --success:#2E7A32;
  --c-ghost:#93605A;
  --card-head-bg:#F1D9D4; --window-head-bg:#E7C6BF;
}
/* 颜色主题选择器（设置→外观） */
.theme-swatches{display:flex;flex-wrap:wrap;gap:8px}
.theme-swatch{display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:2px solid transparent;border-radius:12px;padding:6px 8px;cursor:pointer;color:var(--fg);font-family:var(--font-ui);transition:border-color .15s ease-out,background .15s ease-out}
.theme-swatch:hover{background:var(--hover)}
.theme-swatch.on{border-color:var(--blue)}
.ts-body{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,.15), inset 0 0 0 1px rgba(0,0,0,.06);position:relative}
.ts-dot{width:16px;height:16px;border-radius:50%;display:block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.ts-name{font-size:12px;color:var(--muted-fg);white-space:nowrap}
.theme-swatch.on .ts-name{color:var(--fg);font-weight:600}
/* 顶栏设置菜单内的小型色板（3 列紧凑网格） */
.top-settings-group-label{font-size:11.5px;font-weight:600;color:var(--muted-fg);padding:6px 10px 2px}
.top-settings-themes{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:2px 0 8px}
.top-settings-themes .theme-swatch{padding:4px 2px;gap:4px;border-radius:10px}
.top-settings-themes .ts-body{width:30px;height:30px}
.top-settings-themes .ts-dot{width:12px;height:12px}
.top-settings-themes .ts-name{font-size:10.5px}

/* ========== 满幅窗口模型 + 三态视图（论文/格式/文献三板块通用） ========== */
.tf-window{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:10px;
  width:calc(100% - 24px);
  margin:12px;
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:visible;
}
.tf-window-head{
  flex-shrink:0;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:10px 16px;min-height:48px;box-sizing:border-box;
  background:var(--card);
  border-bottom:1px solid var(--border);
  border-radius:10px 10px 0 0;
}
.tf-window-head .va-spacer{flex:1}
.tf-window-body{
  flex:1;min-height:0;
  display:flex;flex-direction:column;
  padding:12px;overflow:hidden;
}
/* r45: 论文编辑窗口去掉最外层空白窗口壳（空标题栏折叠、窗口贴满，图1→图2） */
#viewPaper .tf-window{margin:0;width:100%;border:none;border-radius:0}
#viewPaper .tf-window-head{height:0;min-height:0;padding:0;border-bottom:none;background:transparent}
/* 三态通用规则 */
.tf-window-body[data-mode="edit"] .tf-pane-preview,
.tf-window-body[data-mode="edit"] .tf-splitter{display:none}
.tf-window-body[data-mode="preview"] .tf-pane-edit,
.tf-window-body[data-mode="preview"] .tf-splitter{display:none}
.tf-window-body[data-mode="edit"] .tf-pane-edit{
  display:flex;flex:1;min-height:0;flex-direction:column;
}
/* r73：编辑半栏作为灵动岛胶囊/卡片的定位锚 */
.tf-pane-edit{position:relative}
.tf-window-body[data-mode="preview"] .tf-pane-preview{
  display:flex;flex:1;min-height:0;flex-direction:column;
}
.tf-window-body[data-mode="dual"]{
  display:grid;
  grid-template-columns:var(--split-ratio) 1px 1fr;
  gap:0;align-items:stretch;
}
.tf-window-body[data-mode="dual"] .tf-pane-edit,
.tf-window-body[data-mode="dual"] .tf-pane-preview{
  display:flex;flex-direction:column;min-height:0;min-width:0;
  overflow:auto;
}
.tf-splitter{
  background:var(--border);
  cursor:col-resize;
  position:relative;
  width:1px;
  user-select:none;
}
.tf-splitter::before{
  content:"";position:absolute;top:0;bottom:0;left:-4px;right:-4px;
}
.tf-splitter:hover{background:var(--blue)}
.tf-window-body:not([data-mode="dual"]) .tf-splitter{display:none}

/* segmented 控件 */
.tf-seg{
  display:inline-flex;align-items:center;gap:0;
  border:1px solid var(--border);border-radius:var(--pill);
  background:var(--card);padding:2px;flex-shrink:0;
}
.tf-seg-item{
  padding:5px 14px;font-size:12.5px;color:var(--muted-fg);
  border:none;background:transparent;border-radius:var(--pill);
  cursor:pointer;line-height:1.3;white-space:nowrap;
  transition:color .15s ease-out,background .15s ease-out;
}
.tf-seg-item:hover{color:var(--fg)}
.tf-seg-item.active{
  background:var(--blue-tint);color:var(--blue);font-weight:600;
}
/* r102：预览按钮移到编辑区右上 fixed 位（与左上大纲按钮对称），风格与大纲按钮一致。
   双类特异性压过同文件后定义的 .rail-mini-fix 基类；z1000 高于预览半栏，双栏时按钮仍可见可点；
   aria-expanded=true（双栏态）用浅蓝底+蓝图标，同 .tf-outline-toggle 展开态 */
.rail-mini-fix.rail-mini-fix-right{left:auto;right:12px}
.rail-mini-fix.rail-preview-slide{
  z-index:1000;background:var(--bg);color:var(--muted-fg);border:1px solid var(--border);
}
.rail-mini-fix.rail-preview-slide:hover{background:var(--hover);color:var(--fg)}
/* r179：双栏展开态背景改 var(--input-bg) 与编辑区一致，激活反馈保留蓝色图标 */
.rail-mini-fix.rail-preview-slide[aria-expanded="true"]{background:var(--input-bg);color:var(--blue)}
/* r134：信息窗（isl-edit）打开时预览按钮退后到大纲按钮同层 z100，被遮罩(z119/120)盖住；关闭恢复 z1000 */
.rail-mini-fix.rail-preview-slide.pv-behind{z-index:100;pointer-events:none}
/* r81：备份目录下拉菜单（锚顶栏文件夹按钮下方）；r103：右缘与按钮右缘对齐，right 由 JS 打开时按按钮实测位置写入，64px 仅 home 视图无 JS 兜底 */
#backupMenu{right:64px;width:264px}
.backup-menu-item{
  display:block;width:100%;text-align:left;border:none;background:transparent;
  font-family:var(--font-ui);font-size:13.5px;color:var(--fg);
  padding:8px 10px;border-radius:8px;cursor:pointer;line-height:1.4;
}
.backup-menu-item:hover{background:var(--hover)}
.backup-menu-item.danger{color:var(--danger,#dc2626)}
.backup-menu-item.danger:hover{background:var(--red-tint,rgba(220,38,38,.08))}
.backup-menu-sep{height:1px;background:var(--border);margin:7px 4px}
.backup-menu-label{
  padding:3px 10px 5px;font-size:11.5px;color:var(--muted-fg);
}
/* r88：备份菜单顶部同步状态行 */
.backup-menu-status{
  padding:6px 10px 8px;font-size:11.5px;color:var(--muted-fg);line-height:1.55;
  border-bottom:1px solid var(--border);margin-bottom:6px;word-break:break-all;
}
/* r93：hidden 补钉（.backup-menu-item/.backup-menu-fold-toggle 的 display 会覆盖 hidden 默认样式） */
.backup-menu-item[hidden],.backup-menu-status[hidden]{display:none}
/* r90：目录管理折叠区（箭头随展开旋转）+ 历史「当前」标签 */
.backup-menu-fold-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px}
.backup-menu-fold-arrow{flex:none;transition:transform .18s ease}
.backup-menu-fold-toggle.open .backup-menu-fold-arrow{transform:rotate(180deg)}
.backup-menu-fold{padding-left:10px}
.backup-history-item-cur{
  flex:none;font-size:10.5px;line-height:1;padding:3px 6px;border-radius:6px;
  background:var(--blue-tint);color:var(--blue);
}
/* r88：应用内备份文件浏览器 */
.backup-browser-modal{width:min(640px,92vw);padding:18px 20px;display:flex;flex-direction:column;max-height:76vh}
.backup-browser-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.backup-browser-bread{display:flex;align-items:center;flex-wrap:wrap;gap:2px;min-width:0}
.backup-browser-crumb{border:none;background:transparent;font-family:var(--font-ui);font-size:13px;color:var(--fg);padding:3px 6px;border-radius:6px;cursor:pointer}
.backup-browser-crumb:hover{background:var(--hover)}
.backup-browser-sep{color:var(--muted-fg);font-size:12px}
.backup-browser-body{flex:1;overflow-y:auto;min-height:180px;max-height:52vh;border:1px solid var(--border);border-radius:10px;padding:6px}
.backup-browser-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;cursor:pointer;font-size:13px;color:var(--fg)}
.backup-browser-row:hover{background:var(--hover)}
.backup-browser-ico{width:18px;text-align:center;flex:none}
.backup-browser-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.backup-browser-meta{font-size:11.5px;color:var(--muted-fg);flex:none}
.backup-browser-empty{padding:18px;font-size:12.5px;color:var(--muted-fg);text-align:center}
.backup-browser-preview{display:none}
.backup-history-list{display:flex;flex-direction:column;max-height:168px;overflow-y:auto}
.backup-history-item{
  display:flex;align-items:center;gap:6px;border:none;background:transparent;
  font-family:var(--font-ui);font-size:13px;color:var(--fg);
  padding:6px 10px;border-radius:7px;cursor:pointer;text-align:left;
}
.backup-history-item:hover{background:var(--hover)}
/* r234：键盘化菜单项（div[role=menuitem][tabindex]）聚焦可见环——不吃全局 button 规则，单独补 */
.backup-history-item:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.backup-history-item.active{color:var(--blue)}
.backup-history-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.backup-history-item-del{
  flex:none;width:20px;height:20px;padding:0;border:none;border-radius:5px;
  background:transparent;color:var(--muted-fg);font-size:13px;line-height:1;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;
}
.backup-history-item:hover .backup-history-item-del{opacity:1}
.backup-history-item-del:hover{background:var(--red-tint,rgba(220,38,38,.1));color:var(--danger,#dc2626)}
.backup-history-empty{padding:6px 10px 8px;font-size:12px;color:var(--muted-fg)}
@media (max-width:640px){
  #backupMenu{width:min(264px,92vw);right:8px}
}
/* r84：备份按钮图标按授权状态切换：默认（未授权）问号图标；backup-connected 时对勾图标 */
#nav-backup .backup-icon-auth{display:none}
#nav-backup.backup-connected .backup-icon-unauth{display:none}
#nav-backup.backup-connected .backup-icon-auth{display:block}
/* r79：正文页 main 横排：大纲栏 + 编辑区（refs/fmt 页保持各自布局） */
#tabBody > .tab-pane-main{flex-direction:row}
/* r82：大纲栏改为 fixed 悬浮（不挤占编辑区）；收起时整体移出视口，边框线不露 */
/* r174：大纲侧栏背景与顶栏（nav.rail 用 --bg）一致 */
.tf-outline{
  position:fixed;top:102px;left:12px;bottom:12px;width:220px;z-index:200;
  overflow:hidden;background:var(--bg);border:1px solid var(--border);border-radius:12px;
  box-shadow:var(--shadow-modal);
  transform:translateX(calc(-100% - 16px));opacity:0;pointer-events:none;
  transition:transform .28s cubic-bezier(.3,.8,.35,1),opacity .2s ease-out;
}
#paperWindowBody.outline-open .tf-outline{
  transform:translateX(0);opacity:1;pointer-events:auto;
}
.tf-outline-inner{
  width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;min-height:0;
}
/* r82：标题居中；面板左缘与大纲按钮左缘对齐（同为 left:12） */
.tf-outline-title{padding:12px 14px 8px;font-size:12px;color:var(--muted-fg);font-weight:600;flex:none;text-align:center}
.tf-outline-list{flex:1;min-height:0;overflow-y:auto;padding:0 6px 10px}
.tf-outline-item{
  display:block;width:100%;text-align:left;border:none;background:transparent;
  font-family:inherit;font-size:13px;color:var(--fg);padding:6px 8px;border-radius:6px;cursor:pointer;
  line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.tf-outline-item:hover{background:var(--hover)}
.tf-outline-item.active{background:var(--blue-tint);color:var(--blue);font-weight:600}
.tf-outline-item.lvl-2{padding-left:20px}
.tf-outline-item.lvl-3{padding-left:32px;font-size:12.5px}
.tf-outline-empty{padding:14px;font-size:12.5px;color:var(--muted-fg);line-height:1.6}
@media (max-width:640px){
  #paperWindowBody.outline-open .tf-outline{width:188px;left:8px}
}
/* r79：大纲开关 fixed 左上，与右上预览开关对称；44x44 rail 样式，展开时图标水平反转 */
.rail-mini-fix{
  position:fixed;top:58px;left:12px;z-index:100;padding:0;
  width:44px;height:44px;border-radius:var(--radius-sm);border:none;background:transparent;
  display:inline-flex;align-items:center;justify-content:center;color:var(--muted-fg);
  transition:background .15s ease-out,color .15s ease-out;cursor:pointer;
}
.rail-mini-fix:hover{background:var(--hover);color:var(--fg)}
.rail-mini-fix svg{transition:transform .28s cubic-bezier(.3,.8,.35,1)}
.rail-mini-fix[aria-expanded="true"] svg{transform:scaleX(-1)}
/* r85/r86：大纲按钮与顶栏统一：底色=顶栏主题色 var(--bg)（不透明，加细边框保持可见）+
   顶栏图标色；展开（aria-expanded）时浅蓝底+蓝图标，同 .rail-item.active；不再蓝底白字 */
.rail-mini-fix.tf-outline-toggle{background:var(--bg);color:var(--muted-fg);border:1px solid var(--border)}
.rail-mini-fix.tf-outline-toggle[aria-expanded="true"]{background:var(--blue-tint);color:var(--blue)}
.tabs-float{
  position:fixed;left:0;top:0;z-index:135;
  display:flex;flex-direction:column;gap:10px;padding:12px;
  background:var(--card);border:1px solid var(--border);border-radius:12px;
  box-shadow:0 12px 32px rgba(0,0,0,.22);
  min-width:300px;max-width:calc(100vw - 40px);
}
.tabs-float[hidden]{display:none}
.tabs-float .paper-tabs{width:100%;max-width:100%}
.tabs-float .paper-tab{flex:1;text-align:center}
.tabs-float .tf-seg{width:100%;justify-content:stretch}
.tabs-float .tf-seg-item{flex:1;text-align:center}
.tabs-float .tabs-float-divider{height:1px;background:var(--border);margin:0}

/* 预览面板 mini 头条（r179：背景改 var(--input-bg) 与编辑区背景一致） */
.tf-preview-bar{
  display:flex;align-items:center;gap:10px;
  padding:0 14px;border-bottom:1px solid var(--border);
  background:var(--input-bg);flex-shrink:0;height:40px;box-sizing:border-box;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.tf-preview-bar .pv-title{
  flex:1;min-width:0;font-size:12.5px;color:var(--fg);font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
/* r125：标题内联刷新按钮（紧随标题文字右侧）；内层文本省略号承接 */
.tf-preview-bar .pv-title{display:inline-flex;align-items:center;gap:6px}
.tf-preview-bar .pv-title .pv-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.tf-preview-bar .pv-title .zoom-btn{
  width:26px;height:26px;font-size:14px;border-radius:7px;border:none;
  background:transparent;color:var(--muted-fg);flex:none;line-height:1;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s ease-out,color .15s ease-out;
}
.tf-preview-bar .pv-title .zoom-btn:hover{background:var(--hover);color:var(--fg)}
/* r78：缩放控件 3 按钮（刷新/−/+）对齐顶栏 rail-item：44x44、透明无边框、圆角与图标字号 */
.tf-preview-bar .pv-zoom-ctl .zoom-btn{
  width:44px;height:44px;border-radius:var(--radius-sm);border:none;
  background:transparent;font-size:18px;line-height:1;color:var(--muted-fg);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  cursor:pointer;transition:background .15s ease-out,color .15s ease-out;
}
.tf-preview-bar .pv-zoom-ctl .zoom-btn:hover{background:var(--hover);color:var(--fg)}
/* r83：缩放百分比气泡（仅拖动缩放条时显示在圆点上方；坐标由 JS 计算，避免被顶栏遮挡） */
.tf-preview-bar .zoom-tip{
  position:absolute;top:0;left:0;
  background:var(--blue);color:var(--blue-fg);font-size:11.5px;font-weight:600;line-height:1;
  padding:5px 8px;border-radius:7px;white-space:nowrap;pointer-events:none;z-index:6;
  box-shadow:0 4px 12px rgba(0,0,0,.18);
}
.tf-preview-bar .zoom-tip::after{
  content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);
  border:4px solid transparent;border-top-color:var(--blue);
}
/* r74：论文主预览栏控件组居左，标题绝对定位水平居中；状态栏居右（全宽度生效）。
   r78：窄屏堆叠栏高 48 容纳 44x44 按钮 */
#previewCol > .tf-preview-bar{position:relative;height:48px}
#previewCol .pv-zoom-ctl{display:flex;align-items:center;gap:4px;flex:none;position:relative;z-index:2}
#previewCol .pv-zoom-range{
  width:110px;flex:none;accent-color:var(--blue);cursor:pointer;height:18px;margin:0;padding:0;background:transparent;
}
#previewCol > .tf-preview-bar .pv-title{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  flex:none;text-align:center;max-width:calc(100% - 400px);
}
/* fixed 预览开关覆盖栏右缘（12+44），状态栏让位到其左侧 */
#previewCol > .tf-preview-bar .pv-status{
  position:absolute;right:60px;top:50%;transform:translateY(-50%);
  margin-left:0;max-width:180px;
}
/* r76：edit→dual 预览 pane 从右侧滑入（pv-entering）；dual→edit 先向右滑出（pv-exiting，mode 仍 dual） */
#paperWindowBody.pv-entering[data-mode="dual"] > .tf-pane-preview{
  animation:tfPvSlideIn .32s cubic-bezier(.3,.8,.35,1);
}
#paperWindowBody.pv-exiting[data-mode="dual"] > .tf-pane-preview{
  animation:tfPvSlideOut .28s cubic-bezier(.5,0,.8,.4) forwards;
}
@keyframes tfPvSlideIn{from{transform:translateX(100%)}to{transform:translateX(0)}}
@keyframes tfPvSlideOut{from{transform:translateX(0)}to{transform:translateX(100%)}}
/* 宽屏双栏：预览栏上移 12px 贴顶栏底线、高 52（54→106），其垂直中心即两底线中线 y80 */
@media (min-width:1201px){
  #previewCol > .tf-preview-bar{
    margin-top:-12px;height:52px;
    border-top:none;border-radius:0;
  }
}
@media (max-width:640px){
  #previewCol .pv-zoom-range{width:64px}
  #previewCol > .tf-preview-bar .pv-title{max-width:calc(100% - 350px)}
}

/* 论文板块：编辑半栏（左栏）头部状态行 */
.tf-paper-edit .tab-pane-main{flex:1;min-height:0;display:flex;flex-direction:column;background:transparent;border:none;border-radius:0;overflow:hidden}
.tf-paper-edit .tab-pane{display:none;flex:1;min-height:0;flex-direction:column;min-width:0}
.tf-paper-edit .tab-pane:not([hidden]){display:flex}
.tf-paper-edit .tab-pane-main .tab-pane-head{
  display:flex;align-items:center;gap:10px;padding:8px 14px;
  border-bottom:1px solid var(--border);flex-shrink:0;background:var(--hover);
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.tf-paper-edit .tab-pane-main .tab-pane-title{
  font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--fg);
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.tf-paper-edit .tab-pane-main .tab-pane-body{
  flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;
}
.tf-paper-edit .tab-pane-main .tab-pane-body.editor-wrap2{overflow:hidden;background:var(--input-bg)}
/* r79：横排布局下编辑区填充大纲栏右侧剩余空间 */
#tabBody > .tab-pane-main > .editor-wrap2{flex:1;min-width:0;display:flex;flex-direction:column}
.tf-paper-edit .tab-pane-main .tab-pane-body.paper-info-body{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;
  overflow-y:auto;max-height:none;align-content:start;
}
.tf-paper-edit .tab-pane-main .tab-pane-body.fmt-quick-body{padding:16px;gap:12px}

/* 参考文献板块：编辑半栏=列表+详情；双栏下详情隐藏 */
.ref-edit-pane{display:flex;flex:1;min-height:0}
.tf-window-body[data-mode="dual"] .ref-edit-pane .ref-detail-slot,
.tf-window-body[data-mode="preview"] .ref-edit-pane .ref-detail-slot{display:none}
#refWindowBody{--split-ratio:340px}
#refWindowBody .ref-edit-pane .view-ref-list{flex:0 0 340px}

/* 窄屏退化 */
@media (max-width:1200px){
  .tf-window-body[data-mode="dual"]{display:flex;flex-direction:column}
  .tf-window-body[data-mode="dual"] .tf-splitter{display:none}
  .tf-window-body[data-mode="dual"] .tf-pane-preview{display:none}
  .tf-window-body[data-mode="dual"] .tf-pane-edit{display:flex;flex:1;min-height:0;flex-direction:column}
  .tf-window-body[data-mode="dual"] .ref-edit-pane .ref-detail-slot{display:flex}
}
@media (max-width:900px){
  /* 保持 .tf-window 高度受视口约束（勿用 min-height:auto，否则正文把容器撑到全高、
     内部滚动容器失去可滚空间、溢出被 .main overflow:hidden 裁剪 → 无法滚动） */
  .tf-window{min-height:0}
}
/* 格式板块预览模式隐藏底部操作条 */
.tf-window-body[data-mode="preview"] .wcfg-footer{display:none}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{font-family:var(--font-ui);background:var(--bg);color:var(--fg);font-size:14px;line-height:1.7;overflow:hidden;display:flex;flex-direction:column}
button{font-family:inherit;font-size:14px;cursor:pointer;border:none;background:none;color:inherit;font-weight:500}
input,select,textarea{font-family:inherit;font-size:14px;color:var(--fg);background:var(--input-bg);
  border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;outline:none;
  transition:border-color .15s ease-out,box-shadow .15s ease-out}
input::placeholder,textarea::placeholder{color:var(--old)}
input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-tint)}
button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
svg{display:block}

/* ── 按钮 ── */
.btn{border-radius:var(--pill);padding:8px 18px;transition:background .15s ease-out,opacity .15s ease-out,border-color .15s ease-out}
.btn-sm{padding:4px 14px;font-size:13px}
.btn-blue{background:var(--blue);color:var(--blue-fg)}
.btn-blue:hover{background:var(--blue-hover)}
.btn-ink{background:var(--primary);color:var(--primary-fg)}
.btn-ink:hover{opacity:.88}
.btn-outline{border:1px solid var(--border);background:var(--card)}
.btn-outline:hover{background:var(--hover)}
.btn-danger{color:var(--danger);border:1px solid var(--danger)}
.btn-danger-solid{background:var(--danger);color:#fff}
.btn:disabled{opacity:.6;cursor:default}
.split-btn{display:flex;border:1px solid var(--border);border-radius:var(--pill);overflow:hidden;background:var(--card)}
.split-btn .split-main{padding:7px 14px}
.split-btn .split-arrow{padding:7px 10px;border-left:1px solid var(--border)}
.split-btn .split-main:hover,.split-btn .split-arrow:hover{background:var(--hover)}
/* 论文顶栏导出 split-btn（描边蓝调） */
.export-split-wrap{border-color:var(--blue);color:var(--blue);font-weight:600;font-size:12.5px}
.export-split-wrap .split-main,.export-split-wrap .split-arrow{background:transparent;color:var(--blue)}
.export-split-wrap .split-arrow{font-size:11px}

/* ── 顶部导航栏（通顶）：我的论文 + 通用设置 ── */
.rail{position:relative;width:100%;height:54px;background:var(--bg);border-bottom:1px solid var(--border);
  display:flex;flex-direction:row;align-items:center;padding:0 12px;gap:8px;flex-shrink:0}
/* r200：rail 不建 stacking context（去 z-index:45）——顶栏内 absolute 菜单 z1200 直接参与根层叠，高于菜单遮罩 tfMenuBackdrop(z1150) 可正常点击；
   顶栏其余区域仍低于遮罩，点击即命中遮罩关闭菜单；弹窗遮罩(z1100)照常盖住顶栏 */
.rail-brand{position:relative;width:44px;height:44px;border-radius:var(--radius-sm);display:flex;align-items:center;
  justify-content:center;margin-bottom:8px;transition:background .15s ease-out}
.rail-brand:hover{background:var(--hover)}
.rail-brand:hover .brand-theme{color:var(--blue);border-color:var(--blue)}
.brand-theme{position:absolute;right:-3px;bottom:-3px;width:17px;height:17px;border-radius:50%;
  background:var(--card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;
  color:var(--muted-fg);transition:color .15s ease-out,border-color .15s ease-out}
.rail-item{width:44px;height:44px;border-radius:var(--radius-sm);display:flex;align-items:center;
  justify-content:center;color:var(--muted-fg);transition:background .15s ease-out,color .15s ease-out}
.rail-item:hover{background:var(--hover)}
.rail-item.active{background:var(--blue-tint);color:var(--blue)}
/* r44: 顶栏面板切换/主页按钮去掉蓝色高亮，active 时仅显示中性 hover */
#nav-panel-toggle.active{background:var(--hover);color:var(--fg)} /* r45: 文献库时主页按钮不加阴影，与编辑状态一致 */
#nav-home.active{background:transparent;color:var(--muted-fg)} /* r46: 主页按钮 active 无蓝底（覆盖 .rail-item.active 蓝底） */
#nav-home:hover{background:var(--hover)} /* r48: 主页按钮 hover 背景变深提示，与其它按钮一致 */
/* r121：备份/导出按钮入顶栏右组——右组起点随视图：
   默认（home/ref/format，body[data-view] 由 shell.js syncExportBtn 维护）由 backup 引领；
   paper 视图 backup 隐藏（r85），改由 export 引领，避免双 auto margin 平分空隙 */
.rail-item.rail-backup{margin-left:auto}
body:not([data-view="paper"]) .rail-item.rail-export{margin-left:0}
body[data-view="paper"] .rail-item.rail-backup{margin-left:0}
body[data-view="paper"] .rail-item.rail-export{margin-left:auto}
.top-settings-menu{position:absolute;top:calc(100% + 8px);right:12px;z-index:1200;width:280px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-modal);padding:8px}
.top-settings-menu[hidden]{display:none}
.top-settings-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;font-size:13px;color:var(--fg);font-family:var(--font-ui)}
.top-settings-item{display:block;width:100%;text-align:left;padding:8px 10px;border:none;background:transparent;border-radius:8px;font-size:13px;color:var(--fg);cursor:pointer;font-family:inherit;transition:background .15s ease-out,color .15s ease-out}
.top-settings-item:hover{background:var(--blue-tint);color:var(--blue)}
.top-settings-sep{height:1px;background:var(--border);margin:6px 2px}
.top-settings-switch-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;cursor:default}
.top-settings-switch-row span{font-size:13px;color:var(--fg)}
.top-settings-about{font-size:11.5px;color:var(--muted-fg);padding:8px 10px 4px;line-height:1.6}
/* r232：通用设置菜单底部「开发人员选项」折叠区（默认折叠） */
.top-settings-dev-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px}
.top-settings-dev-toggle .dev-fold-arrow{flex:none;transition:transform .18s ease}
.top-settings-dev-toggle.open .dev-fold-arrow{transform:rotate(180deg)}
.dev-options-fold{padding-left:10px}
/* 颜色主题专用菜单（调色板按钮展开）：单行容纳 6 个色板，right 由 JS 按按钮位置写入 */
.top-theme-menu{width:312px}
.top-theme-menu .theme-swatches{display:flex;flex-wrap:nowrap;justify-content:space-between;grid-template-columns:none;gap:8px;margin:2px 0 8px}
@media (max-width:560px){.top-theme-menu{width:min(312px,92vw)}.top-theme-menu .theme-swatches{flex-wrap:wrap;justify-content:flex-start}}
/* 主题切换圆形扩散（View Transitions API）：关闭默认交叉淡入，新主题快照从调色板开关处圆形展开 */
::view-transition-old(root){animation:none}
::view-transition-new(root){animation:none}
/* 不支持 View Transitions 的浏览器：新主题底色全屏遮罩，clip-path 从开关位置圆形扩散后淡出 */
.theme-reveal-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none;will-change:clip-path,opacity}
.rail-item.rail-export{background:var(--bg);color:var(--blue)}
#nav-export[hidden]{display:none!important}
/* r86：修复按视图自动隐藏失效——.rail-item{display:flex} 覆盖 hidden 的 UA display:none，
   需显式补钉（同 #nav-export/#nav-home/#nav-cite 既有写法） */
#nav-panel-toggle[hidden],#nav-backup[hidden],#previewSlideToggle[hidden]{display:none!important}
/* r86：颜色主题按钮编辑态隐藏（同属 .rail-item flex 覆盖 hidden，需同款补钉） */
#nav-theme[hidden],#nav-fmtcfg[hidden]{display:none!important}
/* r86：格式配置弹窗——近全屏 */
.modal.fmtcfg-modal{width:calc(100vw - 40px);height:calc(100vh - 40px);max-width:none;display:flex;flex-direction:column;padding:0;overflow:hidden}
.fmtcfg-head{display:flex;align-items:center;gap:12px;height:45px;padding:0 52px 0 16px;border-bottom:1px solid var(--border);flex:none}
.fmtcfg-head .fmtcfg-title{flex:none;margin:0;font-size:14.5px}
.fmtcfg-name{font-size:12.5px;font-weight:400;color:var(--muted-fg)}
.fmtcfg-body{position:relative;flex:1;min-height:0}
.fmtcfg-main{height:100%;display:flex;flex-direction:column;padding:10px 14px 12px;overflow:hidden}
.fmtcfg-placeholder{color:var(--muted-fg);font-size:13px;line-height:1.8;text-align:center;margin-top:120px}
.fmtcfg-head-actions{display:flex;align-items:center;gap:6px;flex:none}
.fmtcfg-modal > .modal-close-x{top:8px;right:12px;width:28px;height:28px;padding:0;font-size:15px;line-height:1;border:1px solid var(--border);border-radius:16px;background:var(--card);color:var(--muted-fg)}
.fmtcfg-modal > .modal-close-x:hover{color:var(--fg);border-color:var(--blue);background:var(--blue-tint)}
/* 确认框与格式配置 导入/导出弹窗必须浮于格式配置大窗之上（同 .modal-mask z1000，DOM 靠后者盖前） */
#modalMask,#fmtCfgImportMask,#fmtCfgExportMask{z-index:1100}
.fmtcfg-head .fmtcfg-load{display:flex;align-items:center;gap:7px;margin:0;font-size:12px;color:var(--muted-fg);flex-wrap:nowrap}
.fmtcfg-head .fmtcfg-load .fmtcfg-load-label{flex:none}
.fmtcfg-head .fmtcfg-load select{width:220px;max-width:220px;flex:none;margin:0;height:28px;padding:0 8px;border:1px solid var(--border);border-radius:8px;background:var(--card);font-size:12.5px;color:var(--fg)}
.btn-sm{height:28px;padding:0 12px;font-size:12.5px}

/* ---- r114：标签栏 + 面板 ---- */
.fc-tabbar{display:flex;align-items:center;gap:2px;flex:none;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:8px}
.fc-tab{border:none;background:transparent;padding:6px 16px 8px;font-size:13.5px;font-family:inherit;color:var(--muted-fg);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s}
.fc-tab:hover{color:var(--fg)}
.fc-tab.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}
.fc-tab-note{font-size:12px;color:var(--muted-fg);padding:0 8px;white-space:nowrap;min-width:0}
.fc-tab-actions{display:flex;align-items:center;gap:8px;margin-left:auto;padding-bottom:1px}
.fc-panels{flex:1;min-height:0;position:relative}
.fc-panel{height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
.fc-panel[hidden]{display:none}

/* ---- r114：样式配置工具条 ---- */
.fc-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.fc-toolbar .fc-note{font-size:12px;color:var(--muted-fg);margin-left:4px}

/* ---- r114：样式折叠组 ---- */
.fc-grp{border:1px solid var(--border);border-radius:12px;margin-bottom:10px;background:var(--card);overflow:hidden}
.fc-grp-h{display:flex;align-items:center;gap:8px;width:100%;border:none;background:transparent;padding:8px 12px;font-size:13px;font-weight:600;font-family:inherit;color:var(--fg);cursor:pointer;user-select:none;text-align:left}
.fc-grp-h:hover{background:var(--hover)}
.fc-grp-h .fc-arrow{margin-left:auto;color:var(--muted-fg);transition:transform .2s ease-out}
.fc-grp:not(.collapsed) .fc-grp-h .fc-arrow{transform:rotate(90deg)}
.fc-grp.collapsed .fc-grp-b{display:none}
.fc-grp-b{padding:0 10px 10px}

/* ---- r114：样式主表格（固定布局，15 列按内容控宽，控件撑满单元格） ---- */
.fc-tbl-scroll{overflow-x:auto;border-radius:8px}
table.fc-tbl{border-collapse:separate;border-spacing:0;width:100%;min-width:1084px;table-layout:fixed;font-size:13px}
.fc-tbl col.c-el{width:90px}
.fc-tbl col.c-zh{width:94px}
.fc-tbl col.c-en{width:130px}
.fc-tbl col.c-size{width:84px}
.fc-tbl col.c-chk{width:32px}
.fc-tbl col.c-align{width:80px}
.fc-tbl col.c-spec{width:70px}
.fc-tbl col.c-chars{width:54px}
.fc-tbl col.c-lmode{width:88px}
.fc-tbl col.c-lval{width:58px}
.fc-tbl col.c-sp{width:52px}
.fc-tbl col.c-cs{width:52px}
.fc-tbl col.c-jpreset{width:112px}
.fc-tbl th,.fc-tbl td{border-bottom:1px solid var(--border);padding:4px 5px;text-align:left;background:var(--card);overflow:hidden}
.fc-tbl thead th{position:sticky;top:0;z-index:3;background:var(--hover);font-weight:600;color:var(--fg);white-space:normal;line-height:1.3;text-align:center}
.fc-tbl thead th:first-child{left:0;z-index:4;text-align:left}
.fc-tbl tbody th{position:sticky;left:0;z-index:2;background:var(--card);font-weight:600;color:var(--fg);white-space:normal;line-height:1.35}
.fc-tbl tbody tr:hover td,.fc-tbl tbody tr:hover th{background:var(--hover)}
.modal .fc-tbl select{width:100%;max-width:none;height:28px;margin:0;padding:0 4px;font-size:12.5px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--fg);font-family:inherit}
.modal .fc-tbl input[type=number]{width:100%;height:28px;margin:0;padding:0 4px;font-size:12.5px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--fg)}
.fc-tbl td:nth-child(5),.fc-tbl td:nth-child(6){text-align:center}
.fc-tbl input[type=checkbox]{width:15px;height:15px;accent-color:var(--c-primary);vertical-align:-2px}
.fc-tbl .fc-num-u{font-size:11px;color:var(--muted-fg)}
.fc-tbl .fc-badge{display:block;margin:3px 0 0}

/* ---- r114：需确认徽标 ---- */
.fc-badge{display:inline-block;margin-left:6px;padding:0 6px;height:17px;line-height:17px;font-size:10.5px;font-weight:500;color:#8a5e00;background:#fdf3cf;border:1px solid #e7cd73;border-radius:9px;vertical-align:1px;cursor:help}
.dark .fc-badge{color:#e3c069;background:rgba(212,175,55,.13);border-color:rgba(212,175,55,.42)}

/* ---- r114：文档设置 / 规则配置卡片（r116 放大字号与间距） ---- */
.fc-grid{display:grid;gap:14px}
.fc-doc-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}
.fc-rules-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.fcard{border:1px solid var(--border);border-radius:12px;background:var(--card);overflow:hidden}
.fcard-h{padding:11px 16px;font-size:14px;font-weight:600;border-bottom:1px solid var(--border);background:var(--hover)}
.fcard-b{padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.fc-field{display:flex;flex-direction:column;gap:6px}
.fc-field > .fc-flabel{font-size:13px;color:var(--fg-soft)}
.modal .fc-field select,.modal .fc-field input[type=text],.modal .fc-field input[type=number]{height:32px;margin-bottom:0;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--card);font-size:13.5px;color:var(--fg);font-family:inherit}
.modal .fc-field select:focus-visible,.modal .fc-field input:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-tint)}
.modal .fc-field input[type=checkbox]{width:17px;height:17px;accent-color:var(--c-primary);margin:0}
.modal .fc-check{flex-direction:row;align-items:center;gap:9px;font-size:13.5px;color:var(--fg);cursor:pointer;margin-bottom:0}
.fc-u{font-size:12px;color:var(--muted-fg)}
.fc-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.fc-field textarea{width:100%;min-height:84px;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--card);font-size:13px;font-family:inherit;color:var(--fg);resize:vertical}
.fc-field textarea.fc-json{min-height:108px;font-family:ui-monospace,Consolas,monospace;font-size:12.5px}
.fc-field textarea.fc-err{border-color:var(--c-danger)}
.fc-json-err{font-size:12px;color:var(--c-danger);display:none}
.fc-json-err.show{display:block}

/* ---- r116：导入 / 导出弹窗 ---- */
.fc-io-modal{width:min(680px,92vw)}
.fc-io-msg{margin:0 0 10px;font-size:13px;color:var(--muted-fg);line-height:1.7}
.fc-io-ta{width:100%;box-sizing:border-box;min-height:280px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--input-bg);color:var(--fg);font-family:ui-monospace,Consolas,monospace;font-size:12.5px;line-height:1.6;resize:vertical}
.fc-io-ta:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-tint)}
.fc-io-btns{display:flex;align-items:center;gap:8px;margin-top:12px}

@media(max-width:960px){
  .modal.fmtcfg-modal{width:calc(100vw - 16px);height:calc(100vh - 16px)}
  .fmtcfg-load-label{display:none}
  .fc-doc-grid,.fc-rules-grid{grid-template-columns:1fr}
  .fmtcfg-main{padding:10px 12px 14px}
}
.rail-item.rail-export:hover{background:var(--hover);color:var(--blue)}
.rail-item.menu-open{background:var(--blue-tint);color:var(--blue)}
.rail-item.rail-export.menu-open{background:var(--blue-tint);color:var(--blue)}
.rail-brand-label{display:flex;align-items:center;justify-content:center;gap:8px;height:44px;width:250px;margin-left:-12px;padding:0 12px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;transition:background .15s ease-out,color .15s ease-out}
.rail-brand-label:hover{background:var(--hover)}
.rail-brand-label .rail-brand-text{font-family:var(--font-ui);font-size:15.5px;font-weight:600;color:var(--fg);white-space:nowrap;line-height:21px;transition:color .15s ease-out}
.rail-brand-label:hover .rail-brand-text{color:var(--blue)}
.rail-brand-label svg{flex-shrink:0}
.rail-brand-label:hover svg{color:var(--blue)}
/* 顶栏中间：当前编辑文稿文件名（编辑视图显示，文稿库隐藏） */
.rail-cur-file{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:62%;box-sizing:border-box;padding:0 12px;pointer-events:none;z-index:1}
/* r153：标题严格居中——左右等宽容器（flex:0 0 auto，min-width 取撤销+重做组合 98px 与右侧对称），
   分别右/左对齐贴靠标题两侧；两侧内容宽度不等时以 98px 最小宽度配平，标题不偏移；
   容器封顶（max-width）时标题压缩出省略号，两侧仍等宽；两侧内容随标题位置同步调整 */
.rail-cur-side{flex:0 0 auto;min-width:98px;display:flex;align-items:center;gap:10px;pointer-events:auto}
.rail-cur-left{justify-content:flex-end}
.rail-cur-right{justify-content:flex-start}
.rail-cur-file-name{font-family:var(--font-ui);font-size:13.5px;color:var(--fg-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(50vw - 170px);position:relative;pointer-events:auto;background:var(--input-bg);border:1px solid var(--border);outline:none;padding:3px 8px;border-radius:8px;cursor:pointer;box-sizing:border-box;transition:background .15s ease-out,box-shadow .15s ease-out,border-color .15s ease-out}
.rail-cur-file-name:hover{background:var(--hover);border-color:var(--blue-tint);box-shadow:0 0 0 1px var(--blue-tint)}
.rail-cur-file-name:focus{background:var(--hover);box-shadow:0 0 0 1px var(--blue-tint)}
/* 隐藏镜像：与输入框同字体测量文本宽度（不自适应参与布局） */
.rail-cur-name-mirror{position:fixed;visibility:hidden;white-space:pre;pointer-events:none;z-index:-1;font-family:var(--font-ui);font-size:13.5px;font-weight:400;letter-spacing:0;padding:3px 8px;border:1px solid transparent;box-sizing:border-box}
/* 保存状态：位于标题右侧容器开头（贴标题右缘），随标题位置移动（r153 取消旧绝对定位） */
.rail-cur-file .editor-status{position:static;left:auto;top:auto;transform:none}
/* r120：标题后的状态字（保存时间等）视觉隐藏、字数提示保留；隐藏文本改由指示灯悬停提示。
   saveTime 用 sr-only 剪裁而非 display:none，保住 saveStatus 的 aria-live 播报 */
.rail-cur-file .editor-status #saveTime{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rail-cur-file .editor-status .sep{display:none}
.rail-cur-file .editor-status .dot{pointer-events:auto;cursor:help}
.rail-cur-file[hidden]{display:none}
/* r130：撤销/重做移入题目左侧（railCurFile 内、rail-item 风格）；容器 pointer-events:none 需显式放行 */
#railCurFile .rail-item{pointer-events:auto;flex-shrink:0}
/* r154：撤销/重做不可用态——无历史时图标变浅且不可点击（状态由 hoverbar.js tfSyncUndoRedo 同步） */
#nav-undo:disabled,#nav-redo:disabled{opacity:.35;pointer-events:none}
.w-e-hover-bar .hb-injected.hb-disabled{opacity:.35;pointer-events:none}
/* r119：论文标题直接居中显示在顶栏（原深色胶囊退役，信息岛胶囊改显示摘要） */
.rail-paper-title{flex:0 1 auto;min-width:0;font-family:var(--font-ui);font-size:14px;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(46vw,560px);letter-spacing:.2px}
.rail-paper-title.empty{font-weight:400;color:var(--muted-fg)}
/* r119：编辑区自动编号浅灰提示（标题/图题/表题；公式沿用既有 .df-num）。
   编号由 JS 写入 data-tfnum 属性，CSS ::before 纯装饰显示，不进 Slate 内容与保存数据 */
#editor-container h1[data-tfnum]:not([data-tfnum=""])::before,
#editor-container h2[data-tfnum]:not([data-tfnum=""])::before,
#editor-container h3[data-tfnum]:not([data-tfnum=""])::before,
#editor-container .image-caption[data-tfnum]::before,
#editor-container .table-caption[data-tfnum]::before{content:attr(data-tfnum);color:var(--muted-fg);opacity:.55;font-weight:400;margin-right:6px;pointer-events:none;user-select:none}
/* r119：大纲条目多级编号提示 */
.tf-outline-num{color:var(--muted-fg);opacity:.75;margin-right:5px;font-weight:400}
/* r37：论文信息编辑页“从上往下拉出”动画 */
@keyframes tfSlideDown{from{transform:translateY(-14px);opacity:.25}to{transform:none;opacity:1}}
.tf-slide-down{animation:tfSlideDown .28s ease}
/* r39：论文信息“下拉窗口”——点击文件名按钮后从顶栏拉出的浮层窗口 */
.tf-paper-edit{position:relative}
.tf-paper-edit .tab-pane#tabInfo.info-window{position:absolute;inset:0;margin:-12px;z-index:25;background:var(--info-bg);border:1px solid var(--info-line);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.24);animation:tfIslandIn .42s cubic-bezier(.2,.9,.3,1.15);overflow:hidden}
@keyframes tfSlideDownW{from{transform:translateY(-52px);opacity:0}to{transform:none;opacity:1}}
#btnInfoWinClose{margin-left:auto;width:28px;height:28px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--muted-fg);font-size:15px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s ease-out,color .15s ease-out}
#btnInfoWinClose:hover{background:var(--hover);color:var(--fg)}
.rail-div{width:28px;height:1px;background:var(--border);margin:4px 0}

/* ── 右侧：二级面板（悬浮浮层，不推挤主区） + 主区 ──
   面板浮在主区上方：展开/收起只影响自身位移，主区宽度恒定；
   z-index 低于导航栏（40 < 45），收起时残条藏在不透明导航栏后面，导航栏恒定可见 */
.shell{flex:1;display:flex;min-width:0;min-height:0;position:relative}
.panel{position:fixed;left:0;top:54px;bottom:0;width:var(--panel-w);z-index:40;
  background:var(--bg);border-right:1px solid var(--border);
  display:flex;flex-direction:column;
  transform:translateX(-104%);transition:transform .22s ease,box-shadow .22s ease}
/* 文稿库（home）视图：二级面板整体平移滑出/滑入（宽度恒定，文字不重排），
   主区由 .main 的 margin-left 同步推挤；编辑等其余视图（无 .panel-push-home）保持 fixed 悬浮浮层形态 */
/* 收起/展开改为整体平移滑出：面板宽度恒定，文字不随宽度实时重排；
   主区推挤由 .main 的 margin-left 同步动画完成 */
body.panel-push-home .panel{position:absolute;left:0;top:0;bottom:0;width:var(--panel-w);min-width:var(--panel-w);
  z-index:40;transform:translateX(-104%);flex:none;overflow:hidden;
  border-right:1px solid var(--border);
  transition:transform .22s ease,box-shadow .22s ease}
body.panel-push-home .panel.open{transform:translateX(0);box-shadow:8px 0 32px rgba(26,24,21,.20)}
body.panel-push-home .main{margin-left:0;transition:margin-left .22s ease}
body.panel-push-home .panel.open + .main{margin-left:var(--panel-w)}
.panel.open{transform:translateX(0);box-shadow:8px 0 32px rgba(26,24,21,.20)}
#panelTitle{user-select:none;transition:color .15s ease-out}
#panelTitle:hover{color:var(--blue)}
/* 二级面板顶部标题栏：与文稿库顶栏同高（54px）同风格 */
.panel-tophead{position:relative;display:flex;align-items:center;gap:8px;height:54px;flex:none;padding:0 12px;box-sizing:border-box;border-bottom:1px solid var(--border);background:var(--bg);overflow:hidden}
.panel-tophead h2{position:absolute;left:50%;transform:translateX(-50%);font-family:var(--font-ui);font-size:15px;font-weight:600;margin:0;white-space:nowrap;line-height:21px}
.panel-tophead-actions{flex:none;margin-left:auto}
.panel-quick-btn{display:flex;align-items:center;justify-content:center;gap:6px;height:34px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s ease-out,color .15s ease-out,border-color .15s ease-out}
.panel-quick-new{background:var(--blue);color:#fff}
.panel-quick-new:hover{background:var(--blue-hover);color:#fff}
.panel-quick-import{background:var(--card);color:var(--blue);border:1px solid var(--blue)}
.panel-quick-back:hover{background:var(--hover);color:var(--blue);border-color:var(--blue)}
.panel-quick-import:hover{background:var(--blue-tint)}
/* 文稿库顶栏「新建文稿」：与导入文稿完全同形状同尺寸（panel-quick-btn 34px/radius-sm），仅配色蓝底白字 */
.home-head .panel-quick-new:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media (prefers-reduced-motion: reduce){.home-head .panel-quick-new,.home-head .panel-quick-new:hover{transition:none;transform:none}}
.import-menu-wrap{position:relative;display:inline-flex}
.import-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:1200;min-width:120px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-modal);padding:4px}
.import-menu[hidden]{display:none}
.import-menu-item{display:block;width:100%;text-align:left;background:transparent;color:var(--fg);border:none;border-radius:7px;padding:8px 12px;font-size:12.5px;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .15s ease-out,color .15s ease-out}
.import-menu-item:hover{background:var(--blue-tint);color:var(--blue)}
.home-head .import-menu{right:0;left:auto}
.panel-head{display:flex;flex-wrap:nowrap;align-items:center;gap:6px 8px;padding:21px 14px 10px;height:54px;box-sizing:border-box;overflow:hidden;border-bottom:1px solid var(--border)}
.panel-head h2{font-family:var(--font-ui);font-size:15.5px;font-weight:600;margin:0;flex:1;min-width:0;line-height:21px}
.panel-actions button{height:22px;padding:0 14px;box-sizing:border-box;display:inline-flex;align-items:center}
.panel-search{flex:1 0 100%;margin-top:2px}
.panel-sort{flex:1 0 100%;margin-top:6px}
.panel-sort select{width:100%;font-size:12.5px;padding:5px 8px}
.panel-actions{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.panel-actions button{font-size:12px;padding:3px 10px;border-radius:var(--pill);
  border:1px solid var(--border);background:var(--card);font-weight:400;transition:background .15s ease-out}
.panel-actions button:hover{background:var(--hover)}
.panel-body{flex:1;overflow-y:auto;padding:8px;overscroll-behavior:contain}
.list-group-title{font-size:11.5px;color:var(--muted-fg);padding:10px 8px 4px;letter-spacing:.5px}
/* ---- 工作目录标题行：下拉（断开连接 + 历史目录）、地址可换目录、刷新在行尾 ---- */
.doclib-dir-head{display:flex;align-items:center;gap:8px;padding:8px 2px 4px}
.doclib-dir-menu-wrap{position:relative;display:inline-flex}
.doclib-dir-head-title{font-size:11.5px;color:var(--muted-fg);letter-spacing:.5px;font-weight:600;white-space:nowrap;cursor:pointer;padding:2px 6px;border-radius:6px;background:none;border:none;line-height:1.5;transition:background .15s ease-out,color .15s ease-out}
.doclib-dir-head-title:hover{background:var(--hover);color:var(--fg)}
.doclib-dir-menu{
  position:absolute;top:calc(100% + 4px);left:0;z-index:1200;min-width:180px;max-width:240px;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-modal);padding:4px;
}
.doclib-dir-menu[hidden]{display:none}
.doclib-dir-menu-item{
  display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  background:transparent;color:var(--fg);border:none;border-radius:6px;
  padding:7px 10px;font-size:12.5px;text-align:left;cursor:pointer;white-space:nowrap;
  font-weight:400;box-sizing:border-box;
}
.doclib-dir-menu-item:hover{background:var(--blue-tint);color:var(--blue)}
.doclib-dir-menu-item.active{color:var(--blue);font-weight:600}
.doclib-dir-menu-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.doclib-dir-menu-del{
  flex:none;background:none;border:none;cursor:pointer;color:var(--danger);
  font-size:11px;padding:2px 5px;border-radius:5px;opacity:0;
  transition:opacity .15s ease-out,background .15s ease-out;
}
.doclib-dir-menu-item:hover .doclib-dir-menu-del,
.doclib-dir-menu-del:focus-visible{opacity:1}
.doclib-dir-menu-del:hover{background:var(--danger-bg)}
.doclib-dir-menu-item.doclib-dir-menu-disconnect{color:var(--danger)}
.doclib-dir-menu-item.doclib-dir-menu-disconnect:hover{background:var(--danger-bg);color:var(--danger)}
.doclib-dir-menu-sep{height:1px;background:var(--border);margin:4px 0}
.doclib-dir-menu-label{font-size:11px;color:var(--old);padding:6px 10px 3px;letter-spacing:.3px}
.doclib-dir-menu-empty{font-size:11.5px;color:var(--old);padding:8px 10px}
.doclib-dir-head-spacer{flex:1}
.doclib-dir-refresh{font-size:12px;padding:2px 10px;border-radius:var(--pill);border:1px solid var(--border);background:var(--card);color:var(--fg);cursor:pointer;white-space:nowrap;transition:background .15s ease-out}
.doclib-dir-refresh:hover{background:var(--hover);color:var(--blue);border-color:var(--blue)}
.list-item{width:100%;text-align:left;border-radius:var(--radius-sm);padding:9px 10px;
  display:flex;flex-direction:column;gap:3px;transition:background .15s ease-out;margin-bottom:2px}
.list-item:hover{background:var(--hover)}
.list-item.active{background:var(--blue-tint)}
.list-item.active .li-title{color:var(--blue);font-weight:500}
.li-title{font-size:13px;line-height:1.45;display:flex;align-items:center;gap:6px}
.li-meta{font-size:11.5px;color:var(--muted-fg)}
.li-tag{font-size:10px;color:var(--muted-fg);background:var(--hover);padding:1px 7px;border-radius:var(--pill);flex-shrink:0;font-weight:400}
.li-x{font-size:11px;color:var(--muted-fg);padding:1px 7px;border-radius:var(--pill);flex-shrink:0;margin-left:auto}
.li-x:hover{background:var(--danger-bg);color:var(--danger)}
.li-restore{margin-left:auto;flex-shrink:0;font-size:13px;color:var(--muted-fg);cursor:pointer;padding:0 5px;border-radius:var(--pill);opacity:0;transition:opacity .15s ease-out;user-select:none;display:inline-flex;align-items:center;line-height:1;font-weight:400}
.list-item:hover .li-restore,.li-restore:focus-visible{opacity:1}
.li-restore:hover{color:var(--blue);background:var(--blue-tint)}
.grant-row{width:100%;text-align:center;font-size:12.5px;color:var(--blue);font-weight:400;
  border:1.5px dashed var(--blue);border-radius:var(--radius-lg);padding:11px;margin:6px 0;
  transition:background .15s ease-out}
.grant-row:hover{background:var(--blue-tint)}
.grant-hint{font-size:11.5px;color:var(--muted-fg);padding:2px 8px 10px;line-height:1.7}
/* 授权说明（可点击展开）：告知读取范围 / 数据去向 / 撤销方式 */
.grant-info{margin:0 8px 12px;font-size:11.5px;line-height:1.75;color:var(--muted-fg)}
.grant-info summary{cursor:pointer;color:var(--blue);user-select:none;display:inline-flex;align-items:center;gap:5px;list-style:none;font-weight:500}
.grant-info summary::-webkit-details-marker{display:none}
.grant-info summary::before{content:"▸";font-size:10px;transition:transform .15s ease-out;display:inline-block}
.grant-info[open] summary::before{transform:rotate(90deg)}
.grant-info summary:hover{text-decoration:underline}
.grant-info summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}
.grant-info[open] summary{margin-bottom:4px}
.grant-info-body{border-left:2px solid var(--border);padding:2px 0 2px 10px;margin:2px 0 0}
.grant-info-body p{margin:4px 0}
.grant-info-body b{color:var(--fg);font-weight:600}

/* 文献行：勾选框 + 正文（面板内） */
.ref-li{display:flex;gap:8px;align-items:flex-start;border-radius:var(--radius-sm);
  padding:9px 8px 9px 10px;margin-bottom:2px;transition:background .15s ease-out}
.ref-li:hover{background:var(--hover)}
.ref-li.active{background:var(--blue-tint)}
.ref-li.active .li-title{color:var(--blue);font-weight:500}
.ref-cb{display:flex;align-items:center;padding-top:3px;cursor:pointer;flex-shrink:0}
.ref-cb input{width:15px;height:15px;accent-color:var(--blue);cursor:pointer;margin:0}
.ref-li-main{flex:1;min-width:0;cursor:pointer}
.ref-insert-bar{border-top:1px solid var(--border);height:54px;box-sizing:border-box;padding:10px 14px;display:flex;align-items:center;
  gap:8px;font-size:12.5px;color:var(--muted-fg);flex-shrink:0;flex-wrap:wrap}
.ref-insert-bar b{color:var(--blue)}
.ref-insert-bar[hidden]{display:none}
.ref-insert-bar .bar-spacer{flex:1}

/* ── 主内容 ── */
.main{flex:1;overflow:auto;position:relative;min-width:0}
.view{min-height:100%;padding:0;display:flex;flex-direction:column;flex:1;min-height:0}
.view[hidden]{display:none}
/* r85/r140：文稿编辑页转场——打开文稿时从右往左覆盖滑入，返回文稿库时倒放（向右滑出）。
   fixed 仅覆盖顶栏以下区域，不遮挡 rail；几何与在流时一致，落位无跳变。
   r140：动画由 shell.js JS 逐帧驱动（0.75s），本文件不再声明 transition，
   pv-slide 类仅提供 fixed 覆盖与 identity 含块；-right 规则已随 CSS 过渡移除 */
#viewPaper.pv-slide{
  position:fixed;left:0;right:0;top:54px;bottom:0;z-index:90;
  background:var(--bg);
}
/* r104：转场全程挂 pv-slide-anim 提供 identity transform（translateX(0)，非 none 同样建立包含块），
   保证 fixed 按钮在任何一帧都以 viewPaper（顶 y=54）为包含块 */
#viewPaper.pv-slide.pv-slide-anim{transform:translateX(0)}
/* r104：pv-slide 带 transform 时会成为内部 fixed 按钮（大纲/预览）的包含块，其容器顶在视口 y=54；
   转场档把 top 58→4，使两态视口绝对位置恒为 y=58，消除每次进入/离开文稿时两按钮上下跳闪 */
#viewPaper.pv-slide .rail-mini-fix{top:4px}
/* r155：pv-slide 时 .tf-outline 同在 viewPaper（含块顶=视口y54）内，top:102px 换算视口=156，
   与按钮视口下边框(58+44=102)差54px；改为 48px（54+48=102）使侧栏上边框贴着按钮下边框 */
#viewPaper.pv-slide .tf-outline{top:48px}
/* r138/r140：文稿库退后变模糊——JS 逐帧插值（0.75s），本类仅作终态锚定（动画落幕 home 隐藏时保留，
   供返回倒放从该态恢复）；进入/返回的逐帧值由 shell.js 内联 style 覆盖 */
#viewHome.tf-home-zoomed{transform:scale(.96);filter:blur(3px);opacity:.55;pointer-events:none}

/* 视图顶栏：作为左侧二级面板标题栏（.panel-head）的横向延伸，同高 54px、连贯底边框、背景与 panel-head 一致 */
.view-actions{flex-shrink:0;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  height:54px;padding:0 16px;box-sizing:border-box;
  background:var(--bg);border-bottom:1px solid var(--border)}
.va-spacer{flex:1}
.dir-head-btn{border-radius:var(--pill);width:52px;display:inline-flex;align-items:center;justify-content:center;padding:4px 0;line-height:1.4}
/* ===== 文稿库快照首页（启动落地页） ===== */
.home-head{display:flex;align-items:center;gap:12px;height:54px;flex:none;padding:0 28px;box-sizing:border-box;border-bottom:1px solid var(--border);background:var(--bg)}
.home-head-title{font-size:15px;font-weight:700;color:var(--fg);margin:0;white-space:nowrap}
.home-head-spacer{flex:1}
.home-viewbar{display:flex;align-items:center;gap:10px;margin-left:14px}
.home-view-toggle{position:relative;display:flex;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:visible;box-shadow:0 1px 3px rgba(26,24,21,.06);flex:none}
.home-view-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:none;border:none;color:var(--muted-fg);cursor:pointer;font-family:inherit;transition:background .15s ease-out,color .15s ease-out;border-radius:12px}
.home-view-btn:hover{color:var(--fg);background:var(--tint)}
.home-view-btn:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
/* 视图切换合成按钮：同一按钮内按 data-mode 显示卡片/列表图标（中性色，无绿色高亮） */
.home-view-toggle .view-ico{display:none}
.home-view-toggle[data-mode="cards"] .view-ico-cards{display:block}
.home-view-toggle[data-mode="list"] .view-ico-list{display:block}
/* 视图与多选下拉菜单 */
.home-view-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:1200;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:0 10px 32px rgba(26,24,21,.14);min-width:130px}
.home-view-menu-item{display:block;width:100%;text-align:left;padding:9px 12px;border:none;background:none;font-size:12.5px;color:var(--fg);border-radius:8px;cursor:pointer;font-family:inherit;transition:background .15s ease-out}
.home-view-menu-item:hover{background:var(--tint)}
.home-view-menu-item.on{color:var(--blue);font-weight:600}
.home-view-menu-item.on-multi{color:var(--blue);font-weight:600}
.home-view-menu-sep{height:1px;background:var(--border);margin:6px 8px}
/* 新建按钮：形状大小与导入按钮一致（蓝底白字保留） */
#btnHomeNewPaper{display:flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 18px;background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:12px;font-size:13px;font-weight:500;box-shadow:0 1px 3px rgba(26,24,21,.06);transition:background .15s ease-out,color .15s ease-out,border-color .15s ease-out,transform .15s ease-out,box-shadow .15s ease-out}
#btnHomeNewPaper:hover{background:var(--blue-hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(26,24,21,.12)}
#btnHomeNewPaper:active{transform:translateY(0);box-shadow:0 1px 3px rgba(26,24,21,.06)}
#btnHomeNewPaper:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media (prefers-reduced-motion: reduce){#btnHomeNewPaper,#btnHomeNewPaper:hover,#btnHomeNewPaper:active{transition:none;transform:none}}
/* 文稿库多选模式：卡片勾选框 + 选中高亮 + 底部操作条 */
.home-card-check{position:absolute;top:12px;left:12px;z-index:2;width:16px;height:16px;border:1.5px solid var(--border);border-radius:4px;background:var(--card);display:none;align-items:center;justify-content:center;font-size:10px;color:#fff;line-height:1;flex:none}
body.home-multi .home-card-check{display:inline-flex}
body.home-multi .home-card{cursor:pointer}
body.home-multi .home-card-actions{pointer-events:none;opacity:.55}
.home-card.selected{border-color:var(--blue);background:var(--blue-tint);box-shadow:inset 0 0 0 1px var(--blue)}
.home-card.selected .home-card-check{background:var(--blue);border-color:var(--blue)}
.home-multi-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:22px;z-index:1200;display:flex;align-items:center;gap:14px;padding:10px 18px;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 32px rgba(26,24,21,.16)}
.home-multi-bar[hidden]{display:none}
.home-multi-count{font-size:12.5px;color:var(--fg-soft);white-space:nowrap}
.home-multi-count b{color:var(--blue);font-weight:600}
.home-multi-acts{display:flex;align-items:center;gap:8px}
.home-multi-del{height:32px;padding:0 14px;border:none;border-radius:8px;background:var(--blue);color:#fff;font-size:12.5px;cursor:pointer;font-family:inherit;transition:opacity .15s ease-out,background .15s ease-out}
.home-multi-del:hover:not(:disabled){background:var(--blue-hover)}
.home-multi-del:disabled{opacity:.45;cursor:not-allowed}
.home-multi-done{height:32px;padding:0 14px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--fg);font-size:12.5px;cursor:pointer;font-family:inherit;transition:background .15s ease-out}
.home-multi-done:hover{background:var(--tint)}
.home-sort-wrap{position:relative}
.home-sort-btn{display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;background:var(--card);color:var(--fg-soft);border:1px solid var(--border);border-radius:12px;font-size:12px;cursor:pointer;font-family:inherit;box-shadow:0 1px 3px rgba(26,24,21,.06);transition:background .15s ease-out,color .15s ease-out,border-color .15s ease-out}
.home-sort-btn:hover{color:var(--fg);border-color:var(--border-strong)}
.home-sort-btn:focus-visible{outline:2px solid #43A047;outline-offset:2px}
.home-sort-label{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-sort-icon{transition:transform .15s ease-out}
.home-sort-icon.flip{transform:rotate(180deg)}
.home-sort-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:0 10px 32px rgba(26,24,21,.14)}
.home-sort-item{display:block;width:100%;text-align:left;padding:9px 12px;border:none;background:none;font-size:12.5px;color:var(--fg);border-radius:8px;cursor:pointer;font-family:inherit;transition:background .15s ease-out}
.home-sort-item:hover{background:var(--tint)}
.home-sort-item.on{color:#256B2A;font-weight:600}
#btnHomeImport{display:flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 18px;background:var(--card);color:var(--blue);border:1px solid var(--blue);border-radius:12px;font-size:13px;font-weight:500;box-shadow:0 1px 3px rgba(26,24,21,.06);transition:background .15s ease-out,color .15s ease-out,border-color .15s ease-out,transform .15s ease-out,box-shadow .15s ease-out}
#btnHomeImport:hover{background:var(--blue-tint);color:var(--blue);border-color:var(--blue);transform:translateY(-2px);box-shadow:0 6px 20px rgba(26,24,21,.12)}
#btnHomeImport:active{transform:translateY(0);box-shadow:0 1px 3px rgba(26,24,21,.06)}
#btnHomeImport:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media (prefers-reduced-motion: reduce){#btnHomeImport,#btnHomeImport:hover,#btnHomeImport:active{transition:none;transform:none}}
.home-dir-cta{display:flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 18px;background:var(--card);color:#256B2A;border:1px solid #43A047;border-radius:12px;font-size:13px;font-weight:500;box-shadow:0 1px 3px rgba(26,24,21,.06);transition:background .15s ease-out,color .15s ease-out,border-color .15s ease-out,transform .15s ease-out,box-shadow .15s ease-out;cursor:pointer;font-family:inherit}
.home-dir-cta:hover{background:rgba(76,175,80,.10);transform:translateY(-2px);box-shadow:0 6px 20px rgba(26,24,21,.12)}
.home-dir-cta:active{transform:translateY(0)}
.home-dir-cta:focus-visible{outline:2px solid #43A047;outline-offset:2px}
@media (prefers-reduced-motion: reduce){.home-dir-cta,.home-dir-cta:hover,.home-dir-cta:active,.home-dir-name,.home-dir-name:hover{transition:none;transform:none}}
.home-dir-wrap{flex:none}
.home-dir-wrap[hidden]{display:none}
.home-dir-name{display:flex;align-items:center;gap:6px;height:38px;max-width:240px;padding:0 16px;background:var(--card);color:var(--fg-soft);border:1px solid var(--border);border-radius:12px;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;font-family:inherit;transition:background .15s ease-out,border-color .15s ease-out,color .15s ease-out,transform .15s ease-out,box-shadow .15s ease-out}
.home-dir-name:hover{color:var(--blue);border-color:var(--blue);background:var(--blue-tint);transform:translateY(-1px);box-shadow:0 4px 12px rgba(26,24,21,.10)}
.home-dir-wrap .doclib-dir-menu{right:0;left:auto}
.home-wrap{flex:1;overflow:auto;padding:26px 28px;min-height:0;box-sizing:border-box}
.home-loading{display:flex;align-items:center;gap:10px;padding:2px 2px 12px;color:var(--muted-fg);font-size:12px}
.home-loading[hidden]{display:none}
.home-loading-bar{flex:1;height:3px;border-radius:2px;background:var(--border);overflow:hidden;position:relative}
.home-loading-bar::after{content:"";position:absolute;left:-40%;width:40%;height:100%;border-radius:2px;background:var(--blue);animation:homeLoadSlide 1.1s ease-in-out infinite}
@keyframes homeLoadSlide{0%{left:-40%}100%{left:100%}}
@media (prefers-reduced-motion: reduce){.home-loading-bar::after{animation:none}}
.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;align-content:start}
.home-card{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px 18px 14px;cursor:pointer;text-align:left;transition:box-shadow .15s ease-out,transform .15s ease-out,border-color .15s ease-out;box-shadow:0 1px 3px rgba(26,24,21,.06);height:280px;min-height:280px;overflow:hidden;font-family:inherit}
@media (hover:hover){ /* P2：hover 动效门控——仅在有 hover 能力的设备生效（触屏不触发位移/阴影） */
  .home-card:hover{box-shadow:0 6px 20px rgba(26,24,21,.12);transform:translateY(-2px);border-color:var(--blue)}
}
/* 新建文稿卡片已移除（入口移至顶栏 btnHomeNewPaper），样式随之删除 */
/* r97：文稿卡文件名默认隐藏，设置开关经 body.tf-show-card-file 打开；列表模式恒隐藏 */
.home-card-file{display:none;font-size:11px;color:var(--muted-fg);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.tf-show-card-file .home-card-file{display:block}
.home-card-file:empty{display:none}
.home-card-title{font-size:15px;font-weight:700;color:var(--fg);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:8px}
.home-card-author{font-size:12px;color:var(--muted-fg);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-card-abstract{font-size:12px;color:var(--fg-soft);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1;margin-bottom:10px}
.home-card-foot .home-card-tag{flex:none;background:var(--hover);color:var(--muted-fg);font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}
.home-card-foot .home-card-time{margin-left:auto;flex:none}
.home-card-actions{display:flex;gap:6px;padding-top:10px;border-top:1px solid var(--border);margin-top:10px;flex:none}
.home-card-act{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:12px;font-weight:600;color:var(--fg-soft);background:var(--input-bg);border:1px solid var(--border);border-radius:8px;padding:5px 0;cursor:pointer;font-family:inherit;transition:background .15s ease-out,border-color .15s ease-out,color .15s ease-out}
.home-card-act:hover{color:var(--blue);border-color:var(--blue);background:var(--blue-tint)}
.home-card-act-danger{color:#d64545;border-color:rgba(214,69,69,.55);background:rgba(214,69,69,.05)}
.home-card-act-star.on{color:#e6a23c;border-color:rgba(230,162,60,.55);background:rgba(230,162,60,.08)}
.home-card-act-star.on:hover{color:#d4880f;border-color:#d4880f;background:rgba(230,162,60,.14)}
.home-card-act-danger:hover{color:#d64545;border-color:#d64545;background:rgba(214,69,69,.12)}
.home-card-keywords{font-size:11px;color:var(--blue);margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.home-card-foot{display:flex;align-items:center;gap:8px;padding-top:10px;border-top:1px solid var(--border);font-size:11px;color:var(--muted-fg);white-space:nowrap;overflow:hidden}
.home-card-loading .home-card-abstract{color:var(--muted-fg);font-style:italic}
/* 列表视图：统一行式排布 */
#homeGrid.list-mode{grid-template-columns:1fr}
#homeGrid.list-mode .home-card{height:auto;min-height:0;flex-direction:row;align-items:center;gap:16px;padding:12px 16px;border-radius:10px}
/* #homeGrid.list-mode .home-card-new 相关样式已随新建卡片移除 */
#homeGrid.list-mode .home-card-file{display:none}
#homeGrid.list-mode .home-card-title{margin:0;flex:1;min-width:0;-webkit-line-clamp:1}
#homeGrid.list-mode .home-card-abstract{flex:none;width:40%;min-width:0;-webkit-line-clamp:1;margin:0}
#homeGrid.list-mode .home-card-foot{flex:none;width:auto;max-width:28%;min-width:0;padding:0;border:none;margin:0}
#homeGrid.list-mode .home-card-foot .home-card-tag{margin-left:auto;flex:none}
#homeGrid.list-mode .home-card-foot .home-card-time{flex:none}
#homeGrid.list-mode .home-card-actions{flex:none;padding:0;border:none;margin:0}
#homeGrid.list-mode .home-card-act{flex:0 0 auto;min-width:32px;padding:5px 8px}
#homeGrid.list-mode .home-card-act .home-card-act-label{display:none}
;display:inline-flex;align-items:center;justify-content:center;padding:4px 0;line-height:1.4}

/* 工作目录标题行：下拉占满宽度；导入+新建合并双段药丸；文档多选管理 */
.doclib-dir-menu-wrap{flex:1;display:flex;min-width:0}
.doclib-dir-head-title{flex:1;width:100%;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doclib-dir-head-spacer{flex:none;width:6px}
.dir-head-split{display:inline-flex;border-radius:var(--pill);overflow:hidden;border:1px solid var(--blue);flex-shrink:0;align-items:stretch}
.dir-head-split button{appearance:none;border:none;width:3em;padding:4px 0;font-size:12px;line-height:1.5;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.dir-head-split .split-import{background:var(--card);color:var(--blue);font-weight:600}
.dir-head-split .split-new{background:var(--blue);color:#fff;border-left:1px solid rgba(255,255,255,.45);font-weight:800}
.doclib-item .doc-check{flex:none;width:15px;height:15px;border:1.5px solid var(--border);border-radius:4px;display:none;align-items:center;justify-content:center;font-size:10px;color:#fff;line-height:1;background:var(--card)}
body.doc-multi .doclib-item .doc-check{display:inline-flex}
.doclib-item.selected{border-color:var(--blue);background:var(--blue-tint);box-shadow:inset 0 0 0 1px var(--blue)}
.doclib-item.selected .doc-check{background:var(--blue);border-color:var(--blue)}
.doclib-item.selected .doc-title{color:var(--blue)}
.doclib-multi-bar{display:none;align-items:center;gap:8px;padding:8px 14px;border-top:1px solid var(--border);flex-wrap:wrap}
.doclib-multi-bar.show{display:flex}
.doclib-multi-bar .multi-count{font-size:12px;color:var(--muted-fg);white-space:nowrap}
#btnDocMultiSelect.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.dot.ok{background:var(--success)}
.dot.saving{background:var(--dawn);opacity:.55} /* P0：保存中静态微亮，无循环呼吸动画——不吸引打字注意力；完成态由 JS 移除 saving 恢复 */
.dot.off{background:transparent;border:1.5px solid var(--muted-fg)}
@keyframes breathe{0%,100%{opacity:1}50%{opacity:.35}}
.chip{font-size:12px;color:var(--muted-fg);background:var(--hover);border-radius:var(--pill);
  padding:2px 10px;flex-shrink:0;white-space:nowrap}
.binding{font-family:var(--font-mono);font-size:12px;color:var(--muted-fg);max-width:220px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 论文视图 */
.info-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:14px;overflow:hidden}
.info-card summary{cursor:pointer;padding:12px 16px;font-weight:600;list-style:none;display:flex;align-items:center;font-size:13.5px}
.info-card summary::before{content:"";width:0;height:0;border-left:5px solid var(--muted-fg);
  border-top:4px solid transparent;border-bottom:4px solid transparent;margin-right:9px;transition:transform .2s ease-out}
.info-card[open] summary::before{transform:rotate(90deg)}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:4px 16px 16px}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:12px;color:var(--muted-fg)}
.field.wide{grid-column:1/-1}
.stage{display:flex;gap:16px;min-height:calc(100vh - 210px)}
.stage-col{flex:1;display:flex;flex-direction:column;min-width:0}
.stage-col[hidden]{display:none}
.stage-col-head{font-size:12.5px;color:var(--muted-fg);margin-bottom:8px;display:flex;align-items:center;gap:10px}
.stage-col-head>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.toggle-prev{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--blue);
  border:1px solid var(--blue);border-radius:var(--pill);padding:3px 12px;margin-left:auto;
  flex-shrink:0;transition:background .15s ease-out}
.toggle-prev:hover{background:var(--blue-tint)}
.zoom-btn{width:22px;height:22px;border-radius:5px;border:1px solid var(--border);background:var(--card);
  font-size:12px;color:var(--muted-fg);display:flex;align-items:center;justify-content:center;
  transition:background .15s ease-out;flex-shrink:0}
.zoom-btn:hover{background:var(--hover)}
.zoom-label{font-size:12px;color:var(--muted-fg);min-width:36px;text-align:center;flex-shrink:0}
.ph-editor{flex:1;background:var(--card);border:1.5px dashed var(--border);border-radius:var(--radius-lg);
  padding:14px;display:flex;flex-direction:column;gap:12px;min-height:420px}
.fake-toolbar{display:flex;gap:4px;padding:8px;background:var(--hover);border-radius:var(--radius-sm);flex-wrap:wrap}
.fake-toolbar span{width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border-radius:5px;background:var(--card);border:1px solid var(--border);font-size:12px;color:var(--muted-fg)}
.fake-toolbar span.cite-trigger{color:var(--blue);border-color:var(--blue);cursor:pointer}
.fake-toolbar span.cite-trigger:hover{background:var(--blue-tint)}
.ph-lines{display:flex;flex-direction:column;gap:9px;padding:8px 4px;opacity:.4}
.ph-lines i{display:block;height:10px;border-radius:4px;background:var(--muted-fg)}
.ph-text{color:var(--muted-fg);font-size:12.5px;text-align:center;margin:auto}
/* 预览纸张：印刷页豁免——永远纯白黑字 */
.paper-scroll{flex:1;overflow-y:auto;padding:6px 6px 30px}
.paper{background:#fff;color:#111;font-family:var(--pv-body-font, SimSun,"Songti SC",serif);max-width:640px;margin:0 auto;
  padding:var(--pv-page-pad-t,46px) var(--pv-page-pad-r,54px) var(--pv-page-pad-b,46px) var(--pv-page-pad-l,54px);
  box-shadow:0 2px 14px rgba(26,24,21,.12);min-height:600px;position:relative;overflow:hidden;
  font-size:var(--pv-body-size,12pt);line-height:var(--pv-line-height,2)}
.paper h1{font-family:SimHei,"Microsoft YaHei",sans-serif;font-size:16px;text-align:center;margin-bottom:8px;font-weight:700}
.paper .p-authors{text-align:center;font-size:12px;margin-bottom:18px}
.paper .p-abs{font-size:10.5px;line-height:1.8;margin:14px 0}
.paper .p-abs b{font-family:SimHei,sans-serif}
.paper p{font-size:12px;line-height:2;text-indent:2em;margin:0}
.paper .p-refs{font-size:10px;line-height:1.9;margin-top:16px;text-indent:0}
.paper-curl{position:absolute;right:0;bottom:0;width:34px;height:34px;
  background:linear-gradient(315deg,var(--blue) 50%,transparent 50.5%);transform-origin:100% 100%}
.paper.curl-anim .paper-curl{animation:flap .8s cubic-bezier(.25,.1,.25,1)}
@keyframes flap{0%{transform:rotate(0)}40%{transform:rotate(-10deg)}100%{transform:rotate(0)}}

/* 格式模板视图 */
.fmt-form{flex:1.15;min-width:0}
.fmt-note{font-size:12px;color:var(--muted-fg);margin-top:10px;line-height:1.7}
.fmt-scheme-name{font-size:13.5px;color:var(--muted-fg)}
.fmt-scheme-name b{color:var(--fg);font-weight:600}

/* 参考文献详情 */
.ref-detail-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 26px;max-width:760px}
.ref-detail-card h3{font-family:var(--font-ui);font-size:16.5px;line-height:1.5;font-weight:600;margin-bottom:14px}
.kv{display:flex;gap:14px;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px}
.kv .k{width:88px;flex-shrink:0;color:var(--muted-fg)}
.kv .v{line-height:1.6;word-break:break-all}
.kv .v.mono{font-family:var(--font-mono);font-size:12.5px}
.ref-abs{margin-top:14px;padding:14px 16px;background:var(--hover);border-radius:var(--radius-sm);font-size:13px;line-height:1.9}
.ref-abs-empty{color:var(--muted-fg);font-style:italic}
.ref-abs .abs-h{font-weight:600;margin-bottom:6px}
.ref-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}

/* 设置 */
.settings-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 26px;max-width:640px}
.settings-card h3{font-family:var(--font-ui);font-size:16px;font-weight:600;margin-bottom:6px}
.settings-card .desc{font-size:13px;color:var(--muted-fg);margin-bottom:16px}
.setting-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}
.switch{width:42px;height:24px;border-radius:var(--pill);background:var(--border);position:relative;transition:background .18s ease-out;flex-shrink:0}
.switch::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:var(--input-bg);
  top:3px;left:3px;transition:transform .18s cubic-bezier(.32,.72,0,1);box-shadow:0 1px 3px rgba(26,24,21,.25)} /* P1：left → translateX（GPU 合成，spring 近似曲线；打断由 transition retarget 处理） */
.switch.on{background:var(--blue)}
.switch.on::after{transform:translateX(18px)}
.compat-row{display:flex;align-items:center;gap:10px;padding:9px 0;font-size:13px}
.brand-block{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.slogan{font-family:var(--font-ui);font-size:14px;color:var(--muted-fg)}

/* ── 弹窗 / toast ── */
.modal-mask{position:fixed;inset:0;background:rgba(26,24,21,.45);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;z-index:100}
.modal-mask[hidden]{display:none}
.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);
  width:min(460px,90vw);padding:22px 24px;animation:pop .4s cubic-bezier(.16,1,.3,1)}
@keyframes pop{from{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}
.modal h3{font-family:var(--font-ui);font-size:15.5px;font-weight:600;margin-bottom:10px}
.m-body{font-size:13.5px;line-height:1.8;color:var(--muted-fg)}
.m-field{margin:14px 0}
.m-field label{display:block;font-size:12px;color:var(--muted-fg);margin-bottom:6px}
.m-field select{width:100%}
.ba-strip{display:flex;align-items:stretch;gap:10px;margin:6px 0 4px}
.ba-box{flex:1;border-radius:var(--radius-sm);padding:10px 12px;font-size:12.5px;line-height:1.6}
.ba-old{background:var(--hover);border:1px solid var(--border);color:var(--muted-fg)}
.ba-new{background:var(--blue-tint);border:1px solid var(--blue)}
.ba-new .ba-t{color:var(--blue);font-weight:500}
.ba-arrow{display:flex;align-items:center;color:var(--muted-fg)}
.ba-note{font-size:12px;color:var(--muted-fg);margin-top:8px}
.m-btns{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:16px}
.modal .m-btns .btn{padding:4px 15px;font-size:13px;line-height:1.35;touch-action:manipulation}
.modal .m-btns .btn:active{transform:scale(.97)}
.modal .m-btns .btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--blue-tint)}
.modal .m-btns .btn-outline:hover{border-color:var(--muted-fg);background:var(--hover)}
.modal .m-btns .btn-blue{box-shadow:0 2px 10px rgba(59,91,219,.25);transition:background .15s ease-out,box-shadow .15s ease-out,transform .1s ease-out}
.modal .m-btns .btn-blue:hover{background:var(--blue-hover);box-shadow:0 4px 14px rgba(59,91,219,.32)}
.modal .m-btns .btn-blue:active{box-shadow:0 1px 6px rgba(59,91,219,.25)}
/* 输入弹窗：label + 输入框合并为嵌入式卡片，聚焦时容器亮起（无边框输入，对齐文稿库卡片风格） */
.modal .m-field{margin:4px 0 10px;background:var(--card);border:1px solid rgba(59,91,219,.35);border-radius:12px;padding:12px 14px;transition:border-color .15s ease-out,box-shadow .15s ease-out,background .15s ease-out}
.modal .m-field:hover{border-color:rgba(59,91,219,.55)}
.modal .m-field:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint);background:var(--card)}
.modal .m-field .tf-prompt-label{display:block;font-size:12px;color:var(--muted-fg);margin:0 0 4px;font-weight:500}
.modal .m-field .tf-prompt-input{width:100%;box-sizing:border-box;border:none;background:transparent;color:var(--fg);font-size:15px;font-family:inherit;outline:none;padding:0}
.modal .m-field .tf-prompt-input::placeholder{color:var(--muted-fg);opacity:.92}
@media (prefers-reduced-motion: reduce){.modal-mask.show .modal{animation:none}}
.tf-prompt-input{width:100%;box-sizing:border-box;padding:11px 14px;border:1px solid var(--border);border-radius:12px;background:var(--input-bg);color:var(--fg);font-size:14.5px;font-family:inherit;outline:none;transition:border-color .15s ease-out,box-shadow .15s ease-out}
.tf-prompt-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint)}
/* 引用选择器弹窗 */
.cite-modal{width:min(540px,92vw)}
.cite-list{max-height:300px;overflow-y:auto;margin-top:12px;display:flex;flex-direction:column;gap:2px;
  border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;overscroll-behavior:contain}
.cite-row{display:flex;gap:8px;align-items:flex-start;padding:7px 8px;border-radius:var(--radius-sm);cursor:pointer}
.cite-row:hover{background:var(--hover)}
.cite-row input{margin-top:3px;accent-color:var(--blue);flex-shrink:0}
.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,0);z-index:120;background:var(--card);color:var(--fg);
  border:1px solid var(--border);border-radius:999px;padding:8px 20px;font-size:13px;
  box-shadow:var(--shadow-modal);max-width:340px;line-height:1.6;opacity:0;pointer-events:none;transition:opacity .2s ease-out}
.toast.show{opacity:1;pointer-events:auto;animation:tin .25s ease-out}
@keyframes tin{from{transform:translate(-50%,10px);opacity:0}to{transform:translate(-50%,0);opacity:1}}

/* r92/r95：备份授权提醒气泡（锚定 #nav-backup 按钮下方冒出，小三角指向按钮；非模态，15s 自动收起） */
.tf-backup-nudge{
  position:fixed;left:50%;top:66px;z-index:210;width:min(340px,92vw);
  background:var(--card);color:var(--fg);border:1px solid var(--border);
  border-radius:14px;box-shadow:var(--shadow-modal);
  padding:14px 16px 12px;display:flex;flex-direction:column;gap:10px;
  opacity:0;transform:translateY(-6px);pointer-events:none;
  transition:opacity .24s ease-out,transform .24s ease-out;
}
.tf-backup-nudge::before{
  content:"";position:absolute;top:-6.5px;left:var(--tbn-arrow-x,50%);
  width:12px;height:12px;transform:translateX(-50%) rotate(45deg);
  background:var(--card);border-left:1px solid var(--border);border-top:1px solid var(--border);
}
.tf-backup-nudge.show{opacity:1;transform:translateY(0);pointer-events:auto;border-color:var(--blue);box-shadow:var(--shadow-modal),0 0 0 3px var(--blue-tint)}
/* r98：点击非窗口部分 → 缓缓关闭 */
.tf-backup-nudge.closing{opacity:0;transform:translateY(-6px);transition:opacity .6s ease,transform .6s ease}
.tf-backup-nudge-text{font-size:13px;line-height:1.65}
.tf-backup-nudge-actions{display:flex;justify-content:flex-end;gap:8px}
.tf-backup-nudge-ok{
  border:none;background:var(--blue);color:var(--blue-fg);font-family:var(--font-ui);
  font-size:13px;padding:6px 14px;border-radius:9px;cursor:pointer;
}
.tf-backup-nudge-ok:hover{background:var(--blue-hover)}
/* r98：「稍后提醒」次级按钮（替代原右上角 ×） */
.tf-backup-nudge-later{
  border:1px solid var(--border);background:transparent;color:var(--muted-fg);font-family:var(--font-ui);
  font-size:13px;padding:6px 14px;border-radius:9px;cursor:pointer;
}
.tf-backup-nudge-later:hover{background:var(--hover);color:var(--fg)}
/* r98：提醒显示期间聚焦顶栏备份按钮（脉冲环） */
@keyframes backupAttnPulse{0%{box-shadow:0 0 0 0 var(--blue-tint),0 0 0 2px var(--blue)}70%{box-shadow:0 0 0 7px transparent,0 0 0 2px var(--blue)}100%{box-shadow:0 0 0 0 transparent,0 0 0 2px var(--blue)}}
.backup-attn{animation:backupAttnPulse 1.6s ease-out infinite;border-radius:10px}
@media (prefers-reduced-motion:reduce){.backup-attn{animation:none;box-shadow:0 0 0 2px var(--blue)}}

/* r106：自动备份进度气泡（JS 动态创建，锚定 #nav-backup 下方、右缘对齐按钮；
   running：图标旋转 + 文字呼吸闪动表明正在进行；done：对勾 + 1.8s 自动收起） */
.tf-backup-prog{position:fixed;z-index:210;display:flex;align-items:center;gap:8px;
  background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:12px;
  box-shadow:var(--shadow-modal);padding:8px 14px;font-size:13px;font-family:var(--font-ui);
  opacity:0;transform:translateY(-6px);pointer-events:none;
  transition:opacity .24s ease-out,transform .24s ease-out}
.tf-backup-prog.show{opacity:1;transform:translateY(0)}
.tf-backup-prog svg{flex:none;color:var(--blue)}
.tf-backup-prog.running svg{animation:spin 1.2s linear infinite}
.tf-backup-prog.running .tf-backup-prog-text{animation:breathe 1.6s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.tf-backup-prog.running svg,.tf-backup-prog.running .tf-backup-prog-text{animation:none}}

/* r100/r101：新用户首访透明全屏遮罩——页面照常可见，但首次点击/按键落在遮罩上不激活页面；
   不 preventDefault pointerdown（避免抑制兼容 click），靠 touch-action/user-select 压住触摸侧默认行为，
   同手势残余事件由 JS 补吞，遮罩消失后才弹备份引导卡 */
.tf-first-visit-mask{
  position:fixed;inset:0;z-index:9000;
  background:transparent;border:none;padding:0;margin:0;
  touch-action:none;-webkit-user-select:none;user-select:none;
}

::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:rgba(138,133,120,.35);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:rgba(138,133,120,.55)}

@media (max-width:1200px){
  /* 面板悬浮模式与基准样式一致，无需覆盖 */
  .binding{display:none}
  .fmt-wrap{flex-direction:column}
}
@media (max-width:900px){
  .stage{flex-direction:column}
  .info-grid{grid-template-columns:1fr}
  .chip{display:none}
}

/* ==================================================================
   论文写作编辑器 · 「翻篇」设计外壳（参考 设计外壳.html 布局重设计）
   布局：左侧图标导航栏（通顶）+ 工作区（信息卡 / 编辑·预览双栏 / 底部状态条）
   印刷页豁免：编辑纸面与预览纸张永远白底黑字，不参与深色模式
   ================================================================== */

/* ---------- 设计令牌 ---------- */
:root{
  color-scheme:light;
  -webkit-tap-highlight-color:transparent;
  --bg:#FBF8F3; --fg:#1A1815;
  --card:#FBF8F3; --input-bg:#FFFDF9;
  --primary:#1A1815; --primary-fg:#FBF8F3;
  --blue:#3550C4; --blue-hover:#2E47B0; --blue-fg:#FBF8F3;
  --blue-tint:rgba(59,91,219,.10);
  --old:#6A6457; --dawn:#F6C177; --muted-fg:#655E52; --fg-soft:#655E52;
  --hover:#EFEAE1; --border:#E8E3D9;
  --danger:#C02929; --danger-bg:#FEF2F2; --success:#2E7A32;
  --radius-lg:12px; --radius-sm:8px; --pill:999px;
  --sb-h:34px;
  --font-ui:"MiSans","Alibaba PuHuiTi","Inter","Microsoft YaHei","PingFang SC",system-ui,sans-serif;
  --font-serif:"Fraunces","Source Han Serif SC","Noto Serif SC",Georgia,"Times New Roman",SimSun,serif;
  --font-mono:"JetBrains Mono",Consolas,"Courier New",monospace;
  --shadow-modal:0 12px 40px rgba(26,24,21,.14);
}
.dark{
  color-scheme:dark;
  --bg:#1A1815; --fg:#F0ECE4;
  --card:#221F19; --input-bg:#26221B;
  --primary:#FBF8F3; --primary-fg:#1A1815;
  --blue:#91A8F5; --blue-hover:#A9BAF8; --blue-fg:#1A1815;
  --blue-tint:rgba(145,168,245,.16);
  --muted-fg:#A39E92; --old:#A8A296; --fg-soft:#A8A296; --hover:#2A261F; --border:#3A352C;
  --danger:#F87171; --danger-bg:#3A2323; --success:#6FCF8E; --c-warn:#C98A2D;
  --shadow-modal:0 12px 40px rgba(0,0,0,.5);
}

/* ---------- 基础 ---------- */
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{
  font-family:var(--font-ui);background:var(--bg);color:var(--fg);
  font-size:14px;line-height:1.7;
  display:flex;flex-direction:column;height:100vh;overflow:hidden;
  transition:background .2s ease-out,color .2s ease-out;
}
input,select,textarea{
  font-family:inherit;font-size:14px;color:var(--fg);background:var(--input-bg);
  border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;outline:none;
  transition:border-color .15s ease-out,box-shadow .15s ease-out,background .2s ease-out;
}
input::placeholder,textarea::placeholder{color:var(--old)}
input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-tint)}
svg{display:block}
::selection{background:var(--blue-tint)}

/* ---------- 应用外壳：图标导航栏 + 工作区 ---------- */
body.info-expanded .main{display:none}
body.info-expanded .paper-info{flex:1;min-height:0;margin:10px 14px 12px}
body.info-expanded .paper-info-body{flex:1;min-height:0;overflow-y:auto}

/* 保存状态指示（dot + breathe 动画；.dot.ok/.saving/.off 在参照 CSS 中定义） */
.editor-status{display:inline-flex;align-items:center;gap:6px;color:var(--muted-fg);font-size:12.5px;flex-shrink:0;white-space:nowrap}
.editor-status .sep{color:var(--old);opacity:.7}
.editor-status.saving .dot{background:var(--dawn);opacity:.55} /* P0：同上——静态微亮 */
.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--success)}

/* 导出配置拆分按钮：胶囊造型（主区 + 箭头区，竖线分隔） */
.export-pair-btn{width:120px;display:inline-flex;align-items:center;justify-content:center;color:var(--blue);font-weight:600;white-space:nowrap}
#btnExportWord{color:var(--blue-fg)}
.export-split-menu{
  position:fixed;
  /* top / right 由 JS 按按钮位置写入（按钮位于 view-actions 顶部） */
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-modal);
  min-width:200px;padding:4px;z-index:1200;display:none;   /* r200：z1200 高于菜单遮罩 tfMenuBackdrop(z1150)，遮罩不挡菜单 */
}
.export-split-menu.show{display:block}
.export-split-menu button{
  display:block;width:100%;background:transparent;color:var(--fg);border:none;border-radius:6px;
  padding:8px 12px;font-size:13px;text-align:left;cursor:pointer;white-space:nowrap;font-weight:400;
}
.export-split-menu button:hover{background:var(--blue-tint);color:var(--blue)}
/* r135：导出菜单「展开更多」折叠开关：细分隔弱化样式，箭头随展开旋转；折叠区默认隐藏 */
.export-split-menu .export-more-toggle{
  margin-top:4px;border-top:1px solid var(--border);border-radius:0;
  padding:7px 12px;color:var(--muted-fg);
  display:flex;align-items:center;justify-content:space-between;
}
.export-split-menu .export-more-toggle:hover{background:transparent;color:var(--blue)}
.export-more-toggle .more-arrow{font-size:10px;transition:transform .18s ease}
.export-more-toggle[aria-expanded="true"] .more-arrow{transform:rotate(180deg)}
.export-more-items[hidden]{display:none}

/* ---------- r185：顶栏「格式配置」展开菜单 ----------
   格式配置项 → 分割线 → 全部配置（内置示例 + 已保存方案）；
   内容超高时 max-height 内滚动、隐藏滚动条，末尾向下小箭头提示可继续滚动 */
.fmtcfg-menu{
  position:fixed;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-modal);
  min-width:300px;max-width:300px;   /* 宽度固定 300px */
  padding:4px;z-index:1200;display:none;   /* r200：z1200 高于菜单遮罩 tfMenuBackdrop(z1150)，遮罩不挡菜单 */
}
.fmtcfg-menu.show{display:block}
.fmtcfg-menu .fmtcfg-open-window{
  display:block;width:100%;background:transparent;color:var(--fg);border:none;border-radius:6px;
  padding:8px 12px;font-size:13px;text-align:left;cursor:pointer;white-space:nowrap;font-weight:400;
  overflow:hidden;text-overflow:ellipsis;
}
.fmtcfg-menu .fmtcfg-open-window:hover{background:var(--blue-tint);color:var(--blue)}
.fmtcfg-sep{height:1px;background:var(--border);margin:4px 0}
/* r232：格式配置菜单「用户自建配置」区（分割线上方；超高滚动、隐藏滚动条） */
.fmtcfg-user-items{
  max-height:240px;overflow-y:auto;
  scrollbar-width:none;               /* Firefox：隐藏滚动条 */
}
.fmtcfg-user-items::-webkit-scrollbar{display:none;width:0;height:0}
.fmtcfg-user-items[hidden]{display:none}
.fmtcfg-items{
  max-height:300px;overflow-y:auto;
  scrollbar-width:none;               /* Firefox：隐藏滚动条 */
}
.fmtcfg-items::-webkit-scrollbar{display:none;width:0;height:0}
.fmtcfg-items:focus{outline:none}
.fmtcfg-item{
  display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  background:transparent;color:var(--fg);border:none;border-radius:6px;
  padding:8px 12px;font-size:13px;text-align:left;cursor:pointer;white-space:nowrap;font-weight:400;
}
.fmtcfg-item .s-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fmtcfg-item:hover{background:var(--blue-tint);color:var(--blue)}
/* 当前应用的格式配置：主题色加深高亮（放 hover 之后避免被覆盖） */
.fmtcfg-item.active{background:var(--blue);color:#fff;font-weight:500}
.fmtcfg-item.active:hover{background:var(--blue);color:#fff}
.fmtcfg-item.active .s-tag{background:rgba(255,255,255,.25);color:#fff}
.fmtcfg-item .s-tag{
  font-size:10.5px;color:var(--blue);background:var(--blue-tint);
  border-radius:4px;padding:1px 6px;flex-shrink:0;
}
.fmtcfg-empty{color:var(--muted-fg);font-size:12px;padding:8px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fmtcfg-scroll-hint{
  display:flex;align-items:center;justify-content:center;width:100%;
  background:transparent;border:none;color:var(--muted-fg);cursor:pointer;
  font-size:11px;padding:3px 0 5px;border-radius:6px;
}
.fmtcfg-scroll-hint:hover{color:var(--blue)}
.fmtcfg-scroll-hint svg{width:14px;height:14px;display:block}
.fmtcfg-scroll-hint[hidden]{display:none}

/* ---------- 论文信息面板（info-card 卡片风） ---------- */
.paper-info{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);
  margin:12px 14px 0;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden;
  transition:background .2s ease-out,border-color .2s ease-out;
}
.paper-info-header{
  order:2;padding:9px 16px;display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;user-select:none;background:var(--hover);
}
.paper-info-header .title{font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--fg)}
.paper-info-header .toggle{font-size:12px;color:var(--muted-fg)}
.paper-info-topbar{
  order:0;display:none;position:sticky;top:0;z-index:19;cursor:pointer;
  border-bottom:1px solid var(--border);
}
body.info-expanded .paper-info-topbar{display:flex}
.paper-info-body{
  order:1;padding:14px 16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 16px;overflow:hidden;max-height:3000px;
}
.paper-info-body.collapsed{max-height:0;padding-top:0;padding-bottom:0;opacity:0}
.paper-info-body label{display:block;font-size:12px;color:var(--muted-fg);margin-bottom:4px}
.paper-info-body input,.paper-info-body textarea{
  width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);
  font-size:13px;font-family:inherit;background:var(--input-bg);color:var(--fg);
}
.paper-info-body textarea{min-height:60px;resize:vertical}
.paper-info-body .full{grid-column:1/-1}
.en-bulk-hint{font-size:10.5px;color:var(--old);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.paper-info-body .en-title-label{display:flex;align-items:center;gap:8px}

/* ===== 论文信息 / 论文正文 / 参考文献 标签页（胶囊切换器，cir-tabs 风格） ===== */
.paper-tabs{display:flex;gap:4px;flex-shrink:0;overflow-x:auto;align-items:center;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--pill);padding:3px;width:fit-content;max-width:100%}
/* radio 仅承载原生选中行为，视觉隐藏（对屏幕阅读器保留） */
.paper-tabs .cir-tabs__r{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%)}
.paper-tab{appearance:none;border:none;background:transparent;color:var(--muted-fg);font-size:13px;font-family:inherit;padding:5px 16px;cursor:pointer;border-radius:calc(var(--pill) - 3px);transition:color .15s,background .15s,box-shadow .15s;flex-shrink:0;line-height:1.4;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;user-select:none}
.paper-tab:hover{color:var(--fg);background:var(--hover)}
.paper-tab.active{color:var(--blue-fg);font-weight:600;background:var(--blue);box-shadow:0 1px 5px rgba(0,0,0,.25)}
div.tab-pane{flex:1;min-height:0;display:flex;gap:14px;padding:12px 14px 0;min-width:0}
div.tab-pane[hidden]{display:none}
/* 统一预览列标题随标签动态 */
#previewTitle{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--fg)}
/* 编辑器头部状态行 */
.editor-status .dot{margin-right:0}
/* 论文内参考文献列表项 */
.refs-item{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}
.refs-item .refs-no{flex-shrink:0;color:var(--blue);font-weight:600;font-size:12.5px}
.refs-item .refs-text{flex:1;min-width:0;font-size:13px;line-height:1.7}
.refs-item .refs-actions{display:flex;gap:6px;flex-shrink:0}
.refs-pane-guide{padding:14px 12px;font-size:13px;color:var(--muted-fg);text-align:center;border-top:1px dashed var(--border);margin-top:8px}
.refs-pane-guide .fa-link{color:var(--blue);cursor:pointer}
.refs-pane-guide[hidden]{display:none}
.refs-empty{padding:24px 16px;color:var(--muted-fg);font-size:13px;text-align:center;line-height:1.8}
/* 引用定位闪烁：更明显（蓝底白字 + 描边 + 放大），快速闪动 3 次后恢复 */
.cite-flash{animation:citeFlash .6s ease-in-out 2;border-radius:3px;padding:0 2px} /* P1：.8s×3 → .6s×2（总 1.2s 与 JS 移除定时器一致，闪动更轻） */
@keyframes citeFlash{
  0%{background:transparent;color:inherit;box-shadow:none;transform:scale(1)}
  25%{background:var(--blue);color:var(--blue-fg);box-shadow:0 0 0 3px var(--blue-tint);transform:scale(1.25)}
  50%{background:transparent;color:inherit;box-shadow:none;transform:scale(1)}
  75%{background:var(--blue);color:var(--blue-fg);box-shadow:0 0 0 3px var(--blue-tint);transform:scale(1.25)}
  100%{background:transparent;color:inherit;box-shadow:none;transform:scale(1)}
}
/* 论文内格式配置：套用方案行 + 关键参数快览 */
.fmt-apply-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg)}
.fmt-apply-row .fa-label{font-size:12.5px;color:var(--muted-fg)}
.fmt-apply-row select{flex:0 1 auto;min-width:140px;max-width:240px}
.fmt-apply-row .fa-current{font-size:13px;color:var(--fg);font-weight:600}
.fmt-apply-row .fa-link{margin-left:auto;color:var(--blue);cursor:pointer;font-size:12.5px}
.fmt-params-row{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 14px;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-lg);font-size:12.5px;color:var(--muted-fg)}
.fmt-params-row .fp-item{display:inline-flex;align-items:center;gap:4px}
.fmt-params-row .fp-k{color:var(--old)}
.fmt-params-row .fp-v{color:var(--fg);font-weight:600}
/* 论文级导出内容分组（迁移到论文格式配置标签） */
.fmt-quick-body .wcfg-group{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 14px;margin-bottom:10px}
.fmt-quick-body .wcfg-group-head{font-weight:600;font-size:13px;margin-bottom:6px}
.fmt-quick-body .wcfg-check-row{display:flex;flex-wrap:wrap;gap:14px}
.fmt-quick-body .wcfg-check-row label{font-size:12.5px;display:flex;align-items:center;gap:5px;cursor:pointer}
.fa-link{color:var(--blue);cursor:pointer}
.tab-pane-main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.tab-pane-head{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--hover)}
.tab-pane-title{font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--fg);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tab-pane-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;overscroll-behavior:contain}
.tab-pane-body.paper-info-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;overflow-y:auto;max-height:none;align-content:start}
.tab-pane-body.editor-wrap2{overflow:hidden;background:var(--input-bg)}
/* 格式配置页（论文视图内） */
.tab-pane-body.fmt-quick-body{padding:16px;gap:12px}
#fmtQuickStatus{font-size:12px;color:var(--muted-fg);line-height:1.7;margin-bottom:10px}
#fmtQuickScheme{padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--input-bg);color:var(--fg);font-size:12.5px;max-width:220px}
#fmtQuickPreviewBox{min-height:120px}
/* 论文视图「格式配置」标签：三分区完整表单（JS 克隆自格式模板编辑器，去 id 靠 name 绑定） */
#paperFmtPanes-style,#paperFmtPanes-page,#paperFmtPanes-other{margin-top:2px}
#paperFmtPanes-style .wcfg-cat-title,#paperFmtPanes-page .wcfg-cat-title,#paperFmtPanes-other .wcfg-cat-title{font-weight:600;font-size:13px;color:var(--fg);
  padding:10px 2px 2px;margin-top:4px;display:flex;align-items:center;gap:8px}
#paperFmtPanes-style .wcfg-cat-title::after,#paperFmtPanes-page .wcfg-cat-title::after,#paperFmtPanes-other .wcfg-cat-title::after{content:"";flex:1;height:1px;background:var(--border)}
#paperFmtPanes-style details.wcfg-group,#paperFmtPanes-page details.wcfg-group,#paperFmtPanes-other details.wcfg-group{margin-bottom:8px}
#paperFmtPanes-style .wcfg-h-fields,#paperFmtPanes-page .wcfg-h-fields,#paperFmtPanes-other .wcfg-h-fields{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
#fmtQuickPreviewBox .docx-wrapper{background:transparent;padding:0}
#fmtQuickPreviewBox .docx-wrapper > section.docx{box-shadow:0 1px 8px rgba(15,23,42,.28);margin:0 auto 16px}
#fmtQuickPreviewBox .docx-wrapper > section.docx:last-child{margin-bottom:0}
/* 参考文献列表（标签页内） */
.refs-pane-list{flex:1;min-height:0;overflow-y:auto;padding:12px 18px}
.refs-pane-list .refs-item{display:flex;gap:8px;padding:7px 0;border-bottom:1px dashed var(--border);font-size:12.5px;line-height:1.7;color:var(--fg)}
.refs-pane-list .refs-no{flex-shrink:0;color:var(--muted-fg);font-family:var(--font-ui);min-width:36px}
.refs-pane-list .refs-empty{color:var(--muted-fg);font-size:12.5px;padding:24px;text-align:center}
.en-inline-controls{display:inline-flex;align-items:center;gap:6px;flex:1;min-width:0;font-weight:normal}
#enToggleLock{
  flex:0 0 auto;border:1px solid transparent;color:var(--blue-fg);
  padding:1px 8px;border-radius:var(--pill);font-size:11px;cursor:pointer;line-height:1.6;
}
#enToggleLock.on{background:var(--success);border-color:var(--success)}
#enToggleLock.off{background:var(--danger);border-color:var(--danger)}
#enToggleLock:hover{opacity:.85}
.en-input-row{display:flex;gap:6px;align-items:flex-start}
.en-input-row > div{flex:1;width:100%}
.en-input-row input,.en-input-row textarea{flex:1}
.pair-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 16px}
.pair-col{display:flex;flex-direction:column;min-width:0}
.pair-col .en-input-row{flex:1}
.pair-row.tri{grid-template-columns:repeat(3,minmax(0,1fr))}
.pair-col .en-input-row input,.pair-col .en-input-row textarea{flex:1;width:100%}
.pair-col textarea{min-height:120px}
.en-clear-btn{
  flex:0 0 auto;margin-left:auto;flex-shrink:0;
  background:var(--hover);border:1px solid var(--border);border-radius:var(--pill);
  color:var(--muted-fg);padding:1px 8px;font-size:11px;cursor:pointer;line-height:1.6;
}
.en-clear-btn:hover{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}
.add-field-btn{
  margin-top:6px;background:transparent;border:1.5px dashed var(--border);border-radius:var(--radius-sm);
  padding:4px 12px;font-size:12px;color:var(--muted-fg);cursor:pointer;
 }
/* 添加作者组合按钮（中英文两段无缝相连，跨整行）：宽度随论文信息页宽度自适应 */
.add-author-combo{grid-column:1/-1;display:flex;width:100%;margin-top:6px;border:1.5px dashed var(--border);border-radius:var(--radius-sm);overflow:hidden;background:transparent}
.add-author-combo .add-author-seg{flex:1;min-width:0;box-sizing:border-box;padding:7px 12px;font-size:12px;color:var(--muted-fg);cursor:pointer;background:transparent;border:0;text-align:center;white-space:nowrap}
.add-author-combo .add-author-seg + .add-author-seg{border-left:1.5px dashed var(--border)}
.add-author-combo:hover{background:var(--hover);border-color:var(--blue)}
.add-author-combo .add-author-seg:hover{color:var(--blue)}
.add-field-btn:hover{background:var(--hover);color:var(--blue);border-color:var(--blue)}

/* 作者/单位动态行 */
.ao-row{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-bottom:6px;border:1.5px dashed var(--border);border-radius:var(--radius-sm);padding:8px}
/* 作者信息每作者默认两行：第一行 姓名/角色/角色标记符号，第二行 单位/所在地/邮政编码 */
.ao-row-cn{flex-direction:column;align-items:stretch;gap:4px}
.ao-row-cn .ao-row-line{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.ao-row-nl{flex-basis:100%;height:0}
.ao-row .ao-name{flex:0 0 90px;width:90px}
.ao-row .ao-org{flex:0 0 180px;width:180px}
.ao-row .ao-loc{flex:0 0 90px;width:90px}
.ao-row .ao-zip{flex:0 0 72px;width:72px}
.ao-row .ao-role{
  flex:0 0 90px;width:90px;padding:4px 2px;font-size:12px;
  border:1px solid var(--border);border-radius:var(--radius-sm);
  color:var(--fg);background:var(--input-bg);
}
.ao-row .ao-marker{
  flex:0 0 auto;width:44px;padding:4px 2px;font-size:12px;
  border:1px solid var(--border);border-radius:var(--radius-sm);
  color:var(--fg);background:var(--input-bg);
}
.ao-marker-view{flex:0 0 auto;color:var(--blue);font-size:11px;font-weight:bold;line-height:1;align-self:center}
/* (v4.7) 英文并入作者卡片，旧 .en-row 宽度规则已移除 */
.ao-org-wrap{position:relative;flex:0 0 180px;display:flex}
.ao-org-wrap .ao-org{flex:1;width:100%}
.ao-org-suggest{
  position:absolute;top:calc(100% + 2px);left:0;right:0;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-modal);z-index:900;max-height:160px;overflow-y:auto;display:none;overscroll-behavior:contain;
}
.ao-org-suggest-item{
  padding:6px 10px;font-size:12px;cursor:pointer;color:var(--fg);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ao-org-suggest-item:hover{background:var(--blue-tint);color:var(--blue)}
.ao-row.en-row{border:1.5px dashed var(--border);border-radius:var(--radius-sm);padding:8px}
.ao-drag{flex:0 0 auto;cursor:grab;color:var(--old);font-size:12px;padding:0 1px;user-select:none;letter-spacing:-1px}
.ao-drag:active{cursor:grabbing}
.ao-row.dragging{opacity:.55;background:var(--blue-tint);border:1px dashed var(--blue)}
.ao-row.drag-over-top{box-shadow:0 -2px 0 0 var(--blue)}
.ao-row.drag-over-bottom{box-shadow:0 2px 0 0 var(--blue)}
@keyframes aoDropIn{0%{transform:translateY(-8px);opacity:.4}60%{transform:translateY(2px)}100%{transform:translateY(0);opacity:1}}
.ao-row.drop-anim{animation:aoDropIn .28s ease}
.ao-del{flex:0 0 auto;background:none;border:none;color:var(--old);cursor:pointer;font-size:14px;padding:2px 2px}
.ao-del:hover{color:var(--danger)}
.en-confirm-btn{
  flex:0 0 auto;background:var(--blue);color:var(--blue-fg);border:none;border-radius:var(--pill);
  padding:4px 12px;font-size:12px;cursor:pointer;white-space:nowrap;
}
.en-confirm-btn:hover{background:var(--blue-hover)}
.en-confirm-btn.confirmed{background:var(--hover);color:var(--muted-fg);cursor:default}
.en-confirm-btn.empty{background:var(--hover);color:var(--old);cursor:default}
.trans-pending{color:var(--old) !important}

/* ---------- 主区域：编辑 + 预览双栏 ---------- */
.main{flex:1;min-height:0;display:flex;overflow:hidden;gap:0;padding:0}
.editor-wrap,.preview-wrap{
  flex:1;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--border);
  transition:background .2s ease-out,border-color .2s ease-out;
}
.editor-wrap{border-radius:var(--radius-lg) 0 0 var(--radius-lg);border-right:none}
.preview-wrap{border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:var(--hover)}
.panel-title{
  height:34px;background:transparent;border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 14px;font-size:12.5px;color:var(--muted-fg);
  font-weight:500;flex-shrink:0;
}
.editor-area{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;background:var(--input-bg);padding:6px 6px 30px}
/* r124/r125：编辑区顶部"论文信息页占位卡"——对应预览开头的论文信息页（高度由 app.js
   updateInfoPlaceholder 按预览实测校准，使百分比滚动同步与内容位置对齐），仅在双栏预览出现。
   r125：卡内克隆预览信息节（.docx-wrapper 命中 docx-preview 注入样式），按编辑区宽度 zoom 缩放 */
#tfInfoPlaceholder{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--card);margin:0 2px 14px;flex-shrink:0;user-select:none;box-sizing:border-box;display:flex;align-items:center;justify-content:center}
#tfInfoPlaceholder .tf-info-ph-wrap{background:none!important;padding:0!important;margin:0;box-shadow:none;display:flex;flex-direction:column;align-items:center}
/* r176：信息占位页标签移到底部居中（原右上角） */
#tfInfoPlaceholder .tf-info-ph-tag{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);z-index:3;font-size:11px;line-height:1;color:var(--muted-fg);background:var(--hover);border:1px solid var(--border);border-radius:99px;padding:3px 9px;pointer-events:none}
/* 编辑区操作栏：与预览区 mini 头条同构（去掉标题，仅保留操作按钮） */
/* 去掉正文标签页的 12px 顶部内边距：操作栏与标题栏间距收敛为 12px，中心线与预览区操作栏平齐 */
.tf-paper-edit .tab-pane#tabBody{padding-top:0}
/* 论文信息/参考文献/格式配置 标题栏与其所在块上移：去掉顶部 12px 内边距，
   头部高度统一为 40px，与右侧预览窗口操作栏顶部对齐、左右对称 */
.tf-paper-edit .tab-pane#tabInfo{padding-top:0}
.tf-paper-edit .tab-pane#tabInfo .tab-pane-head{height:40px;box-sizing:border-box}
.tf-paper-edit .tab-pane#tabRefs{padding-top:0}
.tf-paper-edit .tab-pane#tabRefs .tab-pane-head{height:40px;box-sizing:border-box}
/* 参考文献页：左列表 + 骑线引用按钮 + 右编辑区 */
#tabRefs .refs-main{display:flex;flex-direction:column;min-height:0}
#tabRefs .refs-pane-body{flex:1;min-height:0;overflow-y:auto;padding:10px 14px;overscroll-behavior:contain}
.refs-import-btn{flex-shrink:0;margin-left:auto;height:26px;padding:0 12px;border:none;border-radius:var(--radius-sm);
  background:var(--blue);color:#fff;font-size:12.5px;font-weight:600;cursor:pointer;transition:box-shadow .15s,background .15s}
.refs-import-btn:hover{background:#5a7fff;box-shadow:0 2px 8px rgba(79,124,255,.4)}
.refs-list-select{min-width:150px;max-width:260px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--fg);font-size:12.5px;cursor:pointer;outline:none;text-overflow:ellipsis;flex-shrink:0;margin-left:8px}
.refs-list-select:focus{border-color:var(--blue)}
.refs-import-btn:active{box-shadow:0 0 0 1px var(--blue),0 2px 8px rgba(0,0,0,.45)}
.refs-cite-bar{position:relative;flex-shrink:0;height:46px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:center}
.refs-cite-count{font-size:12px;color:var(--fg-soft);margin-left:10px}
.refs-cite-btn{position:absolute;top:-15px;left:50%;transform:translateX(-50%);height:30px;min-width:76px;padding:0 16px;
  border:1px solid var(--blue);border-radius:15px;background:#fff;color:var(--blue);font-size:13px;font-weight:600;
  cursor:pointer;box-shadow:0 2px 8px rgba(79,124,255,.28);transition:background .15s,color .15s,box-shadow .15s;line-height:1}
.refs-cite-btn:hover{background:var(--blue);color:#fff;box-shadow:0 3px 10px rgba(79,124,255,.4)}
.refs-cite-btn:active{box-shadow:0 0 0 1px var(--blue),0 2px 8px rgba(0,0,0,.45)}
.refs-cite-btn.has-sel{background:var(--blue);color:#fff}
/* 顶部居中的轻提示（点击关闭 / 1s 自动消失） */
.refs-toast{position:fixed;top:24px;left:50%;transform:translateX(-50%) translateY(-8px);
  background:#374151;color:#fff;padding:9px 22px;border-radius:999px;font-size:13px;line-height:1;
  z-index:9999;box-shadow:0 6px 18px rgba(0,0,0,.25);opacity:0;pointer-events:none;
  transition:opacity .18s ease-out,transform .18s ease-out;cursor:pointer;max-width:80vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.refs-toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.refs-editor-host{flex:1;min-height:0;overflow:hidden;background:#fff;padding:0;box-sizing:border-box;display:flex;flex-direction:column}
.refs-editor-host[hidden]{display:none}
.refs-editor-host .editor-wrap2{height:auto;background:transparent;display:flex;flex-direction:column;flex:1;min-height:0}
.refs-editor-host .tf-preview-bar{flex-shrink:0;background:#fff;border-bottom:1px solid var(--border)}
.refs-editor-host .editor-area{flex:1;min-height:0;overflow-y:auto;margin:0;padding:0}
.refs-editor-host #editor-container{max-width:none;width:100%;margin:0;padding:20px 26px;box-sizing:border-box;min-height:100%}
/* 列表项 */
.refs-pane-list .refs-item{display:flex;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;
  transition:background .15s,box-shadow .15s;align-items:flex-start}
.refs-pane-list .refs-item:hover{background:var(--hover)}
.refs-pane-list .refs-item.selected{background:rgba(79,124,255,.12);outline:1px solid var(--blue);outline-offset:-1px;box-shadow:0 1px 4px rgba(79,124,255,.18)}
.refs-pane-list .refs-no{flex-shrink:0;min-width:26px;color:var(--blue);font-weight:600;font-size:13px;line-height:1.6}
.refs-pane-list .refs-no-none{visibility:hidden}
.refs-pane-list .refs-text{flex:1;min-width:0;font-size:12.5px;line-height:1.6;color:var(--fg)}
.refs-pane-list .refs-empty{padding:24px 8px;color:var(--fg-soft);font-size:13px;line-height:1.7;text-align:left}
/* 导入弹窗 */
#refsImportModal .refs-import-input{width:100%;box-sizing:border-box;min-height:120px;padding:10px 12px;
  border:1px solid #e5e7eb;border-radius:var(--radius-sm);font-size:13px;line-height:1.6;resize:vertical;font-family:inherit}
#refsImportModal .refs-import-result{margin-top:10px;max-height:260px;overflow-y:auto;overscroll-behavior:contain;font-size:12.5px}
#refsImportModal .refs-imp-row{display:flex;gap:8px;align-items:flex-start;padding:6px 8px;border-radius:var(--radius-sm);margin-bottom:4px;line-height:1.55}
#refsImportModal .refs-imp-row.ok{background:rgba(34,197,94,.08)}
#refsImportModal .refs-imp-row.fail{background:rgba(239,68,68,.07)}
#refsImportModal .refs-imp-row.pending{color:var(--fg-soft)}
#refsImportModal .refs-imp-state{flex-shrink:0}
#refsImportModal .refs-imp-line{flex:1;min-width:0;word-break:break-all}
#refsImportModal .refs-imp-err{color:#ef4444;flex-shrink:0;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#refsImportModal .refs-imp-done{margin-top:8px;font-weight:600;color:var(--blue)}
#refsImportModal .refs-imp-abs{font-size:12px;color:var(--fg-soft);margin:3px 0 2px 26px;line-height:1.55;word-break:break-all;max-height:64px;overflow:hidden;position:relative}
#refsImportModal .refs-imp-warn{font-size:12px;color:#d97706;margin:3px 0 2px 26px;line-height:1.5;word-break:break-all}
#refsImportModal .refs-imp-cand{display:flex;gap:8px;align-items:flex-start;padding:7px 9px;border-radius:var(--radius-sm);margin-bottom:4px;line-height:1.55;cursor:pointer;border:1px solid var(--border);transition:border-color .15s,background .15s}
#refsImportModal .refs-imp-cand:hover{background:var(--blue-tint);border-color:var(--blue)}
#refsImportModal .refs-imp-cand .refs-imp-state{flex-shrink:0;font-weight:700;color:var(--blue)}
#refsImportModal .refs-imp-abs::after{content:"";position:absolute;left:0;right:0;bottom:0;height:14px;background:linear-gradient(180deg,transparent,#fff)}
.tf-paper-edit .tab-pane#tabFmt{padding-top:0}
.tf-paper-edit .tab-pane#tabFmt .tab-pane-head{height:40px;box-sizing:border-box}
/* 正文编辑区操作栏：背景色与论文信息标题栏（--hover）一致 */
.tf-paper-edit #tabBody .editor-wrap2 .tf-preview-bar{background:var(--hover)}
#toolbar-container{flex:1;min-width:0;display:flex;align-items:center;overflow:hidden;background:transparent;border:none;height:auto;padding:0}
#toolbar-container .w-e-toolbar{background:transparent !important;border-color:transparent !important;flex-wrap:nowrap !important;overflow-x:auto;overflow-y:hidden !important;padding:0 !important;width:100%;align-items:center}
/* 操作栏按钮重设计：28×28 点击区 + 统一线性图标 + hover/active/focus 状态 */
#toolbar-container .w-e-toolbar .w-e-bar-item{height:28px;min-height:28px;padding:0 2px;border-radius:var(--radius-sm)}
#toolbar-container .w-e-toolbar .w-e-bar-divider{height:18px;margin:0 5px}
#toolbar-container .w-e-toolbar .w-e-bar-item button[data-menu-key]{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:inherit;height:28px;min-width:28px;padding:0 6px;border-radius:var(--radius-sm);cursor:pointer;line-height:1;gap:6px;transition:background .15s ease-out,color .15s ease-out,box-shadow .15s ease-out}
/* 带文字的功能按钮（撤回/重做除外）：加宽、宽度按图标+文字自适应 */
#toolbar-container .w-e-toolbar .w-e-bar-item button[data-menu-key]:not([data-menu-key="undo"]):not([data-menu-key="redo"]){padding:0 10px;min-width:0}
/* 功能文字：与图标（18px）同尺寸、垂直居中对齐 */
#toolbar-container .w-e-toolbar .w-e-bar-item button[data-menu-key] .tb-btn-text{font-size:12.5px !important;font-weight:600 !important;line-height:1;white-space:nowrap;color:inherit}
#toolbar-container .w-e-toolbar .w-e-bar-item button[data-menu-key]:hover{background:var(--hover);box-shadow:0 2px 6px rgba(0,0,0,.28)}
#toolbar-container .w-e-toolbar .w-e-bar-item button[data-menu-key]:active{box-shadow:0 0 0 1px var(--blue),0 2px 8px rgba(0,0,0,.45);color:var(--blue)}
#toolbar-container .w-e-toolbar .w-e-bar-item button[data-menu-key]:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}
#toolbar-container .w-e-toolbar .w-e-bar-item button[data-menu-key].disabled{opacity:.4;pointer-events:none;background:transparent;box-shadow:none}
#toolbar-container .w-e-toolbar .w-e-bar-item svg.tb-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:block;flex-shrink:0}
#toolbar-container .w-e-toolbar .w-e-bar-item svg.tb-icon text{fill:currentColor;stroke:none;font-family:var(--font-ui)}
/* 操作栏左右箭头（窄屏时隐藏滚动条，点箭头每次滚动 2 个按钮；尺寸与按钮点击区对齐） */
.tb-scroll-arrow{display:none;width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--muted-fg);font-size:15px;line-height:1;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:background .15s ease-out,color .15s ease-out,opacity .15s ease-out}
.tb-scroll-arrow:hover{background:var(--blue-tint);color:var(--blue);border-color:var(--blue)}
.tb-scroll-arrow.tb-show{display:flex}
.tb-scroll-arrow.tb-dim{opacity:.25;pointer-events:none}
#toolbar-container .w-e-toolbar{scrollbar-width:none}
#toolbar-container .w-e-toolbar::-webkit-scrollbar{display:none}
/* 格式组合并按钮：B▾（加粗为主，悬停下拉 I / x² / x₂） */
.tb-format-group{position:relative;display:flex;align-items:center;height:22px;border:1px solid var(--border);border-radius:5px;background:var(--card);flex-shrink:0;margin:0 2px;overflow:visible}
.tb-format-group .tb-fmt-main{width:26px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--fg);font-size:13px;font-weight:700;cursor:pointer;border-radius:5px 0 0 5px;line-height:1;padding:0}
.tb-format-group .tb-fmt-main:hover{background:var(--hover)}
.tb-format-group .tb-fmt-main.tb-active{background:var(--blue-tint);color:var(--blue)}
.tb-format-group .tb-fmt-arrow{width:13px;height:22px;display:flex;align-items:center;justify-content:center;border:none;border-left:1px solid var(--border);background:transparent;color:var(--muted-fg);font-size:9px;cursor:pointer;border-radius:0 5px 5px 0;padding:0;line-height:1}
.tb-format-group .tb-fmt-arrow:hover{color:var(--blue);background:var(--hover)}
#tbFmtMenu{position:fixed;display:none;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.22);padding:4px;z-index:1000;min-width:38px}
#tbFmtMenu button{height:26px;min-width:30px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--fg);font-size:13px;cursor:pointer;border-radius:5px;line-height:1;padding:0 8px}
#tbFmtMenu button:hover{background:var(--blue-tint);color:var(--blue)}
#tbFmtMenu button.tb-active{background:var(--blue-tint);color:var(--blue);font-weight:600}
#tbFmtMenu button[data-fmt="italic"]{font-style:italic;font-weight:600}

/* wangEditor 编辑区：去纸化——只保留排版行长与内边距，视觉跟随主题背景（无纸面/阴影） */
#editor-container{height:auto;min-height:560px;background:transparent;max-width:640px;margin:0 auto;
  padding:46px 54px;position:relative}
#editor-container .w-e-scroll,
#editor-container .w-e-text-container{height:auto !important;overflow:visible !important;background:transparent !important}
#editor-container .w-e-scroll,
#editor-container [data-slate-editor]{
  font-family:var(--font-ui) !important;
  font-size:14px !important;line-height:1.5 !important;color:#000 !important;
}
#editor-container p{margin:0 !important;text-indent:2em !important;text-align:justify !important}
/* 表格内容、表题、图题：无首行缩进；表格居中；适应页面宽度（100%）时编辑区表格满宽 */
#editor-container table{margin:0 auto !important}
#editor-container table[width="100%"]{width:100% !important;table-layout:fixed !important}
#editor-container table td p, #editor-container .table-caption, #editor-container .image-caption{text-indent:0 !important}
#editor-container .table-caption, #editor-container .image-caption{text-align:center !important}
#editor-container .w-e-text-placeholder{top:2px !important;left:calc(10px + 2em) !important;color:var(--muted-fg) !important;font-style:normal !important}
#editor-container h1{
  font-family:var(--font-ui) !important;
  font-size:20px !important;text-align:center !important;font-weight:normal !important;
  text-indent:0 !important;margin:18px 0 12px !important;color:#000 !important;
}
#editor-container h2{
  font-family:var(--font-ui) !important;
  font-size:18px !important;font-weight:normal !important;text-indent:0 !important;
  margin:14px 0 8px !important;color:#000 !important;
}
#editor-container h3{
  font-family:var(--font-ui) !important;
  font-size:16px !important;font-weight:normal !important;text-indent:0 !important;
  margin:12px 0 6px !important;color:#000 !important;
}
#editor-container h4,
#editor-container h5,
#editor-container h6{
  font-family:var(--font-ui) !important;
  font-size:14px !important;font-weight:normal !important;text-indent:0 !important;
  margin:10px 0 6px !important;color:#000 !important;
}
/* 编辑区标题等级标记：所在行页面最左侧的灰色 Hn 提示。
   伪元素为纯装饰层，不进入文档模型（保存/导出/预览均不含此标记） */
#editor-container h1,#editor-container h2,#editor-container h3,
#editor-container h4,#editor-container h5,#editor-container h6{
  position:relative;
}
#editor-container h1::before,#editor-container h2::before,#editor-container h3::before,
#editor-container h4::before,#editor-container h5::before,#editor-container h6::before{
  content:"H1";
  position:absolute;right:100%;top:50%;transform:translateY(-50%);
  margin-right:9px;
  font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.03em;
  line-height:1;white-space:nowrap;
  color:#ABA79D;
  user-select:none;
  /* 不设 pointer-events:none：悬停标记时事件命中宿主标题元素，
     段落样式工具块（悬停段落左侧显示）才能正常触发 */
}
#editor-container h2::before{content:"H2"}
#editor-container h3::before{content:"H3"}
#editor-container h4::before,#editor-container h5::before,#editor-container h6::before{content:"H4"}
#editor-container img{display:block;margin:12px auto;max-width:100%}
/* 分割线（wangEditor divider）：编辑区显示为居中横线 */
#editor-container .w-e-textarea-divider hr{display:block;border:none;border-top:1px solid rgba(0,0,0,.25);margin:10px auto;max-width:100%}
#editor-container .formula{display:inline-block;vertical-align:middle;padding:0 2px}
#editor-container .display-formula{display:flex;align-items:center;justify-content:center;position:relative;margin:12px 0;min-height:34px}
#editor-container .display-formula .df-math{flex:1;text-align:center;padding:0 14px}
#editor-container .display-formula .df-num{position:absolute;right:0;top:50%;transform:translateY(-50%);line-height:1;font-family:var(--font-ui);font-size:14px;color:var(--fg)}
#editor-container .display-formula{cursor:pointer}
#editor-container .display-formula:hover{outline:1px dashed rgba(79,124,255,.5);outline-offset:2px;border-radius:4px}
/* 目录占位块：编辑区提示，导出 Word 时替换为可跳转 TOC 域 */
#editor-container .toc-placeholder{display:block;text-align:center;margin:14px 0;padding:16px 12px;border:1.5px dashed rgba(79,124,255,.45);border-radius:8px;background:rgba(79,124,255,.06);color:var(--muted-fg);font-size:14px;line-height:1.6;cursor:default;user-select:none}
/* mermaid 流程图：编辑区默认只展示渲染图，代码块隐藏；点击图时才弹代码编辑框 */
#editor-container pre.mermaid-pre-hidden{display:none}
.mermaid-block{display:flex;justify-content:center;margin:12px 0}
.mermaid-block img{max-width:100%}
.mermaid-editor{position:fixed;z-index:2100;width:440px;max-width:80vw;background:#fff;border:1px solid var(--line,#d9d9d9);border-radius:8px;box-shadow:0 8px 28px rgba(0,0,0,.14);padding:10px 10px 8px;font-family:inherit}
.mermaid-editor-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted-fg,#666);margin-bottom:6px}
.mermaid-editor-hint{color:var(--muted-fg,#999);font-size:11px}
.mermaid-editor textarea{width:100%;height:150px;border:1px solid var(--line,#d9d9d9);border-radius:6px;font-family:Consolas,"Courier New",monospace;font-size:12px;line-height:1.5;padding:6px 8px;resize:vertical;box-sizing:border-box;outline:none}
.mermaid-editor textarea:focus{border-color:var(--accent,#4f7cff)}
.mermaid-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.mermaid-editor-actions button{border:1px solid var(--line,#d9d9d9);background:#fff;border-radius:6px;padding:3px 12px;font-size:12px;cursor:pointer}
.mermaid-editor-actions button.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.mermaid-editor-actions button:hover{opacity:.9}
.mermaid-editor-actions button.danger{border-color:var(--danger,#D33);color:var(--danger,#D33);background:#fff}
.mermaid-editor-actions button.danger:hover{background:#FFE5E5;opacity:1}
.mermaid-editor-actions button.danger:active{background:#F6C4C4;border-color:#C81E1E;color:#C81E1E;opacity:1}
#editor-container .formula[data-display="true"]{display:block;margin:.6em auto;text-align:center}
#editor-container .cite{
  vertical-align:super;font-size:.75em;color:#1d4ed8;
  font-family:var(--font-ui);cursor:default;white-space:nowrap;
}
#editor-container .cite.cite-orphan{color:#b91c1c;text-decoration:line-through}
#editor-container .cite.cite-notsup{vertical-align:baseline;font-size:inherit}
/* 交叉引用（图/表/公式）：蓝色可点击行内文本 */
#editor-container .xref{
  color:#1d4ed8;text-decoration:underline;text-underline-offset:2px;
  font-family:var(--font-ui);cursor:pointer;white-space:nowrap;
  background:var(--blue-tint);border-radius:2px;padding:0 2px;
}
#editor-container .xref:hover{background:color-mix(in srgb,var(--blue) 18%,transparent)}
#editor-container .xref.xref-orphan{color:#b91c1c;text-decoration:line-through;background:transparent}
/* 侧栏交叉引用列表：图标 + 编号固定宽度对齐，按钮直接内嵌列表项右侧 */
.xref-list{display:flex;flex-direction:column;gap:2px;padding:4px}
.xref-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm)}
.xref-item:hover{background:var(--hover)}
.xref-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;font-size:14px;flex-shrink:0;line-height:1}
.xref-label{font-weight:600;color:var(--blue);font-size:13px;flex-shrink:0;width:54px;text-align:left;font-variant-numeric:tabular-nums;font-family:var(--font-ui)}
.xref-title{font-size:13px;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.xref-formula{flex:1;min-width:0;overflow:hidden;font-size:13px;color:var(--fg);display:flex;align-items:center;justify-content:flex-start}
.xref-formula .katex{font-size:1em;line-height:1.2}
.xref-formula .katex .katex-mathml{display:none}
.xref-actions{flex-shrink:0;display:flex;gap:4px;margin-left:auto}
.xref-btn{padding:4px 10px;border:1px solid var(--blue);border-radius:4px;background:var(--blue);color:#fff;font-size:12px;line-height:1.2;cursor:pointer;white-space:nowrap;font-family:var(--font-ui)}
.xref-btn:hover:not(:disabled){background:var(--blue-hover);border-color:var(--blue-hover)}
.xref-btn:disabled{background:var(--hover);color:var(--muted-fg);border-color:var(--border);cursor:not-allowed}
/* 编辑器内表题 / 图题框（r173：背景/边框/文字主题化，跟随当前主题色 --blue/--blue-tint） */
#editor-container .table-caption{
  text-align:center;font-weight:600;font-size:14px;margin:0;padding:8px 12px;
  color:var(--blue);background:var(--blue-tint);border:1.5px solid var(--blue);
  border-bottom:none;border-radius:6px 6px 0 0;
  display:block !important;position:relative;z-index:1;
}
/* 中文表题后跟英文表题框时，中文框补回下边框（不再直接贴着表格） */
#editor-container .table-caption:has(+ .table-caption-en){
  border-bottom:1.5px solid var(--blue);
}
/* 英文表题输入框（table-caption-en，void 块，位于中文表题与表格之间） */
#editor-container .table-caption-en{
  display:flex;align-items:center;gap:6px;
  margin:0;padding:4px 10px;
  background:transparent;border:1px dashed #B8B0A2;border-radius:0 0 6px 6px;
  text-align:left;
}
#editor-container .table-caption-en .tce-label{
  flex:0 0 auto;font-family:"Times New Roman",serif;font-style:italic;
  font-size:13px;color:var(--muted-fg);font-weight:600;
}
#editor-container .table-caption-en .tce-input{
  flex:1 1 auto;min-width:0;border:none;outline:none;background:transparent;
  font-family:"Times New Roman",serif;font-size:13px;color:var(--fg);padding:2px 0;
}
#editor-container .table-caption-en .tce-input::placeholder{color:var(--c-ghost);font-style:normal}
#editor-container .image-caption{
  text-align:center;font-weight:600;font-size:14px;margin:0;padding:8px 12px;
  color:var(--blue);background:var(--blue-tint);border:1.5px solid var(--blue);
  border-top:none;border-radius:0 0 6px 6px;
  display:block !important;position:relative;z-index:1;
}
/* 英文图题输入框（image-caption-en，void 块，位于中文图题下方） */
#editor-container .image-caption-en{
  display:flex;align-items:center;gap:6px;
  margin:2px 0 10px;padding:4px 10px;
  background:transparent;border:1px dashed #B8B0A2;border-radius:6px;
  text-align:left;
}
#editor-container .image-caption-en .ice-label{
  flex:0 0 auto;font-family:"Times New Roman",serif;font-style:italic;
  font-size:13px;color:var(--muted-fg);font-weight:600;
}
#editor-container .image-caption-en .ice-input{
  flex:1 1 auto;min-width:0;border:none;outline:none;background:transparent;
  font-family:"Times New Roman",serif;font-size:13px;color:var(--fg);padding:2px 0;
}
#editor-container .image-caption-en .ice-input::placeholder{color:var(--c-ghost);font-style:normal}
#editor-container .table-container{position:relative;padding-bottom:48px;overflow:visible !important}
#editor-container .table-container table{width:auto;max-width:100%}
#editor-container .table-caption.caption-unconfirmed{
  color:#b45309;background:#fef3c7;border:1px dashed #f59e0b;border-radius:4px;padding:4px 8px;
}
.caption-confirm-btn{
  margin-left:10px;padding:2px 8px;font-size:12px;
  border:1px solid var(--success);background:var(--success);color:#fff;
  border-radius:var(--pill);cursor:pointer;vertical-align:middle;
}
.caption-confirm-btn:hover{opacity:.85}

/* wangEditor 工具栏（chrome 参与深浅色） */
#toolbar-container .w-e-toolbar .w-e-menu{color:var(--fg)}
#toolbar-container .w-e-toolbar .w-e-menu:hover{background:var(--hover)}
#toolbar-container .w-e-toolbar .w-e-menu .w-e-icon-toolbar{color:inherit}
#toolbar-container .w-e-toolbar .w-e-menu svg{fill:currentColor}
#toolbar-container .w-e-toolbar .w-e-active{background:var(--blue-tint) !important;color:var(--blue) !important}
#toolbar-container .w-e-toolbar .w-e-disabled{opacity:.4}
#toolbar-container .w-e-select-list ul{background:var(--card);border-color:var(--border)}
#toolbar-container .w-e-select-list ul li:hover{background:var(--hover)}
#toolbar-container .w-e-toolbar .w-e-menu-tooltip-v5::after{
  background:var(--primary);color:var(--primary-fg);border-radius:6px;
}

/* ---------- A4 预览区（r179：背景 var(--input-bg) 与编辑区背景一致） ---------- */
.preview-scroll{
  flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:20px;
  display:flex;background:var(--input-bg);
}
.paper-page{
  width:100%;max-width:210mm;min-height:297mm;background:#fff;margin:auto;flex:0 0 auto;
  padding:2.54cm 3.17cm;box-shadow:0 2px 14px rgba(26,24,21,.16);box-sizing:border-box;
  font-family:"SimSun","宋体","Songti SC",serif;font-size:12pt;line-height:1.5;color:#000;
  transform-origin:top center;position:relative;overflow:hidden;
}
/* 右下角蓝色卷角：正在翻过去的那一页 */
.paper-page::after{
  content:"";position:absolute;right:0;bottom:0;width:34px;height:34px;
  background:linear-gradient(315deg,var(--blue) 50%,transparent 50.5%);
}
.preview-title{display:flex;justify-content:space-between;align-items:center}
.preview-zoom-controls{display:flex;align-items:center;gap:6px}
.preview-zoom-controls button{
  min-width:22px;height:22px;line-height:1;padding:0 4px;
  background:var(--card);border:1px solid var(--border);border-radius:6px;
  cursor:pointer;font-size:13px;color:var(--muted-fg);transition:background .15s ease-out,color .15s ease-out,border-color .15s ease-out;
}
.preview-zoom-controls button:hover{background:var(--blue-tint);color:var(--blue);border-color:var(--blue)}
.preview-zoom-controls .preview-refresh-btn{width:auto;padding:0 8px;font-size:12px}
#previewZoomLabel{font-size:12px;color:var(--muted-fg);min-width:40px;text-align:center;user-select:none}

/* 预览纸张排版（恒白底黑字） */
.paper-meta .meta-mark-table{
  width:100%;border-collapse:collapse;table-layout:fixed;
  font-size:10.5pt;line-height:1.6;margin-bottom:8px;
}
.paper-meta .meta-mark-table td{border:none;padding:0;vertical-align:top}
.paper-meta .meta-mark-table td:nth-child(1),
.paper-meta .meta-mark-table td:nth-child(3),
.paper-meta .meta-mark-table td:nth-child(5){width:18%}
.paper-meta .meta-mark-table td:nth-child(2){width:10%}
.paper-meta .meta-mark-table td:nth-child(4){width:5%}
.paper-meta .meta-mark-table td:nth-child(6){width:34%}
.paper-meta .meta-title{font-family:var(--pv-heading-font,"SimHei","黑体",sans-serif);font-size:var(--pv-title-size,16pt);text-align:center;font-weight:bold;margin-bottom:12px}
.paper-meta .meta-author{text-align:center;font-size:var(--pv-body-size,12pt);margin-bottom:4px}
.paper-meta .meta-org{text-align:center;font-size:var(--pv-ref-size,10.5pt);color:#333;margin-bottom:16px}
.paper-meta .meta-abstract,
.paper-meta .meta-keywords{font-size:var(--pv-ref-size,10.5pt);margin-bottom:8px;line-height:var(--pv-line-height,1.6)}
.paper-meta .meta-abstract .label,
.paper-meta .meta-keywords .label{font-family:var(--pv-heading-font,"SimHei","黑体",sans-serif);font-weight:bold}
.paper-meta .meta-title-en{font-family:"Times New Roman",serif;font-size:15pt;text-align:center;font-weight:bold;margin:10px 0 2px}
.paper-meta .meta-author-en{text-align:center;font-size:11pt;margin-bottom:8px}
.en-info-toggle{
  display:flex;align-items:center;justify-content:space-between;
  background:#EFEAE1;border:1px solid #E8E3D9;border-radius:var(--radius-sm);
  padding:7px 10px;cursor:pointer;user-select:none;font-size:13px;color:#1A1815;
}
.en-info-toggle:hover{background:#E8E3D9}
.en-info-arrow{font-size:12px;color:#6B665C}
.en-info-body{border:1px dashed #E8E3D9;border-radius:6px;padding:8px;margin-top:6px}
/* 预览正文 */
.paper-body{margin-top:20px}
.paper-body p{margin:0;text-indent:var(--pv-first-line-indent,2em);text-align:justify;line-height:var(--pv-line-height,2)}
.paper-body h1{font-family:var(--pv-heading-font,"SimHei","黑体","Heiti SC",sans-serif);font-size:var(--pv-h1-size,16pt);text-align:center;font-weight:normal;margin:18px 0 12px;text-indent:0}
.paper-body h2{font-family:var(--pv-heading-font,"SimHei","黑体","Heiti SC",sans-serif);font-size:var(--pv-h2-size,14pt);font-weight:normal;margin:14px 0 8px;text-indent:0}
.paper-body h3{font-family:var(--pv-heading-font,"SimHei","黑体","Heiti SC",sans-serif);font-size:var(--pv-h3-size,12pt);font-weight:normal;margin:12px 0 6px;text-indent:0}
.paper-body h4{font-family:var(--pv-heading-font,"SimHei","黑体","Heiti SC",sans-serif);font-size:12pt;font-weight:normal;margin:10px 0 5px;text-indent:0}
.paper-body h5,.paper-body h6{font-family:var(--pv-heading-font,"SimHei","黑体","Heiti SC",sans-serif);font-size:10.5pt;font-weight:normal;margin:8px 0 4px;text-indent:0}
.paper-body img{display:block;margin:8px auto;max-width:100%}
.paper-body .figure-caption{text-align:center;text-indent:0;font-family:var(--pv-caption-font,"SimHei","黑体",sans-serif);font-size:var(--pv-caption-size,10.5pt);margin:4px 0 12px}
.paper-body .figure-caption-en{text-align:center;text-indent:0;font-family:"Times New Roman",serif;font-size:var(--pv-caption-size,10.5pt);margin:-6px 0 12px}
.paper-body .table-caption-en{text-align:center;text-indent:0;font-family:"Times New Roman",serif;font-size:var(--pv-caption-size,10.5pt);margin:-4px 0 12px}
.paper-body .table-caption{text-align:center;text-indent:0;font-family:var(--pv-caption-font,"SimHei","黑体",sans-serif);font-size:var(--pv-caption-size,10.5pt);margin:12px 0 4px}
.paper-body table{border-collapse:collapse;width:auto;margin:0 auto 12px;font-size:var(--pv-ref-size,10.5pt);border-top:1.5pt solid #000;border-bottom:1.5pt solid #000}
.paper-body table td,.paper-body table th{border:none;padding:4px 8px;text-align:center}
.paper-body table tr:first-child td,
.paper-body table tr:first-child th{border-bottom:.75pt solid #000}
.paper-body ul,.paper-body ol{padding-left:2em}
.paper-body .formula{vertical-align:middle;padding:0 2px}
.paper-body .formula[data-display="true"]{display:block;margin:.6em auto;text-align:center}
.paper-body .cite{vertical-align:super;font-size:.75em;color:#1d4ed8;font-family:"Times New Roman",serif;margin:0 1px;text-indent:0}
.paper-body .cite.cite-orphan{color:#b91c1c;text-decoration:line-through}
.paper-body .cite.cite-notsup{vertical-align:baseline;font-size:inherit;color:#1d4ed8}
.paper-body .heading-num{margin-right:2px}
.paper-references{margin-top:24px}
.paper-references .ref-title{font-family:var(--pv-heading-font,"SimHei","黑体",sans-serif);font-size:var(--pv-h3-size,12pt);text-align:center;margin-bottom:8px}
.paper-references .ref-item{font-size:var(--pv-ref-size,10.5pt);line-height:var(--pv-line-height,1.6);text-align:justify;padding-left:2.2em;text-indent:-2.2em;margin-bottom:4px;word-break:break-all}

/* ---------- 弹窗（毛玻璃遮罩 + 弹入动画） ---------- */
.modal-mask{
  position:fixed;inset:0;background:rgba(26,24,21,.45);backdrop-filter:blur(4px);
  display:none;align-items:center;justify-content:center;z-index:1000;
}
/* r199：MathLive 虚拟键盘浮层必须盖在公式弹窗（.modal-mask z=1000）之上，否则键盘被弹窗挡住 */
.ML__keyboard{z-index:1500 !important}
.modal-mask.show{display:flex}
/* P0：关闭退出动画（可打断——transition 从当前态 retarget；closing 期间重开由 JS remove 该 class 接管） */
.modal-mask{transition:opacity .18s ease-out}
.modal-mask.closing{opacity:0}
.modal-mask.closing .modal{animation:modalOut .16s ease-in forwards}
@keyframes modalOut{to{transform:scale(.97);opacity:0}}
@media (prefers-reduced-motion: reduce){.modal-mask.closing{transition:none}.modal-mask.closing .modal{animation:none}}
.modal{
  background:var(--card);border:1px solid var(--border);border-radius:16px;
  box-shadow:var(--shadow-modal),0 2px 10px rgba(26,24,21,.07);
  padding:24px 26px 22px;width:min(520px,84vw);max-width:calc(100vw - 32px);
  animation:pop .4s cubic-bezier(.16,1,.3,1);position:relative;
  max-height:90vh;overscroll-behavior:contain;
}
@keyframes pop{from{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}
.modal h3{margin:0 0 12px;font-family:var(--font-ui);font-size:17px;font-weight:600;display:flex;align-items:center;gap:10px;letter-spacing:.01em;text-wrap:balance}
.modal-title-ic{width:32px;height:32px;border-radius:10px;background:var(--blue-tint);color:var(--blue);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.modal-title-ic svg{width:17px;height:17px}
.modal label{display:block;font-size:13px;color:var(--muted-fg);margin-bottom:6px}
.modal input[type="text"],.modal input[type="number"]{
  width:100%;padding:10px 13px;border:1px solid var(--border);border-radius:12px;
  font-size:14px;margin-bottom:12px;background:var(--input-bg);color:var(--fg);outline:none;
  transition:border-color .15s ease-out,box-shadow .15s ease-out;
}
.modal input[type="text"]:focus,.modal input[type="number"]:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint)}
.modal select{
  width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);
  font-size:14px;margin-bottom:12px;font-family:inherit;background:var(--input-bg);color:var(--fg);
}
.modal .row{display:flex;gap:12px}
.modal .row > div{flex:1}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}
/* 新建文稿弹窗字段 */
.np-field{margin:12px 0 4px}
.np-field label{display:block;font-size:13px;color:var(--muted-fg);margin-bottom:6px;font-weight:500}
.np-opt{font-size:12px;color:var(--muted-fg);font-weight:400;opacity:.8}
.np-field input[type="text"],.np-field select{width:100%;padding:10px 13px;border:1px solid var(--border);border-radius:12px;font-size:14px;background:var(--input-bg);color:var(--fg);outline:none;transition:border-color .15s ease-out,box-shadow .15s ease-out}
.np-field input:focus,.np-field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint)}
.np-hint{font-size:11px;color:var(--muted-fg);opacity:.8;margin-top:4px;line-height:1.5}
.np-path{font-size:11px;color:var(--muted-fg);opacity:.8;margin:2px 0;line-height:1.6;word-break:break-all}
.modal-actions button{
  padding:7px 18px;border-radius:var(--pill);border:1px solid var(--border);
  background:var(--card);color:var(--fg);cursor:pointer;font-size:13.5px;
  transition:background .15s ease-out;
}
.modal-actions button:hover{background:var(--hover)}
.modal-actions button.primary{background:var(--blue);color:var(--blue-fg);border-color:var(--blue)}
.modal-actions button.primary:hover{background:var(--blue-hover)}
.modal-actions button.btn-danger{border-color:var(--danger);color:var(--danger)}
.modal-actions button.btn-danger:hover{background:var(--danger-bg);color:var(--danger)}
.modal-actions button.btn-danger:active{background:var(--danger);color:#fff;border-color:var(--danger)}
.modal-close-x{
  position:absolute;top:12px;right:14px;width:30px;height:30px;
  border:none;background:transparent;font-size:17px;color:var(--muted-fg);cursor:pointer;
  border-radius:10px;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:background .15s ease-out,color .15s ease-out;
}
.modal-close-x:hover{background:var(--hover);color:var(--fg)}

/* 引用弹窗：标签页 */
.cite-modal{width:640px;max-height:88vh;overflow-y:auto;overscroll-behavior:contain}
.tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--border);margin-bottom:14px}
.tab-btn{
  padding:8px 18px;border:none;background:none;font-size:14px;color:var(--muted-fg);
  cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;font-family:inherit;
}
.tab-btn.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}
.tab-pane{display:none}
.tab-pane.active{display:block}
.paste-input{
  width:100%;min-height:72px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);
  font-size:13px;margin-bottom:10px;resize:vertical;font-family:inherit;
  background:var(--input-bg);color:var(--fg);
}
.gbt-parse{margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed var(--border)}
.gbt-parse .paste-input{min-height:56px;margin-bottom:0}
.fetch-status{font-size:13px;margin-bottom:10px;min-height:20px;display:flex;align-items:center;gap:8px;color:var(--muted-fg)}
.fetch-status.error{color:var(--danger)}
.fetch-status.success{color:var(--success)}
.spinner{
  width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--blue);
  border-radius:50%;display:inline-block;animation:spin .8s linear infinite;flex-shrink:0;
}
@keyframes spin{to{transform:rotate(360deg)}}
.existing-row{margin-bottom:12px}
.grid2{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 10px}
.grid2 > div{min-width:0}

/* 公式弹窗 */
.formula-modal{width:720px}
.formula-preview{
  min-height:80px;border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:16px;margin-bottom:12px;background:var(--hover);
  display:flex;align-items:center;justify-content:center;font-size:18px;overflow-x:auto;color:var(--fg);
}
.formula-tips{font-size:12px;color:var(--muted-fg);margin-bottom:10px;line-height:1.6}
.formula-latex{
  width:100%;min-height:60px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);
  font-family:var(--font-mono);font-size:13px;margin-bottom:12px;resize:vertical;
  background:var(--input-bg);color:var(--fg);
}

/* Mermaid 弹窗 */
.mermaid-modal{width:640px;max-height:80vh;overflow-y:auto;overscroll-behavior:contain}
.mermaid-list{display:flex;flex-direction:column;gap:12px;margin:8px 0 4px}
.mermaid-caption-row{display:flex;gap:12px;align-items:flex-start}
.mermaid-caption-row .mermaid-thumb{
  width:96px;height:72px;object-fit:contain;border:1px solid var(--border);border-radius:6px;
  background:#fff;flex-shrink:0;
}
.mermaid-caption-row .mermaid-inputs{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.mermaid-caption-row input{margin:0;width:100%}
.mermaid-caption-row .mermaid-en-input{font-size:13px}

/* r219：图片操作菜单（点击图片时浮动显示在图片上方，含更换/删除） */
.image-action-menu{position:fixed;z-index:2000;display:flex;gap:4px;padding:4px;
  background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:0 4px 12px rgba(0,0,0,.15)}
/* r219：hidden 属性兜底——JS 同时用 style.display 控制，此处确保初始 hidden 生效 */
.image-action-menu[hidden]{display:none!important}
.image-action-menu button{padding:5px 12px;border:1px solid var(--border);border-radius:4px;
  background:var(--bg);color:var(--fg);font-size:12.5px;cursor:pointer;white-space:nowrap;
  font-family:var(--font-ui)}
.image-action-menu button:hover{background:var(--hover)}
.image-action-menu button[data-act="delete"]:hover{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}
.mermaid-warn{
  display:none;background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger);
  border-radius:var(--radius-sm);padding:8px 10px;font-size:12px;line-height:1.6;margin:8px 0;
}
.mermaid-warn .mermaid-failed-item{
  margin-top:6px;padding-top:6px;border-top:1px dashed var(--danger);
  font-family:var(--font-mono);font-size:11px;white-space:pre-wrap;word-break:break-all;
  max-height:100px;overflow-y:auto;overscroll-behavior:contain;
}
.mermaid-empty{text-align:center;padding:24px;color:var(--muted-fg);font-size:13px}

/* 文献库管理弹窗 */
.library-modal{width:680px;max-height:85vh;display:flex;flex-direction:column}
.library-list{margin-top:6px;max-height:52vh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);overscroll-behavior:contain}
.lib-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-bottom:1px solid var(--hover);font-size:13px;line-height:1.6}
.lib-item:last-child{border-bottom:none}
.lib-item .lib-num{flex-shrink:0;width:26px;color:var(--muted-fg);font-family:var(--font-ui)}
.lib-item .lib-text{flex:1;word-break:break-all}
.lib-item .lib-meta{font-size:11px;color:var(--old);margin-top:2px}
.lib-item .lib-del{flex-shrink:0;border:none;background:none;color:var(--danger);cursor:pointer;font-size:13px;padding:2px 6px}
.lib-item .lib-del:hover{text-decoration:underline}
.lib-empty{text-align:center;color:var(--old);padding:30px 0;font-size:13px}
.lib-cited-tag{display:inline-block;font-size:10px;background:rgba(246,193,119,.2);color:#B45309;border-radius:var(--pill);padding:0 7px;margin-left:6px}
.dark .lib-cited-tag{color:var(--dawn)}

/* 导出 Word 报告弹窗 */
.export-modal{width:600px;max-height:85vh;overflow-y:auto;overscroll-behavior:contain}
.export-modal .export-result{font-size:14px;font-weight:600;margin:4px 0 12px}
.export-modal .export-result.ok{color:var(--success)}
.export-modal .export-result.fail{color:var(--danger)}
.export-modal .export-file{font-size:12px;color:var(--muted-fg);margin-bottom:12px;word-break:break-all}
.export-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.export-stat{background:var(--hover);border-radius:var(--radius-sm);padding:10px 4px;text-align:center}
.export-stat .n{display:block;font-size:18px;font-weight:600;color:var(--fg)}
.export-stat .l{display:block;font-size:12px;color:var(--muted-fg);margin-top:2px}
.export-warn-title{font-size:13px;font-weight:600;color:#B45309;margin:8px 0 6px}
.export-warn-title.zero{color:var(--success);font-weight:400}
.export-warn-list{margin:0;padding-left:20px;font-size:13px;color:#92400E;line-height:1.8}
.dark .export-warn-list{color:var(--dawn)}
.export-error{
  background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--radius-sm);
  padding:10px 12px;font-size:12px;color:var(--danger);
  white-space:pre-wrap;word-break:break-all;line-height:1.6;max-height:260px;overflow-y:auto;overscroll-behavior:contain;
}

/* ---------- Word 导出配置弹窗 ---------- */
.wcfg-modal{width:1180px;max-width:calc(100vw - 32px);max-height:90vh;display:flex;flex-direction:column;padding:18px 22px}
.wcfg-columns{flex:1 1 auto;min-height:0;display:flex;gap:14px}
.wcfg-left{flex:0 0 44%;min-width:320px;display:flex;flex-direction:column;min-height:0}
.wcfg-right{
  flex:1 1 auto;min-width:0;display:flex;flex-direction:column;
  border:1px solid var(--border);border-radius:var(--radius-lg);
  background:var(--card);overflow:hidden;min-height:0;
}
.wcfg-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:6px;overscroll-behavior:contain}
details.wcfg-group{
  border:1px solid var(--border);border-radius:var(--radius-sm);
  margin-bottom:8px;background:var(--card);overflow:hidden;
}
details.wcfg-group > summary{
  cursor:pointer;padding:9px 14px;font-size:13.5px;font-weight:600;
  color:var(--fg);background:var(--hover);user-select:none;list-style:none;
}
details.wcfg-group > summary::-webkit-details-marker{display:none}
details.wcfg-group > summary::before{content:"▸ ";color:var(--old)}
details.wcfg-group[open] > summary::before{content:"▾ "}
.wcfg-group-body{padding:12px 14px}
.wcfg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.wcfg-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.wcfg-field{display:flex;flex-direction:column;gap:4px}
.wcfg-field > label{font-size:12.5px;color:var(--muted-fg);margin:0}
.wcfg-field input[type="number"],
.wcfg-field input[type="text"],
.wcfg-field select{
  width:100%;box-sizing:border-box;padding:6px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);
  font-size:13.5px;background:var(--input-bg);color:var(--fg);margin-bottom:0;
}
.wcfg-field input[type="number"]:focus-visible,
.wcfg-field input[type="text"]:focus-visible,
.wcfg-field select:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-tint)}
.wcfg-field .unit{font-size:12px;color:var(--old)}
.wcfg-check-row{display:flex;flex-direction:column;gap:8px}
.wcfg-check-row label{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--fg);margin:0;cursor:pointer}
.wcfg-h-row{border:1px dashed var(--border);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:8px}
.wcfg-h-row:last-child{margin-bottom:0}
.wcfg-h-title{font-size:13px;font-weight:600;color:var(--fg);margin:2px 0 8px}
.wcfg-h-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px}
/* 表单底部固定操作条（在 .fmt-wrap 滚动容器内 sticky 沉底） */
.wcfg-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;
  margin-top:14px;padding:10px 0;border-top:1px solid var(--border);
  position:sticky;bottom:-1px;background:var(--bg);z-index:5}
.wcfg-footer .group{display:flex;gap:10px}
/* 迁移说明：表单最底一行 13px muted 灰字 */
.wcfg-migrate-note{font-size:13px;color:var(--muted-fg);margin-top:14px;line-height:1.6}
/* 右栏：Word 真实预览 */
.wcfg-preview-status{font-size:12.5px;color:var(--muted-fg);flex:1 1 auto;min-width:120px}
.wcfg-preview-stale{
  display:none;font-size:12.5px;color:#92400E;
  background:rgba(246,193,119,.18);border-bottom:1px solid var(--dawn);padding:5px 12px;
}
.dark .wcfg-preview-stale{color:var(--dawn)}
.wcfg-preview-stale.show{display:block}
.wcfg-preview-scroll{flex:1 1 auto;min-height:320px;overflow:auto;background:var(--bg);overscroll-behavior:contain}
.wcfg-preview-stage{padding:18px 14px}
.wcfg-preview-placeholder{
  margin:48px auto;max-width:360px;text-align:center;font-size:13px;line-height:1.8;color:var(--muted-fg);
  background:var(--card);border:1.5px dashed var(--border);border-radius:var(--radius-lg);padding:22px 18px;
}
.wcfg-preview-error{
  margin:18px;padding:14px 16px;background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--radius-sm);
  font-size:13px;line-height:1.7;color:var(--danger);word-break:break-all;white-space:pre-wrap;
}
#wcfgPreviewContainer .docx-wrapper{background:transparent;padding:0}
#wcfgPreviewContainer .docx-wrapper > section.docx{box-shadow:0 1px 8px rgba(15,23,42,.28);margin:0 auto 16px}
#wcfgPreviewContainer .docx-wrapper > section.docx:last-child{margin-bottom:0}

/* 参考文献视图：文献库列表（左）+ 详情（右） */
.view-ref-list{display:flex;flex-direction:column;flex:0 0 340px;min-height:0;border-right:1px solid var(--border)}
.view-ref-list-body{flex:1;overflow-y:auto;padding:10px 14px;overscroll-behavior:contain}
.view-ref-title{font-size:13.5px;color:var(--fg);font-weight:600;white-space:nowrap}
.view-ref-title #libSidebarCount{font-size:12px;color:var(--muted-fg);font-weight:normal;margin-left:3px}
/* 参考文献面板内的文献库区块（替代原滑出侧栏：面板内嵌、非固定定位） */
.ref-lib-wrap{
  display:flex;flex-direction:column;flex:1;min-height:0;
  border-top:1px solid var(--border);
}
/* ---------- 文献库侧栏（右侧滑出） ---------- */
/* P0：抽屉滑入用 iOS drawer spring 近似曲线（打断=CSS transition retarget，关闭中重开即时接管）。
   定位保留 right（.tf-panel 内嵌版未覆盖定位规则，transform 化有破坏风险） */
.lib-sidebar{
  position:fixed;top:0;right:-420px;width:400px;height:calc(100vh - var(--sb-h));
  background:var(--bg);border-left:1px solid var(--border);box-shadow:-4px 0 24px rgba(26,24,21,.14);
  z-index:900;display:flex;flex-direction:column;transition:right .25s cubic-bezier(.32,.72,0,1);
}
.lib-sidebar.open{right:0}
.lib-sidebar-header{
  padding:14px 18px;border-bottom:1px solid var(--border);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
}
.lib-sidebar-header h3{margin:0;font-family:var(--font-ui);font-size:15.5px;font-weight:600;justify-self:center;color:var(--fg)}
.lib-import-progress{
  font-size:12px;text-align:center;padding:4px 8px;margin:2px 8px 6px;border-radius:var(--radius-sm);
  line-height:1.5;word-break:break-all;
  background:var(--blue-tint);color:var(--blue);border:1px solid var(--blue);
}
.lib-import-progress.ok{background:rgba(62,155,79,.12);color:var(--success);border-color:var(--success)}
.lib-import-progress.warn{background:rgba(246,193,119,.18);color:#92400E;border-color:var(--dawn)}
.dark .lib-import-progress.warn{color:var(--dawn)}
.lib-sidebar-body{flex:1;overflow-y:auto;padding:10px 14px;overscroll-behavior:contain}
.lib-sidebar-footer{
  padding:12px 14px;border-top:1px solid var(--border);
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
}
.lib-sidebar-footer button{white-space:nowrap}
.lib-export-wrap{position:relative}
.lib-export-menu{
  position:absolute;bottom:calc(100% + 6px);left:0;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-modal);min-width:140px;padding:4px;z-index:902;display:none;
}
.lib-export-menu button{
  display:block;width:100%;background:transparent;color:var(--fg);border:none;border-radius:6px;
  padding:8px 12px;font-size:13px;text-align:left;cursor:pointer;white-space:nowrap;font-weight:400;
}
.lib-export-menu button:hover{background:var(--blue-tint);color:var(--blue)}
#libSidebarExportGo{
  background:var(--success);color:#fff;border:1px solid var(--success);
  padding:4px 14px;border-radius:var(--pill);font-size:13px;font-weight:400;cursor:pointer;transition:opacity .15s ease-out;
}
#libSidebarExportGo:hover{opacity:.85}
#libSidebarClear{
  background:var(--card);color:var(--danger);border:1px solid var(--danger);
  padding:4px 14px;border-radius:var(--pill);font-size:13px;font-weight:400;cursor:pointer;transition:background .15s ease-out;
}
#libSidebarClear:hover{background:var(--danger-bg)}
.lib-sidebar.lib-export-mode .lib-item-row.selected{border-color:var(--success);background:rgba(62,155,79,.12)}
/* 引用选中竖排按钮：凸出在侧栏左边框外侧（r177：背景 var(--hover) 改 var(--bg) 与顶栏一致） */
#libSidebarInsert{
  position:absolute;left:0;top:50%;transform:translate(-100%,-50%);z-index:901;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:12px 6px;background:var(--bg);color:var(--fg);
  border:1px solid var(--border);border-right:none;border-radius:var(--radius-lg) 0 0 var(--radius-lg);
  cursor:pointer;font-size:13px;line-height:1.2;font-weight:600;transition:background .15s ease-out,color .15s ease-out,border-color .15s ease-out,box-shadow .15s ease-out;
  box-shadow:-2px 0 8px rgba(26,24,21,.10);
}
#libSidebarInsert:hover{background:var(--border)}
#libSidebarInsert.has-selected{background:var(--blue);color:var(--blue-fg);border-color:var(--blue);box-shadow:-2px 0 8px rgba(59,91,219,.35)}
/* ---------- 参考文献列表库侧栏（操作栏「文献引用」→ 右侧滑出文件管理器） ---------- */
.ref-lib-sidebar{
  position:fixed;top:0;right:0;bottom:0;width:432px;max-width:86vw;
  background:var(--bg);border-left:1px solid var(--border);
  box-shadow:-8px 0 32px rgba(26,24,21,.20);
  z-index:950;display:flex;flex-direction:column;min-height:0;
  transform:translateX(103%);transition:transform .22s ease;
}
.ref-lib-sidebar.open{transform:translateX(0)}
.ref-lib-sidebar[hidden]{display:none}
.ref-lib-header{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:12px 14px 8px;border-bottom:1px solid var(--border);
}
.ref-lib-title{font-family:var(--font-ui);font-size:15.5px;font-weight:600;color:var(--fg);white-space:nowrap}
.ref-lib-path{font-size:11.5px;color:var(--muted-fg);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.ref-lib-import{
  background:var(--blue);color:var(--blue-fg);border:1px solid var(--blue);
  padding:5px 13px;border-radius:var(--pill);font-size:12.5px;font-weight:500;
  cursor:pointer;white-space:nowrap;transition:opacity .15s;
}
/* 论文管理：最近 / 星标 / 回收站 视图切换（参照导航菜单样式） */
.paper-mgr-tabs{display:flex;gap:6px;padding:8px 14px 6px;border-bottom:1px solid var(--border);background:var(--bg)}
.paper-mgr-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 0;border:none;background:transparent;border-radius:8px;font-size:12.5px;font-weight:500;color:var(--muted-fg);cursor:pointer;font-family:inherit;transition:background .12s ease-out,color .12s ease-out}
.paper-mgr-tab:hover{background:var(--hover);color:var(--fg)}
.paper-mgr-tab.active{background:var(--blue-tint);color:var(--blue)}
.paper-mgr-tab svg{flex:none}
/* r63：左侧论文管理视图切换（最近/星标/回收站，纵向导航，置于工作目录行上方） */
.doclib-view-tabs{display:flex;flex-direction:column;gap:2px;padding:10px 10px 8px;border-bottom:1px solid var(--border)}
.doclib-view-tab{display:flex;align-items:center;gap:8px;padding:7px 10px;border:none;background:transparent;border-radius:8px;font-size:13px;font-weight:500;color:var(--muted-fg);cursor:pointer;font-family:inherit;transition:background .12s ease-out,color .12s ease-out}
.doclib-view-tab:hover{background:var(--hover);color:var(--fg)}
.doclib-view-tab.active{background:var(--blue-tint);color:var(--blue)}
.doclib-view-tab svg{flex:none}
/* r191：文稿自定义分组标签（侧栏分组区） */
.doclib-groups{display:flex;flex-direction:column;gap:8px;padding:10px 10px 8px}
.doclib-groups-list{display:flex;flex-wrap:wrap;gap:6px}
.doclib-group-tab{border:1px solid var(--border);background:transparent;color:var(--muted-fg);font-size:12px;font-weight:500;padding:3px 11px;border-radius:999px;cursor:grab;font-family:inherit;line-height:1.4;transition:background .15s ease,color .15s ease,border-color .15s ease}
.doclib-group-tab:hover{background:var(--hover);color:var(--fg)}
.doclib-group-tab.pinned{background:var(--blue-tint);border-color:var(--blue);color:var(--blue);font-weight:600}
.doclib-group-tab.active{background:var(--blue);border-color:var(--blue);color:var(--blue-fg);font-weight:600}
.doclib-group-tab.dragging{opacity:.55;cursor:grabbing}
.doclib-group-tab.drag-over{border-color:var(--blue);background:var(--blue-tint);color:var(--blue)}
/* 拖拽落点提示：视图标签（最近/星标/回收站） */
.doclib-view-tab .view-hint{display:none;margin-left:4px;font-size:11px;opacity:.8}
.doclib-view-tab.drop-capable .view-hint{display:inline}
.doclib-view-tab.drop-capable{outline:1.5px dashed var(--border);outline-offset:-1px}
.doclib-view-tab.drop-danger{background:var(--danger-bg) !important;color:var(--danger) !important;outline:1.5px solid var(--danger) !important;outline-offset:-1px}
.doclib-view-tab.drop-rename,.doclib-view-tab.drop-top{background:var(--blue-tint) !important;color:var(--blue) !important;outline:1.5px dashed var(--blue) !important;outline-offset:-1px}
.doclib-group-add{border:1px dashed var(--border);background:transparent;color:var(--muted-fg);font-size:12px;padding:4px 11px;border-radius:999px;cursor:pointer;font-family:inherit;line-height:1.4;transition:background .15s ease,color .15s ease,border-color .15s ease}
.doclib-group-add:hover{color:var(--blue);border-color:var(--blue);background:var(--blue-tint)}
/* 文稿卡 foot：格式配置标签与时间之间的分组标签（主题色） */
.home-card-group{border:1px solid var(--border);background:transparent;color:var(--muted-fg);font-size:11px;font-weight:500;padding:2px 8px;border-radius:999px;cursor:pointer;font-family:inherit;line-height:1.5;transition:background .15s ease,color .15s ease,border-color .15s ease} /* r198：视觉对齐侧栏标签（尺寸规则保持不变） */
.home-card-group:hover{background:var(--hover);color:var(--fg)}
.home-card-group.empty{background:transparent;color:var(--muted-fg);border:1px dashed var(--border);font-weight:500}
.home-card-group.empty:hover{color:var(--blue);border-color:var(--blue);background:var(--blue-tint)}
/* 分组选择菜单 */
.home-card-group-menu{position:fixed;z-index:2400;min-width:132px;max-width:210px;background:var(--card);border:1px solid var(--border);border-radius:9px;box-shadow:var(--shadow-modal);padding:5px;font-size:13px;max-height:min(320px,70vh);overflow-y:auto}
.home-card-group-menu button{display:block;width:100%;text-align:left;border:none;background:transparent;color:var(--fg);padding:6px 10px;border-radius:7px;cursor:pointer;font-family:inherit;font-size:13px;transition:background .12s ease,color .12s ease}
.home-card-group-menu button:hover{background:var(--hover)}
.home-card-group-menu button.on{background:var(--blue-tint);color:var(--blue);font-weight:600}
.home-card-group-menu button.group-menu-none{color:var(--muted-fg)}
.home-card-group-menu button.group-menu-none.on{color:var(--muted-fg);background:var(--hover);font-weight:600}
/* r63c：星标粒子动画（点击星标时从按钮位置喷出星星） */
.star-burst{position:fixed;z-index:1250;pointer-events:none;width:0;height:0}
.star-burst i{position:absolute;left:0;top:0;font-style:normal;line-height:1;color:#f5b93c;
  text-shadow:0 0 7px rgba(245,185,60,.6),0 1px 2px rgba(180,120,20,.35);
  animation:starFly .68s cubic-bezier(.18,.7,.38,1) forwards}
.star-burst i:nth-child(3n){color:#ffd166}
.star-burst i:nth-child(3n+1){color:#f0a832}
@keyframes starFly{
  0%{transform:translate(0,0) scale(.35) rotate(0deg);opacity:0}
  16%{opacity:1}
  100%{transform:translate(var(--dx),var(--dy)) scale(1.06) rotate(var(--rot));opacity:0}
}
.ref-lib-import:hover{opacity:.88}
.ref-lib-toolbar{display:flex;gap:8px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--border)}
.ref-lib-tb-btn{
  background:var(--card);border:1px solid var(--border);color:var(--fg);
  border-radius:var(--radius-sm);padding:4px 11px;font-size:12.5px;cursor:pointer;
  transition:border-color .12s,color .12s;
}
.ref-lib-tb-btn:hover{border-color:var(--blue);color:var(--blue)}
.ref-lib-body{flex:1;overflow-y:auto;padding:10px 14px;overscroll-behavior:contain;min-height:0}
.ref-lib-crumb{display:flex;align-items:center;gap:3px;flex-wrap:wrap;font-size:12px;color:var(--muted-fg);margin-bottom:6px}
.ref-lib-crumb button{background:none;border:none;color:var(--blue);font-size:12px;cursor:pointer;padding:1px 2px;border-radius:4px}
.ref-lib-crumb button:hover{text-decoration:underline}
.ref-lib-crumb .sep{color:var(--muted-fg)}
.ref-lib-row{
  display:flex;align-items:flex-start;gap:9px;padding:9px 12px;
  border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:7px;
  cursor:pointer;background:var(--card);text-align:left;width:100%;
  transition:border-color .12s ease,background .12s ease;
}
.ref-lib-row:hover{border-color:var(--blue);background:var(--blue-tint)}
.ref-lib-row.selected{border-color:var(--blue);background:var(--blue-tint)}
.ref-lib-row .rl-ico{flex-shrink:0;width:20px;height:20px;margin-top:1px;color:var(--muted-fg)}
.ref-lib-row.folder .rl-ico{color:var(--dawn)}
.ref-lib-row .rl-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ref-lib-row .rl-main{flex:1;min-width:0;font-size:13px;line-height:1.55;color:var(--fg);word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ref-lib-row .rl-meta{font-size:11px;color:var(--muted-fg);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ref-lib-row .rl-type{
  flex-shrink:0;font-size:10.5px;color:var(--blue);background:var(--blue-tint);
  border-radius:4px;padding:1px 6px;margin-top:2px;white-space:nowrap;
}
/* 第十三轮：文献行右侧竖排 —— 类型标签[S]显示在展开箭头上方（纯显示，不挤占按钮） */
.ref-lib-row .rl-side{
  flex-shrink:0;align-self:stretch;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2px;min-width:34px;padding:2px 0;
}
.ref-lib-row .rl-side .rl-type{margin:0}
.ref-lib-row .rl-side .rl-expand-btn{min-width:0;width:100%;align-self:center}
/* 引用序号（文献行左侧，按文末参考文献顺序）；已引用序号可点击定位正文 */
.ref-lib-row .rl-num{
  flex-shrink:0;min-width:34px;text-align:center;font-size:12.5px;font-weight:700;
  color:var(--blue);line-height:1;margin-top:0;align-self:stretch;
  display:inline-flex;align-items:center;justify-content:center;
}
.ref-lib-row .rl-num.placeholder{color:transparent}
/* 可定位序号：拉伸填满左侧、居中、独立可点击区域，防止误触整行选中 */
.ref-lib-row .rl-num.rl-num-link{
  cursor:pointer;border-radius:6px;padding:0;user-select:none;margin-top:0;
  border:1px solid transparent;transition:background .12s ease,color .12s ease,border-color .12s ease;
}
.ref-lib-row .rl-num.rl-num-link:hover{
  background:var(--blue-tint);color:var(--blue-hover);border-color:var(--blue);
}
.ref-lib-row .rl-num.rl-num-link:active{
  background:var(--blue);color:var(--blue-fg);border-color:var(--blue);
}
/* 文献行右侧「已引用」对勾 */
.ref-lib-row .rl-cited{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;border-radius:50%;background:var(--blue-tint);color:var(--blue);margin-top:1px;
}
.ref-lib-row .rl-cited svg{width:12px;height:12px}
/* 展开按钮：与左侧序号按钮同尺寸（stretch 填满右侧、居中），点击展开/收起摘要
   两个列表通用：ref-lib-row（列表库）与 lib-item-row（参考文献视图列表） */
.rl-expand-btn{
  flex-shrink:0;align-self:stretch;min-width:34px;display:inline-flex;
  align-items:center;justify-content:center;cursor:pointer;user-select:none;
  color:var(--muted-fg);border:1px solid transparent;border-radius:6px;
  transition:background .12s ease,color .12s ease,border-color .12s ease;
}
.rl-expand-btn:hover{background:var(--blue-tint);color:var(--blue);border-color:var(--blue)}
.rl-expand-btn:active{background:var(--blue);color:var(--blue-fg);border-color:var(--blue)}
.rl-expand-btn svg{width:15px;height:15px;transition:transform .18s ease}
.rl-expand-btn.expanded svg{transform:rotate(180deg)}
/* 摘要展开面板（行下方兄弟节点） */
.rl-abs-panel{margin:-3px 0 7px;padding:0;border-radius:var(--radius-sm);overflow:hidden}
.rl-abs-panel[hidden]{display:none}
.rl-abs-inner{
  padding:10px 12px;font-size:12.5px;line-height:1.7;color:var(--fg);
  background:var(--blue-tint);border-left:3px solid var(--blue);word-break:break-all;
}
/* 展开面板出现动画 */
.rl-abs-panel{animation:rlAbsIn .18s ease-out}
@keyframes rlAbsIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
/* 文件夹右侧「当前论文已引用」标记 */
.ref-lib-row.folder .rl-folder-cited{
  flex-shrink:0;display:inline-flex;align-items:center;gap:5px;max-width:48%;
  font-size:11px;color:var(--blue);background:var(--blue-tint);border-radius:var(--pill);
  padding:2px 9px;margin-top:1px;
}
.ref-lib-row.folder .rl-folder-cited svg{width:12px;height:12px;flex-shrink:0}
.ref-lib-row.folder .rl-folder-cited .rl-fc-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 定位到文献行时的浅蓝闪动 */
.ref-lib-row.rl-flash{animation:rlRowFlash 1.8s ease-out}
@keyframes rlRowFlash{0%{background:var(--blue-tint)}55%{background:var(--blue-tint)}100%{background:transparent}}
/* 引用重排 FLIP 过渡：行从旧位置平滑滑向新位置（移动中的行浮在上层） */
.ref-lib-row.rl-flipping{transition:transform .45s cubic-bezier(.22,.61,.36,1) !important;position:relative;z-index:1}
/* 根目录错放的文献 txt：与未知文件同样灰掉、置底、不可引用 */
.ref-lib-row.misplaced{color:var(--muted-fg);background:var(--bg);border-style:dashed;opacity:.6;cursor:not-allowed}
.ref-lib-row.misplaced .rl-main{color:var(--muted-fg)}
.ref-lib-row.misplaced .rl-ico{color:var(--muted-fg)}
/* 禁用态按钮（根目录导入 / 只读示例 / 无目录） */
.ref-lib-import.disabled,.ref-lib-tb-btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}
.ref-lib-tb-btn.disabled:hover{border-color:var(--border);color:var(--muted-fg)}
/* 未知文件：浅灰、置底、不可点击）
.ref-lib-row.unknown{
  color:var(--muted-fg);background:var(--bg);border-style:dashed;opacity:.6;cursor:not-allowed;
}
.ref-lib-row.unknown .rl-main{color:var(--muted-fg)}
.ref-lib-row.unknown .rl-ico{color:var(--muted-fg)}
/* 新建文件夹：悬浮输入条（固定在工具栏下方，不随列表滚动） */
.ref-lib-newfolder-pop{
  position:absolute;left:14px;right:14px;z-index:960;display:flex;gap:6px;align-items:center;
  background:var(--card);border:1px solid var(--border);border-radius:12px;
  box-shadow:0 8px 24px rgba(26,24,21,.18);padding:7px;
}
.ref-lib-newfolder-pop input{
  flex:1;min-width:0;box-sizing:border-box;padding:6px 10px;font-size:12.5px;
  border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--fg);
}
.ref-lib-newfolder-pop input:focus{outline:none;border-color:var(--blue)}
.ref-lib-newfolder-pop button{
  flex:none;width:28px;height:28px;border-radius:50%;padding:0;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;
  transition:background .12s ease,color .12s ease,border-color .12s ease,opacity .12s ease;
}
.ref-lib-newfolder-pop button svg{width:15px;height:15px;flex-shrink:0}
.ref-lib-newfolder-pop .rl-nf-ok{background:var(--blue);color:var(--blue-fg);border-color:var(--blue)}
.ref-lib-newfolder-pop .rl-nf-ok:hover{opacity:.9}
.ref-lib-newfolder-pop .rl-nf-cancel{background:var(--card);color:var(--muted-fg);border-color:var(--border)}
.ref-lib-newfolder-pop .rl-nf-cancel:hover{color:var(--danger);border-color:var(--danger)}
.ref-lib-footer{
  display:flex;align-items:center;gap:8px;padding:8px 14px;border-top:1px solid var(--border);
  font-size:12px;color:var(--muted-fg);
}
.ref-lib-spacer{flex:1}
.ref-lib-h-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:none;border:1px solid var(--border);color:var(--muted-fg);border-radius:var(--radius-sm);padding:4px 8px;font-size:12px;cursor:pointer;white-space:nowrap;transition:color .12s,border-color .12s}
.ref-lib-h-close:hover{color:var(--fg);border-color:var(--fg)}
.ref-lib-h-close svg{width:14px;height:14px;flex-shrink:0}
/* 竖排「插入引用」按钮：凸出在侧栏左边线中间 */
.ref-lib-insert{
  position:absolute;left:0;top:50%;transform:translate(-100%,-50%);
  display:flex;align-items:center;justify-content:center;
  padding:16px 9px;background:var(--hover);color:var(--fg);
  border:1px solid var(--border);border-right:none;border-radius:var(--radius-lg) 0 0 var(--radius-lg);
  cursor:pointer;font-size:12.5px;font-weight:600;letter-spacing:2px;line-height:1.3;
  box-shadow:-3px 0 12px rgba(26,24,21,.14);z-index:951;
  transition:background .15s ease,color .15s ease,border-color .15s ease,opacity .2s ease;
  writing-mode:vertical-rl;text-orientation:upright;max-height:220px;
}
.ref-lib-insert:hover{background:var(--border)}
.ref-lib-insert.has-selected{background:var(--blue);color:var(--blue-fg);border-color:var(--blue);box-shadow:-3px 0 12px rgba(59,91,219,.35)}
/* 侧栏收起 → 插入引用按钮同步隐藏（按钮凸出侧栏左缘，侧栏滑出后会残留在屏幕右缘）；展开 → 同步显示 */
.ref-lib-sidebar:not(.open) .ref-lib-insert{opacity:0;pointer-events:none}
.ref-lib-empty{padding:26px 16px;text-align:center;color:var(--muted-fg);font-size:13px;line-height:1.8}
.ref-lib-empty.no-dir{display:flex;flex-direction:column;align-items:center;gap:10px;padding:44px 22px}
.ref-lib-empty.no-dir .rld-icon{width:42px;height:42px;color:var(--muted-fg);opacity:.75}
.ref-lib-empty.no-dir .rld-icon .rl-ico{width:42px;height:42px}
.ref-lib-empty.no-dir .rld-title{font-size:15px;font-weight:600;color:var(--fg);margin:2px 0 0}
.ref-lib-empty.no-dir .rld-text{font-size:12.5px;line-height:1.7;color:var(--muted-fg);margin:0 0 10px}
.ref-lib-empty.no-dir .rld-btn{background:var(--blue);color:var(--blue-fg);border:1px solid var(--blue);border-radius:var(--pill);padding:7px 22px;font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s}
.ref-lib-empty.no-dir .rld-btn:hover{opacity:.88}
/* ---- 格式配置管理：标题栏入口按钮 + 侧栏内专属样式（侧栏壳复用 .ref-lib-sidebar） ---- */
.fmt-mgr-open-btn{
  margin-left:auto;flex-shrink:0;background:var(--blue);color:var(--blue-fg);
  border:1px solid var(--blue);padding:4px 12px;border-radius:var(--pill);
  font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:opacity .15s;
}
.fmt-mgr-open-btn:hover{opacity:.88}
/* 标题栏左侧「保存当前配置」：描边次级样式，与右侧实心管理按钮区分 */
#fmtMgrSaveQuickBtn{background:transparent;color:var(--blue)}
#fmtMgrSaveQuickBtn:hover{opacity:1;background:var(--blue-tint)}
.fmt-mgr-namebar{display:flex;gap:6px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--hover)}
.fmt-mgr-namebar input{
  flex:1;min-width:0;padding:4px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);
  background:var(--input-bg);color:var(--fg);font-size:12.5px;font-family:inherit;outline:none;
}
.fmt-mgr-namebar input:focus{border-color:var(--blue)}
.fmt-mgr-row{cursor:default}
.fmt-mgr-row:hover{border-color:var(--border);background:var(--card)}
.fmt-mgr-badge{
  flex-shrink:0;font-size:10.5px;border-radius:4px;padding:1px 6px;margin-top:2px;
  white-space:nowrap;color:var(--muted-fg);background:var(--hover);border:1px solid var(--border);
}
.fmt-mgr-badge.default{color:var(--dawn);background:transparent;border-color:var(--dawn)}
.fmt-mgr-badge.cur{color:var(--muted-fg);background:var(--hover);border-color:var(--border)}
.fmt-mgr-act{
  flex-shrink:0;margin-top:2px;background:var(--card);border:1px solid var(--border);
  color:var(--blue);border-radius:6px;padding:3px 10px;font-size:12px;cursor:pointer;
  transition:border-color .12s,color .12s,background .12s;white-space:nowrap;
}
.fmt-mgr-act:hover{border-color:var(--blue);background:var(--blue-tint)}
.fmt-mgr-act.danger{color:#b4552d}
.fmt-mgr-act.danger:hover{border-color:#b4552d;background:transparent;color:#b4552d}
/* 论文管理侧栏：三个工具按钮在窄侧栏里允许换行；列表行整行可点击（双击感：指针手型） */
.paper-mgr-toolbar{flex-wrap:wrap;row-gap:8px}
.paper-mgr-row{cursor:pointer;align-items:center}
.paper-mgr-row .paper-mgr-acts{display:flex;gap:6px;flex-shrink:0}
.paper-mgr-row .paper-mgr-open-hint{flex-shrink:0;font-size:11.5px;color:var(--old)}
.ref-lib-toast{
  position:fixed;top:22px;left:50%;background:var(--primary);color:var(--primary-fg);
  border-radius:var(--pill);padding:8px 16px;font-size:13px;z-index:9999;
  opacity:0;transform:translate(-50%,-8px);transition:opacity .2s,transform .2s;pointer-events:none;
}
.ref-lib-toast.show{opacity:1;transform:translate(-50%,0)}.lib-item-row{
  padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);
  margin-bottom:8px;cursor:pointer;display:flex;gap:8px;align-items:flex-start;width:100%;transition:border-color .15s ease-out,background .15s ease-out,box-shadow .15s ease-out;
}
.lib-item-row:hover{border-color:var(--blue);background:var(--blue-tint)}
.lib-item-row.selected{border-color:var(--blue);background:var(--blue-tint);box-shadow:inset 2px 0 0 var(--blue)}
.lib-item-row .lib-text{
  flex:1;font-size:13px;line-height:1.5;color:var(--fg);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.lib-item-row .lib-text .lib-doi{display:inline}
.lib-item-row .lib-doi{font-size:11px;color:var(--old);margin-top:2px}
.lib-item-row .lib-del-btn{
  border:none;background:transparent;color:var(--danger);cursor:pointer;
  font-size:12px;padding:2px 6px;border-radius:6px;
}
.lib-item-row .lib-del-btn:hover{background:var(--danger-bg)}
.lib-cited-mark{
  flex:0 0 auto;width:12px;padding:3px 1px;margin-left:-12px;margin-right:5px;margin-top:1px;
  font-size:9px;line-height:1.2;text-align:center;border-radius:3px;
  background:var(--border);color:var(--card);writing-mode:vertical-rl;
}
.lib-cited-mark.cited{background:var(--blue);color:var(--blue-fg);font-weight:600}
.lib-item-row.flash{animation:libRowFlash .45s ease 3}
@keyframes libRowFlash{0%,100%{background-color:transparent}50%{background-color:var(--blue-tint)}}
.lib-focus-tip{
  position:fixed;z-index:9998;pointer-events:none;max-width:360px;max-height:50vh;overflow:auto;
  background:var(--card);border:1px solid var(--blue);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-modal);padding:10px 12px;font-size:12px;line-height:1.7;color:var(--fg);word-break:break-all;
  opacity:0;transform:translateY(4px);transition:opacity .18s ease-out,transform .18s cubic-bezier(.32,.72,0,1); /* P2：硬切 → 淡入微位移 */
}
.lib-focus-tip.show{opacity:1;transform:none}
.lib-abs-tip{
  position:fixed;z-index:9999;pointer-events:none;max-width:380px;max-height:60vh;overflow:auto;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-modal);padding:10px 12px;font-size:12px;line-height:1.7;color:var(--fg);word-break:break-all;
  opacity:0;transform:translateY(4px);transition:opacity .18s ease-out,transform .18s cubic-bezier(.32,.72,0,1); /* P2：硬切 → 淡入微位移 */
}
.lib-abs-tip.show{opacity:1;transform:none}
/* 侧栏标题栏排序菜单 */
.lib-sort-wrap{position:relative}
#libSortBtn{
  background:var(--card);border:1px solid var(--border);color:var(--fg);
  padding:4px 14px;border-radius:var(--pill);font-size:13px;font-weight:400;cursor:pointer;transition:background .15s ease-out;white-space:nowrap;
}
#libSortBtn:hover{background:var(--hover)}
.lib-sort-menu{
  position:absolute;top:calc(100% + 6px);left:0;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-modal);min-width:170px;padding:4px;z-index:902;display:none;
}
.lib-sort-menu button{
  display:block;width:100%;background:transparent;color:var(--fg);border:none;border-radius:6px;
  padding:8px 12px;font-size:13px;text-align:left;cursor:pointer;white-space:nowrap;font-weight:400;
}
.lib-sort-menu button:hover{background:var(--blue-tint);color:var(--blue)}
.lib-sort-menu button.active{background:var(--blue-tint);color:var(--blue);font-weight:600}

/* ---------- 论文文档库（二级面板，锚定导航栏右侧滑出） ---------- */
.doclib-sidebar{
  position:fixed;top:54px;bottom:var(--sb-h);left:0;width:268px;
  background:var(--bg);border-right:1px solid var(--border);z-index:850;
  display:flex;flex-direction:column;min-height:0;overflow:hidden;
  box-shadow:var(--shadow-modal); /* P0：原 transition:left .18s 为无效过渡（.hidden 用 display 控制显示），已删除 */
}
.doclib-sidebar.hidden{display:none}
.doclib-sidebar-header{padding:14px 14px 10px;border-bottom:1px solid var(--border)}
.doclib-sidebar-header h3{
  margin:0 0 10px;font-family:var(--font-ui);font-size:15px;font-weight:600;color:var(--fg);
  display:flex;align-items:center;justify-content:space-between;
}
.doclib-sidebar-header .doclib-close-x{
  background:none;border:none;color:var(--old);font-size:18px;cursor:pointer;line-height:1;padding:0 2px;
}
.doclib-sidebar-header .doclib-close-x:hover{color:var(--fg)}
.doclib-sidebar button{
  background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:var(--pill);
  padding:4px 12px;font-size:12px;cursor:pointer;white-space:nowrap;font-weight:400;
  transition:background .15s ease-out,border-color .15s ease-out;
}
.doclib-sidebar button:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-tint)}
.doclib-import-row{margin-bottom:8px}
.doclib-import-btn{width:100%}
.doclib-local-card{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:10px 12px;cursor:pointer;margin-bottom:8px;transition:border-color .15s ease-out,background .15s ease-out;
}
.doclib-local-card:hover{border-color:var(--blue);background:var(--input-bg)}
.doclib-local-card.active{border-color:var(--blue);background:var(--blue-tint)}
.doclib-local-card .name{font-size:13px;font-weight:600;color:var(--fg)}
.doclib-local-card .sub{font-size:11px;color:var(--old);margin-top:2px}
.doclib-local-badge{
  font-size:10px;color:var(--blue);border:1px solid var(--blue);
  background:var(--blue-tint);border-radius:var(--pill);padding:1px 8px;flex-shrink:0;
}
.doclib-dir-name{
  font-size:12px;color:var(--muted-fg);background:var(--hover);
  border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px;
  word-break:break-all;margin-bottom:8px;
}
.doclib-dir-row{display:flex;gap:6px;flex-wrap:wrap}
.doclib-empty{text-align:center;color:var(--muted-fg);font-size:12px;padding:20px 8px;line-height:1.8}
.doclib-list{flex:1;overflow-y:auto;padding:8px 10px;overscroll-behavior:contain}
.doclib-group{margin:2px 0 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg)}
.doclib-group summary{display:flex;align-items:center;gap:6px;padding:6px 8px;font-size:12px;font-weight:700;color:var(--fg-soft);cursor:pointer;list-style:none;user-select:none;letter-spacing:.3px;border-radius:var(--radius-sm)}
.doclib-group summary::-webkit-details-marker{display:none}
.doclib-group summary:hover{color:var(--blue)}
.doclib-group summary .count{background:var(--hover);border-radius:var(--pill);padding:0 8px;font-size:11px;font-weight:600;color:var(--muted-fg)}
.doclib-group summary .arrow{margin-left:auto;transition:transform .15s;color:var(--muted-fg)}
.doclib-group[open] summary .arrow{transform:rotate(90deg)}
.doclib-group .doclib-group-body{padding:2px 6px 6px}
.doclib-item{
  display:flex;align-items:center;gap:8px;width:100%;text-align:left;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:9px 10px;margin-bottom:6px;cursor:pointer;font-size:12px;transition:border-color .15s ease-out,background .15s ease-out;
}
.doclib-item:hover{border-color:var(--blue);background:var(--input-bg)}
.doclib-item.active{border-color:var(--blue);background:var(--blue-tint)}
.doclib-item.active .doc-title{color:var(--blue)}
.doclib-item .doc-icon{color:var(--blue);flex-shrink:0;font-size:14px}
.doclib-item .doc-main{flex:1;min-width:0}
.doclib-item .doc-title{
  font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.doclib-item .doc-meta{font-size:11px;color:var(--old);margin-top:2px}
.doclib-item .ext-changed{
  color:#B45309;background:rgba(246,193,119,.2);border:1px solid var(--dawn);
  border-radius:var(--pill);padding:0 6px;font-size:11px;margin-left:4px;flex-shrink:0;
}
.dark .doclib-item .ext-changed{color:var(--dawn)}
.doclib-list .doclib-other-toggle{
  display:flex;align-items:center;gap:6px;width:100%;
  background:transparent;border:none;color:var(--muted-fg);font-size:12px;
  padding:6px 4px;cursor:pointer;text-align:left;border-radius:6px;
}
.doclib-list .doclib-other-toggle:hover{color:var(--fg);background:var(--hover)}
.doclib-other-list{padding:0 4px 6px 22px;font-size:11px;color:var(--old)}
.doclib-other-list div{padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doclib-footer{padding:10px 14px;border-top:1px solid var(--border);display:flex;gap:8px;flex-wrap:wrap}
.doclib-footer button{flex:1;white-space:nowrap}

/* ---------- 通用设置弹窗 ---------- */
.settings-modal{width:480px}
.settings-section{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:12px}
.settings-sec-title{font-size:12px;color:var(--muted-fg);font-weight:600;margin-bottom:8px;letter-spacing:.5px}
.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:var(--fg);padding:4px 0}
.settings-row .settings-note{font-size:12px;color:var(--old)}
.settings-row button{
  background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:var(--pill);
  padding:5px 14px;font-size:13px;cursor:pointer;transition:border-color .15s ease-out,color .15s ease-out,background .15s ease-out;
}
.settings-row button:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-bg)}
.compat-item{display:flex;align-items:center;gap:8px;font-size:12px;padding:3px 0;color:var(--fg)}
.compat-item .compat-msg{color:var(--muted-fg);margin-left:auto;text-align:right}
.compat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.compat-dot.ok{background:var(--success)}
.compat-dot.no{background:var(--danger)}

/* ---------- Word 风格表格选择器 ---------- */
.table-picker{
  position:absolute;z-index:1100;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:10px;box-shadow:var(--shadow-modal);display:none;
}
.table-picker.show{display:block}
.table-picker-grid{display:grid;grid-template-columns:repeat(10,22px);gap:3px}
.table-picker-cell{width:22px;height:22px;border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:background .1s,border-color .1s}
.table-picker-cell.hl{background:var(--blue);border-color:var(--blue)}
.table-picker-info{margin-top:8px;font-size:12px;color:var(--muted-fg);text-align:center}

/* ---------- Toast（上方居中卡片） ---------- */
.lib-toast{
  position:fixed;z-index:10001;top:18px;left:50%;transform:translate(-50%,-6px);
  background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:10px 16px;font-size:13px;pointer-events:none;opacity:0;transition:opacity .25s,transform .25s;
  max-width:340px;text-align:left;line-height:1.6;box-shadow:var(--shadow-modal);
}
.lib-toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- 滚动条 ---------- */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:rgba(138,133,120,.35);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:rgba(138,133,120,.55)}
::-webkit-scrollbar-track{background:transparent}

/* ---------- 响应式 ---------- */
@media (max-width:900px){
  .doclib-sidebar{box-shadow:var(--shadow-modal)}
}
@media (max-width:980px){
  .wcfg-columns{flex-direction:column;overflow-y:auto}
  .wcfg-left{flex:0 0 auto;min-width:0}
  .wcfg-body{overflow:visible}
  .wcfg-right{flex:0 0 auto;min-height:480px}
  .wcfg-preview-scroll{min-height:420px}
}

/* ---------- 深色模式：wangEditor 工具栏 chrome 覆写（纸面仍豁免） ---------- */
.dark .w-e-toolbar{background:var(--card) !important;border-color:var(--border) !important}
.dark .w-e-toolbar .w-e-menu{color:var(--fg)}
.dark .w-e-toolbar .w-e-menu:hover{background:var(--hover)}
.dark .w-e-modal{background:var(--card);color:var(--fg)}
.dark .w-e-uploader-container,
.dark .w-e-panel-content-color{color:var(--fg)}

/* ---------- 外壳补充：导航栏底部间隔与主题按钮 ---------- */
.nav-spacer{flex:1}
.nav-theme-btn{
  width:44px;height:44px;border-radius:var(--radius-sm);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  color:var(--muted-fg);transition:background .15s ease-out,color .15s ease-out;
}
.nav-theme-btn:hover{background:var(--hover);color:var(--fg)}

/* ---------- 外壳补充：引用弹窗蓝色按钮（覆盖行内旧配色，统一为设计蓝） ---------- */
#btnFetch,#btnGbtParse{
  background:var(--blue) !important;color:var(--blue-fg) !important;
  border:1px solid var(--blue) !important;border-radius:var(--pill) !important;
}
#btnFetch:hover,#btnGbtParse:hover{background:var(--blue-hover) !important}


/* ==========================================================================
 *  翻篇 · 论文工作台 —— 适配层（置于参照 CSS 与业务 CSS 之后）
 *  职责：统一弹窗机制、新皮肤下的业务组件适配、深浅色补齐
 * ========================================================================== */

/* ---- 表格选择器：业务存在两套定义，强制默认隐藏，.show 才显示 ---- */
.table-picker{display:none !important}
.table-picker.show{display:block !important}

/* ---- 弹窗机制统一：业务弹窗用 .show class，参照弹窗兼容 hidden ---- */
.modal-mask{display:none}
.modal-mask.show{display:flex}
.modal-mask[hidden]{display:none}

/* ---- 主区方向修正：业务 CSS 曾设 flex row，恢复纵向堆叠，stage 占满 ---- */
.main{display:flex;flex-direction:column}
.stage{flex:1;min-height:calc(100vh - 210px)}

.view{display:flex;flex-direction:column;flex:1;min-height:0}

/* ---- body 方向：业务 CSS 曾设 column，恢复参照横向三栏 ---- */
body{display:flex;flex-direction:column;height:100vh;overflow:hidden}

/* ---- 业务弹窗宽度 ---- */
.modal.library-modal{width:min(540px,92vw)}
.modal.import-modal{width:min(560px,92vw)}
.modal.wcfg-modal{width:min(1080px,96vw);max-height:92vh;overflow:hidden;display:flex;flex-direction:column;padding:18px 20px}

/* ---- 论文信息两段式折叠卡（我的论文视图） ---- */
.paper-info{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);margin:0 0 14px;flex:none;overflow:hidden;display:flex;flex-direction:column}
body.info-expanded .main{display:flex;flex-direction:column}
body.info-expanded .paper-info{flex:none;margin:0 0 14px;min-height:0}
body.info-expanded .paper-info-body{overflow:hidden}
.paper-info .paper-info-topbar{order:0}
.paper-info .paper-info-header{order:0}
.paper-info .full{width:100%}
.paper-info .pair-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 18px;margin-bottom:12px}
.paper-info .pair-row.tri{grid-template-columns:repeat(3,minmax(0,1fr))}
.paper-info .pair-col{display:flex;flex-direction:column;gap:5px;min-width:0}
.paper-info .pair-col label{font-size:12px;color:var(--muted-fg)}
.paper-info input,.paper-info textarea,.paper-info select{width:100%}
.paper-info textarea{resize:vertical}
.paper-info .add-field-btn{margin-top:6px;align-self:flex-start}
.paper-info .en-inline-controls{display:inline-flex;align-items:center;gap:6px;flex:1;min-width:0;font-weight:normal}
.paper-info .en-input-row{display:flex;gap:6px;align-items:flex-start}
.paper-info .en-input-row input,.paper-info .en-input-row textarea{flex:1}
.paper-info .en-bulk-hint{font-size:10.5px;color:var(--old);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---- 编辑区（嵌 stage-col） ---- */
.stage-col .editor-wrap{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
#toolbar-container{flex:1;min-width:0;display:flex;align-items:center;overflow:hidden;background:transparent;border:none;height:auto;padding:0}
#toolbar-container .w-e-toolbar{border:none !important;background:transparent !important;flex-wrap:nowrap !important;overflow-x:auto;overflow-y:hidden !important;padding:0 !important;width:100%}
/* 隔离全局 button 规则对 wangEditor 内部 <button class="w-e-menu"> 的影响：
   全局设了 font-size:14px;font-weight:500，会把 wangEditor 默认的小尺寸撑大；
   padding/line-height 仍由 wangEditor 自身样式负责，不覆盖 */
#toolbar-container button,.w-e-hover-bar button{font-size:13px !important;font-weight:400 !important}
.editor-area{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;background:var(--input-bg)}
/* r73：编辑区顶部让位悬浮胶囊（胶囊底 50px + 8px 间隙 = 58，随断点补足 editor-container 收窄量） */
.tf-paper-edit #tabBody .editor-area{padding-top:12px}
#editor-container{height:auto;min-height:560px;background:transparent;color:#000;max-width:640px;margin:0 auto;
  padding:46px 54px;position:relative}
#editor-container .w-e-scroll,#editor-container .w-e-text-container{height:auto !important;overflow:visible !important;background:transparent !important}
#editor-container p{margin:0 !important;text-indent:2em !important;text-align:justify !important}
#editor-container table{margin:0 auto !important}
#editor-container table[width="100%"]{width:100% !important;table-layout:fixed !important}
#editor-container table td p, #editor-container .table-caption, #editor-container .image-caption{text-indent:0 !important}
#editor-container .table-caption, #editor-container .image-caption{text-align:center !important}
#editor-container .w-e-text-container [data-slate-editor]{padding:0 !important}

/* ---- 预览列（嵌 stage-col；纸张外观沿用参照 .paper） ---- */
.stage-col .paper-scroll{flex:1;overflow-y:auto;padding:6px 6px 30px}
.paper{max-width:100%;min-height:420px}
.paper .paper-meta{font-size:var(--pv-body-size,12px);line-height:var(--pv-line-height,1.9)}
.paper .paper-body p{font-size:var(--pv-body-size,12px);line-height:var(--pv-line-height,2);text-indent:var(--pv-first-line-indent,2em);margin:0}
.paper .paper-body h1{font-family:var(--pv-heading-font,SimHei,"Microsoft YaHei",sans-serif);font-size:var(--pv-h1-size,16px);text-align:center;margin:18px 0 8px;font-weight:700;text-indent:0}
.paper .paper-body h2{font-family:var(--pv-heading-font,SimHei,"Microsoft YaHei",sans-serif);font-size:var(--pv-h2-size,14px);margin:14px 0 6px;font-weight:700;text-indent:0}
.paper .paper-body h3{font-family:var(--pv-heading-font,SimHei,"Microsoft YaHei",sans-serif);font-size:var(--pv-h3-size,12.5px);margin:12px 0 5px;font-weight:700;text-indent:0}
.paper .paper-body .table-caption{font-size:var(--pv-caption-size,11px);text-align:center;margin:10px 0 4px;text-indent:0}
.paper .paper-body table{border-collapse:collapse;margin:6px auto;font-size:var(--pv-ref-size,11px);border-top:1.5px solid #111;border-bottom:1.5px solid #111}
.paper .paper-body table th{border-bottom:0.75px solid #111;padding:3px 8px;font-weight:600;text-align:center}
.paper .paper-body table td{padding:3px 8px}
.paper .paper-body table th:not(:first-child),.paper .paper-body table td:not(:first-child){border-left:none}
.paper .paper-body .image-caption{font-size:var(--pv-caption-size,11px);text-align:center;margin:4px 0 10px;text-indent:0}
.paper .paper-body .formula-block{text-align:center;margin:8px 0;text-indent:0}
.paper .paper-body .katex-display{margin:8px 0}
.paper .paper-body sup.cite{font-family:var(--font-mono);font-size:10px}
.paper .paper-references{font-size:var(--pv-ref-size,10px);line-height:var(--pv-line-height,1.9);margin-top:16px;text-indent:0}
.paper .paper-references p{text-indent:0;font-size:var(--pv-ref-size,10px)}

/* ---- 文档库面板（我的论文） ---- */
.doclib-local-card{width:100%;text-align:left;border-radius:var(--radius-sm);padding:9px 10px;margin-bottom:4px;border:1px solid var(--border);background:var(--card);cursor:pointer;transition:background .15s ease-out;display:flex;flex-direction:column;gap:3px}
.doclib-local-card:hover{background:var(--hover)}
.doclib-local-card .name{font-size:13px;line-height:1.45}
.doclib-local-card .sub{font-size:11.5px;color:var(--muted-fg)}
.doclib-local-badge{font-size:10px;color:var(--blue);background:var(--blue-tint);padding:1px 7px;border-radius:var(--pill);align-self:flex-start}
.doclib-dir-name{font-size:12.5px;font-weight:500;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doclib-dir-row{display:flex;flex-wrap:wrap;gap:6px}
.doclib-dir-row button{font-size:12px;padding:3px 10px;border-radius:var(--pill);border:1px solid var(--border);background:var(--card);cursor:pointer}
.doclib-dir-row button:hover{background:var(--hover)}
.doclib-empty{padding:12px 8px;font-size:12.5px;color:var(--muted-fg);line-height:1.7}
.grant-row{width:100%;text-align:center;font-size:12.5px;color:var(--blue);font-weight:400;border:1.5px dashed var(--blue);border-radius:var(--radius-lg);padding:11px;margin:6px 0;transition:background .15s ease-out;cursor:pointer;background:none}

.grant-row:hover{background:var(--blue-tint)}
.grant-hint{font-size:11.5px;color:var(--muted-fg);padding:2px 8px 10px;line-height:1.7}
/* 授权说明（可点击展开）：告知读取范围 / 数据去向 / 撤销方式 */
.grant-info{margin:0 8px 12px;font-size:11.5px;line-height:1.75;color:var(--muted-fg)}
.grant-info summary{cursor:pointer;color:var(--blue);user-select:none;display:inline-flex;align-items:center;gap:5px;list-style:none;font-weight:500}
.grant-info summary::-webkit-details-marker{display:none}
.grant-info summary::before{content:"▸";font-size:10px;transition:transform .15s ease-out;display:inline-block}
.grant-info[open] summary::before{transform:rotate(90deg)}
.grant-info summary:hover{text-decoration:underline}
.grant-info summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}
.grant-info[open] summary{margin-bottom:4px}
.grant-info-body{border-left:2px solid var(--border);padding:2px 0 2px 10px;margin:2px 0 0}
.grant-info-body p{margin:4px 0}
.grant-info-body b{color:var(--fg);font-weight:600}
.doclib-list{flex:1;overflow-y:auto;padding:2px;overscroll-behavior:contain}
/* 文件夹配置文件行：当前打开查看的列表高亮 */
.doclib-item.active{border-color:var(--blue);background:var(--blue-tint)}
.doclib-footer{display:flex;gap:6px;padding:8px 0 2px;flex-wrap:wrap}
.doclib-footer button{flex:1;font-size:12.5px;padding:6px 8px;border-radius:var(--pill);border:1px solid var(--border);background:var(--card);cursor:pointer;min-width:90px}
.doclib-footer button:hover{background:var(--hover)}
.doclib-import-row{display:flex;justify-content:flex-end;margin-bottom:6px}

/* ---- 面板内容 pane ---- */
.tf-pane{display:flex;flex-direction:column;flex:1;min-height:0}
.tf-pane[hidden]{display:none}
.panel-body{flex:1;min-height:0;overflow-y:auto;padding:10px 12px;overscroll-behavior:contain}
.ref-insert-bar{flex-shrink:0}
.tf-empty-hint{font-size:12px;color:var(--muted-fg);line-height:1.7}

/* ---- 文献库侧栏结构 → 二级面板适配 ---- */
.tf-panel .lib-sidebar{width:100%;border:none;background:transparent;height:100%;display:flex;flex-direction:column;min-height:0}
.tf-panel .lib-sidebar-header{display:none}
.tf-panel .lib-sidebar-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.tf-panel .lib-sidebar-footer{flex-wrap:wrap}
.tf-panel .lib-sidebar-footer button{font-size:12px;padding:4px 10px}
.tf-panel .lib-sidebar-footer #libSidebarExportGo{display:none}
.tf-panel .lib-sidebar-footer #libSidebarSelected{flex:1 1 100%}

/* ---- 文献详情卡空状态 ---- */
.ref-detail-empty{padding:40px 20px;text-align:center;color:var(--muted-fg);font-size:13px;line-height:1.8}

/* ---- 格式模板视图：wcfg 嵌视图 ---- */
.fmt-form .wcfg-modal{width:100%;max-width:none;max-height:none;padding:0;border:none;box-shadow:none;background:transparent;overflow:visible;animation:none;display:block}
.tf-window-head .fmt-tabs{margin:0}
/* 三标签组相对所在标题栏整体居中：绝对定位居中，不受左侧标题/右侧控件排布影响 */
.tf-window-head{position:relative}
.tf-paper-edit .tab-pane#tabFmt .tab-pane-head{position:relative}
#fmtTabs,#paperFmtTabs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
.fmt-form .wcfg-modal .wcfg-columns{display:flex;gap:16px;align-items:flex-start}
.fmt-form .wcfg-modal .wcfg-left{flex:1 1 auto;min-width:0}
.fmt-form .wcfg-modal h3{display:none}
.fmt-form .wcfg-modal .wcfg-body{display:flex;flex-direction:column;gap:10px}
.fmt-form .wcfg-modal details.wcfg-group{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.fmt-form .wcfg-modal details.wcfg-group summary{cursor:pointer;padding:11px 16px;font-weight:600;font-size:13.5px;list-style:none}
.fmt-form .wcfg-modal details.wcfg-group summary::-webkit-details-marker{display:none}
.fmt-form .wcfg-modal .wcfg-group-body{padding:4px 16px 14px}
.fmt-form .wcfg-modal .wcfg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 14px}
.fmt-form .wcfg-modal .wcfg-field{display:flex;flex-direction:column;gap:4px}
.fmt-form .wcfg-modal .wcfg-field label{font-size:12px;color:var(--muted-fg)}
.fmt-form .wcfg-modal .wcfg-field input,.fmt-form .wcfg-modal .wcfg-field select{width:100%}
.fmt-form .wcfg-modal .unit{font-size:11.5px;color:var(--muted-fg);margin-top:4px}
.fmt-note{font-size:12px;color:var(--muted-fg);margin-top:10px;line-height:1.7}
/* ---- 格式模板视图：配置菜单嵌入内容面板（满幅窗口内） ---- */
.modal-mask.fmt-form{
  position:static;inset:auto;background:transparent;backdrop-filter:none;
  display:block;z-index:auto;pointer-events:auto;overflow:visible;
}
.modal-mask.fmt-form.show{display:block}

/* ---- 顶栏方案下拉（点按展开；内置标注；红色删除项） ---- */
.fmt-scheme-dropdown{position:relative}
.fmt-scheme-btn{display:inline-flex;align-items:center;gap:7px;max-width:300px;
  padding:6px 13px;border:1px solid var(--border);border-radius:var(--pill);
  background:var(--card);color:var(--fg);font-size:13px;cursor:pointer}
.fmt-scheme-btn:hover{background:var(--hover)}
.fmt-scheme-btn .fmt-scheme-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fmt-scheme-caret{font-size:11px;color:var(--muted-fg);flex:none}
.fmt-scheme-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:1001;
  min-width:240px;max-height:340px;overflow:auto;margin:0;padding:4px;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-modal);overscroll-behavior:contain}
.fmt-scheme-menu.show{display:block}
.fmt-scheme-item{display:flex;align-items:center;gap:8px;width:100%;border:none;
  background:transparent;color:var(--fg);font-size:13px;line-height:1.4;
  padding:8px 10px;border-radius:6px;cursor:pointer;text-align:left}
.fmt-scheme-item:hover{background:var(--blue-tint);color:var(--blue)}
.fmt-scheme-item.active{background:var(--blue-tint);color:var(--blue);font-weight:600}
.fmt-scheme-item .s-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fmt-scheme-item .s-tag{flex:none;font-size:11px;color:var(--muted-fg);
  border:1px solid var(--border);border-radius:var(--pill);padding:0 7px}
.fmt-scheme-item.active .s-tag{color:var(--blue);border-color:var(--blue)}
.fmt-scheme-sep{height:1px;background:var(--border);margin:5px 4px}
.fmt-scheme-del{display:block;width:100%;border:none;background:transparent;text-align:left;
  color:var(--danger);font-size:12.5px;padding:8px 10px;border-radius:6px;cursor:pointer}
.fmt-scheme-del:hover{background:var(--danger-bg)}
.fmt-scheme-del.disabled{color:var(--old);cursor:not-allowed;background:transparent}
.fmt-scheme-del.disabled:hover{background:transparent}

/* ---- 满幅窗口内真实 docx 预览块 ---- */
.wcfg-preview-scroll{min-height:420px;max-height:70vh}

/* ---- 保存为方案：命名弹窗输入框 ---- */
.scheme-name-input{width:100%;box-sizing:border-box;padding:9px 11px;font-size:13.5px;
  border:1px solid var(--border);border-radius:var(--radius-sm);
  background:var(--input-bg);color:var(--fg)}
.scheme-name-input:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-tint)}

/* ---- JSON 直编 popover ---- */
.json-pop{position:fixed;z-index:110;width:min(560px,92vw);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);padding:14px 16px;display:none}
.json-pop.show{display:block}
.json-pop h4{font-size:13.5px;font-weight:600;margin-bottom:8px}
.json-pop textarea{width:100%;min-height:200px;font-family:var(--font-mono);font-size:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--fg);box-sizing:border-box;resize:vertical}
.json-pop .json-msg{font-size:12px;color:var(--muted-fg);margin:6px 0}
.json-pop .json-msg.error{color:var(--danger)}
.json-pop .m-btns{margin-top:10px}

/* ---- 确认弹窗 ---- */
.modal .m-body{font-size:13.5px;line-height:1.8;color:var(--muted-fg);white-space:pre-line}

/* ---- 引用选择器弹窗 ---- */
.cite-modal{width:min(560px,92vw)}
.cite-search{width:100%;margin-bottom:8px}
.cite-list{max-height:300px;overflow-y:auto;margin-top:10px;display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;overscroll-behavior:contain}
.cite-row{display:flex;gap:8px;align-items:flex-start;padding:7px 8px;border-radius:var(--radius-sm);cursor:pointer}
.cite-row:hover{background:var(--hover)}
.cite-row input{margin-top:3px;accent-color:var(--blue);flex-shrink:0}

/* ---- 导出 Word 弹窗 ---- */
.ba-strip{display:flex;align-items:stretch;gap:10px;margin:6px 0 4px}
.ba-box{flex:1;border-radius:var(--radius-sm);padding:10px 12px;font-size:12.5px;line-height:1.6}
.ba-old{background:var(--hover);border:1px solid var(--border);color:var(--muted-fg)}
.ba-new{background:var(--blue-tint);border:1px solid var(--blue)}
.ba-new .ba-t{color:var(--blue);font-weight:500}
.ba-arrow{display:flex;align-items:center;color:var(--muted-fg)}
.ba-note{font-size:12px;color:var(--muted-fg);margin-top:8px}

/* ---- 业务弹窗内部小件（新皮肤补齐） ---- */
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}
.modal-actions button{font-size:13px;padding:7px 16px;border-radius:var(--pill);border:1px solid var(--border);background:var(--card);cursor:pointer}
.modal-actions button.primary,.modal-actions .primary{background:var(--blue);border-color:var(--blue);color:var(--blue-fg)}
.modal-actions button:hover{background:var(--hover)}
.modal .formula-tips,.modal .gbt-parse,.modal .fetch-status{font-size:12px;color:var(--muted-fg);line-height:1.7}
.modal .paste-input,.modal .batch-import-textarea,.modal .import-textarea{width:100%;box-sizing:border-box;font-family:var(--font-mono);font-size:12px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--fg);resize:vertical}
.modal .existing-row,.modal .book-extra-row{margin-top:10px}
.modal .library-list{max-height:300px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px;margin:8px 0;font-size:12.5px}
.modal .library-list .lib-entry{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer}
.modal .library-list .lib-entry:hover{background:var(--hover)}
.modal .library-list .lib-entry .lib-x{margin-left:auto;color:var(--muted-fg);font-size:11px}
.modal .library-list .lib-entry .lib-x:hover{color:var(--danger)}
.modal .m-field{margin:12px 0}
.modal .m-field label{display:block;font-size:12px;color:var(--muted-fg);margin-bottom:5px}
.modal .grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.modal .row{display:flex;gap:10px;align-items:center}
.modal .row>div{flex:1}

/* ---- 表格选择器 ---- */
.table-picker{display:flex;flex-direction:column;gap:10px}
.table-picker .tp-grid{display:grid;grid-template-columns:repeat(10,minmax(14px,1fr));gap:3px;max-width:220px}
.table-picker .tp-cell{aspect-ratio:1;border-radius:3px;border:1px solid var(--border);background:var(--card);cursor:pointer}
.table-picker .tp-cell.hover{background:var(--blue);border-color:var(--blue)}
.table-picker .tp-label{font-size:12px;color:var(--muted-fg)}
.table-picker .tp-caption{width:100%;box-sizing:border-box}

/* ---- 引用气泡 / 文献摘要 ---- */
.abs-popup{position:fixed;z-index:130;width:min(340px,86vw);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-modal);padding:10px 12px;font-size:12px;line-height:1.7;display:none;color:var(--fg)}
.abs-popup.show{display:block}

 /* ---- 深色模式补齐 ---- */
.dark #editor-container,.dark .editor-area,.dark #editor-container .w-e-scroll,.dark #editor-container .w-e-text-container{background:var(--input-bg) !important;color:var(--fg) !important}
.dark #editor-container .w-e-text-container [data-slate-editor]{color:#D8D4CB !important}
.dark #editor-container [data-slate-editor] h1,.dark #editor-container [data-slate-editor] h2,.dark #editor-container [data-slate-editor] h3,.dark #editor-container [data-slate-editor] h4,.dark #editor-container [data-slate-editor] h5,.dark #editor-container [data-slate-editor] h6{color:#E9E5DD !important}
.dark #toolbar-container .w-e-toolbar .w-e-bar-divider{background:var(--border)}
.dark .paper{background:#fff;color:#111}
.dark .paper-info input,.dark .paper-info textarea,.dark .paper-info select{background:var(--input-bg);color:var(--fg)}
.dark .modal select,.dark .modal input,.dark .modal textarea{background:var(--input-bg);color:var(--fg)}

/* ---- 窄屏补齐 ---- */
@media (max-width:900px){
  .paper-info .pair-row,.paper-info .pair-row.tri{grid-template-columns:1fr}
  .fmt-form .wcfg-modal .wcfg-columns{flex-direction:column}
  .doclib-footer button{min-width:72px}
}

/* ---- 可点控件：消除移动端双击缩放延迟 ---- */
button,summary,label,a,.rail-brand,.rail-item,.doclib-item,.doclib-local-card,.doclib-other-toggle,.lib-item-row,.list-item,.table-picker-cell,.table-picker .tp-cell,.switch,.cite-row,.en-info-toggle,.ref-li-main,.ref-cb,.tb-scroll-arrow,.fmt-scheme-item,.grant-row,.ao-org-suggest-item,.fake-toolbar span.cite-trigger,.fa-link,.lib-entry{touch-action:manipulation}

/* ---- 系统“减少动态效果”：压平动画与过渡（覆盖 breathe/pop/tin/spin/flap/citeFlash/aoDropIn/libRowFlash） ----
   r234：三态改造——media 版只作用于 html:not([data-motion="full"])（system/reduce 命中，full 豁免）；
   另加 html[data-motion="reduce"] 属性强制版（reduce 态不受 OS 影响，即时生效） */
@media (prefers-reduced-motion: reduce){
  html:not([data-motion="full"]) *,html:not([data-motion="full"]) *::before,html:not([data-motion="full"]) *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}
html[data-motion="reduce"] *,html[data-motion="reduce"] *::before,html[data-motion="reduce"] *::after{
  animation-duration:.01ms !important;
  animation-iteration-count:1 !important;
  transition-duration:.01ms !important;
}

/* ---- 批次4：div/无 href a → button 基础重置（:where 零特异性，不覆盖类样式） ---- */
:where(button.doclib-item,button.lib-item-row,button.list-item,button.table-picker-cell,button.switch,button.fa-link){
  background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit;cursor:pointer;white-space:normal;
}
button.fa-link,button.list-item,button.lib-item-row{font-size:inherit;font-weight:inherit;line-height:inherit}
button.fa-link{display:inline}
/* ---- 浮动工具条（选中文本弹出）置顶 + 配置面板 ---- */
.w-e-hover-bar{z-index:2000 !important;gap:8px;padding:4px 8px;align-items:center;border-radius:var(--radius-sm);box-sizing:border-box;border-width:1px}
/* 浮动条移到 body 下 fixed 定位：不受 .editor-area / #editor-container 的 overflow:hidden 裁剪，
   选中内容靠近编辑区边缘时也能完整显示在编辑窗口之外 */
/* r173：浮动条主题化——背景/边框/文字跟随主题变量（明暗自适应），
   按钮 hover/active/focus 已用 --blue/--blue-tint，整条外观与当前主题一致 */
body > .w-e-hover-bar{position:fixed !important;left:0;top:0;background:var(--card);border:1px solid var(--border);box-shadow:0 4px 16px rgba(0,0,0,.18)}
.w-e-hover-bar, .w-e-hover-bar button{color:var(--fg)}
/* r154：拖选期间抑制浮动条显示（mousedown 加 .hb-suppress、mouseup 移除，hoverbar.js 控制）；
   引擎仍正常显示但视觉不可见不可交互，松开鼠标后淡入 */
.w-e-hover-bar.hb-suppress{opacity:0 !important;pointer-events:none !important;transition:opacity .15s ease}
/* r219：body.tf-dragging 强制隐藏浮动条——比 hb-suppress 更可靠，
   body 类不会被引擎重建 bar 时移除，确保拖选全程浮动条不出现 */
body.tf-dragging .w-e-hover-bar{opacity:0 !important;pointer-events:none !important}
/* 浮动条内原生按钮容器高度压到与注入按钮一致（32px），让浮动条整体更紧凑 */
.w-e-hover-bar .w-e-bar-item{padding:0 !important;height:32px !important;min-height:32px !important;line-height:32px !important}
.hb-dots-btn{background:none;border:0;font-size:16px;cursor:pointer;padding:0;color:inherit;line-height:1;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);box-shadow:none}
.hb-dots-btn svg{display:block;width:18px;height:18px}
.hb-dots-btn:hover{box-shadow:0 0 0 1px var(--border),0 2px 6px rgba(0,0,0,.35)}
.hb-injected:focus-visible,.hb-dots-btn:focus-visible,.w-e-hover-bar [data-menu-key="headerSelect"]:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}
.hb-dots-btn:active{box-shadow:0 0 0 1px var(--blue),0 2px 8px rgba(0,0,0,.45)}
.hb-injected{background:none;border:0;font:inherit;cursor:pointer;padding:0;font-size:15px;color:inherit;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1;width:32px;height:32px;border-radius:var(--radius-sm);box-shadow:none}
.hb-injected:hover{box-shadow:0 0 0 1px var(--border),0 2px 6px rgba(0,0,0,.35)}
.hb-injected:active{box-shadow:0 0 0 1px var(--blue),0 2px 8px rgba(0,0,0,.45)}
/* 字号数字字符（随选区动态更新，与 SVG text 同字族同重） */
.hb-char{font-family:var(--font-ui);font-weight:700;font-size:15px;line-height:1;display:inline-block}
/* 激活态（选中文本带该格式）：按钮显示为被按下 */
.hb-injected.active{background:var(--blue-tint);color:var(--blue);box-shadow:0 0 0 1px var(--blue),0 2px 6px rgba(0,0,0,.35)}
.hb-dots-btn.active{background:var(--blue-tint);color:var(--blue);box-shadow:0 0 0 1px var(--blue),0 2px 6px rgba(0,0,0,.35)}
.hb-injected svg{display:block;width:20px;height:20px}
/* 浮动条 SVG 图标内的字母/数字：跟随主题色、UI 字族，与线性图形同基线对齐 */
.hb-injected svg .hb-t{fill:currentColor;stroke:none;font-family:var(--font-ui)}
.hb-injected svg.hb-caret{width:12px;height:12px;margin-left:1px;flex:none}
.hb-sep{width:1px;height:24px;background:currentColor;margin:0 4px;flex:none;opacity:.38}
.hb-injected[data-key="fontSize"]{width:52px;height:32px;gap:1px}
.hb-injected[data-key="bgColor"]{width:44px;height:32px}
.w-e-hover-bar [data-menu-key="headerSelect"]{font-size:15px;font-family:var(--font-ui);font-weight:700;padding:0 !important;width:64px !important;height:32px !important;min-width:64px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);box-shadow:none}
.w-e-hover-bar [data-menu-key="headerSelect"]:hover{box-shadow:0 0 0 1px var(--border),0 2px 6px rgba(0,0,0,.35)}
.w-e-hover-bar [data-menu-key="headerSelect"]:active{box-shadow:0 0 0 1px var(--blue),0 2px 8px rgba(0,0,0,.45)}
/* ---- 表格工具条按钮统一为浮动工具条设计语言（32×32、8px 圆角、悬停阴影、蓝色按下态、18px 描边图标） ---- */
.w-e-hover-bar .w-e-bar-item{display:inline-flex;align-items:center;justify-content:center;margin:0;box-sizing:border-box}
.w-e-hover-bar [data-menu-key="insertTableRow"],
.w-e-hover-bar [data-menu-key="insertTableCol"],
.w-e-hover-bar [data-menu-key="tableFullWidth"],
.w-e-hover-bar .hb-del-more-wrap{
  width:32px;height:32px;min-width:32px;min-height:32px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--radius-sm);
  box-shadow:none;padding:0;border:0;background:none;cursor:pointer;
  color:inherit;line-height:1;font-family:inherit;font-size:inherit;
}
.w-e-hover-bar [data-menu-key="insertTableRow"]:hover,
.w-e-hover-bar [data-menu-key="insertTableCol"]:hover,
.w-e-hover-bar [data-menu-key="tableFullWidth"]:hover,
.w-e-hover-bar .hb-del-more-wrap:hover{
  background:transparent;
  box-shadow:0 0 0 1px var(--border),0 2px 6px rgba(0,0,0,.35);
}
.w-e-hover-bar [data-menu-key="insertTableRow"]:active,
.w-e-hover-bar [data-menu-key="insertTableCol"]:active,
.w-e-hover-bar [data-menu-key="tableFullWidth"]:active,
.w-e-hover-bar .hb-del-more-wrap:active{
  box-shadow:0 0 0 1px var(--blue),0 2px 8px rgba(0,0,0,.45);
}
.w-e-hover-bar [data-menu-key="tableFullWidth"].w-e-active,
.w-e-hover-bar .hb-del-more-wrap.active{
  background:var(--blue-tint);color:var(--blue);
  box-shadow:0 0 0 1px var(--blue),0 2px 6px rgba(0,0,0,.35);
}
.w-e-hover-bar [data-menu-key="insertTableRow"] svg,
.w-e-hover-bar [data-menu-key="insertTableCol"] svg,
.w-e-hover-bar [data-menu-key="tableFullWidth"] svg,
.w-e-hover-bar .hb-del-more-wrap svg{width:18px;height:18px;display:block}
.w-e-hover-bar [data-menu-key="insertTableRow"]:focus-visible,
.w-e-hover-bar [data-menu-key="insertTableCol"]:focus-visible,
.w-e-hover-bar [data-menu-key="tableFullWidth"]:focus-visible,
.w-e-hover-bar .hb-del-more-wrap:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}
/* 正文样式下拉面板（原生 w-e-select-list）统一为浮动条设计语言：
   深色卡片 + 8px 圆角 + 阴影 + 蓝色 hover/选中态 + 焦点环 */
.w-e-hover-bar .w-e-select-list{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 6px 24px rgba(0,0,0,.18);padding:5px;width:64px;min-width:64px;box-sizing:border-box;z-index:2100}
.w-e-hover-bar .w-e-select-list ul{background:transparent;margin:0;padding:0;list-style:none}
.w-e-hover-bar .w-e-select-list ul li{color:var(--fg);padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-family:var(--font-ui);font-weight:700;line-height:1.2;margin:1px 0}
.w-e-hover-bar .w-e-select-list ul li:hover{background:var(--blue-tint);color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.w-e-hover-bar .w-e-select-list ul li.selected{background:var(--blue-tint);color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.w-e-hover-bar .w-e-select-list ul li:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}
/* 隐藏选中样式左侧的 √ 勾选图标（引擎为 selected 项插入的 svg） */
.w-e-hover-bar .w-e-select-list ul li.selected > svg{display:none !important}
/* 层级预览字号适当缩小（引擎按 styleForRenderMenuList 内联大字号，64px 宽下拉内过大）：
   H1 32→22 / H2 24→18 / H3 18→15 / H4 16→14 / H5 13→12，保留层级差 */
.w-e-hover-bar .w-e-select-list ul li span[data-value="header1"]{font-size:22px !important}
.w-e-hover-bar .w-e-select-list ul li span[data-value="header2"]{font-size:18px !important}
.w-e-hover-bar .w-e-select-list ul li span[data-value="header3"]{font-size:15px !important}
.w-e-hover-bar .w-e-select-list ul li span[data-value="header4"]{font-size:14px !important}
.w-e-hover-bar .w-e-select-list ul li span[data-value="header5"]{font-size:12px !important}
#hbConfigPanel{position:fixed;display:none;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 6px 24px rgba(0,0,0,.18);padding:10px;max-height:60vh;overflow-y:auto;z-index:2100;min-width:230px}
#hbConfigPanel .hb-cfg-title{font-size:12px;font-weight:600;margin-bottom:8px;color:var(--fg)}
#hbConfigPanel .hb-cfg-row{display:flex;align-items:center;justify-content:space-between;padding:4px 6px;margin:0 -6px;font-size:12.5px;border-radius:var(--radius-sm)}
#hbConfigPanel .hb-cfg-row:hover{background:var(--hover)}
#hbConfigPanel .hb-cfg-row label{display:flex;align-items:center;gap:6px;cursor:pointer;min-width:0}
#hbConfigPanel .hb-cfg-row input[type="checkbox"]{accent-color:var(--blue);width:14px;height:14px;cursor:pointer;flex:none}
#hbConfigPanel .hb-cfg-ops button{background:none;border:0;border-radius:var(--radius-sm);cursor:pointer;width:24px;height:24px;margin-left:4px;color:var(--muted-fg);font-size:13px;line-height:1}
#hbConfigPanel .hb-cfg-ops button:hover:not(:disabled){background:var(--blue-tint);color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
#hbConfigPanel .hb-cfg-ops button:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}
#hbConfigPanel .hb-cfg-ops button:disabled{opacity:.35;cursor:default}
.hb-pop-panel{position:fixed;display:none;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 6px 24px rgba(0,0,0,.18);padding:5px;z-index:2100;display:none;flex-direction:column;gap:2px;min-width:64px}
.hb-pop-panel button{background:none;border:0;border-radius:var(--radius-sm);cursor:pointer;padding:4px 10px;font-size:12.5px;color:var(--fg);text-align:center;font-family:inherit}
.hb-font-panel{width:64px;min-width:64px;box-sizing:border-box;padding:5px;gap:1px;flex-direction:column}
.hb-font-panel button{display:block;width:100%;padding:6px 0;font-size:13px;font-family:var(--font-ui);font-weight:700;line-height:1.2;text-align:center;border-radius:var(--radius-sm);margin:1px 0}
.hb-font-panel button:hover{background:var(--blue-tint);color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.hb-pop-panel button:hover{background:var(--blue-tint);color:var(--blue);box-shadow:0 0 0 1px var(--blue),0 2px 6px rgba(0,0,0,.35)}
.hb-pop-panel button:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}
.hb-pop-panel button:active{background:var(--blue-tint);color:var(--blue);box-shadow:0 0 0 1px var(--blue),0 2px 8px rgba(0,0,0,.45)}
.hb-color-panel{flex-direction:row;flex-wrap:wrap;gap:3px;max-width:150px;padding:6px}

/* ---- 浮动段落工具块（悬停段落左侧显示；宽度 40px，高度随所在段落首行文字高度自适应；
   挂 body fixed 防被编辑区裁剪；仅编辑视图显示） ---- */
/* P2：按压即时反馈（pointer-down 视觉，Apple fluid 响应原则；reduced-motion 下关闭） */
.btn:not(:disabled):active{transform:scale(.97);transition-duration:.1s}
@media (prefers-reduced-motion: reduce){.btn:not(:disabled):active{transform:none}}
#hbParaTool{position:fixed;z-index:2000;width:40px;height:20px;display:none;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 14px rgba(0,0,0,.18);box-sizing:border-box;padding:0;opacity:1;transition:opacity .12s ease-out} /* P2：软隐藏淡出；reduced-motion 关闭见 3230 区 */
#hbParaTool .hb-para-btn{background:none;border:0;cursor:pointer;padding:0;color:inherit;width:100%;height:100%;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);box-shadow:none;font-size:10px;line-height:1}
#hbParaTool .hb-para-btn svg{display:block;width:14px;height:14px}
#hbParaTool .hb-para-btn:hover{box-shadow:0 0 0 1px var(--border),0 2px 6px rgba(0,0,0,.35)}
#hbParaTool .hb-para-btn:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}
#hbParaTool .hb-para-btn:active{box-shadow:0 0 0 1px var(--blue),0 2px 8px rgba(0,0,0,.45)}
.w-e-hover-bar [data-menu-key="enter"],
.w-e-hover-bar [data-menu-key="tableHeader"],
.w-e-hover-bar [data-menu-key="deleteTableRow"],
.w-e-hover-bar [data-menu-key="deleteTableCol"]{display:none !important}
.w-e-hover-bar .hb-del-more-wrap{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0 6px}
.hb-table-del-more{position:fixed;z-index:3000;min-width:112px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-modal);padding:4px;display:flex;flex-direction:column;gap:2px}
.hb-table-del-more button{display:block;width:100%;text-align:left;padding:7px 10px;font-size:12px;color:var(--fg);background:none;border:0;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit}
.hb-table-del-more button:hover{background:var(--blue-tint);color:var(--blue)}
/* 表格操作浮动条（#tfTableBar）：光标位于表格内时贴表格下方居中，
   设计语言与 .w-e-hover-bar 一致（卡片底、圆角、阴影、蓝色焦点环） */
.tf-table-bar{
  position:fixed;z-index:2100;display:flex;gap:2px;align-items:center;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:0 4px 16px rgba(0,0,0,.18);padding:4px;
  opacity:0;transform:translateY(4px) scale(.96);pointer-events:none;
  transition:opacity .16s ease,transform .16s ease;
}
.tf-table-bar.show{opacity:1;transform:none;pointer-events:auto}
.tf-table-bar .tftb-btn{
  width:32px;height:32px;min-width:32px;min-height:32px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--radius-sm);box-shadow:none;padding:0;border:0;background:none;
  color:var(--fg);cursor:pointer;line-height:1;font-family:inherit;
}
.tf-table-bar .tftb-btn:hover{background:transparent;box-shadow:0 0 0 1px var(--border),0 2px 6px rgba(0,0,0,.35)}
.tf-table-bar .tftb-btn:active{box-shadow:0 0 0 1px var(--blue),0 2px 8px rgba(0,0,0,.45)}
.tf-table-bar .tftb-btn svg{width:18px;height:18px;display:block}
.tf-table-bar .tftb-btn:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}
#hbParaTool .hb-para-btn .hb-para-style{font-family:var(--font-ui);font-weight:700;font-size:10px;line-height:1;letter-spacing:0}
/* 悬停工具块时当前段落显示浅蓝色底色（data-hb-highlight 属性标记） */
#editor-container [data-slate-editor] [data-hb-highlight]{background:rgba(76,154,255,.16) !important;border-radius:3px}
/* 段落样式菜单：悬停工具块展开，竖排、与正文样式下拉同语言 */
#hbParaMenu{position:fixed;display:none;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 6px 24px rgba(0,0,0,.18);padding:4px;z-index:2100;flex-direction:column;gap:1px;min-width:40px;width:40px;box-sizing:border-box}
#hbParaMenu button{background:none;border:0;border-radius:var(--radius-sm);cursor:pointer;padding:6px 0;font-size:13px;color:var(--fg);text-align:center;font-family:var(--font-ui);font-weight:700;line-height:1.2;display:block;width:100%;margin:1px 0}
#hbParaMenu button:hover{background:var(--blue-tint);color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
#hbParaMenu button.selected{background:var(--blue-tint);color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
#hbParaMenu button:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}
.hb-color-panel button{width:24px;height:24px;padding:0;border-radius:var(--radius-sm);box-shadow:none}
/* ---- 真实 .docx 预览（与「导出 Word」同源渲染，打印预览效果） ---- */
.pv-docx-host{flex:0 0 auto;margin:auto;transform-origin:top center}
.pv-docx-host .docx-wrapper{background:transparent;padding:0}
/* docx-preview 渲染预览：表格覆盖为标准三线表（顶线/表头下线/底线，无竖线无行线） */
.docx-wrapper table{border-collapse:collapse}
.docx-wrapper table{border-top:1.5pt solid #000 !important;border-bottom:1.5pt solid #000 !important}
.docx-wrapper table td,.docx-wrapper table th{border-left:none !important;border-right:none !important;border-top:none !important;border-bottom:none !important}
.docx-wrapper table tr:first-child td,.docx-wrapper table tr:first-child th,.docx-wrapper table tr:first-of-type td,.docx-wrapper table tr:first-of-type th{border-bottom:.75pt solid #000 !important}
.pv-docx-host .docx-wrapper > section.docx{box-shadow:0 2px 14px rgba(26,24,21,.16);margin:0 auto 16px}
.pv-docx-host .docx-wrapper > section.docx:last-child{margin-bottom:0}
.pv-status{font-size:11.5px;color:var(--muted-fg);margin-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}
.pv-docx-host.export-flash{animation:exportFlash .5s ease}
@keyframes exportFlash{0%{opacity:1}40%{opacity:.55}100%{opacity:1}}
.ref-preview-scroll{display:flex;flex-direction:column;align-items:center}

/* ================= r61: 论文信息 · 灵动岛 v4.7 复刻 ================= */
/* 主题自适应调色板：岛与窗口跟随当前主题（与顶栏同源 --bg/--border/--fg 等），不再锁定深色 */
.tf-paper-edit .tab-pane#tabInfo{
  --info-bg:var(--card);
  --info-head:var(--bg);
  --info-anchor-bg:var(--bg);
  --info-line:var(--border);
  --info-line-soft:var(--border);
  --info-input-bg:var(--input-bg);
  --info-field:var(--hover);
  --info-accent:var(--blue);
  --info-accent-soft:var(--blue-tint);
  --info-accent-ring:var(--blue-tint);
  --info-text:var(--fg);
  --info-muted:var(--muted-fg);
  --info-faint:var(--muted-fg);
  --info-green:#2F9E44;
  --info-green-soft:rgba(47,158,68,.15);
  --info-red:#E03131;
  --info-red-soft:rgba(224,49,49,.12);
  --info-amber:#E8590C;
  --info-card-en-bg:var(--hover);
  color:var(--fg);
}
/* 顶栏论文题目胶囊按钮（v4.7：深色毛玻璃 + 进度环） */
.rail-title-capsule{display:inline-flex;align-items:center;gap:9px;max-width:min(46vw,420px);border:1px solid rgba(255,255,255,.09);cursor:pointer;background:rgba(21,21,26,.92);color:#fff;padding:5px 15px;border-radius:999px;font-size:13px;font-family:inherit;box-shadow:0 8px 24px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.07);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);transition:box-shadow .15s,transform .15s,filter .15s;position:relative;pointer-events:auto;min-height:32px;box-sizing:border-box}
.rail-title-capsule:hover{box-shadow:0 12px 30px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.09)}
.rail-title-capsule:active{transform:scale(.97)}
.rail-title-capsule.breathe{animation:railBreathe 3.4s ease-in-out infinite}
@keyframes railBreathe{50%{transform:scale(1.03)}}
.rail-ring-sm{position:relative;display:grid;place-items:center;flex:none;border-radius:50%;width:20px;height:20px}
.rail-ring-sm::before{content:'';position:absolute;inset:-40%;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,212,59,.30) 0%,rgba(255,212,59,.13) 42%,rgba(255,212,59,0) 68%);filter:blur(3px);opacity:0;transition:opacity .45s}
.rail-title-capsule.started .rail-ring-sm::before{opacity:1}
.rail-title-capsule.done .rail-ring-sm::before{background:radial-gradient(circle,rgba(81,207,102,.32) 0%,rgba(81,207,102,.14) 42%,rgba(81,207,102,0) 68%)}
.rail-ring-sm svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.rail-ring-sm circle{fill:none;stroke-width:3.4}
.rail-ring-sm .rr-bg{stroke:rgba(255,255,255,.14)}
.rail-ring-sm .rr-fg{stroke:#ffd43b;stroke-linecap:round;stroke-dasharray:97.4;stroke-dashoffset:97.4;transition:stroke-dashoffset .8s cubic-bezier(.3,1.3,.4,1),stroke .45s}
.rail-title-capsule.done .rr-fg{stroke:#51cf66}
.rail-title-text{max-width:min(30vw,250px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;letter-spacing:.2px}
.rail-title-text.empty{font-weight:400;opacity:.85}
.rail-title-tag{font-size:11px;background:rgba(255,255,255,.22);padding:2px 9px;border-radius:99px;flex:none}
.rail-title-tip{position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%) translateY(-4px);background:#2b2a26;color:#fff;padding:7px 13px;border-radius:9px;font-size:12px;line-height:1.5;max-width:min(72vw,400px);width:max-content;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:40;box-shadow:0 10px 28px rgba(0,0,0,.28);white-space:pre-line}
.rail-title-tip::before{content:'';position:absolute;top:-5px;left:50%;transform:translateX(-50%) rotate(45deg);width:10px;height:10px;background:#2b2a26;border-radius:2px}
.rail-title-capsule:hover .rail-title-tip{opacity:1;transform:translateX(-50%) translateY(0)}
.rail-title-capsule.flash{animation:railTitleFlash .5s}
@keyframes railTitleFlash{35%{transform:scale(1.06)}}
/* 灵动岛窗口本体 */
.tf-paper-edit .tab-pane#tabInfo{background:var(--info-bg);border:1px solid var(--info-line);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.24);overflow:hidden;display:flex;flex-direction:column;position:relative}
.tf-paper-edit .tab-pane#tabInfo[hidden]{display:none}
/* r219：兜底——#tabInfo 未带任何 isl-* / info-window 状态类时强制隐藏，
   防止 JS 时序问题（如首次新建文稿时 collapseInfoCard 尚未就绪）导致
   #tabInfo.hidden=false 但样式回退到 3428 行的默认 display:flex 撑满父容器，
   配合 border-radius:16px + box-shadow 显示成异常大白椭圆。
   状态类由 islSet / openInfoEdit / collapseInfoCard 等显式添加 */
.tf-paper-edit .tab-pane#tabInfo:not(.isl-compact):not(.isl-open):not(.isl-edit):not(.info-window):not(.info-closing){display:none!important}
.tf-paper-edit .tab-pane#tabInfo.info-closing{animation:tfIslandOut .28s cubic-bezier(.5,0,.8,.4) forwards}
@keyframes tfIslandIn{from{opacity:0;transform:scale(.985) translateY(10px)}}
@keyframes tfIslandOut{to{opacity:0;transform:scale(.985) translateY(8px)}}
#tabInfo.info-window .info-backdrop{opacity:1}
#tabInfo > *:not(.info-backdrop){position:relative;z-index:2}
/* 岛头 */
.info-island{display:flex;align-items:center;gap:10px;padding:13px 20px;background:var(--info-head);color:var(--info-text);flex-shrink:0;border-radius:16px 16px 0 0}
.info-island-dot{width:9px;height:9px;border-radius:50%;background:var(--info-amber);flex:none;transition:background .3s;box-shadow:0 0 0 3px var(--info-line-soft)}
.info-island-dot.ok{background:var(--info-green)}
.info-island-title{font-weight:600;font-size:14px;font-family:var(--font-ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.info-island-tag{font-size:11px;background:var(--info-line-soft);padding:2px 9px;border-radius:99px;flex:none}
.info-island-close{margin-left:auto;border:none;background:var(--info-line-soft);color:var(--info-text);width:28px;height:28px;border-radius:9px;cursor:pointer;font-size:14px;flex:none;transition:background .15s;line-height:1}
.info-island-close:hover{background:var(--info-line)}
/* 锚点导航 */
.info-anchor{display:flex;align-items:center;gap:6px;padding:10px 22px;border-bottom:1px solid var(--info-line);background:var(--info-anchor-bg);flex-shrink:0;flex-wrap:wrap}
.info-anchor a{display:flex;align-items:center;gap:7px;padding:6px 14px;border-radius:999px;cursor:pointer;font-size:13px;color:var(--info-muted);text-decoration:none;border:1px solid transparent;transition:.15s}
.info-anchor a i{font-style:normal;width:17px;height:17px;border-radius:50%;background:var(--info-line);display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:var(--info-muted)}
.info-anchor a:hover{background:var(--info-line-soft)}
.info-anchor a.active{background:var(--info-accent-soft);color:var(--info-accent);border-color:var(--info-accent-ring)}
.info-anchor a.active i{background:var(--info-accent);color:#fff}
.info-anchor .info-dot{width:7px;height:7px;border-radius:50%;background:var(--info-line);flex:none}
.info-anchor .info-dot.ok{background:var(--info-green);box-shadow:0 0 0 3px var(--info-green-soft)}
.info-progress{flex:1;min-width:120px;height:6px;background:var(--info-line-soft);border-radius:99px;margin:0 10px;overflow:hidden}
.info-progress .info-progress-b{display:block;height:100%;width:100%;background:linear-gradient(90deg,#5c7cfa,var(--info-accent));border-radius:99px;transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.32,.72,0,1)} /* P1：width → scaleX（GPU 合成；JS 侧改设 transform） */
.info-count{font-size:12px;color:var(--info-muted);white-space:nowrap}
.info-count b{color:var(--info-text)}
/* 主体 */
.info-body{flex:1;min-height:0;overflow-y:auto;padding:26px 30px 34px;scroll-behavior:smooth}
.info-sec{margin-bottom:34px}
.info-sec-head{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.info-sec-no{width:24px;height:24px;border-radius:8px;background:var(--info-line);color:var(--info-text);font-size:12px;display:flex;align-items:center;justify-content:center;flex:none}
.info-sec-no-muted{background:var(--info-faint)}
.info-sec-head h2{font-size:15px;margin:0;display:flex;align-items:center;color:var(--info-text)}
.info-sec-head h2 em{font-style:normal;font-size:11.5px;color:var(--info-muted);font-weight:400;margin-left:6px}
.info-req{font-size:11px;color:var(--info-red);background:var(--info-red-soft);padding:2px 8px;border-radius:99px}
.info-opt{font-size:11px;color:var(--info-muted);background:var(--info-line-soft);padding:2px 8px;border-radius:99px}
.info-chev{margin-left:auto;color:var(--info-muted);cursor:pointer;font-size:12px;user-select:none;display:inline-flex;align-items:center;gap:4px}
.info-chev-ico{display:inline-block;transition:transform .25s}
.info-sec.open .info-chev-ico{transform:rotate(180deg)}
.info-coll{display:none;margin-top:4px}
.info-sec.open .info-coll{display:block;animation:tfIslandIn .25s}
/* 中英成对 */
.info-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px;position:relative}
.info-pair::after{content:'';position:absolute;top:6px;bottom:6px;left:50%;width:1px;background:var(--info-line)}
.info-fl{display:block;font-size:12px;color:var(--info-muted);margin-bottom:6px}
.info-fl b{color:var(--info-red)}
.info-fl em{font-style:normal;color:var(--info-faint);margin-left:4px}
.info-ti{width:100%;height:42px;border:1px solid var(--info-line);border-radius:10px;padding:0 14px;font-size:14px;background:var(--info-input-bg);transition:border-color .15s,box-shadow .15s;color:var(--info-text);box-sizing:border-box;font-family:inherit}
textarea.info-ti{height:auto;padding:9px 12px;resize:vertical;line-height:1.65}
.info-ti:focus{outline:none;border-color:var(--info-accent);box-shadow:0 0 0 3px var(--info-accent-ring);background:var(--info-field)}
.info-ti::placeholder{color:var(--info-faint)}
/* r122：中英双卡同款同框——info-card-zh（中文）与 info-card-en（英文）共用全部盒样式，
   头行固定等高，除文案语言外框大小/边框/底色/内距完全一致；
   勿复用旧 .info-card 类名——它已被 1145 行折叠卡组件占用（margin-bottom:14px 会破坏 grid 拉伸对齐） */
.info-card-zh,.info-card-en{border:1px solid var(--info-line);border-radius:12px;padding:12px 14px 10px;background:var(--info-card-en-bg)}
.info-card-en-head,.info-card-head{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin-bottom:6px;gap:8px;flex-wrap:wrap;position:relative}
.info-en-tools{display:flex;align-items:center;gap:8px;flex:none}
.info-badge{font-size:11px;padding:3px 10px;border-radius:99px;border:none;cursor:pointer;background:var(--info-line);color:var(--info-muted);transition:.15s;font-family:inherit}
.info-badge:hover{filter:brightness(.96)}
.info-txt-danger{border:none;background:none;color:var(--info-red);font-size:12px;cursor:pointer;opacity:.75;padding:2px 4px;font-family:inherit}
.info-txt-danger:hover{opacity:1;text-decoration:underline}
.info-counter{font-size:11px;color:var(--info-faint);text-align:right;margin-top:4px}
.info-counter.warn{color:var(--info-amber)}
/* 作者 */
.info-authors{margin-bottom:4px}
.info-authors-en{margin-top:10px}
.info-add-author-combo{display:flex;gap:10px;margin-top:10px}
.info-add-author{flex:1;border:1.5px dashed var(--info-line);background:none;border-radius:10px;padding:10px;color:var(--info-muted);cursor:pointer;font-size:12.5px;transition:.15s;font-family:inherit}
.info-add-author:hover{border-color:var(--info-accent);color:var(--info-accent);background:var(--info-accent-soft)}
/* 其他信息 */
.info-other-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.info-other-wide{grid-column:1/-1}
/* 底部操作栏 */
.info-foot{display:flex;align-items:center;gap:18px;padding:13px 26px;border-top:1px solid var(--info-line);background:var(--info-anchor-bg);flex-shrink:0;flex-wrap:wrap}
.info-foot-prog{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--info-muted)}
.info-foot-pbar{width:130px;height:6px;background:var(--info-line-soft);border-radius:99px;overflow:hidden}
.info-foot-pbar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#5c7cfa,var(--info-accent));border-radius:99px;transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.32,.72,0,1)} /* P1：width → scaleX */
.info-foot-prog b{color:var(--info-text)}
.info-saved{font-size:12px;color:var(--info-green);display:flex;align-items:center;gap:5px;margin-left:auto;margin-right:auto;white-space:nowrap}
.info-saved.pulse{animation:pulse .6s}
@keyframes pulse{30%{transform:scale(1.08)}}
.info-foot-btns{display:flex;gap:10px;margin-left:auto}
.info-ghost-btn{border:1px solid var(--info-line);background:rgba(255,255,255,.06);border-radius:10px;padding:8px 18px;font-size:13px;cursor:pointer;color:var(--info-text);transition:.15s;font-family:inherit}
.info-ghost-btn:hover{border-color:var(--info-accent);color:var(--info-accent)}
.info-primary-btn{border:none;background:var(--info-accent);color:#fff;border-radius:10px;padding:8px 22px;font-size:13px;cursor:pointer;box-shadow:0 4px 12px var(--info-accent-ring);transition:.15s;font-family:inherit}
.info-primary-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
/* 作者：v4.7 单卡中英双列（a-card 复刻；卡片带 .ao-row.info-a-card 兼容既有委托绑定） */
.info-author-cols{display:block;margin-bottom:12px}
.info-author-cols::after{display:none}
#tabInfo .ao-row.info-a-card{display:block;border:1px solid var(--info-line);border-radius:14px;background:rgba(255,255,255,.04);margin-bottom:14px;overflow:hidden;box-shadow:none}
#tabInfo .ao-row.info-a-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.3)}
#tabInfo .ao-row.info-a-card.corr{border-color:rgba(116,143,252,.55);box-shadow:0 0 0 3px var(--info-accent-ring)}
#tabInfo .ao-row.info-a-card.dragging{opacity:.6}
#tabInfo .ao-row.info-a-card.drag-over-top{box-shadow:0 -3px 0 0 var(--info-accent)}
#tabInfo .ao-row.info-a-card.drag-over-bottom{box-shadow:0 3px 0 0 var(--info-accent)}
#tabInfo .ao-row.info-a-card .ao-drag{cursor:grab;color:var(--info-muted);font-size:14px;letter-spacing:-1px;padding:0 2px;flex:none}
#tabInfo .ao-row.info-a-card .ao-name{flex:1 1 auto;width:100%}
#tabInfo .ao-row.info-a-card .ao-role,#tabInfo .ao-row.info-a-card .ao-marker{flex:none}
#tabInfo .ao-row.info-a-card .ao-del{margin-left:auto;border:none;background:none;color:var(--info-muted);cursor:pointer;font-size:15px;width:28px;height:28px;border-radius:8px;line-height:1;flex:none}
#tabInfo .ao-row.info-a-card .ao-del:hover{background:var(--info-red-soft);color:var(--info-red)}
#tabInfo .ao-row.info-a-card input,#tabInfo .ao-row.info-a-card select{border:1px solid var(--info-line);border-radius:7px;background:var(--info-input-bg);color:var(--info-text);font-size:12.5px;padding:5px 8px;height:30px;box-sizing:border-box;font-family:inherit;width:100%}
#tabInfo .ao-row.info-a-card input:focus,#tabInfo .ao-row.info-a-card select:focus{outline:none;border-color:var(--info-accent);box-shadow:0 0 0 2px var(--info-accent-ring);background:var(--info-field)}
#tabInfo .ao-row.info-a-card input::placeholder{color:var(--info-faint)}
/* 卡片头 */
#tabInfo .ao-row.info-a-card .ao-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px dashed var(--info-line-soft)}
#tabInfo .ao-row.info-a-card .ao-head select{border:1px solid var(--info-line);background:var(--info-input-bg);border-radius:8px;height:30px;padding:0 8px;font-size:12px;color:var(--info-text);cursor:pointer;font-family:inherit;flex:none;width:auto}
/* 下拉弹出层配色：跟随主题（option 显式配色兜底） */
#tabInfo select option{background-color:var(--card);color:var(--fg)}
#tabInfo select option:checked{background-color:var(--info-accent);color:#fff}
#tabInfo .ao-row.info-a-card .ao-a-name{font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px;min-width:0;color:var(--info-text)}
#tabInfo .ao-row.info-a-card .ao-a-name .a-star{color:var(--info-accent);display:none}
#tabInfo .ao-row.info-a-card.corr .ao-a-name .a-star{display:inline}
#tabInfo .ao-row.info-a-card.corr .corr-tag{display:inline-block}
.corr-tag{display:none;font-size:11px;background:var(--info-accent-soft);color:var(--info-accent);padding:1px 8px;border-radius:99px;flex:none}
/* 中英双列体 */
#tabInfo .ao-row.info-a-card .ao-body{display:grid;grid-template-columns:1fr 1fr;position:relative}
#tabInfo .ao-row.info-a-card .ao-body::after{content:'';position:absolute;top:14px;bottom:14px;left:50%;width:1px;background:var(--info-line-soft)}
#tabInfo .ao-row.info-a-card .ao-col{padding:12px 14px}
/* r122：中英双列严格对齐——去掉英文列底色差，两列除文案语言外样式一致 */
#tabInfo .ao-row.info-a-card .f-row{margin-bottom:10px}
#tabInfo .ao-row.info-a-card .f-row:last-child{margin-bottom:0}
#tabInfo .ao-row.info-a-card .f-2{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}
#tabInfo .ao-row.info-a-card .ao-org-wrap{position:relative;flex:none;display:block;width:100%}
#tabInfo .ao-row.info-a-card .ao-org-suggest{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--card);border:1px solid var(--info-line);border-radius:10px;z-index:20;max-height:180px;overflow-y:auto;box-shadow:0 10px 30px rgba(0,0,0,.2)}
#tabInfo .ao-row.info-a-card .ao-org-suggest div{padding:7px 10px;font-size:12px;cursor:pointer;color:var(--info-text)}
#tabInfo .ao-row.info-a-card .ao-org-suggest div:hover{background:var(--info-accent-soft)}
/* 多单位块（每个作者可多个单位；块内中英双列） */
#tabInfo .ao-row.info-a-card .ao-orgblocks{padding:0 14px 2px;border-top:1px dashed var(--info-line-soft)}
#tabInfo .ao-row.info-a-card .ao-orgblk{border:1px dashed var(--info-line);border-radius:10px;margin-bottom:10px;overflow:hidden;background:rgba(255,255,255,.015)}
#tabInfo .ao-row.info-a-card .ao-orgblk:first-of-type{margin-top:10px}
#tabInfo .ao-row.info-a-card .ao-blk-head{display:flex;align-items:center;gap:8px;padding:4px 10px;background:rgba(255,255,255,.03);border-bottom:1px dashed var(--info-line-soft);font-size:11.5px;color:var(--info-muted)}
#tabInfo .ao-row.info-a-card .ao-del-org{margin-left:auto;border:none;background:none;color:var(--info-muted);cursor:pointer;font-size:14px;width:24px;height:24px;border-radius:6px;line-height:1;flex:none;padding:0}
#tabInfo .ao-row.info-a-card .ao-del-org:hover{background:var(--info-red-soft);color:var(--info-red)}
#tabInfo .ao-row.info-a-card .ao-blk-cols{display:grid;grid-template-columns:1fr 1fr;position:relative}
#tabInfo .ao-row.info-a-card .ao-blk-cols::after{content:'';position:absolute;top:8px;bottom:8px;left:50%;width:1px;background:var(--info-line-soft)}
#tabInfo .ao-row.info-a-card .ao-blk-cols .ao-col{padding:8px 10px}
#tabInfo .ao-row.info-a-card .ao-add-org{display:block;margin:2px auto 12px;border:1px dashed var(--info-line);background:none;color:var(--info-accent);border-radius:8px;padding:4px 18px;font-size:12px;cursor:pointer;font-family:inherit}
#tabInfo .ao-row.info-a-card .ao-add-org:hover{background:var(--info-accent-soft);border-color:var(--info-accent)}

/* ---------- 灵动岛三态：卡片(info-card 居中摘要卡) / 窗口(info-window 全宽编辑) ---------- */
.tf-paper-edit .tab-pane#tabInfo.info-card{
  position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);margin:0 auto;
  width:min(342px,92vw);height:248px;z-index:25;border-radius:26px;cursor:default;
  box-shadow:0 26px 64px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.07);
  overflow:hidden;display:flex;flex-direction:column;background:rgba(21,21,26,.94);
  backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);
  border:1px solid rgba(255,255,255,.09);
  animation:tfIslandIn .45s cubic-bezier(.2,.9,.3,1.15);
}
.tf-paper-edit .tab-pane#tabInfo.info-card *{color-scheme:dark}
/* 卡片面 */
.info-face-card{position:absolute;inset:0;padding:16px 17px 13px;display:flex;flex-direction:column;
  opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .28s,transform .28s cubic-bezier(.32,.72,0,1)} /* P1：.5s overshoot → .28s spring 近似（去弹性） */
.tf-paper-edit .tab-pane#tabInfo.info-card .info-face-card{opacity:1;pointer-events:auto;transform:none;transition-delay:.12s}
.info-card-top{display:flex;gap:12px;align-items:center;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}
.info-ring-lg{position:relative;display:grid;place-items:center;flex:none;border-radius:50%;width:48px;height:48px}
.info-ring-lg::before{content:'';position:absolute;inset:-32%;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,212,59,.30) 0%,rgba(255,212,59,.13) 42%,rgba(255,212,59,0) 68%);filter:blur(3px);opacity:0;transition:opacity .45s}
.info-ring-lg svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.info-ring-lg circle{fill:none;stroke-width:3}
.info-ring-lg .ir-bg{stroke:rgba(255,255,255,.14)}
.info-ring-lg .ir-fg{stroke:#ffd43b;stroke-linecap:round;stroke-dasharray:97.4;stroke-dashoffset:97.4;transition:stroke-dashoffset .8s cubic-bezier(.3,1.3,.4,1),stroke .45s}
#tabInfo.isl-start .info-ring-lg::before{opacity:1}
#tabInfo.isl-done .info-ring-lg::before{background:radial-gradient(circle,rgba(81,207,102,.32) 0%,rgba(81,207,102,.14) 42%,rgba(81,207,102,0) 68%)}
#tabInfo.isl-done .info-ring-lg .ir-fg{stroke:#51cf66;transition:stroke-dashoffset .8s cubic-bezier(.3,1.3,.4,1),stroke .45s}
.tf-paper-edit .tab-pane#tabInfo.done .ir-fg{stroke:#51cf66}
.info-card-name{color:#fff;font-weight:700;font-size:14px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all}
.info-card-name.empty{opacity:.5;font-weight:500}
.info-card-sub{font-size:11px;color:rgba(255,255,255,.5);margin-top:3px}
.info-tasks{padding:11px 2px;display:flex;flex-direction:column;gap:9px;border-bottom:1px solid rgba(255,255,255,.08)}
.info-task{display:flex;align-items:center;gap:9px;font-size:12.5px;color:rgba(255,255,255,.85)}
.info-task .tdot{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;flex:none;font-size:9.5px;font-weight:800;background:rgba(255,255,255,.1);color:transparent;transition:.3s}
.info-task.ok .tdot{background:#51cf66;color:#0b3d22}
.info-task .tstate{margin-left:auto;font-size:11px;color:rgba(255,255,255,.38)}
.info-task.ok .tstate{color:#51cf66}
.info-card-foot{display:flex;align-items:center;padding-top:12px;margin-top:auto}
.info-card-save{font-size:11px;color:rgba(255,255,255,.42)}
.info-card-btn{margin-left:auto;border:none;background:#fff;color:#141418;border-radius:999px;padding:7px 17px;font-size:12.5px;font-weight:600;cursor:pointer;transition:.2s;font-family:inherit}
.info-card-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(255,255,255,.28)}
.info-card-btn:active{transform:translateY(0) scale(.97)}
/* 编辑面在卡片态隐藏（窗口态默认可见） */
.tf-paper-edit .tab-pane#tabInfo.info-card .info-island,
.tf-paper-edit .tab-pane#tabInfo.info-card .info-anchor,
.tf-paper-edit .tab-pane#tabInfo.info-card .info-body,
.tf-paper-edit .tab-pane#tabInfo.info-card .info-foot{display:none!important}
/* 卡片态下编辑面隐藏，保证 z-index 不被卡片面遮挡 */
.tf-paper-edit .tab-pane#tabInfo.info-card .info-face-card{z-index:3}
/* ---------- 自动翻译独立开关 + 徽章（v4.7） ---------- */
.info-switch{position:relative;display:inline-block;width:34px;height:20px;flex:none;vertical-align:middle}
.info-switch input{opacity:0;width:0;height:0}
.info-switch span{position:absolute;inset:0;background:var(--info-line);border-radius:999px;cursor:pointer;transition:.2s}
.info-switch span::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.info-switch input:checked+span{background:var(--info-accent)}
.info-switch input:checked+span::after{transform:translateX(14px)}
.info-badge-state{font-size:11px;padding:2px 9px;border-radius:99px;white-space:nowrap;transition:.2s;border:none;cursor:default;font-family:inherit}
.info-badge-state.auto{background:var(--info-accent-soft);color:var(--info-accent)}
.info-badge-state.manual{background:rgba(250,196,25,.15);color:#FCC419}
.info-badge-state.off{background:var(--info-line-soft);color:var(--info-muted)}
/* ---------- 作者卡片（v4.7 a-card 复刻：单卡中英双列） ---------- */
.info-author-cols{display:block}
.info-author-cols::after{display:none}
.info-a-card{border:1px solid var(--info-line);border-radius:14px;background:rgba(255,255,255,.04);margin-bottom:14px;transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden}
.info-a-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.3)}
.info-a-card.corr{border-color:rgba(116,143,252,.55);box-shadow:0 0 0 3px var(--info-accent-ring)}
.info-a-card.removing{opacity:0;transform:translateX(20px);transition:.25s}
.info-a-card.dragging{opacity:.6}
.info-a-card.drag-over-top{box-shadow:0 -3px 0 0 var(--info-accent)}
.info-a-card.drag-over-bottom{box-shadow:0 3px 0 0 var(--info-accent)}
.info-a-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px dashed var(--info-line-soft)}
.info-a-head .ao-drag{cursor:grab;color:var(--info-muted);font-size:14px;letter-spacing:-1px;flex:none;padding:0 2px}
.info-a-name{font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px;min-width:0;color:var(--info-text)}
.info-a-name .a-star{color:var(--info-accent);display:none}
.info-a-card.corr .info-a-name .a-star{display:inline}
.info-a-card.corr .corr-tag{display:inline-block}
.corr-tag{display:none;font-size:11px;background:var(--info-accent-soft);color:var(--info-accent);padding:1px 8px;border-radius:99px;flex:none}
.info-a-head select{border:1px solid var(--info-line);background:var(--info-input-bg);border-radius:8px;height:30px;padding:0 8px;font-size:12px;color:var(--info-text);cursor:pointer;font-family:inherit;flex:none}
.info-a-head .ao-del{margin-left:auto;border:none;background:none;color:var(--info-muted);cursor:pointer;font-size:15px;width:28px;height:28px;flex:none;line-height:1}
.info-a-head .ao-del:hover{background:var(--info-red-soft);color:var(--info-red)}
.info-a-body{display:grid;grid-template-columns:1fr 1fr;gap:0;position:relative}
.info-a-body .info-ti{height:36px;font-size:13px}
.info-a-body::after{content:'';position:absolute;top:14px;bottom:14px;left:50%;width:1px;background:var(--info-line-soft)}
.info-a-col{padding:14px 16px}
.info-a-col.en{background:rgba(255,255,255,.03);border-radius:0 0 13px 0}
.info-a-col .f-row{margin-bottom:10px}
.info-a-col .f-row:last-child{margin-bottom:0}
.info-a-col .ao-en-name,.info-a-col .ao-en-org,.info-a-col .ao-en-loc,.info-a-col .ao-en-zip{width:100%}
.info-a-col input,.info-a-col select{border:1px solid var(--info-line);border-radius:7px;background:var(--info-input-bg);color:var(--info-text);font-size:12.5px;padding:5px 8px;height:30px;box-sizing:border-box;font-family:inherit;width:100%}
.info-a-col input:focus,.info-a-col select:focus{outline:none;border-color:var(--info-accent);box-shadow:0 0 0 2px var(--info-accent-ring);background:var(--info-field)}
.info-a-col input::placeholder{color:var(--info-faint)}
.info-a-col .ao-org-wrap{position:relative;margin-bottom:10px}
.info-a-col .ao-org-wrap input{margin-bottom:0}
.info-a-col .ao-org-suggest{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--card);border:1px solid var(--info-line);border-radius:10px;z-index:20;max-height:180px;overflow-y:auto;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.info-a-col .ao-org-suggest div{padding:7px 10px;font-size:12px;cursor:pointer;color:var(--info-text)}
.info-a-col .ao-org-suggest div:hover{background:var(--info-accent-soft)}
.f-2{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}
.info-add-author{flex:1;border:1.5px dashed var(--info-line);background:none;border-radius:12px;padding:12px;color:var(--info-muted);cursor:pointer;font-size:13px;transition:.15s;font-family:inherit}
.info-add-author:hover{border-color:var(--info-accent);color:var(--info-accent);background:var(--info-accent-soft)}
/* r122：中英卡片标题（v4.7 card-en 风格）盒样式并入上方 info-card 共享规则，避免双规则漂移 */

/* 窄窗 */
@media (max-width:860px){
  .info-pair{grid-template-columns:1fr;gap:14px}
  .info-pair::after{display:none}
  .info-other-grid{grid-template-columns:1fr}
  .info-author-cols{grid-template-columns:1fr;gap:12px}
  .info-author-cols::after{display:none}
  #tabInfo .ao-row.info-a-card .ao-body{grid-template-columns:1fr}
  #tabInfo .ao-row.info-a-card .ao-body::after{display:none}
  .info-body{padding:16px 14px 20px}
  .info-anchor{padding:8px 12px}
  .rail-title-tag{display:none}
  .rail-title-text{max-width:min(32vw,170px)}
}

/* =====================================================================
   r62：灵动岛三态 v4.7 复刻（参考代码 1:1）
   isl-compact(胶囊) / isl-open(卡片) / isl-edit(编辑窗)
   —— fixed 顶部悬浮，本体尺寸/圆角/top 过渡动画，无浅色闪帧
===================================================================== */
.tf-paper-edit .tab-pane#tabInfo{
  /* P0：几何动画现由 JS spring 独占（islSpring），此 transition 仅作无 JS 驱动时的兜底；
     由 .55s 压至 .3s 并去 overshoot（避免布局重排长时间占用主线程） */
  transition:width .3s cubic-bezier(.3,.8,.35,1),
             height .3s cubic-bezier(.3,.8,.35,1),
             top .3s cubic-bezier(.3,.8,.35,1),
             border-radius .3s cubic-bezier(.25,1,.35,1),
             background-color .3s,border-color .3s,box-shadow .3s;
}
.tf-paper-edit .tab-pane#tabInfo.isl-compact,
.tf-paper-edit .tab-pane#tabInfo.isl-open,
.tf-paper-edit .tab-pane#tabInfo.isl-edit{
  position:fixed;top:6px;left:0;right:0;margin:0 auto;z-index:120;
  display:flex;flex-direction:column;
  /* 胶囊宽 ×3：显示更多标题信息 */
  width:min(786px,calc(100vw - 40px));height:42px;overflow:hidden;
  background:var(--bg);
  border:1px solid var(--border);border-radius:999px;cursor:pointer;
  box-shadow:0 14px 40px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.04);
  color:var(--fg);
}
.tf-paper-edit .tab-pane#tabInfo.isl-compact:hover:not(.isl-open):not(.isl-edit){box-shadow:0 18px 48px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.05)}
.tf-paper-edit .tab-pane#tabInfo.isl-open{width:min(342px,calc(100vw - 28px));height:248px;border-radius:26px;cursor:default;box-shadow:0 26px 64px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.05)}
/* r74：胶囊/卡片锚定编辑半栏上方居中，宽度随编辑区自适应；水平中线对齐「顶栏底线 ↔ 预览标题栏底线」中线（y80：top-7）；编辑窗（isl-edit）保持全屏 fixed 居中 */
.tf-paper-edit .tab-pane#tabInfo.isl-compact,
.tf-paper-edit .tab-pane#tabInfo.isl-open{position:absolute;top:-7px}
/* r79：胶囊宽度改由 JS 按编辑区文字行宽同步（syncIslandWidth）；卡片仍固定宽 */
.tf-paper-edit .tab-pane#tabInfo.isl-open{width:min(342px,calc(100% - 20px))}
/* r79：向下滚岛上收隐藏（translateY 出视口），回顶部落下；过渡动画 */
.tf-paper-edit .tab-pane#tabInfo{
  transition:transform .3s cubic-bezier(.3,.8,.35,1),opacity .26s ease;
}
.tf-paper-edit .tab-pane#tabInfo.isl-up{
  transform:translateY(-80px);opacity:0;pointer-events:none;
}
/* 宽屏双栏：两个半栏内容均自带滚动容器，pane overflow:visible 以允许岛/标题栏上溢到顶栏间隙 */
@media (min-width:1201px){
  .tf-window-body[data-panel="paper"][data-mode="dual"] .tf-pane-edit,
  .tf-window-body[data-panel="paper"][data-mode="dual"] .tf-pane-preview{overflow:visible}
}
/* 窄屏堆叠：编辑 pane 同样豁免（岛 top-7 不被裁）；正文滚动仍由内部 editor-area 承担 */
@media (max-width:1200px){
  .tf-window-body[data-panel="paper"][data-mode="dual"] .tf-pane-edit{overflow:visible}
}
.tf-paper-edit .tab-pane#tabInfo.isl-edit{
  /* r143：高度/top 由 JS 按页面比例内联设置（窗口宽高比 = 视口宽高比），宽度策略不变；
     此处为未设置时的默认兜底 */
  top:calc(50vh - min(520px,47vh));
  width:min(1400px,97vw);height:min(1040px,94vh);
  border-radius:20px;cursor:default;
  box-shadow:0 26px 64px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.05);
}
/* 呼吸/弹跳：胶囊加宽后不再缩放动画（缩放在 786px 上观感突兀） */
#tabInfo.isl-compact.isl-breathe{animation:none}
#tabInfo.isl-compact.isl-pop{animation:islPop .55s cubic-bezier(.3,1.6,.4,1)!important}
@keyframes islPop{from{transform:scale(.96);opacity:.4}}
/* ---------- 胶囊面（compact 唯一面） ---------- */
#tabInfo .isl-pills{position:absolute;inset:0;display:flex;align-items:center;
  transition:opacity .3s,transform .5s cubic-bezier(.3,1.3,.4,1);transition-delay:.18s}
#tabInfo.isl-open .isl-pills,#tabInfo.isl-edit .isl-pills{opacity:0;transform:translateY(-10px);pointer-events:none;transition-delay:0s}
#tabInfo .isl-pill-left{flex:1;height:100%;min-width:0;display:flex;align-items:center;gap:9px;padding:0 15px;border-radius:999px;cursor:pointer}
/* r73：标题在胶囊内居中——左侧「摘要:」占位与右侧 hint 等宽配平（r153：占位改文字，样式与右侧对称） */
#tabInfo .isl-pill-left::before{content:"摘要:";flex:none;width:52px;box-sizing:border-box;font-size:10.5px;color:var(--muted-fg);text-align:left}
#tabInfo .isl-mini-title{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--fg);text-align:center;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:.2s}
#tabInfo .isl-mini-title.empty{font-weight:400;opacity:.5}
#tabInfo .isl-mini-hint{font-size:10.5px;color:var(--muted-fg);flex:none;width:52px;box-sizing:border-box;text-align:right}
/* ---------- 卡片面（isl-open 显示；编辑面隐藏规则同参考三连 class） ---------- */
#tabInfo.isl-open .info-face-card{opacity:1;pointer-events:auto;transform:none;transition-delay:.13s}
#tabInfo.isl-edit .info-face-card{opacity:0;pointer-events:none;transition-delay:0s}
/* ---------- 编辑面：compact/open 强制隐藏，edit 显示 ---------- */
/* ---------- 编辑态调光层（fixed 全屏，仅 edit 显示） ---------- */
.info-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.38);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  z-index:119;display:none;opacity:1;animation:islFade .25s}
#tabInfo:not([hidden]).isl-edit ~ .info-backdrop{display:block}
@keyframes islFade{from{opacity:0}}
/* 编辑面容器（参考 isl-face--edit：absolute 重叠 + opacity/transform 过渡，收起时先淡出让位） */
#tabInfo .isl-face--edit{position:absolute;inset:0;display:flex;flex-direction:column;color:var(--info-text);
  opacity:0;pointer-events:none;transform:translateY(14px) scale(.985);z-index:2;
  transition:opacity .18s ease,transform .4s cubic-bezier(.3,1.2,.4,1)}
#tabInfo.isl-edit .isl-face--edit{opacity:1;pointer-events:auto;transform:none;transition-delay:.16s}
/* ---------- 编辑窗头部（参考 m-head：论文信息 + 副标题 + 关闭） ---------- */
#tabInfo .isl-mhead{display:flex;align-items:center;justify-content:space-between;padding:18px 26px 14px;border-bottom:1px solid var(--info-line-soft);background:transparent}
#tabInfo .isl-mtitle h1{font-size:19px;font-weight:700;color:var(--info-text)}
#tabInfo .isl-mtitle h1.serif{font-family:var(--font-ui)}
#tabInfo .isl-mtitle .isl-msub{font-size:12px;color:var(--info-muted);margin-left:10px}
#tabInfo .isl-mactions{display:flex;gap:10px;align-items:center}
#tabInfo .isl-close-btn{width:34px;height:34px;border:none;border-radius:10px;background:transparent;color:var(--info-muted);cursor:pointer;font-size:16px;font-family:inherit}
#tabInfo .isl-close-btn:hover{background:var(--info-line-soft);color:var(--info-text)}
/* hint 提示（参考 .hint） */
.info-hint{font-size:11px;color:var(--info-muted);margin-top:6px}
/* 编辑区小节淡入（参考 .sec.in：进入编辑窗逐个浮现） */
#tabInfo.isl-edit .info-sec{opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s}
#tabInfo.isl-edit .info-sec.in{opacity:1;transform:none}
/* 窄窗：胶囊加宽后标题用 flex 自适应，不再额外限宽 */
@media (max-width:640px){
  /* r73：hint 隐藏时左侧配平占位符必须成对隐藏，否则标题中心偏右半格 */
  #tabInfo .isl-mini-hint{display:none}
  #tabInfo .isl-pill-left::before{display:none}
}

/* 窄屏优化（窄窗口可用性：1200 以下双栏改为上下堆叠保留预览；顶栏/纸张/表单逐级收紧）
 *  追加于第七轮，覆盖/补充既有 1200/980/900 断点，优先级同后者胜。
 * ========================================================================== */
@media (max-width:1200px){
  /* 论文/格式：编辑在上、预览在下，保留实时预览能力（不再隐藏预览） */
  .tf-window-body[data-panel="paper"][data-mode="dual"] .tf-pane-preview,
  .tf-window-body[data-panel="format"][data-mode="dual"] .tf-pane-preview{
    display:flex;flex:0 1 45%;min-height:240px;flex-direction:column;
    border-top:1px solid var(--border);
  }
  .tf-window-body[data-panel="paper"][data-mode="dual"] .tf-pane-edit,
  .tf-window-body[data-panel="format"][data-mode="dual"] .tf-pane-edit{flex:1 1 55%}
  /* 文献：保持原退化（列表+详情槽），隐藏预览 */
  .tf-window-body[data-panel="ref"][data-mode="dual"] .tf-pane-preview{display:none}
  .tf-window-body[data-panel="ref"][data-mode="dual"] .ref-edit-pane .ref-detail-slot{display:flex}
  /* 文献列表：窄屏减宽 */
  .tf-window-body[data-panel="ref"] .view-ref-list{flex:0 0 260px}
  /* 顶栏：隐藏品牌英文副标，文件名/保存状态腾出空间 */
  .rail-brand-sub{display:none}
  .rail-brand-label{min-width:44px;padding:0 8px}
  .rail-cur-file .editor-status .sep,
  .rail-cur-file .editor-status #wordCountChip{display:none}
  .rail-cur-file-name{max-width:calc(50vw - 140px)}
}
@media (max-width:1100px){
  /* 编辑器纸张：内边距/最小高度随窗收紧 */
  #editor-container{padding:30px 34px;min-height:440px}
  .tf-paper-edit #tabBody .editor-area{padding-top:16px}
  /* 首页：头部与内容边距收紧 */
  .home-head{padding:0 16px}
  .home-wrap{padding:18px 16px}
  .home-viewbar{margin-left:8px}
  .home-dir-cta{padding:0 12px}
  /* 二级面板减宽（悬浮与推挤共用变量） */
  :root{--panel-w:220px}
  .rail-brand-label{width:220px}
  /* 格式配置字段：两列/三列 → 单列 */
  .wcfg-grid,.wcfg-grid.three{grid-template-columns:1fr}
  .wcfg-left{flex:0 0 50%;min-width:0}
}
@media (max-width:980px){
  /* 弹窗内左右分栏已由既有断点转纵向；预览区给足高度 */
  .wcfg-modal{width:min(1080px,96vw);padding:14px 16px}
  .wcfg-right{min-height:420px}
}
@media (max-width:900px){
  /* 主窗口边距收紧 */
  .tf-window{width:calc(100% - 12px);margin:6px}
  .tf-window-body{padding:8px}
  .tf-window-head{padding:8px 10px;gap:6px}
  /* 三视图切换/胶囊标签：紧凑 */
  .tf-seg-item{padding:4px 10px;font-size:12px}
  .paper-tab{padding:4px 12px;font-size:12px}
  /* 编辑器纸张继续收紧 */
  #editor-container{padding:22px 26px;min-height:400px}
  .tf-paper-edit #tabBody .editor-area{padding-top:24px}
  /* 顶栏：文件名更短、保存状态只留状态文字 */
  .rail{padding:0 8px;gap:6px}
  .rail-brand-label{margin-left:-8px}
  .rail-cur-file{max-width:55%}
  .rail-cur-file-name{max-width:calc(50vw - 120px);font-size:12.5px}
  .rail-cur-file .editor-status #saveTime{max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* 首页卡片更小 */
  .home-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
  .home-dir-name{max-width:170px}
  /* 文献列表再减宽 */
  .tf-window-body[data-panel="ref"] .view-ref-list{flex:0 0 200px}
  /* 滚动区留白收紧 */
  .paper-scroll{padding:6px 4px 20px}
  .editor-area{padding:4px 4px 20px}
  /* 顶栏设置菜单：不超出视口 */
  .top-settings-menu{width:min(280px,92vw);right:8px}
  .top-theme-menu{width:min(312px,92vw);right:8px}
  /* 格式配置胶囊入口：紧凑 */
  .fmt-mgr-open-btn{padding:4px 10px;font-size:12px}
}
@media (max-width:720px){
  /* 顶栏：隐藏保存状态（窄窗让位给文件名） */
  .rail-cur-file .editor-status{display:none}
  .rail-brand-label .rail-brand-text{font-size:13px}
  /* 双栏预览下限降低 */
  .tf-window-body[data-panel="paper"][data-mode="dual"] .tf-pane-preview,
  .tf-window-body[data-panel="format"][data-mode="dual"] .tf-pane-preview{min-height:200px}
}
@media (max-width:640px){
  /* 编辑器纸张：最紧凑 */
  #editor-container{padding:14px 12px;min-height:340px}
  .tf-paper-edit #tabBody .editor-area{padding-top:32px}
  /* 顶栏：品牌文字缩小 */
  .rail-brand-label .rail-brand-text{font-size:12px}
  .rail-cur-file-name{max-width:calc(50vw - 100px)}
  /* 首页操作行允许换行 */
  .home-head{flex-wrap:wrap;height:auto;min-height:54px;padding:6px 12px}
  .home-head .home-viewbar{margin-left:0}
}

/* ==========================================================================
 *  第九轮：参考文献列表库 / 格式配置管理 侧栏 —— 可拖拽调宽 + 窄窗优化
 *  手柄贴侧栏左缘（右侧滑出侧栏，向左/右拖动改变宽度），双击恢复默认 432px
 * ========================================================================== */
#refLibSidebar,#fmtMgrSidebar{width:432px}
#refLibSidebar .ref-lib-drag,#fmtMgrSidebar .ref-lib-drag,#citeSidebar .ref-lib-drag{
  position:absolute;left:0;top:0;bottom:0;width:7px;cursor:col-resize;
  z-index:3;touch-action:none;user-select:none;-webkit-user-select:none;
  background:transparent;
}
#refLibSidebar .ref-lib-drag::before,#fmtMgrSidebar .ref-lib-drag::before,#citeSidebar .ref-lib-drag::before{
  content:"";position:absolute;left:2px;top:0;bottom:0;width:3px;
  background:transparent;transition:background .15s ease;
}
#refLibSidebar .ref-lib-drag:hover::before,#fmtMgrSidebar .ref-lib-drag:hover::before,
#refLibSidebar .ref-lib-drag.dragging::before,#fmtMgrSidebar .ref-lib-drag.dragging::before,
#citeSidebar .ref-lib-drag:hover::before,#citeSidebar .ref-lib-drag.dragging::before{
  background:var(--blue);
}
@media (max-width:900px){
  #refLibSidebar,#fmtMgrSidebar{width:min(432px,86vw)}
  #refLibSidebar .ref-lib-header,#fmtMgrSidebar .ref-lib-header{padding:10px 12px 6px}
  #refLibSidebar .ref-lib-title,#fmtMgrSidebar .ref-lib-title{font-size:14px}
  #refLibSidebar .ref-lib-toolbar,#fmtMgrSidebar .ref-lib-toolbar{padding:6px 10px}
  #refLibSidebar .ref-lib-body,#fmtMgrSidebar .ref-lib-body{padding:8px 10px}
  #refLibSidebar .ref-lib-tb-btn,#fmtMgrSidebar .ref-lib-tb-btn{padding:3px 8px;font-size:12px}
}
@media (max-width:720px){
  #refLibSidebar,#fmtMgrSidebar{width:min(92vw,420px);max-width:92vw}
  #refLibSidebar .ref-lib-import,#fmtMgrSidebar .ref-lib-import{font-size:11.5px;padding:4px 9px}
  #refLibSidebar .ref-lib-path,#fmtMgrSidebar .ref-lib-path{max-width:42vw}
}
@media (max-width:560px){
  #refLibSidebar,#fmtMgrSidebar{width:min(96vw,380px);max-width:96vw}
}
/* 第十轮：拖拽引导提示气泡（首次打开侧栏时显示；一次性） */
.ref-lib-hint{
  position:absolute;top:54px;left:12px;right:12px;z-index:4;
  background:var(--blue);color:var(--blue-fg);font-size:12px;line-height:1.55;
  padding:8px 12px;border-radius:8px;box-shadow:0 4px 16px rgba(59,91,219,.35);
  opacity:0;transform:translateY(-6px);transition:opacity .3s ease,transform .3s ease;
  pointer-events:none;
}
.ref-lib-hint.show{opacity:1;transform:none}
/* 工作目录授权/恢复按钮：绿色（参照 home-dir-cta） */
#btnPickDirFromEmpty{background:var(--card);color:#256B2A;border:1.5px solid #43A047;font-weight:500;border-radius:var(--radius-lg)}
#btnPickDirFromEmpty:hover{background:rgba(76,175,80,.10);color:#256B2A;border-color:#256B2A}
#btnRestoreLastDir{background:var(--card);color:#256B2A;border:1px solid #43A047;font-weight:500;border-radius:var(--pill)}
#btnRestoreLastDir:hover{background:rgba(76,175,80,.10);color:#256B2A;border-color:#256B2A}
/* ===== 深色模式：自绘控件适配（HIG「灵活」原则，保证可读性） ===== */
.dark .panel-quick-new,.dark .panel-quick-new:hover{color:var(--blue-fg)}
.dark #btnHomeNewPaper{color:var(--blue-fg)}
.dark .home-multi-del{color:var(--blue-fg)}
.dark .dir-head-split .split-new{color:var(--blue-fg);border-left-color:rgba(26,24,21,.28)}
.dark #btnDocMultiSelect.active{color:var(--blue-fg)}
.dark .refs-import-btn{color:var(--blue-fg)}
.dark .refs-import-btn:hover{background:var(--blue-hover);color:var(--blue-fg)}
.dark .refs-cite-btn{background:var(--input-bg);border-color:var(--blue);color:var(--blue);box-shadow:0 2px 8px rgba(0,0,0,.35)}
.dark .refs-cite-btn:hover,.dark .refs-cite-btn.has-sel{background:var(--blue);color:var(--blue-fg)}
.dark .btn-danger-solid,.dark .caption-confirm-btn,.dark #libSidebarExportGo{color:var(--primary-fg)}
.dark .mermaid-editor-actions button.primary{color:var(--blue-fg)}
/* 绿色授权控件：深色下换亮绿，保证文字对比度 */
.dark .home-dir-cta{color:#81C784;border-color:#66BB6A}
.dark .home-dir-cta:hover{background:rgba(102,187,106,.16);color:#A5D6A7;border-color:#81C784}
.dark .home-dir-cta:focus-visible{outline-color:#81C784}
.dark .home-sort-item.on{color:#81C784}
.dark .home-sort-btn:focus-visible{outline-color:#66BB6A}
.dark #btnPickDirFromEmpty{color:#81C784;border-color:#66BB6A}
.dark #btnPickDirFromEmpty:hover{background:rgba(102,187,106,.16);color:#A5D6A7;border-color:#81C784}
.dark #btnRestoreLastDir{color:#81C784;border-color:#66BB6A}
.dark #btnRestoreLastDir:hover{background:rgba(102,187,106,.16);color:#A5D6A7;border-color:#81C784}
/* 白底浮层控件：换主题底色 */
.dark .mermaid-editor{background:var(--card);border-color:var(--border)}
.dark .mermaid-editor-actions button{background:var(--input-bg);border-color:var(--border)}
/* ==========================================================================
 *  r71 编辑器交互改造：空行「+」插入菜单 ｜ 浮动条撤销/重做 ｜ 引用侧栏
 * ========================================================================== */
/* 空行手柄块：样式标签换为「+」SVG 图标（r131：color 用 --blue，原 --blue-fg 为蓝底前景色，在浅色卡片上不可见） */
#hbParaTool.empty-mode .hb-para-style{font-family:var(--font-ui);font-weight:400;font-size:16px;line-height:1;color:var(--blue);display:inline-flex;align-items:center;justify-content:center}
#hbParaTool.empty-mode .hb-para-style svg{display:block;width:14px;height:14px;flex:none}
/* 宽度保持 40px：与 place() 的 left=r.left-40 定位一致 */
/* 空行插入菜单：横向一排（表格 / 图片 / 公式 / 流程图 / 分割线） */
#hbParaInsertMenu{position:fixed;z-index:2000;display:none;align-items:center;gap:2px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 22px rgba(0,0,0,.2);padding:4px;box-sizing:border-box}
#hbParaInsertMenu button{display:inline-flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;color:inherit;font-size:12.5px;line-height:1;padding:6px 10px;border-radius:6px;white-space:nowrap;font-family:var(--font-ui)}
#hbParaInsertMenu button:hover{background:var(--blue);color:#fff}
#hbParaInsertMenu button svg{flex:none}
/* 浮动工具条：撤销/重做分隔线（与列表分隔线同款式） */
.hb-sep-undo{height:20px}
/* 引用参考文献侧栏（复用 ref-lib-sidebar 外壳；内嵌原弹窗表单内容） */
/* 侧栏整体下移到顶栏（.rail 高 54px）之下，不再覆盖顶栏 */
#citeSidebar{top:54px}
/* 标题栏「插入引用」按钮：蓝色胶囊；非文献库页置灰（JS 切 disabled） */
#citeSidebar .cite-insert-btn{
  flex-shrink:0;display:inline-flex;align-items:center;
  background:var(--blue);color:var(--blue-fg);border:1px solid var(--blue);
  padding:5px 14px;border-radius:var(--pill);font-family:var(--font-ui);
  font-size:12.5px;font-weight:500;line-height:1.4;white-space:nowrap;cursor:pointer;
  transition:background .15s ease,border-color .15s ease;
}
#citeSidebar .cite-insert-btn:hover{background:var(--blue-hover);border-color:var(--blue-hover)}
/* 非文献库页：按钮仍可见，但置灰不可点击 */
#citeSidebar .cite-insert-btn:disabled{background:var(--hover);color:var(--muted-fg);border-color:var(--border);cursor:not-allowed}
#citeSidebar .cite-insert-btn:disabled:hover{background:var(--hover);border-color:var(--border)}
/* 标题栏搜索框：占满「插入引用」按钮右侧剩余空间 */
#citeSidebar .cite-header-search{
  flex:1 1 auto;min-width:100px;height:32px;padding:0 10px;
  border:1px solid var(--border);border-radius:6px;
  background:var(--input-bg);color:var(--fg);font-size:13px;font-family:var(--font-ui);
}
#citeSidebar .cite-header-search::placeholder{color:var(--muted-fg)}
#citeSidebar .cite-header-search:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 1px var(--blue-tint)}
/* r80：头部右缘为 fixed 引用按钮（44 宽 + 12 右距 = 56）让位，搜索框相应调窄不被遮挡 */
#citeSidebar .ref-lib-header{padding-right:64px}
/* 首次展开操作说明气泡（点击/6 秒后消失；一次性） */
#citeSidebar .cite-usage-hint{
  position:absolute;top:60px;left:12px;right:64px;z-index:6;
  background:#2b2a26;color:#fff;font-size:12.5px;line-height:1.65;
  padding:10px 12px;border-radius:9px;box-shadow:0 10px 28px rgba(0,0,0,.28);
  opacity:0;transform:translateY(-6px);transition:opacity .3s ease,transform .3s ease;
  cursor:pointer;
}
#citeSidebar .cite-usage-hint::before{
  content:'';position:absolute;top:-5px;left:44px;width:10px;height:10px;
  background:#2b2a26;transform:rotate(45deg);border-radius:2px;
}
#citeSidebar .cite-usage-hint.show{opacity:1;transform:none}
#citeImportActions[hidden]{display:none}
/* 粘贴识别页：题录核对/手动填写分区标题 */
#citeSidebar .cite-form-title{margin:16px 0 10px;padding-top:12px;border-top:1px solid var(--border);font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--fg)}
/* 文献库列表：随视口增高显示更多条目（搜索框与说明移入标题栏/气泡后，可用空间更大） */
#citeSidebar #citeLibList{max-height:calc(100vh - 210px);min-height:200px}
#citeSidebar .cite-side-modal{width:auto;max-width:none;max-height:none;margin:0;padding:2px 14px 12px;border:0;border-radius:0;box-shadow:none;background:transparent;display:flex;flex-direction:column;min-height:0}
#citeSidebar .cite-side-modal .tabs{flex:none}
#citeSidebar .cite-side-modal .tab-pane{max-height:none;overflow:visible}
#citeSidebar .cite-side-modal .formula-tips{flex:none}
#citeSidebar .cite-side-modal .modal-actions{flex:none;margin:10px 0 0}
#citeSidebar .ref-lib-body{padding:0}
/* 顶栏「引用参考文献」按钮按下/展开时沿用顶栏其它按钮的统一样式（.rail-item.active：浅蓝底+蓝色图标），不再使用蓝底白字 */
/* 引用侧栏：抵消全局 div.tab-pane 的 flex 行布局（原弹窗内为纵向表单） */
#citeSidebar .cite-side-modal div.tab-pane.active{display:block;flex:none;gap:0;padding:0}
#citeSidebar .cite-side-modal div.tab-pane{display:none}

/* ==========================================================================
 *  r72 顶栏调整：文稿库文字按钮 ｜ 品牌行 ｜ 面板头文稿搜索框
 * ========================================================================== */
/* 主页按钮 → 「文稿库」文字按钮（首页视图隐藏，显隐由 syncExportBtn 管理） */
.rail-item.rail-home{width:auto;padding:0 13px;gap:6px;font-family:var(--font-ui);font-size:14px;font-weight:600;letter-spacing:.2px;color:var(--fg);white-space:nowrap}
.rail-item.rail-home:hover{background:var(--hover)}
/* 品牌行：紧随面板开关按钮（原二级面板头标题位置改为文稿搜索框） */
.rail-brand-text{font-family:var(--font-ui);font-size:14px;font-weight:600;color:var(--fg);white-space:nowrap;letter-spacing:.2px;user-select:none;margin-right:2px}
/* 面板头搜索框：flex 自适应 + 两侧 10px 外边距（叠加 panel-tophead 12px 内边距后与
   「最近/星标/回收站」选项卡左右边缘精确对齐），文字居中显示 */
.panel-search{flex:1 1 auto;min-width:0;height:34px;padding:0 12px;margin:0 10px;text-align:center;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--fg);font-family:var(--font-ui);font-size:13px;outline:none;transition:border-color .15s ease-out,box-shadow .15s ease-out}
.panel-search::placeholder{color:var(--muted-fg)}
.panel-search:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(53,80,196,.12)}
/* 首页搜索空态提示 */
.home-empty-tip{grid-column:1/-1;text-align:center;color:var(--muted-fg);font-size:13px;padding:36px 0}
/* rail 按钮显隐：hidden 属性需覆盖 .rail-item 的 display:flex（同 #nav-export 模式） */
#nav-home[hidden]{display:none!important}
#nav-cite[hidden]{display:none!important}
#nav-save[hidden]{display:none!important} /* r195：编辑视图保存按钮同款补钉 */
/* r196：菜单透明遮罩——覆盖菜单以外全部页面，点击自动关闭菜单与遮罩；
   z-index 低于各下拉菜单（1200/2400）与弹窗，高于页面内容与工具条 */
.tf-menu-backdrop{position:fixed;inset:0;z-index:1150;background:transparent}
.tf-menu-backdrop[hidden]{display:none!important}
/* r197：复制文稿卡片出现过渡动画（新卡从透明+轻微缩小上浮浮现） */
@keyframes tfCardAppear{from{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:none}}
.home-card-appear{animation:tfCardAppear .34s cubic-bezier(.2,.9,.3,1.15)}

/* ============ r180：文献侧栏改版 ============
   ① 文献列表多选框 → 文中引用编号徽标（未引用不显示）
   ② 选中态主题色加深
   ③ 悬浮摘要浮层（列表上方等宽框）
   ④ tabs 行右侧「管理」按钮 + 文献库管理弹窗（编辑详情 / 多选删除） */
/* r183：tabs 行与右侧管理操作 flex 同行，管理按钮水平中心线与标签行对齐 */
.cite-tabs-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cite-tabs-row .tabs{margin-bottom:0;flex:1}
.cite-manage-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.cite-manage-btn{
  font-size:12.5px;line-height:1;
  color:var(--muted-fg);background:var(--bg);
  border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:6px 10px;cursor:pointer;white-space:nowrap;
  transition:color .15s ease,border-color .15s ease,background .15s ease;
}
.cite-manage-btn:hover{color:var(--blue);border-color:var(--blue)}
.cite-manage-btn.managing{color:var(--blue);border-color:var(--blue);background:var(--blue-tint)}
/* 管理状态：删除选中（红色） */
.cite-del-selected{
  border:1px solid var(--danger);color:var(--danger);background:none;
  border-radius:var(--radius-sm);padding:5px 10px;font-size:12.5px;cursor:pointer;white-space:nowrap;
  transition:opacity .15s ease,background .15s ease;
}
.cite-del-selected:hover:not(:disabled){background:var(--danger-bg)}
.cite-del-selected:disabled{opacity:.4;cursor:not-allowed}
.cite-lib-item{
  padding:10px 12px;border-bottom:1px solid var(--hover);
  cursor:pointer;display:flex;gap:8px;align-items:flex-start;
  transition:background .18s ease;
}
.cite-lib-item:last-child{border-bottom:none}
.cite-lib-item:hover{background:var(--hover)}
.cite-lib-item.selected{background:var(--blue-tint)}
.cite-lib-item.selected:hover{background:var(--blue-tint)}
/* r183d：编辑中的文献行加深色高亮（深于选中态） */
.cite-lib-item.editing{background:color-mix(in srgb,var(--blue) 22%,transparent)}
.cite-lib-item.editing:hover{background:color-mix(in srgb,var(--blue) 22%,transparent)}
.cite-lib-num{
  flex-shrink:0;margin-top:2px;padding:1px 6px;
  font-size:11px;font-weight:600;font-family:var(--font-ui);
  color:var(--blue);background:var(--blue-tint);
  border-radius:var(--radius-sm);line-height:1.5;
}
.cite-lib-text{flex:1;font-size:13px;line-height:1.5;color:var(--fg);word-break:break-all}
.cite-lib-doi{font-size:11px;color:var(--muted-fg);margin-top:2px}
/* r183：管理状态下列表项控件（多选/编辑图标/删除图标） */
.cite-lib-check{flex-shrink:0;accent-color:var(--blue);margin:3px 0 0 0}
.cite-lib-act{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;padding:0;border:none;background:none;
  color:var(--muted-fg);cursor:pointer;border-radius:var(--radius-sm);
  transition:color .15s ease,background .15s ease;
}
.cite-lib-act:hover{color:var(--blue);background:var(--blue-tint)}
.cite-lib-act.danger:hover{color:var(--danger);background:var(--danger-bg)}
.cite-lib-act svg{width:15px;height:15px;stroke-width:1.8}
/* r183：侧栏管理状态下的编辑面板（贴文献库侧栏左侧，上边框与侧栏对齐，背景同侧栏） */
.cite-edit-panel{
  position:fixed;z-index:960;width:min(340px,40vw);
  background:var(--bg);border:1px solid var(--border);
  border-radius:var(--radius-sm);box-shadow:var(--shadow-modal);
  padding:12px 14px;display:flex;flex-direction:column;gap:8px;
}
.cite-edit-panel[hidden]{display:none}
.cite-edit-panel-title{font-size:14.5px;font-weight:600;color:var(--fg);margin:0 0 2px}
.cite-edit-panel .cite-edit-form{flex:none;max-height:calc(100vh - 190px);overflow-y:auto}
.cite-edit-panel-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
/* 摘要气泡：fixed 于视口，从悬浮文献行左侧冒出，位于侧栏外贴着侧栏（r181）
   r182：背景与文献库侧栏一致（var(--bg)），高度自适应、不显示滚动条 */
.cite-abs-pop{
  position:fixed;z-index:960;display:none;
  background:var(--bg);border:1px solid var(--border);
  border-radius:var(--radius-sm);box-shadow:var(--shadow-modal);
  padding:10px 12px;font-size:12.5px;line-height:1.7;color:var(--fg);
  max-width:min(320px,46vw);max-height:70vh;overflow:hidden;
}
.cite-abs-pop::after{
  content:"";position:absolute;top:50%;right:-5px;width:8px;height:8px;margin-top:-4px;
  background:var(--bg);border-top:1px solid var(--border);border-right:1px solid var(--border);
  transform:rotate(45deg);
}
/* 文献库管理弹窗：多选工具栏 */
.library-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:8px}
.lib-select-all{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted-fg);cursor:pointer;user-select:none}
.lib-select-all input{accent-color:var(--blue)}
.lib-check{flex-shrink:0;accent-color:var(--blue);margin:3px 0 0 2px}
.lib-item .lib-edit{flex-shrink:0;border:none;background:none;color:var(--blue);cursor:pointer;font-size:13px;padding:2px 6px}
.lib-item .lib-edit:hover{text-decoration:underline}
#libDeleteSelected.danger-soft{
  border:1px solid var(--danger);color:var(--danger);background:none;
  border-radius:var(--radius-sm);padding:5px 12px;font-size:12.5px;cursor:pointer;
  transition:opacity .15s ease,background .15s ease;
}
#libDeleteSelected.danger-soft:hover:not(:disabled){background:var(--danger-bg)}
#libDeleteSelected.danger-soft:disabled{opacity:.4;cursor:not-allowed}
/* 文献编辑弹窗 */
.cite-edit-modal{width:min(560px,92vw);max-height:88vh;display:flex;flex-direction:column}
.cite-edit-form{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:2px 2px 8px;display:flex;flex-direction:column;gap:7px}
.cite-edit-form label{font-size:12.5px;color:var(--muted-fg);margin-top:2px}
.cite-edit-form input[type=text],.cite-edit-form select,.cite-edit-form textarea{
  width:100%;box-sizing:border-box;padding:7px 10px;font-size:13px;
  background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg);
  outline:none;transition:border-color .15s ease;
}
.cite-edit-form input[type=text]:focus,.cite-edit-form select:focus,.cite-edit-form textarea:focus{border-color:var(--blue)}
.cite-edit-form .row{display:flex;gap:10px}
.cite-edit-form .row>div{flex:1;display:flex;flex-direction:column;gap:5px}


/* r224：交叉引用反向跳转——图/表标题「返回引用」按钮、命中闪动、预览参考文献可点 */
#editor-container .image-caption,
#editor-container .table-caption{position:relative}
#editor-container .tf-back-ref-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:11px;line-height:1;padding:3px 7px;border-radius:6px;background:#4a6cf7;color:#fff;cursor:pointer;opacity:.88;box-shadow:0 2px 6px rgba(0,0,0,.18);user-select:none;z-index:5;font-family:var(--font-ui,system-ui);white-space:nowrap}
#editor-container .tf-back-ref-btn:hover{opacity:1;background:#3a5ce0}
#editor-container .tf-xref-flash,#previewDocxHost .tf-xref-flash{animation:tfXrefFlash 1.5s ease 1}
@keyframes tfXrefFlash{0%,60%{background:#ffe58a;border-radius:3px;box-shadow:0 0 0 2px rgba(255,229,138,.6)}100%{background:transparent;box-shadow:none}}
#previewDocxHost .tf-ref-back{cursor:pointer;border-radius:2px;transition:background .15s ease-out}
#previewDocxHost .tf-ref-back:hover{background:rgba(74,108,247,.10)}
/* r230：撤销/重做后自动定位到变动位置——淡黄高亮闪烁提示变化处 */
#editor-container .tf-undoredo-flash{animation:tfUndoRedoFlash .9s ease-out 1}
@keyframes tfUndoRedoFlash{0%{background:rgba(255,235,59,.42);border-radius:3px}100%{background:transparent}}
/* ==========================================================================
   onboarding.js · 首进引导 + 功能提示（苹果 HIG 风格，全 var() 跟随深浅主题）
   z-index：引导遮罩 9000（与 tf-first-visit-mask 同级）/ 提示气泡 9100
   ========================================================================== */
.tf-tip{position:fixed;top:20px;left:50%;transform:translate(-50%,-8px);z-index:9100;
  display:flex;align-items:flex-start;gap:10px;max-width:min(430px,92vw);
  padding:10px 12px 10px 14px;border-radius:14px;background:var(--card);
  border:1px solid var(--border);box-shadow:0 10px 30px rgba(26,24,21,.16);
  color:var(--fg);font-size:13px;line-height:1.55;opacity:0;pointer-events:none;
  transition:opacity .22s ease,transform .22s cubic-bezier(.2,.9,.3,1)}
.tf-tip.show{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.tf-tip-close{flex:0 0 auto;width:22px;height:22px;border:0;background:transparent;
  color:var(--muted-fg);font-size:15px;line-height:1;cursor:pointer;border-radius:6px;
  display:flex;align-items:center;justify-content:center}
.tf-tip-close:hover{background:var(--hover);color:var(--fg)}
.tf-tip-body{flex:1 1 auto;min-width:0}

.tf-ob-mask{position:fixed;inset:0;z-index:9000;background:rgba(251,248,243,.6);
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
body.dark .tf-ob-mask{background:rgba(26,24,21,.64)}
.tf-ob-ring{position:fixed;display:none;pointer-events:none;border-radius:14px;
  box-shadow:0 0 0 3px var(--blue),0 0 26px rgba(53,80,196,.32);
  transition:left .24s cubic-bezier(.2,.9,.3,1),top .24s cubic-bezier(.2,.9,.3,1),
    width .24s cubic-bezier(.2,.9,.3,1),height .24s cubic-bezier(.2,.9,.3,1)}
.tf-ob-card{position:fixed;left:50%;bottom:10%;transform:translate(-50%,10px);z-index:9001;
  width:min(400px,90vw);padding:20px 22px 18px;border-radius:18px;
  background:var(--card);border:1px solid var(--border);
  box-shadow:var(--shadow-modal);text-align:left;opacity:0;
  transition:opacity .24s ease,transform .24s cubic-bezier(.2,.9,.3,1)}
.tf-ob-card.step-in{opacity:1;transform:translate(-50%,0)}
.tf-ob-skip{position:absolute;top:10px;right:12px;border:0;background:transparent;
  color:var(--muted-fg);font-size:12px;cursor:pointer;padding:4px 6px;border-radius:6px}
.tf-ob-skip:hover{background:var(--hover);color:var(--fg)}
.tf-ob-title{font-size:17px;font-weight:600;color:var(--fg);margin:0 0 6px;letter-spacing:-.01em}
.tf-ob-body{font-size:13.5px;line-height:1.65;color:var(--muted-fg);margin:0 0 14px}
.tf-ob-dots{display:flex;gap:6px;margin:0 0 14px}
.tf-ob-dot{width:6px;height:6px;border-radius:99px;background:var(--border);transition:background .2s,width .2s}
.tf-ob-dot.on{background:var(--blue);width:16px}
.tf-ob-next{display:block;width:100%;padding:9px 0;border:0;border-radius:11px;
  background:var(--blue);color:var(--blue-fg);font-size:14px;font-weight:500;cursor:pointer;
  transition:background .18s ease}
.tf-ob-next:hover{background:var(--blue-hover)}