/* ==========================================================================
   workspace.css —— 要素式文书生成工作台
   三栏可拖拽布局：导航 | 表单 | 预览（宽度写入 localStorage，刷新保持）
   ========================================================================== */
:root{
  --accent:#b0312a; --accent-soft:#fbeceb; --accent-line:#f0d8d6;
  --line:#e6e2db; --line-2:#d8d3c9;
  --muted:#8a8378; --text:#2b2925; --text-2:#5a544b;
  --bg:#f4f2ee; --surface:#fff;
  --nav-w:210px; --form-w:520px;
  --radius:12px;
  --shadow-sm:0 1px 2px rgba(16,24,40,.05);
  --shadow-md:0 8px 24px -14px rgba(16,24,40,.35);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  font-size:14px; -webkit-font-smoothing:antialiased;
  display:flex; flex-direction:column; overflow:hidden;
}

/* ------------------------------ 顶栏 ------------------------------ */
.topbar{
  flex:none; display:flex; align-items:center; gap:10px;
  padding:0 16px; height:52px; background:var(--surface);
  border-bottom:1px solid var(--line); z-index:30;
}
.back{
  width:30px;height:30px;border-radius:8px;display:flex;align-items:center;
  justify-content:center;color:var(--text-2);text-decoration:none;font-size:16px;
  border:1px solid var(--line);background:#fff;transition:.15s;flex:none;
}
.back:hover{border-color:var(--accent);color:var(--accent)}
.brand{font-weight:800;color:var(--accent);font-size:15px;letter-spacing:.4px;flex:none}
.divider{width:1px;height:18px;background:var(--line);flex:none}
.topbar h1{
  margin:0;font-size:14.5px;font-weight:600;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw;
}
.spacer{flex:1}
.btn{
  border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 13px;
  cursor:pointer;font-size:13px;color:var(--text-2);transition:.15s;
  font-family:inherit;white-space:nowrap;flex:none;
}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
.btn.primary:hover{filter:brightness(1.06);color:#fff}
/* 顶栏图标按钮（填写步骤开关）：小巧、低调灰色 */
.btn.icon{
  display:inline-flex;align-items:center;justify-content:center;
  padding:6px 7px;color:#b3aca0;
}
.btn.icon svg{width:15px;height:15px;display:block}
.btn.icon:hover{color:var(--accent);border-color:var(--accent-line)}
.btn.icon.active{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line)}

/* ------------------------------ 工作区 ------------------------------ */
.ws{
  flex:1; min-height:0; display:grid;
  /* 填写步骤导航默认隐藏（步骤划分待人工核实后再默认展示）：
     默认只占 0 宽，点顶栏列表图标（body.nav-open）展开 */
  grid-template-columns:0 0 var(--form-w) 6px minmax(320px,1fr);
  align-items:stretch;
}
/* 用 ID 选择器确保压过下方 .pane-nav{display:flex} 的默认样式 */
#pane-nav,#sp-nav{display:none}
body.nav-open .ws{grid-template-columns:var(--nav-w) 6px var(--form-w) 6px minmax(320px,1fr)}
body.nav-open #pane-nav{display:flex}
body.nav-open #sp-nav{display:flex}
/* 固定每个面板的网格列位：导航 display:none 后剩余面板不会向前串位 */
#pane-nav{grid-column:1}
#sp-nav{grid-column:2}
#pane-form{grid-column:3}
#sp-pv{grid-column:4}
#pane-pv{grid-column:5}

