/* Hallmark · macrostructure: Workbench · theme: locked Hemu indigo · nav/footer: shared Hemu
 * Audience: researchers · use: trace, correct and export · tone: precise, tactile
 * Pre-emit critique: P4 H5 E4 S5 R4 V4. Existing routes and document engines are retained. */
body.document-lab-page { overflow-x:clip; }
html:has(body.document-lab-page) { overflow-x:clip; }
.dl .dl-shell { width:min(1680px,calc(100% - 64px)); }
.dl .dl-intro { gap:48px; }
.dl .dl-intro h1 { font-size:clamp(34px,3.5vw,54px); }
.dl .dl-intro-copy > p { max-width:52ch; }
.dl .dl-downloads > button { gap:8px; min-height:118px; overflow:hidden; transition:transform var(--dl-switch) var(--dl-ease),background-color var(--dl-fast),border-color var(--dl-fast),box-shadow var(--dl-switch); }
.dl .dl-downloads > button::after { font:11px/1.6 var(--dl-font); font-weight:400; color:var(--dl-muted); }
.dl .dl-downloads > button[data-export='word-layout']::after { content:'按源稿位置重建'; color:var(--dl-on-accent); }
.dl .dl-downloads > button[data-export='word-editable']::after { content:'连续阅读与修改'; }
.dl .dl-downloads > button[data-export='pdf']::after { content:'原稿外观 · 可搜索'; }
.dl .dl-downloads > button[data-export='markdown']::after { content:'章节与结构复用'; }
.dl .dl-downloads > button[data-export='xlsx']::after { content:'完整表格与合并'; }
.dl .dl-downloads > button[data-export='text']::after { content:'提取纯文本'; }
.dl .dl-workspace { position:relative; display:grid; grid-template-columns:232px minmax(0,1fr) minmax(0,1.08fr); align-items:stretch; overflow:hidden; }
.dl .dl-workspace[data-navigator='false'] { grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); }
.dl .dl-workspace[data-has-source='false'] { grid-template-columns:232px minmax(0,1fr); }
.dl .dl-workspace[data-has-source='false'][data-navigator='false'] { grid-template-columns:minmax(0,1fr); }
.dl .dl-workspace[data-has-source='false'] .dl-original { display:none; }
.dl .dl-desk-tools { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; padding:10px 16px; border-bottom:1px solid var(--dl-rule); background:var(--dl-studio-tint); color:var(--dl-ink); }
.dl .dl-desk-tools > div { display:flex; align-items:center; min-width:0; gap:12px; }
.dl .dl-desk-actions { gap:4px !important; }
.dl .dl-desk-caption { font-size:11px; color:var(--dl-muted); }
.dl .dl-tool { display:inline-flex; justify-content:center; align-items:center; gap:8px; min-width:44px; height:44px; padding:8px 12px; border:1px solid var(--dl-clear); border-radius:8px; background:var(--dl-clear); color:var(--dl-ink); font:500 12px var(--dl-font); cursor:pointer; white-space:nowrap; transition:background-color var(--dl-fast),transform var(--dl-fast) var(--dl-ease); }
.dl .dl-tool svg,.dl .dl-nav-search svg { flex:none; width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.dl .dl-tool[aria-expanded='true'] { color:var(--dl-accent); background:var(--dl-surface); border-color:var(--dl-studio-line); }
.dl .dl-tool:disabled { opacity:.4; cursor:not-allowed; }
.dl .dl-tool:not(:disabled):active { transform:scale(.95); }
body.document-lab-page .dl .dl-tool { border-radius:8px !important; }
.dl .dl-navigator { min-width:0; display:flex; flex-direction:column; padding:18px 12px 0; background:var(--dl-surface); color:var(--dl-ink); border-inline-end:1px solid var(--dl-rule); }
.dl .dl-navigator[hidden] { display:none; }
.dl .dl-nav-search { margin-inline:4px; }
.dl .dl-nav-search label { display:block; margin-bottom:8px; font-size:11px; color:var(--dl-muted); }
.dl .dl-nav-search > div { display:flex; align-items:center; gap:8px; height:44px; padding-inline:10px 4px; border:1px solid var(--dl-rule); border-radius:9px; background:var(--dl-paper); color:var(--dl-muted); }
.dl .dl-nav-search input { min-width:0; width:100%; height:42px; padding:0; border:0; background:var(--dl-clear); color:var(--dl-ink); font:12px var(--dl-font); appearance:none; }
.dl .dl-nav-search input::placeholder { color:var(--dl-muted); opacity:1; }
.dl .dl-nav-search input::-webkit-search-cancel-button { display:none; }
@layer site-focus-appearance {
  body.document-lab-page .dl .dl-nav-search:focus-within > div { outline:2px solid var(--dl-focus) !important; outline-offset:2px !important; }
  body.document-lab-page .dl .dl-nav-search input:focus-visible { outline:none !important; box-shadow:none !important; }
}
.dl .dl-nav-search button { min-width:44px; height:44px; margin-inline-end:-4px; border:0; background:var(--dl-clear); color:var(--dl-muted); font-size:20px; cursor:pointer; }
.dl .dl-nav-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:20px 6px 10px; }
.dl .dl-nav-head h3 { margin:0; font-size:12px; font-weight:600; }
.dl .dl-nav-head > span { font:10px var(--dl-mono); color:var(--dl-muted); }
.dl .dl-page-directory { position:relative; min-height:0; height:calc(var(--dl-workbench-height) - 96px); flex:1; overflow-y:auto; overflow-x:clip; scrollbar-gutter:stable; overscroll-behavior:contain; padding:2px 2px 12px; }
.dl .dl-page-entry { display:flex; align-items:center; gap:10px; width:100%; min-height:66px; margin-bottom:4px; padding:10px 8px; border:1px solid var(--dl-clear); border-radius:10px; background:var(--dl-clear); color:var(--dl-ink); text-align:start; cursor:pointer; transition:background-color var(--dl-fast),border-color var(--dl-fast),transform var(--dl-switch) var(--dl-ease); }
.dl .dl-page-number { flex:none; width:32px; height:40px; border:1px solid var(--dl-rule); border-radius:4px; background:var(--dl-paper); color:var(--dl-muted); font:11px var(--dl-mono); display:grid; place-items:center; box-shadow:0 2px 3px var(--dl-studio-shadow); }
.dl .dl-page-entry-copy { display:block; min-width:0; flex:1; }
.dl .dl-page-entry strong { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:11px; font-weight:550; line-height:1.7; }
.dl .dl-page-entry small { display:block; margin-top:3px; color:var(--dl-muted); font:10px/1.6 var(--dl-font); }
.dl .dl-page-entry[aria-current='page'] { background:var(--dl-studio-tint); border-color:var(--dl-studio-line); }
body.document-lab-page .dl .dl-page-entry { border-radius:10px !important; }
.dl .dl-page-entry[aria-current='page'] .dl-page-number { border-color:var(--dl-accent); color:var(--dl-on-accent); background:var(--dl-accent); }
.dl .dl-page-issues { flex:none; width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:var(--dl-warm); color:var(--dl-warm-ink); font:10px var(--dl-mono); }
.dl .dl-nav-footer { min-height:64px; display:flex; align-items:center; padding:12px 6px; border-top:1px solid var(--dl-rule); color:var(--dl-muted); font-size:10px; line-height:1.7; }
.dl .dl-directory-pager { display:flex; align-items:center; justify-content:space-between; gap:4px; padding-top:8px; border-top:1px solid var(--dl-rule); }
.dl .dl-directory-pager button { min-width:44px; min-height:44px; border:0; background:var(--dl-clear); color:var(--dl-accent); font-size:10px; cursor:pointer; }
.dl .dl-directory-pager button:disabled { opacity:.45; cursor:not-allowed; }
.dl .dl-directory-pager small { font:9px var(--dl-mono); color:var(--dl-muted); }
.dl .dl-search-hit { display:block; width:100%; padding:12px 8px; margin-bottom:6px; border:1px solid var(--dl-clear); border-radius:8px; background:var(--dl-clear); color:var(--dl-ink); cursor:pointer; text-align:start; }
.dl .dl-search-hit small { display:block; font:10px var(--dl-font); color:var(--dl-accent); margin-bottom:6px; }
.dl .dl-search-hit > span { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; font:11px/1.85 var(--dl-font); }
body.document-lab-page .dl :is(.dl-search-hit,.dl-review-check) { border-radius:8px !important; }
.dl .dl-nav-empty { padding:16px 8px; color:var(--dl-muted); font:12px/1.9 var(--dl-font); }
.dl .dl-review-heading { padding:2px 0 20px; border-bottom:1px solid var(--dl-rule); }
.dl .dl-review-eyebrow { color:var(--dl-accent); font:10px var(--dl-mono); letter-spacing:.08em; }
.dl .dl-review-heading h3 { margin:10px 0 8px; font-size:24px; line-height:1.4; font-weight:650; }
.dl .dl-review-heading p { margin:0; color:var(--dl-muted); font:12px/1.8 var(--dl-font); }
.dl .dl-review-filters { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr) minmax(0,.9fr); gap:8px; margin-top:18px; }
.dl .dl-review-filters label { min-width:0; font-size:11px; color:var(--dl-muted); }
.dl .dl-review-filters label > span { display:block; margin-bottom:6px; }
.dl .dl-review-filters select { display:block; width:100%; min-width:0; height:44px; min-height:44px; padding:8px; border:1px solid var(--dl-rule); border-radius:8px; color:var(--dl-ink); background:var(--dl-surface); font:11px var(--dl-font); }
.dl .dl-review-list { display:grid; gap:12px; margin-top:20px; }
.dl .dl-review-item { display:block; min-width:0; border:1px solid var(--dl-rule); border-radius:12px; padding:16px; background:var(--dl-surface); color:var(--dl-ink); }
.dl .dl-review-item-head { display:flex; justify-content:space-between; gap:12px; color:var(--dl-muted); font-size:10px; }
.dl .dl-review-source { display:block; width:100%; padding:12px 0 8px; min-height:44px; border:0; text-align:start; color:var(--dl-ink); background:var(--dl-clear); font:14px/1.85 var(--dl-font); overflow-wrap:anywhere; white-space:pre-wrap; cursor:pointer; }
.dl .dl-review-meta { display:block; color:var(--dl-muted); font-size:11px; line-height:1.8; }
.dl .dl-review-meta p { margin:0 0 4px; }
.dl .dl-review-meta small { display:block; font-size:10px; }
.dl .dl-review-check { display:block; min-height:44px; width:100%; margin-top:12px; padding:8px 12px; border:1px solid var(--dl-studio-line); border-radius:8px; color:var(--dl-accent); background:var(--dl-studio-tint); font:500 12px var(--dl-font); cursor:pointer; }
.dl .dl-review-check[aria-pressed='true'] { color:var(--dl-success); border-color:var(--dl-rule); background:var(--dl-paper); }
.dl .dl-review-empty { padding:40px 12px; text-align:center; color:var(--dl-muted); font:12px/1.9 var(--dl-font); }
.dl .dl-review-empty strong { color:var(--dl-ink); font-size:16px; }
.dl #dlReviewCount { font:10px var(--dl-mono); }
.dl .dl-extracted,.dl .dl-original { min-width:0; }
.dl .dl-source-actions { gap:4px; }
.dl .dl-tabs { min-width:0; flex:1; }
.dl .dl-tab { padding-inline:10px; }
.dl .dl-shortcuts { position:fixed; inset:0; margin:auto; height:fit-content; width:min(480px,calc(100% - 32px)); max-height:min(84dvh,640px); overflow:auto; padding:28px; border:1px solid var(--dl-studio-line); border-radius:20px; color:var(--dl-ink); background:var(--dl-surface); box-shadow:0 24px 80px var(--dl-shadow); }
.dl .dl-shortcuts::backdrop { background:var(--dl-overlay); backdrop-filter:blur(6px); }
.dl .dl-shortcuts header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.dl .dl-shortcuts header small { font:10px var(--dl-mono); letter-spacing:.08em; color:var(--dl-accent); }
.dl .dl-shortcuts h2 { margin:8px 0 20px; font-size:25px; font-weight:650; }
.dl .dl-shortcuts dl { margin:0; }
.dl .dl-shortcuts dl > div { display:flex; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--dl-rule); font-size:12px; }
.dl .dl-shortcuts dd { margin:0; text-align:end; }
.dl .dl-shortcuts dd span { display:block; font-size:10px; color:var(--dl-muted); margin-top:4px; }
.dl .dl-shortcuts kbd { display:inline-block; min-width:24px; min-height:26px; padding:4px 6px; border:1px solid var(--dl-rule); border-radius:5px; font:10px var(--dl-mono); background:var(--dl-paper); color:var(--dl-ink); }
.dl .dl-shortcuts > p { margin:20px 0 0; font:11px/1.9 var(--dl-font); color:var(--dl-muted); }
.dl .dl-shortcuts[open] { animation:dl-shortcuts-in var(--dl-switch) var(--dl-ease); }
@keyframes dl-shortcuts-in { from {opacity:0;transform:translateY(16px) scale(.97);} to {opacity:1;transform:translateY(0) scale(1);} }
@media (hover:hover) and (pointer:fine) {
  .dl .dl-tool:not(:disabled):hover,.dl .dl-page-entry:hover,.dl .dl-search-hit:hover { background:var(--dl-studio-tint); }
  .dl .dl-page-entry:not([aria-current]):hover { transform:translateX(2px); }
  .dl .dl-review-source:hover { color:var(--dl-accent); }
  .dl .dl-review-check:hover { border-color:var(--dl-accent); }
  .dl .dl-downloads > button:not(:disabled):hover { transform:translateY(-4px); box-shadow:0 8px 18px var(--dl-studio-shadow); }
}
@layer site-focus-appearance {
  body.document-lab-page .dl :is(.dl-tool,.dl-page-entry,.dl-search-hit,.dl-review-check,.dl-directory-pager button,.dl-nav-search button,.dl-review-filters select):focus-visible { outline:2px solid var(--dl-focus) !important; outline-offset:2px !important; }
}
.dl .dl-workspace:fullscreen { overflow-y:auto; align-content:start; }
.dl .dl-workspace:fullscreen .dl-page-directory { height:calc(100dvh - 226px); }
@media (max-width:1100px) {
  .dl .dl-workspace { grid-template-columns:210px minmax(0,1fr); }
  .dl .dl-workspace[data-navigator='false'] { grid-template-columns:minmax(0,1fr); }
  .dl .dl-navigator { grid-row:2/4; }
  .dl .dl-original,.dl .dl-extracted { grid-column:2; }
  .dl .dl-workspace[data-navigator='false'] :is(.dl-original,.dl-extracted) { grid-column:1; }
  .dl .dl-original { border-inline-end:0; border-bottom:1px solid var(--dl-rule); }
  .dl .dl-page-directory { height:calc(960px - 96px); }
  .dl .dl-page-canvas { height:440px; }
  .dl .dl-result-body { height:500px; }
}
@media (max-width:767px) {
  .dl .dl-shell { width:calc(100% - 32px); }
  .dl .dl-workspace,.dl .dl-workspace[data-navigator='false'],.dl .dl-workspace[data-has-source='false'] { grid-template-columns:minmax(0,1fr); }
  .dl .dl-workspace :is(.dl-original,.dl-extracted,.dl-navigator) { grid-column:1; grid-row:auto; }
  .dl .dl-desk-tools { padding:8px; flex-wrap:nowrap; }
  .dl .dl-desk-caption { display:none; }
  .dl .dl-desk-tools > div { gap:4px; }
  .dl .dl-tool { padding-inline:10px; font-size:11px; }
  .dl .dl-desk-actions .dl-tool { padding-inline:8px; }
  .dl .dl-navigator { padding:16px 12px 0; border-inline-end:0; border-bottom:1px solid var(--dl-rule); }
  .dl .dl-nav-head { padding-top:12px; }
  .dl .dl-page-directory,.dl .dl-workspace:fullscreen .dl-page-directory { flex:none; height:180px; }
  .dl .dl-nav-footer { min-height:40px; padding-block:8px; }
  .dl .dl-downloads > button { min-height:106px; }
  .dl .dl-extracted > .dl-view-head { padding:8px; }
  .dl .dl-tabs { flex-basis:100%; }
  .dl .dl-tab { font-size:11px; padding-inline:9px; }
  .dl .dl-review-heading h3 { font-size:21px; }
  .dl .dl-review-item { padding:12px; }
  .dl .dl-shortcuts { padding:20px; }
  .dl .dl-shortcuts h2 { font-size:21px; }
}
@media (max-width:359px) {
  .dl .dl-shell { width:calc(100% - 24px); }
  .dl .dl-tool { gap:5px; padding-inline:8px; }
  .dl .dl-desk-actions .dl-tool { min-width:44px; padding-inline:8px; }
}
@media (prefers-reduced-motion:reduce) {
  .dl :is(.dl-tool,.dl-page-entry,.dl-search-hit,.dl-downloads > button,.dl-shortcuts) { animation:none !important; transition:none !important; }
}
