/* ==========================================================
   阅读器 / 预览 / 水印 / 二维码 / 联想搜索 组件样式
   （自原文档查阅系统提取，主题色已切换为知识库主色）
   ========================================================== */

:root{--teal:#2563eb;--teal-2:#1d4ed8;--teal-3:#eff6ff;--cinnabar:#dc2626;--paper:#f4f6fb;--paper-2:#ffffff;--line:#e5e9f2;--line-2:#eef2f7;--ink:#0f172a;--ink-soft:#334155;--sans:var(--font);}

.wm-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:5;}
.wm-overlay span{position:absolute;font-size:1.1rem;color:rgba(120,120,120,.18);white-space:nowrap;transform:rotate(-24deg);}
.preview-frame{position:relative;width:100%;height:76vh;height:clamp(640px, calc(100dvh - 64px), 1300px);background:#fff;border:1px solid var(--line,#e5e9f2);border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.05);overflow:hidden;}
.preview-frame embed,.preview-frame iframe{width:100%;height:100%;border:0;display:block;}
@media (max-width: 767.98px){
.preview-frame{height:68dvh;min-height:440px;}
.wm-overlay span{font-size:.85rem;}
}
@media (max-width: 575.98px){
.preview-frame{height:66dvh;min-height:400px;}
}
.doc-viewer{display:flex;flex-direction:column;height:100%;}
.dv-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;
  padding:.5rem .7rem;
  background:#fff;
  border-bottom:1px solid var(--line,#e5e9f2);
  font-size:.78rem;position:relative;z-index:7;}
.dv-toolbar .dv-group{display:inline-flex;align-items:center;gap:.28rem;
  padding:.18rem .3rem .18rem .18rem;margin-right:.15rem;
  border-right:1px solid var(--line-2,#eef2f7);border-radius:.45rem;
  background:transparent;}
.dv-toolbar .dv-group:last-child{border-right:0;margin-right:0;}
.dv-toolbar button{border:1px solid var(--line,#e5e9f2);background:#fff;border-radius:9px;
  padding:.26rem .62rem;line-height:1.4;cursor:pointer;font-size:.78rem;
  color:var(--text,#334155);box-shadow:none;
  transition:background .15s,color .15s,border-color .15s;}
.dv-toolbar button:hover{background:var(--pri-50,#eff6ff);border-color:#bfdbfe;color:var(--pri-600,#1d4ed8);}
.dv-toolbar button.on{background:var(--pri,#2563eb);color:#fff;border-color:var(--pri,#2563eb);}
.dv-toolbar input[type=color]{width:26px;height:26px;padding:0;border:1px solid var(--line,#e5e9f2);border-radius:999px;background:none;cursor:pointer;}
.dv-zoom{min-width:46px;text-align:center;display:inline-block;user-select:none;}
.dv-scroll{flex:1;overflow:auto;position:relative;background:#525659;-webkit-overflow-scrolling:touch;}
.dv-pages{margin:0 auto;min-height:100%;}
.dv-page{position:relative;margin:10px auto;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.35);}
.dv-page canvas.page-canvas{display:block;}
.dv-page canvas.dv-overlay{position:absolute;left:0;top:0;touch-action:none;z-index:8;}
.dv-page .textLayer{z-index:3;}
.dv-empty{padding:60px 20px;text-align:center;color:#fff;}
.dv-tip{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.72);color:#fff;padding:.25rem .8rem;border-radius:1rem;font-size:.75rem;pointer-events:none;z-index:8;opacity:0;transition:opacity .2s;}
.dv-tip.show{opacity:1;}
.doc-viewer.dv-fullscreen{position:fixed;inset:0;z-index:1080;background:#fff;height:100vh;}
.doc-viewer.dv-fullscreen .dv-scroll{height:calc(100vh - 41px);}
.kw-dropdown{position:absolute;top:100%;left:0;right:0;z-index:1060;background:#fff;border:1px solid var(--line,#e5e9f2);border-radius:12px;margin-top:.15rem;box-shadow:0 18px 44px -22px rgba(15,23,42,.32);max-height:340px;overflow:auto;}
.kw-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;text-decoration:none;color:#212529;border-bottom:1px solid #f1f3f5;font-size:.85rem;}
.kw-item:last-child{border-bottom:0;}
.kw-item:hover,.kw-item:focus{background:#f5f7fa;color:#0a58ca;}
.kw-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kw-meta{color:#8a919b;font-size:.76rem;white-space:nowrap;}
.kw-empty{color:#8a919b;justify-content:center;cursor:default;}
.doc-qr{display:inline-block;background:#fff;padding:8px;border:1px solid var(--line,#e5e9f2);border-radius:12px;line-height:0;}
.doc-qr canvas{max-width:100%;height:auto;}
@media (max-width:575.98px){
.preview-frame{height:62vh;}
}
.doc-item .doc-qr-btn{position:absolute;right:.6rem;top:.55rem;}
@media (max-width:575.98px){
.doc-item .doc-qr-btn{position:static;margin-top:.5rem;}
}
.office-preview{display:flex;flex-direction:column;height:100%;min-height:0;}
.office-preview .op-tabs{display:flex;flex-wrap:wrap;gap:.3rem;padding:.4rem .55rem;background:#fff;border-bottom:1px solid var(--line,#dee2e6);}
@media (max-width:575.98px){
.office-preview .op-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.3rem;}
.office-preview .op-tab{flex:0 0 auto;}
}
.office-preview .op-tab{border:1px solid var(--line,#e5e9f2);background:#fff;border-radius:9px;padding:.14rem .6rem;font-size:.8rem;cursor:pointer;color:var(--text,#334155);}
.office-preview .op-tab.on{background:var(--teal,#3f6f68);color:#fff;border-color:var(--teal,#3f6f68);}
.office-preview .op-body{flex:1;overflow:auto;background:#fff;padding:.75rem;font-size:.9rem;}
.office-preview .op-canvas{margin:0 auto;max-width:100%;}
.office-preview .op-loading,.office-preview .op-err{padding:48px 16px;text-align:center;color:var(--ink-soft,#6d6559);}
.office-preview .op-err{color:var(--cinnabar,#a05a3b);}
/* Excel：还原成带网格线的表格，列标贴顶、行号贴左，宽表可横向滚动 */
.office-preview .op-sheet-wrap{display:inline-block;min-width:100%;align-self:flex-start;vertical-align:top;}
.office-preview table.op-sheet{border-collapse:separate;border-spacing:0;background:#fff;
  table-layout:fixed;font-size:12.5px;line-height:1.5;color:#1f2937;
  border-top:1px solid #dbe3ee;border-left:1px solid #dbe3ee;}
.office-preview table.op-sheet th,.office-preview table.op-sheet td{
  border-right:1px solid #dbe3ee;border-bottom:1px solid #dbe3ee;
  padding:4px 7px;vertical-align:middle;overflow:hidden;}
.office-preview table.op-sheet td{white-space:pre-wrap;word-break:break-word;}
.office-preview table.op-sheet thead th{position:sticky;top:0;z-index:3;
  background:#f1f5f9;color:#64748b;font-weight:600;font-size:11px;text-align:center;padding:3px 4px;}
.office-preview table.op-sheet .op-corner{position:sticky;left:0;z-index:4;background:#e9eef6;min-width:46px;}
.office-preview table.op-sheet .op-rowhead{position:sticky;left:0;z-index:2;
  background:#f6f8fc;color:#94a3b8;font-weight:500;font-size:11px;text-align:center;padding:3px 4px;}
.office-preview table.op-sheet tbody tr:hover td{background:#fbfdff;}
.office-preview table.op-sheet td.op-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
.office-preview table.op-sheet td.op-date,
.office-preview table.op-sheet td.op-bool,
.office-preview table.op-sheet td.op-center{text-align:center;white-space:nowrap;}
.office-preview table.op-sheet td.op-bold{font-weight:700;color:#0f172a;}
@media (max-width:640px){
.office-preview table.op-sheet{font-size:11.5px;}
.office-preview table.op-sheet th,.office-preview table.op-sheet td{padding:3px 5px;}
.office-preview table.op-sheet .op-corner{min-width:34px;}
.office-preview .op-sheet-wrap{min-width:0;}
}
.office-preview .op-docx img,.office-preview .op-docx table{max-width:100%;height:auto;}
.office-preview .op-docx p{margin:.3em 0;}
.office-preview.op-marking,.office-preview.op-marking *{-webkit-user-select:text!important;user-select:text!important;
  -webkit-touch-callout:default!important;}
.office-preview.op-fullscreen{position:fixed;inset:0;z-index:1100;width:100vw;height:100vh;background:#fff;box-shadow:none;}
.office-preview.op-fullscreen .op-body{flex:1;min-height:0;}
/* 全屏时的「退出全屏」胶囊按钮（工具条保持顶部正常布局，不再被固定定位带走） */
.office-preview.op-fullscreen .op-exit-btn,
.doc-viewer.dv-fullscreen .dv-exit-btn{position:fixed;left:.7rem;bottom:.9rem;z-index:1200;
  background:rgba(0,0,0,.55);color:#fff;border:0;border-radius:999px;
  padding:.55rem 1.05rem;font-size:.9rem;line-height:1.2;
  box-shadow:0 .25rem .6rem rgba(0,0,0,.3);cursor:pointer;}
.doc-viewer.dv-fullscreen .dv-toolbar,
.doc-viewer.dv-fullscreen .dv-group{flex-wrap:wrap!important;overflow-x:visible!important;}
.office-preview.op-fullscreen .op-exit-btn{position:fixed;left:.7rem;bottom:.9rem;z-index:1200;
  background:#2f9e77;color:#fff;border:0;border-radius:999px;
  padding:.55rem 1.05rem;font-size:.9rem;line-height:1.2;
  box-shadow:0 .25rem .6rem rgba(0,0,0,.28);cursor:pointer;}
/* v2.9.7：预览框全屏——铺满视口，并给出明确的退出入口 */
.preview-frame.pf-fullscreen{
  position:fixed;top:0;left:0;right:0;bottom:0;z-index:1180;
  width:100vw;height:100vh;height:100dvh;margin:0;padding:0;border:0;border-radius:0;background:#fff;
  display:flex;flex-direction:column;
}
/* 全屏后由 flex 分配高度（原格式 / 正文 标签页、阅读器工具条各占一行，其余留给正文） */
.preview-frame.pf-fullscreen > .ima-tabs,
.preview-frame.pf-fullscreen > .doc-head,
.preview-frame.pf-fullscreen > .preview-tabs{flex:0 0 auto;}
.preview-frame.pf-fullscreen > .doc-viewer,
.preview-frame.pf-fullscreen > .office-preview,
.preview-frame.pf-fullscreen > .ima-pane{flex:1 1 auto;min-height:0;height:auto;}
.preview-frame.pf-fullscreen > iframe,
.preview-frame.pf-fullscreen > embed{flex:1 1 auto;min-height:0;height:auto;width:100%;border:0;}
/* 退出全屏胶囊：固定右下角，全屏层之上；内层阅读器的退出按钮在左下角，互不遮挡 */
.pf-exit-btn{
  position:fixed;
  right:calc(1rem + env(safe-area-inset-right, 0px));
  bottom:calc(1rem + env(safe-area-inset-bottom, 0px));
  z-index:1300;display:inline-flex;align-items:center;gap:.45rem;
  min-height:42px;padding:.5rem 1.05rem;
  border:1px solid rgba(255,255,255,.18);border-radius:999px;
  background:rgba(15,23,42,.78);color:#fff;
  font-family:inherit;font-size:.9rem;line-height:1.2;font-weight:500;
  cursor:pointer;box-shadow:0 .35rem 1rem rgba(15,23,42,.38);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:background .16s ease,transform .12s ease,box-shadow .16s ease;
  touch-action:manipulation;
}
.pf-exit-btn:hover{background:rgba(15,23,42,.92);box-shadow:0 .5rem 1.2rem rgba(15,23,42,.45);}
.pf-exit-btn:active{transform:scale(.97);}
.pf-exit-btn:focus-visible{outline:3px solid rgba(96,165,250,.85);outline-offset:3px;}
.pf-exit-btn [aria-hidden="true"]{font-size:.85rem;opacity:.85;}
@media (max-width:575.98px){
.pf-exit-btn{right:calc(.75rem + env(safe-area-inset-right, 0px));bottom:calc(.85rem + env(safe-area-inset-bottom, 0px));
  min-height:40px;padding:.45rem .85rem;font-size:.84rem;}
}
/* 全屏时锁住背景滚动，避免底层页面跟着滑动 */
body.pf-lock{overflow:hidden;}
@media (max-width:575.98px){
.office-preview table.op-sheet th,.office-preview table.op-sheet td{padding:2px 5px;font-size:12px;}
}
.qr-frame{width:250px;max-width:100%;padding:14px;background:#fff;border:1px solid var(--line,#e6dcc8);border-radius:.6rem;box-shadow:0 3px 12px rgba(63,58,51,.06);}
.qr-frame .doc-qr{display:flex;justify-content:center;align-items:center;min-height:230px;}
.qr-link a{color:var(--teal,#3f6f68);text-decoration:none;display:inline-block;max-width:100%;}
.qr-link a:hover{color:var(--cinnabar,#a05a3b);text-decoration:underline;}
.qr-link .qr-copy-input{width:100%;font-size:.78rem;line-height:1.5;padding:7px 10px;border:1px solid #93c5fd;border-radius:.45rem;background:#eff6ff;color:#1e3a8a;text-align:center;outline:none;}
.qr-toast{position:fixed;left:50%;bottom:64px;transform:translateX(-50%);background:var(--ink,#3f3a33);color:#fff;padding:8px 18px;border-radius:999px;font-size:.85rem;opacity:0;pointer-events:none;transition:opacity .25s;z-index:1080;}
.qr-toast.show{opacity:.95;}
@media (max-width:767.98px){
.doc-qr img{max-width:100%;height:auto;}
}
@media (max-width:575.98px){
.preview-frame .office-preview{min-height:0;}
}
.meta-sm,.bar-lbl,.kw-meta{color:#4f5a63;}
.stat-card .lbl,.bar-lbl,.kw-meta,.kw-empty{color:#4a4436;}
.doc-viewer,.office-preview,.dv-scroll,.dv-page,.dv-pages,
.op-canvas,.op-docx,.op-sheet,.op-zoom,.op-slide,
.dv-page .textLayer,.dv-page .textLayer span{-webkit-user-select:none!important;user-select:none!important;}
.doc-viewer *,.office-preview *{-webkit-touch-callout:none;-webkit-user-drag:none;}
.btn,.op-btn,.dv-toolbar button{white-space:nowrap;}
@media (hover:none),(max-width:767.98px){
.op-btn,.dv-toolbar button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:.2rem;}
}
@media (max-width:575.98px){
.dv-toolbar,.op-toolbar,.op-tabs{padding:.3rem .4rem;gap:.25rem;}
.dv-toolbar .dv-group{padding-right:.25rem;margin-right:.2rem;}
.preview-frame{height:66dvh;min-height:400px;}
.dv-toolbar{flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;}
}
@media (min-width:576px) and (max-width:991.98px){
.op-toolbar,.dv-toolbar{flex-wrap:wrap;gap:.3rem;}
}
.wm-overlay{pointer-events:none;}
@media (max-width:575.98px){
.preview-frame{border-radius:.6rem;overflow:hidden;}
}

/* ==========================================================
   Office 预览（PPT/Word/Excel）：工具栏与幻灯片舞台
   ========================================================== */
.office-preview{--op-font:"Noto Sans SC","Microsoft YaHei","PingFang SC","Hiragino Sans GB","Segoe UI",sans-serif;}
.office-preview .op-toolbar{
  display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .55rem;
  padding:.5rem .7rem;background:#fff;border-bottom:1px solid var(--line);
  position:relative;z-index:6;flex:0 0 auto;
}
.office-preview .op-tabs{
  display:flex;gap:.24rem;flex:1 1 100%;min-width:0;max-width:100%;
  overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;padding:0 0 .1rem;
  border-bottom:0;background:none;scrollbar-width:thin;
}
.office-preview .op-tabs::-webkit-scrollbar{height:5px}
.office-preview .op-tabs::-webkit-scrollbar-thumb{background:rgba(15,23,42,.16);border-radius:99px}
.office-preview .op-tab{
  flex:0 0 auto;min-width:28px;height:26px;padding:0 .42rem;display:inline-flex;
  align-items:center;justify-content:center;border:1px solid var(--line,#e5e9f2);
  border-radius:7px;background:#fff;color:var(--ink-soft,#334155);
  font-size:11.5px;line-height:1;cursor:pointer;transition:.14s;
}
.office-preview .op-tab:hover{border-color:#bfdbfe;color:var(--pri,#2563eb);background:var(--pri-50,#eff6ff)}
.office-preview .op-tab.on{background:var(--pri,#2563eb);border-color:var(--pri,#2563eb);color:#fff;font-weight:600}

.office-preview .op-tool-acts{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;width:100%;min-width:0}
.office-preview .op-btn{
  height:30px;min-width:30px;padding:0 .55rem;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line,#e5e9f2);border-radius:8px;background:#fff;
  color:var(--ink-soft,#334155);font-size:12.5px;line-height:1;cursor:pointer;
  font-family:inherit;transition:.15s;
}
.office-preview .op-btn:hover{background:var(--pri-50,#eff6ff);border-color:#bfdbfe;color:var(--pri-600,#1d4ed8)}
.office-preview .op-btn.on{background:var(--pri,#2563eb);border-color:var(--pri,#2563eb);color:#fff}
.office-preview .op-btn:disabled{opacity:.4;cursor:not-allowed;background:#fff}
.office-preview .op-s{
  display:inline-flex;align-items:center;gap:.3rem;padding-left:.5rem;margin-left:.1rem;
  border-left:1px solid var(--line-2,#eef2f7);
}
.office-preview .op-search{
  height:30px;width:126px;padding:0 .55rem;font-size:12.5px;font-family:inherit;
  border:1px solid var(--line,#e5e9f2);border-radius:8px;background:#fff;color:var(--ink);
  outline:none;transition:.15s;
}
.office-preview .op-search:focus{border-color:var(--pri,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.office-preview .op-count{font-size:12px;color:var(--muted,#64748b);min-width:46px;text-align:center;white-space:nowrap}

.office-preview .op-body{
  flex:1;min-height:0;overflow:auto;padding:1rem .9rem 1.4rem;
  background:#eef2f8;font-size:.9rem;-webkit-overflow-scrolling:touch;
}
.office-preview .op-zoom{width:100%;min-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px}
.office-preview .op-zoom.op-grid{flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:12px}
.office-preview .op-slide-fit{
  flex:0 0 auto;background:#fff;border-radius:6px;overflow:hidden;
  box-shadow:0 10px 26px -14px rgba(15,23,42,.45),0 1px 2px rgba(15,23,42,.08);
}
.office-preview .op-slide{
  font-family:var(--op-font);color:#1f2937;line-height:1.2;
  -webkit-font-smoothing:antialiased;
}
.office-preview .op-slide *{box-sizing:border-box}
.office-preview .op-slide img.op-img{display:block;border:0}
.office-preview .op-p{margin:0;white-space:pre-wrap;word-break:break-word}
.office-preview .op-bu{white-space:pre}
.office-preview .op-flow{font-size:14px;line-height:1.55;color:#334155;background:rgba(255,255,255,.9);border:1px dashed var(--line);border-radius:8px;padding:8px 10px}
.office-preview table.op-tbl{border-collapse:collapse;table-layout:fixed}
.office-preview table.op-tbl td{padding:4px 7px;font-size:13px;vertical-align:middle;word-break:break-word}
.office-preview .op-loading,.office-preview .op-err{padding:56px 18px;text-align:center;color:var(--ink-soft,#475569)}
.office-preview .op-err{color:var(--cinnabar,#dc2626)}

/* 全屏时工具条只在顶部，退出按钮保留 */
.office-preview.op-fullscreen .op-toolbar{position:sticky;top:0}
@media (max-width:767.98px){
  .office-preview .op-toolbar{padding:.4rem .5rem;gap:.35rem .4rem}
  .office-preview .op-search{width:110px}
  .office-preview .op-body{padding:.6rem .5rem 1rem}
  .office-preview .op-btn{height:28px;min-width:28px;padding:0 .45rem;font-size:12px}
}

/* 窄屏：页码一行、工具按钮一行（可横向滑动），避免按钮拆成好几行 */
@media (max-width:575.98px){
  .office-preview .op-toolbar{padding:.4rem .45rem .35rem;gap:.3rem}
  .office-preview .op-tabs{flex:0 0 100%;padding-bottom:.28rem}
  .office-preview .op-tool-acts{
    flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;width:100%;min-width:0;max-width:100%;
    padding-bottom:.15rem;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .office-preview .op-tool-acts::-webkit-scrollbar{height:0}
  .office-preview .op-s{flex:0 0 auto;border-left:0;padding-left:0;margin-left:0}
  .office-preview .op-btn{flex:0 0 auto}
  .office-preview .op-search{width:104px}
  .office-preview .op-count{min-width:auto}
  .office-preview .op-body{padding:.5rem .4rem 1rem}
}

/* 中等宽度：工具条按钮略收紧，尽量保持一行 */
@media (min-width:576px) and (max-width:1200px){
  .office-preview .op-toolbar{gap:.3rem .35rem;padding:.45rem .55rem}
  .office-preview .op-btn{padding:0 .45rem;font-size:12px}
  .office-preview .op-search{width:104px}
  .office-preview .op-count{min-width:auto}
  .office-preview .op-s{padding-left:.35rem;margin-left:0}
}

/* 远程同步来源徽标（v2.2.0） */
.badge-src {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #fffbeb;
    color: #b45309;
    border: 1px solid #fde68a;
    font-weight: 600;
}

/* ============================================================
   v2.5.0 老版 Office 文本视图（.doc / .ppt / .wps / .dps / .et）
   ============================================================ */
.office-preview .op-note{
  margin:0 0 .55rem;padding:.45rem .7rem;border-radius:9px;
  background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:12.5px;line-height:1.6;
}
.office-preview .op-legacy-doc{padding:.9rem .8rem 1.6rem}
.office-preview .lg-page{
  max-width:820px;margin:0 auto;background:#fff;border:1px solid var(--line,#e6edf6);
  border-radius:10px;padding:38px 44px 46px;box-shadow:0 10px 30px -18px rgba(15,23,42,.35);
  font-family:var(--op-font,"Microsoft YaHei",sans-serif);color:#1f2937;
}
.office-preview .lg-p{
  margin:0 0 .42em;font-size:15px;line-height:1.95;white-space:pre-wrap;word-break:break-word;
  text-align:justify;
}
.office-preview .lg-p.lg-h{
  margin:1.1em 0 .5em;font-weight:700;font-size:16px;color:#0f172a;letter-spacing:.01em;
}
.office-preview .lg-p.lg-row{display:flex;flex-wrap:wrap;gap:2px 0;align-items:center;text-align:left}
.office-preview .lg-cell{
  flex:0 0 auto;padding:2px 8px;border:1px solid #e8eef7;border-radius:4px;
  background:#fbfdff;font-size:13.5px;line-height:1.7;margin:1px 2px;
}
.office-preview .lg-sep{color:#c7d2e3;font-size:12px;margin:0 1px}
.office-preview .lg-slide{
  max-width:900px;margin:0 auto 16px;background:#fff;border:1px solid var(--line,#e6edf6);
  border-radius:10px;padding:26px 30px 30px;box-shadow:0 10px 26px -20px rgba(15,23,42,.4);
}
.office-preview .lg-slide-no{
  font-size:11.5px;letter-spacing:.06em;color:#94a3b8;text-transform:uppercase;margin-bottom:8px;
}
.office-preview .lg-slide-title{
  font-size:19px;font-weight:700;color:#0f172a;line-height:1.5;margin-bottom:12px;
  padding-bottom:10px;border-bottom:1px solid #eef2f9;
}
.office-preview .lg-slide-body{margin:0;padding-left:1.15em;color:#334155}
.office-preview .lg-slide-body li{
  font-size:14.5px;line-height:1.9;margin:0 0 .28em;white-space:pre-wrap;word-break:break-word;
}
@media (max-width:640px){
  .office-preview .op-legacy-doc{padding:.5rem .35rem 1.2rem}
  .office-preview .lg-page{padding:22px 18px 30px;border-radius:8px}
  .office-preview .lg-p{font-size:14px;line-height:1.85;text-align:left}
  .office-preview .lg-p.lg-h{font-size:15px}
  .office-preview .lg-slide{padding:18px 16px 22px;border-radius:8px}
  .office-preview .lg-slide-title{font-size:16.5px}
  .office-preview .lg-slide-body li{font-size:13.5px;line-height:1.8}
  .office-preview .lg-cell{font-size:12.5px}
}

/* 文本视图：让页面/幻灯片铺满容器（工具条容器是 flex 居中，否则会缩成内容宽） */
.office-preview .lg-page,
.office-preview .lg-slide{width:100%;box-sizing:border-box}
.office-preview .lg-tablewrap{max-width:100%;overflow-x:auto;margin:.7em 0}
.office-preview table.lg-table{
  border-collapse:collapse;width:100%;font-size:13.5px;line-height:1.7;
  border:1px solid #e2e8f0;border-radius:6px;
}
.office-preview table.lg-table th,
.office-preview table.lg-table td{
  border:1px solid #e6edf6;padding:6px 9px;vertical-align:top;word-break:break-word;
}
.office-preview table.lg-table th{background:#f4f7fc;font-weight:700;color:#0f172a;white-space:nowrap}
.office-preview table.lg-table tr:nth-child(even) td{background:#fbfdff}
@media (max-width:640px){
  .office-preview table.lg-table{font-size:11.5px;table-layout:auto}
  .office-preview table.lg-table th,
  .office-preview table.lg-table td{padding:4px 5px;line-height:1.6}
  .office-preview table.lg-table th{white-space:normal;font-weight:700}
}

/* ==========================================================
   手机端工具条「更多」折叠开关（v2.9.2）
   桌面端不显示；窄屏展开逻辑在 mobile.css
   ========================================================== */
.dv-toolbar .dv-more,
.office-preview .op-more { display: none; }

/* 折叠面板：桌面端始终展开（面板只是窄屏的收纳盒） */
.office-preview .op-panel { display: contents; }
.dv-toolbar .dv-panel { display: inline-flex; align-items: center; gap: .28rem; flex-wrap: wrap; }

/* ==========================================================
   v2.9.8 / v2.9.9：工具条按钮居中
   v2.9.9 起默认视图（页内）也居中，不再只在全屏生效：
   正文/幻灯片本来就是居中的，工具条跟着居中才对称。
   用 safe center：工具条内容超宽（如 16 页 PPT 的页码条）时
   自动退回左对齐，避免居中把左侧按钮顶出可视区、滚不回去。
   窄屏（<576px）不参与，那里工具条是一行 nowrap + 「更多」贴右，
   居中会把左端按钮裁掉，保持原样。
   ========================================================== */
@media (min-width:576px){
.doc-viewer .dv-toolbar{
  justify-content:center;
  justify-content:safe center;
}
.doc-viewer .dv-toolbar .dv-group,
.doc-viewer .dv-toolbar .dv-panel{justify-content:center;}
.office-preview .op-tool-acts{
  justify-content:center;
  justify-content:safe center;
}
.office-preview .op-tabs{
  justify-content:center;
  justify-content:safe center;
}
/* 「原格式 / 正文」标签行跟着一起居中，否则标签贴左、工具条居中会错位 */
.ima-tabs{justify-content:center;}
.preview-frame--rmt .ima-tabs{justify-content:center;}
.doc-viewer .dv-toolbar .dv-more,
.office-preview .op-more{margin-left:0;}
}

.doc-viewer.dv-fullscreen .dv-toolbar{
  justify-content:center;
  justify-content:safe center;
  row-gap:.45rem;
}
/* 窄屏时「更多」原本靠右贴边，全屏居中后取消这个外推 */
.doc-viewer.dv-fullscreen .dv-toolbar .dv-more,
.office-preview.op-fullscreen .op-more{margin-left:0;}
.doc-viewer.dv-fullscreen .dv-toolbar .dv-group,
.doc-viewer.dv-fullscreen .dv-toolbar .dv-panel{justify-content:center;}

.office-preview.op-fullscreen .op-tool-acts{
  justify-content:center;
  justify-content:safe center;
}
.office-preview.op-fullscreen .op-tabs{
  justify-content:center;
  justify-content:safe center;
}
/* 窄屏下工具条是横向滚动容器，居中一律走 safe 版本（只在全屏生效） */
@media (max-width:575.98px){
.doc-viewer.dv-fullscreen .dv-toolbar{justify-content:safe center;}
.office-preview.op-fullscreen .op-tool-acts{justify-content:safe center;}
.office-preview.op-fullscreen .op-tabs{justify-content:safe center;}
}
