.cv-layout { background: var(--paper-2); }
.lp-toolbar { max-width: 900px; margin: 0 auto 16px; display: flex; align-items: center; gap: 10px; padding: 8px 10px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); }
.lp { display: flex; flex-direction: column; align-items: center; gap: 22px; }
.lp-page {
  width: 640px;
  height: 905px;
  flex: none;
  background: #fff;
  box-shadow: var(--sh-page);
  padding: 72px 76px 64px;
  position: relative;
  overflow: hidden;
  font-family: var(--font-print);
  color: #111;
}
.lp.compact .lp-page { width: 480px; height: 679px; padding: 54px 57px 48px; font-size: 10.5px; }
.lp.compact { gap: 16px; zoom: 1; }
.lp-header { position: absolute; top: 28px; left: 76px; right: 76px; display: flex; justify-content: space-between; align-items: center; font-family: var(--font-ui); font-size: 10px; color: #777; border-bottom: 0.5px solid #ccc; padding-bottom: 6px; }
.lp-footer { position: absolute; bottom: 26px; left: 0; right: 0; text-align: center; font-family: var(--font-ui); font-size: 10px; color: #888; }
.lp-pn { position: absolute; bottom: 30px; right: 76px; font-family: var(--font-fs); font-size: 13px; }
.lp-mark { font-family: var(--font-ui); font-size: 10px; font-weight: 700; padding: 1px 6px; border: 1px solid currentColor; border-radius: 2px; }
.lp-mark.internal { color: var(--cls-internal); }
.lp-mark.confidential { color: var(--cls-confidential); }
.lp-mark.restricted { color: var(--cls-restricted); }
.cover .lp-mark { position: absolute; top: 32px; right: 40px; }
.lp-wm { position: absolute; inset: -20%; display: flex; flex-wrap: wrap; gap: 80px 60px; align-content: center; justify-content: center; transform: rotate(-28deg); pointer-events: none; opacity: 0.07; font-family: var(--font-ui); font-size: 15px; font-weight: 700; color: #000; }
.lp-title { font-size: 20px; text-align: center; margin-bottom: 22px; font-weight: 700; }
.lp-h { font-size: 14.5px; font-weight: 700; margin: 14px 0 8px; font-family: "Heiti SC", "PingFang SC", var(--font-ui); }
.lp-p { font-size: 13px; line-height: 1.95; text-indent: 2em; text-align: justify; margin-bottom: 4px; }
.lp-ph { font-size: 12px; color: var(--bad); background: var(--bad-soft); padding: 4px 8px; margin: 6px 0; font-family: var(--font-ui); }
.lp-fn { font-size: 8px; color: #444; }
.lp-table { width: 100%; font-size: 11px; margin: 10px 0 4px; border-top: 1px solid #000; border-bottom: 1px solid #000; font-family: var(--font-ui); }
.lp-table th { border-bottom: 0.5px solid #000; padding: 4px 6px; text-align: left; }
.lp-table td { padding: 3px 6px; }
.lp-cap { font-size: 10.5px; text-align: center; color: #333; margin-bottom: 10px; }
.lp-notes { position: absolute; left: 76px; right: 76px; bottom: 50px; border-top: 0.5px solid #999; padding-top: 6px; font-size: 9.5px; line-height: 1.6; color: #444; }
.lp-notes > div { padding-left: 0; }
.lp-toc-h { text-align: center; font-size: 18px; margin: 20px 0 30px; letter-spacing: 0.4em; }
.lp-toc { display: flex; align-items: baseline; gap: 6px; font-size: 13px; padding: 7px 0; }
.lp-toc i { flex: 1; border-bottom: 1px dotted #999; }
.cover { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.cv-org { font-size: 16px; letter-spacing: 0.3em; color: #444; margin-bottom: 40px; }
.cv-title { font-family: var(--font-print); font-size: 26px; line-height: 1.5; font-weight: 700; max-width: 440px; }
.cv-sub { margin-top: 30px; font-size: 14px; color: #444; display: flex; flex-direction: column; gap: 6px; }
.cv-date { position: absolute; bottom: 120px; font-size: 14px; color: #333; }

.lp-field { border-bottom: 1px dashed transparent; padding: 0 2px; border-radius: 2px; outline: none; transition: all var(--t-fast); }
.lp-field[contenteditable]:hover { border-bottom-color: var(--accent-2); background: var(--accent-soft); cursor: text; }
.lp-field[contenteditable]:focus { background: var(--accent-soft); border-bottom-color: var(--accent); }
.lp-field.empty::before { content: "［" attr(data-ph) "］"; color: var(--bad); background: var(--bad-soft); font-family: var(--font-ui); font-size: 11px; }

/* 公文 */
.gw { font-family: var(--font-fs); padding-top: 58px; display: flex; flex-direction: column; }
.gw-head { text-align: center; }
.gw-org { font-family: "STZhongsong", "Songti SC", var(--font-print); font-weight: 700; font-size: 38px; color: var(--gw-red); letter-spacing: 0.06em; line-height: 1.2; }
.gw-no { margin-top: 26px; font-size: 14px; display: flex; justify-content: center; position: relative; }
.gw-signer { position: absolute; right: 0; font-size: 13px; }
.gw-rule { height: 2px; background: var(--gw-red); margin: 10px 0 30px; }
.gw-title { font-family: "STZhongsong", "Songti SC", var(--font-print); font-size: 20px; font-weight: 700; text-align: center; line-height: 1.6; margin: 0 20px 22px; }
.gw-to { font-size: 15px; margin-bottom: 4px; }
.gw-body .lp-p { font-family: var(--font-fs); font-size: 15px; line-height: 1.9; }
.gw-body .lp-h { font-family: "Heiti SC", "PingFang SC", sans-serif; font-size: 15px; font-weight: 600; margin: 4px 0; text-indent: 2em; }
.gw-attach { font-size: 15px; text-indent: 2em; margin-top: 14px; }
.gw-sign { text-align: right; font-size: 15px; margin-top: 36px; line-height: 1.9; padding-right: 30px; }
.gw-foot { margin-top: auto; margin-bottom: 20px; font-size: 13px; }
.gw-cc { border-top: 1px solid #000; padding: 5px 4px; }
.gw-print { display: flex; justify-content: space-between; border-top: 0.5px solid #000; border-bottom: 1px solid #000; padding: 5px 4px; }