/* 面板通用 */
.pane-nav,.pane-form,.pane-pv{min-width:0;min-height:0;position:relative}
.pane-form{background:var(--bg);border-left:1px solid var(--line);border-right:1px solid var(--line)}
.pane-pv{background:#eceae5;display:flex;flex-direction:column}

/* ---- 左导航 ---- */
.pane-nav{
  background:var(--surface);display:flex;flex-direction:column;overflow:hidden;
}
.nav-head{
  flex:none;padding:14px 16px 10px;font-size:11.5px;font-weight:700;
  color:var(--muted);letter-spacing:1.2px;text-transform:uppercase;
}
.nav-list{flex:1;overflow-y:auto;padding:0 8px 8px}
.st{
  display:block;padding:8px 10px;border-radius:8px;color:var(--text-2);
  font-size:13px;text-decoration:none;border:1px solid transparent;
  line-height:1.45;transition:.12s;
}
.st:hover{background:#f7f5f2;border-color:var(--line)}
.st.active{background:var(--accent-soft);color:var(--accent);font-weight:600;border-color:var(--accent-line)}
.nav-foot{flex:none;padding:10px 14px 14px;border-top:1px solid var(--line)}
.tip-ico{font-size:11.5px;color:var(--muted);line-height:1.6}

/* ---- 分隔条（可拖拽） ---- */
.splitter{
  cursor:col-resize;background:transparent;position:relative;
  display:flex;align-items:center;justify-content:center;
}
.splitter span{
  width:2px;height:26px;border-radius:2px;background:var(--line-2);
  transition:background .15s,height .15s;
}
.splitter:hover span,.splitter.drag span{background:var(--accent);height:46px}
body.resizing{cursor:col-resize;user-select:none}
body.resizing iframe,body.resizing .pv-scroll{pointer-events:none}

/* ---- 中间表单 ---- */
.fm-scroll{height:100%;overflow-y:auto;padding:18px 20px 120px;scroll-behavior:smooth}

.fm-sec{margin:26px 0 12px;display:flex;align-items:center;gap:9px;scroll-margin-top:12px}
.fm-sec:first-child{margin-top:2px}
.fm-sec::after{content:"";flex:1;height:1px;background:var(--line)}
.fm-sec-t{
  font-size:14.5px;font-weight:700;color:var(--accent);letter-spacing:.4px;
  padding:3px 10px;background:var(--accent-soft);border-radius:7px;flex:none;
}

/* 卡片式行：标签整行置顶，字段区在下方按两列网格排布 */
.fm-row{
  display:block;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:12px 14px;margin-bottom:9px;
  box-shadow:var(--shadow-sm);transition:border-color .15s;
}
.fm-row:hover{border-color:var(--line-2)}
.fm-lab{
  font-size:13.5px;color:var(--text);font-weight:700;line-height:1.5;
  padding-left:9px;border-left:3px solid var(--accent);
  margin-bottom:10px;word-break:break-word;
}
/* 字段区：短输入框两列排布，充分利用横向空间 */
.fm-val{
  min-width:0;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 12px;align-items:start;
}
/* 多行文本、勾选组、行内说明：内容较长，跨满整行 */
.fm-val .fm-block,
.fm-val .fm-ch,
.fm-val .fm-inline{grid-column:1/-1}
/* 一行只有一个填写框时，该框跨满整行（宽度与两个框合计一致） */
.fm-val .fm-solo{grid-column:1/-1}
/* 沉底选项（官方排法里末行独占一行的「否□」）：与上方内容留出间距 */
.fm-val .fm-wrapline{margin-top:2px}
.fm-note{
  font-size:12.5px;color:var(--muted);line-height:1.75;padding:9px 12px;
  background:#fbfaf8;border:1px dashed var(--line);border-radius:10px;margin-bottom:9px;
}

/* ---- 当事人卡片（一个主体的自然人/法人两套互斥模板都装在这里） ---- */
.fm-party{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:12px 14px;margin-bottom:9px;box-shadow:var(--shadow-sm);
}
.fm-pi + .fm-pi{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line-2)}
.fm-pi-h{display:flex;align-items:center;gap:10px}
.fm-pi-h .fm-lab{margin-bottom:0;flex:1}
.fm-pi-kind{font-size:11.5px;font-weight:400;color:var(--muted);margin-left:4px}
/* 尚未添加任何主体时的空态说明 */
.fm-pi-empty{
  font-size:12.5px;color:var(--muted);line-height:1.7;
  padding:9px 12px;border:1px dashed var(--line-2);border-radius:10px;background:#fcfcfd;
}
.fm-kind{
  border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:9px;background:#fff;
}
/* 主体模板跨多行时（如法人模板），各行字段区在同一框内衔接，不各自成卡；
   精确实例的字段直接铺在实例卡片里（bare 模式），同样保持行距 */
.fm-kind .fm-val + .fm-val,
.fm-pi > .fm-val + .fm-val{margin-top:10px}
.fm-kind .fm-val + .fm-note,.fm-kind .fm-note + .fm-val,
.fm-pi > .fm-val + .fm-note,.fm-pi > .fm-note + .fm-val{margin-top:10px}
.fm-pi-h + .fm-val,.fm-pi-h + .fm-note{margin-top:10px}
.fm-kind-h{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.fm-kind-t{font-size:12.5px;font-weight:700;color:var(--accent);letter-spacing:.3px}
.fm-kind-note{font-size:11.5px;color:var(--muted);line-height:1.5}
/* 导出时会被自动省略的模板：淡化提示，但内容仍可编辑 */
.fm-kind.will-skip{border-style:dashed;background:#fdfcf9}
/* 被用户删除的模板：收成一条，可一键恢复 */
.fm-kind.off{
  display:flex;align-items:center;gap:9px;padding:7px 12px;
  border-style:dashed;background:#fbfaf8;opacity:.85;
}
.fm-kind.off .fm-kind-note{flex:1}
.fm-sub-lab{font-size:12px;color:var(--muted);margin:6px 0 4px}
.fm-mini{
  border:1px solid var(--line-2);background:#fff;border-radius:6px;font-size:11.5px;
  color:var(--muted);padding:3px 8px;cursor:pointer;font-family:inherit;line-height:1.5;flex:none;
}
.fm-mini:hover{border-color:var(--accent);color:var(--accent)}
.fm-add{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fm-add-btn{
  border:1px dashed var(--accent-line);background:var(--accent-soft);color:var(--accent);
  font-weight:600;border-radius:9px;padding:8px 12px;font-size:13px;cursor:pointer;font-family:inherit;
}
.fm-add-btn:hover{background:#fff}
.fm-add-menu{display:flex;gap:8px;align-items:center;flex-wrap:wrap;width:100%}
.fm-add-menu[hidden]{display:none}
.fm-add-tip{font-size:12px;color:var(--muted)}
.fm-add-pick{
  border:1px solid var(--accent-line);background:#fff;color:var(--accent);
  border-radius:8px;padding:7px 12px;font-size:13px;cursor:pointer;font-family:inherit;
}
.fm-add-pick:hover{background:var(--accent-soft)}

.fm-f{display:flex;flex-direction:column;gap:4px;min-width:0}
.fm-block{display:block}
.fm-lb{font-size:12px;color:var(--muted);line-height:1.5}
.fm-in,.fm-ta{
  width:100%;border:1px solid var(--line-2);border-radius:9px;padding:8px 10px;
  font-size:13.5px;font-family:inherit;color:var(--text);background:#fff;
  transition:.15s;line-height:1.6;
}
/* 单行输入实为自动增高的 textarea：初始一行高，禁手动拖拽避免与自动增高打架 */
textarea.fm-in{resize:none;overflow:hidden;min-height:37px}
.fm-ta{resize:none;overflow:hidden;min-height:86px}
.fm-in:focus,.fm-ta:focus{
  outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);
}
.fm-in::placeholder,.fm-ta::placeholder{color:#b8b2a8}
.fm-tip{font-size:11.5px;color:var(--muted);line-height:1.6}

/* 勾选项
   关键：input 必须是整块可点击区域（覆盖在视觉层之上），
   不能用 pointer-events:none —— 那会让 label 的点击转发失效，
   导致单选的原生互斥不生效（会出现"选了新的、旧的还亮着"）。
   做法：input 绝对定位铺满 .fm-opt，opacity:0 保留可点击与可访问性；
   视觉效果由下层 .fm-box 呈现，:checked 通过兄弟选择器驱动。 */
.fm-ch{display:flex;flex-direction:column;gap:6px}
.fm-opts{display:flex;flex-wrap:wrap;gap:7px}
/* 每个选项独占一行（spec 里 ch.lines=true）：
   选项与其后紧跟的输入位绑成一行，输入位不会被挤到下一行而与选项错位 */
.fm-opts-lines{flex-direction:column;align-items:flex-start;gap:6px}
.fm-optline{display:flex;align-items:center;flex-wrap:wrap;gap:0 2px;max-width:100%}
.fm-opt{position:relative;cursor:pointer;display:inline-flex}
.fm-opt input{
  position:absolute;inset:0;width:100%;height:100%;
  margin:0;padding:0;opacity:0;cursor:pointer;z-index:1;
}
.fm-box{
  border:1px solid var(--line-2);background:#fff;border-radius:8px;
  padding:6px 12px;font-size:13px;color:var(--text-2);
  display:inline-flex;align-items:center;gap:6px;transition:.14s;line-height:1.4;
}
.fm-box::before{
  content:"";width:13px;height:13px;border:1.5px solid #c3bdb2;border-radius:3px;
  flex:none;transition:.14s;background:#fff;
}
.fm-opt:hover .fm-box{border-color:var(--accent);color:var(--accent)}

/* 选中态：input:checked 或 JS 兜底的 .on */
.fm-opt input:checked + .fm-box,
.fm-opt.on .fm-box{
  background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600;
}
.fm-opt input:checked + .fm-box::before,
.fm-opt.on .fm-box::before{
  background:var(--accent);border-color:var(--accent);
  box-shadow:inset 0 0 0 2px #fff;
}
.fm-opt input:focus-visible + .fm-box{box-shadow:0 0 0 3px var(--accent-soft)}

.eld-empty{padding:60px 20px;text-align:center;color:var(--muted);font-size:14px}

/* ---- 右侧预览 ---- */
.pv-bar{
  flex:none;height:40px;display:flex;align-items:center;gap:10px;
  padding:0 16px;border-bottom:1px solid var(--line);background:#f7f5f2;
}
.pv-title-sm{font-size:12.5px;font-weight:700;color:var(--text-2);letter-spacing:.4px}
.pv-hint{font-size:11.5px;color:var(--muted);margin-left:auto}
.pv-scroll{flex:1;overflow:auto;padding:22px 16px 60px}

.sheet{
  background:#fff;margin:0 auto;max-width:820px;width:100%;
  box-shadow:0 10px 34px -18px rgba(16,24,40,.42);
  border:1px solid var(--line);border-radius:4px;
  padding:32px 30px 42px;
  font-family:"Songti SC","SimSun",serif;
}
.sheet:empty::after{
  content:"正在加载模板…";display:block;color:var(--muted);font-size:13px;
  text-align:center;padding:60px 0;
}

/* 预览内的文书元素 */
.pv-doc-title,.sheet .pv-h1{
  text-align:center;font-size:21px;font-weight:800;margin:0 0 4px;
  font-family:"SimHei","Heiti SC","Microsoft YaHei",sans-serif;letter-spacing:1px;
}
.pv-h2{text-align:center;font-size:14px;color:#555;margin:0 0 20px;font-weight:600}
.pv-note{
  border:1px solid var(--line);background:#fbfaf7;border-radius:6px;
  padding:12px 15px;font-size:11.5px;color:#6b6359;line-height:1.85;margin-bottom:20px;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
.pv-note div{margin:1px 0}
.pv-sec{
  font-size:14px;font-weight:700;color:var(--accent);margin:22px 0 9px;
  padding-left:9px;border-left:3px solid var(--accent);letter-spacing:.4px;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
.pv-row{display:flex;align-items:stretch;border:1px solid #b9b2a6;border-bottom:none}
.pv-row:last-of-type{border-bottom:1px solid #b9b2a6}
.pv-td{
  border-right:1px solid #b9b2a6;padding:6px 8px;font-size:12.5px;
  line-height:1.75;min-width:0;word-break:break-word;overflow-wrap:anywhere;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
.pv-row .pv-td:last-child{border-right:none}
.pv-lab{background:#f7f5f1;color:var(--text-2)}
.pv-vmerge{background:#f7f5f1}
/* 表头整行标题（当事人信息 / 诉讼请求 …），与导出 Word 版式一致 */
.pv-head-cell{
  flex:1;text-align:center;font-weight:700;background:#f7f5f1;
  letter-spacing:1px;color:var(--text);
}
.pv-pv-t{margin:1px 0}
.pv-pv-f,.pv-pv-ch{margin:2px 0;min-height:1.75em}
/* 字段：标签 + 值（填写后高亮，未填写留白） */
.pv-fl{color:var(--text-2)}
.pv-fv{color:#111;font-weight:600}
.pv-pv-f:not(.on) .pv-fv::after{
  content:"";display:inline-block;min-width:4.5em;
  border-bottom:1px solid #cfc9be;
}
/* 勾选组 */
.pv-cl{color:var(--text-2);margin-right:4px}
.pv-opts{display:inline-flex;flex-wrap:wrap;gap:4px 10px;vertical-align:middle}
/* stack：每个选项独占一行（spec 里 ch.stack=true，如离婚起诉状第 7 项
   「无此问题□」与「离婚损害赔偿□ 金额：」上下分行） */
.pv-opts-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.pv-optline{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.pv-it{display:inline-flex;align-items:center;gap:3px;color:#555}
.pv-it.on{color:#111;font-weight:700}
.pv-box{
  display:inline-flex;align-items:center;justify-content:center;
  width:15px;height:15px;border:1px solid #a9a296;border-radius:2px;
  font-size:11px;line-height:1;background:#fff;flex:none;
}
.pv-box.on{background:var(--accent);border-color:var(--accent);color:#fff}
/* 导出时会被省略的主体模板（表单里还能改，预览先淡化提示） */
.pv-row.pv-skip{opacity:.42}
.pv-skip-tag{
  display:block;width:max-content;max-width:100%;white-space:nowrap;
  font-size:9.5px;line-height:1.7;background:#f0eee9;color:#8a8275;
  border-radius:4px;padding:0 5px;margin:0 0 3px;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
.pv-sign{
  margin-top:34px;font-size:13.5px;font-weight:700;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
.pv-sign-d{text-align:right;font-weight:400;margin-top:8px;min-height:1.6em}

/* ------------------------------ 响应式 ------------------------------ */
@media (max-width:1180px){
  .ws,body.nav-open .ws{grid-template-columns:0 0 minmax(0,1fr) 6px minmax(300px,42%)}
  /* 窄屏始终隐藏导航（即使曾点开），并隐藏开关图标 */
  #pane-nav,#sp-nav,body.nav-open #pane-nav,body.nav-open #sp-nav{display:none}
  #eld-navtoggle{display:none}
}
@media (max-width:900px){
  body{overflow:auto}
  .ws{display:block}
  .splitter{display:none}
  .pane-form,.pane-pv{border:none}
  .fm-scroll{height:auto;overflow:visible;padding:16px 14px 40px}
  .pv-scroll{overflow:visible;padding:16px 12px 40px}
  .pane-pv{border-top:1px solid var(--line)}
  .topbar h1{max-width:26vw}
}
/* 表单栏过窄时字段区退回单列，避免输入框被挤扁 */
@media (max-width:560px){
  .fm-val{grid-template-columns:1fr}
}

/* 滚动条 */
.nav-list::-webkit-scrollbar,.fm-scroll::-webkit-scrollbar,.pv-scroll::-webkit-scrollbar{width:9px}
.nav-list::-webkit-scrollbar-thumb,.fm-scroll::-webkit-scrollbar-thumb,.pv-scroll::-webkit-scrollbar-thumb{
  background:#d5d0c7;border-radius:5px;border:2px solid transparent;background-clip:content-box;
}
.nav-list::-webkit-scrollbar-thumb:hover,.fm-scroll::-webkit-scrollbar-thumb:hover,
.pv-scroll::-webkit-scrollbar-thumb:hover{background:#bdb6ab;background-clip:content-box}

/* 值格中的行内静态说明 */
.fm-inline{font-size:12px;color:var(--muted);line-height:1.7}

/* ---- 智能预填弹窗 ---- */
.af-mask{
  position:fixed;inset:0;z-index:100;background:rgba(40,37,32,.42);
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.af-mask[hidden]{display:none}
.af-box{
  width:min(560px,100%);background:var(--surface);border-radius:16px;
  box-shadow:0 18px 50px rgba(40,37,32,.22);padding:20px 22px 16px;
  display:flex;flex-direction:column;gap:12px;
  max-height:calc(100vh - 60px);
}
.af-head{display:flex;align-items:center;justify-content:space-between}
.af-title{font-size:16px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}
.af-badge{
  font-size:11px;font-weight:600;color:var(--accent);background:var(--accent-soft);
  border:1px solid var(--accent-line);border-radius:999px;padding:2px 8px;
}
.af-x{
  border:none;background:none;font-size:22px;color:var(--muted);cursor:pointer;
  line-height:1;padding:2px 6px;border-radius:6px;
}
.af-x:hover{color:var(--text);background:#f2efe9}
.af-tip{
  font-size:12.5px;color:var(--text-2);line-height:1.8;
  background:#fbfaf8;border:1px dashed var(--line);border-radius:10px;padding:10px 12px;
}
.af-tip b{color:var(--accent)}
#af-text{
  width:100%;min-height:180px;max-height:40vh;resize:vertical;
  border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;
  font-size:13.5px;font-family:inherit;color:var(--text);line-height:1.7;background:#fff;
}
#af-text:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
#af-text::placeholder{color:#b8b2a8}
.af-status{font-size:12.5px;color:var(--muted);min-height:1.2em;line-height:1.5}
.af-status.err{color:#b4472f}
.af-ops{display:flex;justify-content:flex-end;gap:10px}
.af-ops .btn:disabled{opacity:.55;cursor:not-allowed}

/* 轻提示 toast（智能预填完成等） */
.eld-toast{
  position:fixed;top:64px;left:50%;transform:translateX(-50%);z-index:120;
  background:#33302b;color:#f5f2ec;font-size:13px;line-height:1.5;
  padding:10px 18px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.2);
  opacity:0;transition:opacity .25s;pointer-events:none;max-width:80vw;
}
.eld-toast.show{opacity:1}

/* 括号内的子选项（如 国有□（控股□ 参股□)） */
.fm-subs{
  display:inline-flex;flex-wrap:wrap;gap:5px;margin-left:6px;
  padding-left:8px;border-left:1px dashed var(--line-2);
}
.fm-sub .fm-box{
  padding:3px 9px;font-size:12px;background:#fbfaf8;
}
/* 勾选项后紧跟的输入位（如「是□ 逾期时间：____」）：与勾选项同行 */
.fm-inline-in{display:inline-flex;align-items:center;gap:4px;margin:0 4px 0 2px}
.fm-inline-in .fm-lb{margin:0;white-space:nowrap}
.fm-inline-in .fm-in{width:auto;min-width:7em}
.pv-sgv.on{color:inherit}
.pv-subs{
  display:inline-flex;flex-wrap:wrap;gap:3px 8px;margin:0 2px;
  padding:0 3px;color:var(--muted);
}

/* ---- 行内填空（sg 段块：叙述句中嵌输入框） ---- */
.fm-sg-line{
  font-size:13.5px;line-height:2.3;color:var(--text-2);
  word-break:break-word;
}
.fm-sg-t{white-space:pre-wrap}
.fm-in.fm-mini{
  display:inline-block;width:auto;padding:4px 6px;margin:0 3px;
  text-align:center;vertical-align:baseline;line-height:1.5;
}
.pv-pv-sg{margin:2px 0;min-height:1.75em;line-height:1.9}
.pv-sgv{
  display:inline-block;min-width:3.5em;padding:0 2px;text-align:center;
  border-bottom:1px solid #cfc9be;vertical-align:baseline;
}
.pv-sgv.on{color:#111;font-weight:600;border-bottom-color:transparent}
