/* 码上交付 · 简历工具 · A4 纸面样式
 * 结构见 core/render-paper.js。全部尺寸用 mm / pt / em，保证屏幕预览与打印一致。
 * 模板样式都挂在 .tpl-<id> 下；颜色用 --c1 / --c2 及其派生变量（core/color.js paletteVars）。
 */

/* ================================================================ 基础 */
.rs-doc {
  font-family: var(--ff-body);
  font-size: var(--fs, 10.5pt);
  line-height: var(--lh, 1.6);
  color: #1F2329;
  text-align: left;
  letter-spacing: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  -webkit-font-smoothing: antialiased;
  font-kerning: normal;
}
.rs-doc *, .rs-doc *::before, .rs-doc *::after { box-sizing: border-box; }
.rs-doc h1, .rs-doc h2, .rs-doc p, .rs-doc ul, .rs-doc ol, .rs-doc li { margin: 0; padding: 0; }
.rs-doc h1, .rs-doc h2 { font-size: inherit; letter-spacing: normal; }
.rs-doc a { color: inherit; text-decoration: none; }
.rs-doc b, .rs-doc strong { font-weight: 700; }
.rs-doc img { max-width: none; }

.rs-page {
  position: relative;
  width: 210mm;
  min-height: 297mm;
  background: #FFFFFF;
  overflow: hidden;
}
.rs-page.is-paged { height: 297mm; min-height: 0; }
.rs-deco { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.rs-deco i { position: absolute; display: none; }
.rs-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  min-height: 297mm;
  padding: var(--pmy) var(--pm);
}
.rs-page.is-paged .rs-inner { height: 100%; min-height: 0; }
.rs-body { display: flex; align-items: stretch; gap: 7mm; flex: 1 1 auto; min-height: 0; }
.rs-col { min-width: 0; }
.rs-main { flex: 1 1 auto; }
.rs-side { flex: 0 0 var(--sw); width: var(--sw); }
.rs-side-left .rs-side { order: -1; }
.rs-page.is-paged .rs-col { overflow: hidden; }

.rs-ic { width: 1.05em; height: 1.05em; flex: none; vertical-align: -0.16em; }
.rs-noicons .rs-ic, .rs-noicons .rs-sec-icon { display: none !important; }

/* ---------------- 页眉 */
.rs-head { display: flex; align-items: flex-start; gap: 6mm; margin-bottom: var(--sg); }
.rs-head-main { flex: 1 1 auto; min-width: 0; }
.rs-photo { flex: none; width: 27mm; height: 36mm; overflow: hidden; background: #EEF1F5; }
.rs-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rs-photo-round .rs-photo { border-radius: 2.5mm; }
.rs-photo-circle .rs-photo { width: 30mm; height: 30mm; border-radius: 50%; }
.rs-eyebrow { display: none; }
.rs-name { font-family: var(--ff-head); font-size: 2.35em; font-weight: 700; line-height: 1.18; color: #111827; }
.rs-name.is-ph { opacity: .32; }
.rs-headline { margin-top: .8mm; font-size: 1.08em; color: #374151; }
.rs-hl-k { color: #6B7280; }
.rs-tagline { margin-top: 1mm; color: #4B5563; }
.rs-facts { display: flex; flex-wrap: wrap; gap: .8mm 5mm; margin-top: 2mm; list-style: none; color: #374151; }
.rs-fact { display: inline-flex; align-items: center; gap: 1.2mm; }
.rs-fact .rs-ic { color: var(--c1); }
.rs-k { color: #6B7280; }
.rs-k::after { content: "："; }
.rs-doc[lang="en"] .rs-k::after { content: ": "; }
.rs-labels-off .rs-fact .rs-k { display: none; }
.rs-intro { margin-top: 2mm; color: #374151; }
.rs-intro-k { color: #111827; }

/* ---------------- 模块 */
.rs-sec { margin-top: var(--sg); }
.rs-col > .rs-sec:first-child, .rs-col > .rs-head + .rs-sec { margin-top: 0; }
.rs-side .rs-head + .rs-sec { margin-top: var(--sg); }
.rs-sec-title {
  display: flex;
  align-items: center;
  gap: 2mm;
  margin-bottom: 2.2mm;
  font-family: var(--ff-head);
  font-size: 1.22em;
  font-weight: 700;
  line-height: 1.3;
  color: var(--c1-ink);
}
.rs-sec-no, .rs-sec-icon { display: none; }
.rs-sec-icon .rs-ic { width: 1em; height: 1em; vertical-align: 0; }
.rs-sec-name { flex: none; }
.rs-sec-line { flex: 1 1 auto; height: .3mm; min-width: 6mm; background: var(--c1-t3); }

/* 经历条目 */
.rs-item + .rs-item { margin-top: var(--ig); }
.rs-item-head { display: flex; align-items: baseline; gap: 3mm; }
.rs-item-main { flex: 1 1 auto; min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 2.6mm; row-gap: .2mm; }
.rs-item-title { font-weight: 700; font-size: 1.04em; color: #111827; }
.rs-item-sub { font-weight: 600; color: var(--c1-ink); }
.rs-item-meta { color: #6B7280; font-size: .92em; }
.rs-item-date { flex: none; margin-left: auto; color: #6B7280; font-size: .92em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rs-item-tag { display: flex; align-items: center; gap: 1.2mm; width: fit-content; max-width: 100%; margin-top: 1.2mm; padding: .1mm 2mm; border: .25mm solid var(--c2-t2); color: var(--c2-ink); font-size: .92em; }
.rs-item-tag .rs-ic { color: var(--c2); }
.rs-item-link { display: flex; align-items: center; gap: 1.2mm; margin-top: .8mm; font-size: .92em; color: var(--c1-ink); }
.rs-rich { margin-top: 1.1mm; color: #1F2937; }
.rs-rich p + p, .rs-rich p + ul, .rs-rich ul + p, .rs-rich p + ol, .rs-rich ol + p { margin-top: .7mm; }
.rs-rich ul, .rs-rich ol { padding-left: 4.4mm; }
.rs-rich ul > li { position: relative; list-style: none; }
.rs-rich ul > li::before {
  content: "";
  position: absolute;
  left: -3.3mm;
  top: calc(var(--lh) * .5em - .65mm);
  width: 1.3mm;
  height: 1.3mm;
  border-radius: 50%;
  background: var(--c1);
}
.rs-rich ol > li { list-style: decimal; }
.rs-rich ol > li::marker { color: var(--c1-ink); font-weight: 700; }
.rs-rich li + li { margin-top: .45mm; }
.rs-rich li > ul, .rs-rich li > ol { margin-top: .3mm; }
.rs-rich b { color: #111827; }
.rs-rich a { color: var(--c1-ink); text-decoration: underline; text-underline-offset: .5mm; }
.rs-text p + p { margin-top: .9mm; }

/* 优势卡片 */
.rs-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.4mm; }
.rs-side .rs-cards { grid-template-columns: minmax(0, 1fr); }
.rs-card { padding: 2.4mm 3.2mm 2.6mm; background: var(--c1-t1); border-top: .7mm solid var(--c1); }
.rs-card-title { display: flex; align-items: center; gap: 1.4mm; margin-bottom: .6mm; font-weight: 700; color: var(--c1-ink); }
.rs-card-title .rs-ic { display: none; }
.rs-card-desc { font-size: .95em; color: #374151; }

/* 技能分组 */
.rs-groups.is-lines { list-style: none; }
.rs-groups.is-lines .rs-group { position: relative; padding-left: 4.4mm; }
.rs-groups.is-lines .rs-group::before {
  content: "";
  position: absolute;
  left: 1.1mm;
  top: calc(var(--lh) * .5em - .65mm);
  width: 1.3mm;
  height: 1.3mm;
  border-radius: 50%;
  background: var(--c1);
}
.rs-group + .rs-group { margin-top: .8mm; }
.rs-group-k { font-weight: 700; color: #111827; }
.rs-groups.is-tags .rs-group { display: flex; align-items: baseline; gap: 2.4mm; }
.rs-groups.is-tags .rs-group-k { flex: none; min-width: 16mm; }
.rs-side .rs-groups.is-tags .rs-group { display: block; }
.rs-side .rs-groups.is-tags .rs-group-k { margin-bottom: .6mm; }
.rs-tags { display: flex; flex-wrap: wrap; gap: 1.1mm 1.3mm; }
.rs-tag { padding: 0 2mm; border-radius: .9mm; background: var(--c1-t1); color: var(--c1-ink); font-size: .9em; line-height: 1.75; }

/* 奖项证书等短列表 */
.rs-list { list-style: none; }
.rs-li { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 2.4mm; }
.rs-li + .rs-li { margin-top: .7mm; }
.rs-li-title { font-weight: 600; color: #111827; }
.rs-li-sub { color: #4B5563; }
.rs-li-date { margin-left: auto; color: #6B7280; font-size: .92em; white-space: nowrap; }
.rs-li-desc { flex-basis: 100%; color: #4B5563; font-size: .92em; }

/* 编辑器里的空模块提示（打印时不会出现：打印前会不带提示重新渲染） */
.rs-empty { padding: 2.6mm 3mm; border: .3mm dashed #CBD5E1; border-radius: 1.2mm; color: #94A3B8; font-size: .9em; text-align: center; }

/* ================================================================ 1. 藏青商务 navy */
.tpl-navy .rs-deco i { display: block; }
.tpl-navy .rs-deco-a { left: 0; top: 0; width: 78%; height: 2.4mm; background: var(--c1); }
.tpl-navy .rs-deco-b { right: 0; top: 0; width: 22%; height: 2.4mm; background: var(--c2); }
.tpl-navy .rs-deco-c { left: 0; right: 0; bottom: 0; height: 2.4mm; background: var(--c1); }
.tpl-navy .rs-inner { padding-top: calc(var(--pmy) + 2.4mm); padding-bottom: calc(var(--pmy) + 2.4mm); }
.tpl-navy .rs-head {
  align-items: center;
  gap: 7mm;
  margin: calc(-1 * var(--pmy)) calc(-1 * var(--pm)) var(--sg);
  padding: 7.5mm var(--pm) 6.5mm calc(var(--pm) + 2mm);
  background: var(--c1-t1);
  border-bottom: .3mm solid var(--c1-t2);
}
.tpl-navy .rs-photo { width: 27mm; height: 36mm; border: 1.1mm solid #FFFFFF; box-shadow: 0 .8mm 2.6mm rgba(15, 23, 42, .16); background: #FFFFFF; }
.tpl-navy.rs-photo-circle .rs-photo { width: 31mm; height: 31mm; }
.tpl-navy .rs-name { font-size: 2.6em; font-weight: 700; letter-spacing: .16em; color: var(--c1-ink); line-height: 1.15; }
.tpl-navy .rs-doc[lang="en"] .rs-name, .tpl-navy[lang="en"] .rs-name { letter-spacing: .02em; }
.tpl-navy .rs-headline { margin-top: .6mm; font-weight: 600; color: var(--c1-ink); }
.tpl-navy .rs-hl-k { font-weight: 400; }
.tpl-navy .rs-tagline { margin-top: 2mm; }
.tpl-navy .rs-tagline span { display: inline-block; padding: .3mm 3mm; background: var(--c2); color: var(--c2-on); letter-spacing: .06em; font-size: .96em; }
.tpl-navy .rs-facts { display: grid; grid-template-columns: repeat(2, max-content); column-gap: 13mm; row-gap: .5mm; margin-top: 2.4mm; color: #111827; }
.tpl-navy .rs-fact .rs-ic { display: none; }
.tpl-navy .rs-fact .rs-k { margin-right: 1.6mm; }
.tpl-navy .rs-fact .rs-k::after { content: ""; }
.tpl-navy .rs-intro { margin-top: 2.2mm; padding-left: 2.4mm; border-left: .8mm solid var(--c1); color: #1F2937; }
.tpl-navy .rs-intro-k { color: var(--c1-ink); }
.tpl-navy .rs-sec-title { gap: 2.6mm; margin-bottom: 2.8mm; font-size: 1.3em; font-weight: 600; letter-spacing: .28em; color: var(--c1-ink); }
.tpl-navy .rs-sec-no {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 6.4mm;
  height: 5.2mm;
  background: var(--c1);
  color: var(--c1-on);
  font-family: Georgia, "Times New Roman", serif;
  font-size: .6em;
  font-weight: 700;
  letter-spacing: 0;
}
.tpl-navy .rs-sec-line { height: .4mm; background: linear-gradient(90deg, var(--c1) 0%, var(--c1-t3) 40%, var(--c1-t2) 100%); }
.tpl-navy .rs-item-head { padding-bottom: .8mm; border-bottom: .3mm dashed var(--c1-t3); }
.tpl-navy .rs-item-sub { font-weight: 700; }
.tpl-navy .rs-item-tag { margin-top: 1.3mm; padding: 0 2mm; border-color: var(--c2); }
.tpl-navy .rs-item-tag .rs-ic { display: none; }
.tpl-navy .rs-rich ul > li::before,
.tpl-navy .rs-groups.is-lines .rs-group::before { width: 1.45mm; height: 1.45mm; border-radius: 0; transform: rotate(45deg); background: var(--c1); }
.tpl-navy .rs-rich b, .tpl-navy .rs-group-k { color: var(--c1-ink); }
.tpl-navy .rs-card { padding: 2.2mm 3.4mm 2.6mm; border-top-width: .8mm; }
.tpl-navy .rs-tag { border-radius: 0; background: var(--c1-t1); }

/* ================================================================ 2. 经典简约 classic */
.tpl-classic .rs-head { flex-direction: row-reverse; justify-content: space-between; gap: 8mm; padding-bottom: 3.4mm; border-bottom: .5mm solid var(--c1); }
.tpl-classic .rs-photo { width: 24mm; height: 32mm; }
.tpl-classic.rs-photo-circle .rs-photo { width: 26mm; height: 26mm; }
.tpl-classic .rs-name { font-family: var(--ff-body); font-size: 2.3em; letter-spacing: .04em; color: #111111; }
.tpl-classic .rs-headline { margin-top: .4mm; font-size: 1.1em; color: var(--c1-ink); font-weight: 600; }
.tpl-classic .rs-hl-k { font-weight: 400; }
.tpl-classic .rs-tagline { font-size: .95em; }
/* 行内分隔：每项左侧画竖线，列表左移 5mm 并由 .rs-head-main 裁掉每行第一项的竖线 → 换行时行首不会出现分隔符 */
.tpl-classic .rs-head-main, .tpl-minimal .rs-head-main { overflow: hidden; }
.tpl-classic .rs-facts, .tpl-minimal .rs-facts { margin-left: -5mm; gap: .6mm 0; }
.tpl-classic .rs-fact, .tpl-minimal .rs-fact { position: relative; padding-left: 5mm; }
.tpl-classic .rs-fact::before { content: ""; position: absolute; left: 2.35mm; top: 50%; width: .3mm; height: .95em; transform: translateY(-50%); background: #D1D5DB; }
.tpl-minimal .rs-fact::before { content: ""; position: absolute; left: 2.05mm; top: 50%; width: .9mm; height: .9mm; border-radius: 50%; transform: translateY(-50%); background: #9CA3AF; }
.tpl-classic .rs-facts { margin-top: 1.8mm; }
.tpl-classic .rs-fact .rs-ic { display: none; }
.tpl-classic .rs-sec-title { margin-bottom: 2mm; padding-bottom: .9mm; border-bottom: .3mm solid #D1D5DB; font-family: var(--ff-body); font-size: 1.16em; letter-spacing: .06em; color: #111111; }
.tpl-classic .rs-sec-name { position: relative; }
.tpl-classic .rs-sec-name::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1.2mm; height: .6mm; background: var(--c1); }
.tpl-classic .rs-sec-line { display: none; }
.tpl-classic .rs-item-title { color: #111111; }
.tpl-classic .rs-item-sub { font-weight: 500; color: #374151; }
.tpl-classic .rs-item-sub::before, .tpl-classic .rs-item-meta::before { content: "·"; margin-right: 2.2mm; color: #9CA3AF; }
.tpl-classic .rs-item-tag { border: 0; padding: 0; color: var(--c2-ink); }
.tpl-classic .rs-rich ul > li::before, .tpl-classic .rs-groups.is-lines .rs-group::before { width: 1.1mm; height: 1.1mm; background: #374151; }
.tpl-classic .rs-card { background: transparent; border-top: 0; border-left: .6mm solid var(--c1); padding: .4mm 0 .4mm 2.6mm; }
.tpl-classic .rs-card-title { color: #111111; }
.tpl-classic .rs-tag { background: #F3F4F6; color: #1F2937; }

/* ================================================================ 3. 深色侧栏 sidebar */
.tpl-sidebar .rs-inner { padding: 0; }
.tpl-sidebar .rs-body { gap: 0; }
.tpl-sidebar .rs-side { padding: 11mm 6mm 9mm; background: var(--c1); color: rgba(255, 255, 255, .88); }
.tpl-sidebar .rs-main { padding: 11mm var(--pm) 9mm 8mm; }
.tpl-sidebar.rs-side-right .rs-main { padding: 11mm 8mm 9mm var(--pm); }
.tpl-sidebar.rs-cols-1 .rs-inner { padding: var(--pmy) var(--pm); }
.tpl-sidebar.rs-cols-1 .rs-main { padding: 0; }
.tpl-sidebar .rs-side .rs-head { flex-direction: column; align-items: center; gap: 3.4mm; margin: 0 0 var(--sg); padding-bottom: 5mm; border-bottom: .3mm solid rgba(255, 255, 255, .18); text-align: center; }
.tpl-sidebar .rs-side .rs-photo { width: 30mm; height: 30mm; border-radius: 50%; border: .9mm solid rgba(255, 255, 255, .3); background: rgba(255, 255, 255, .1); }
.tpl-sidebar.rs-photo-rect .rs-side .rs-photo { width: 28mm; height: 37mm; border-radius: 0; }
.tpl-sidebar.rs-photo-round .rs-side .rs-photo { width: 28mm; height: 37mm; border-radius: 2.5mm; }
.tpl-sidebar .rs-side .rs-head-main { width: 100%; }
.tpl-sidebar .rs-side .rs-name { font-family: var(--ff-body); font-size: 2em; letter-spacing: .12em; color: #FFFFFF; }
.tpl-sidebar .rs-side .rs-headline { margin-top: 1mm; font-size: 1em; color: var(--c2); font-weight: 600; }
.tpl-sidebar .rs-side .rs-hl-k { display: none; }
.tpl-sidebar .rs-side .rs-tagline { font-size: .9em; color: rgba(255, 255, 255, .7); }
.tpl-sidebar .rs-side .rs-facts { flex-direction: column; align-items: flex-start; gap: 1.3mm; margin-top: 4mm; text-align: left; color: rgba(255, 255, 255, .9); font-size: .93em; }
.tpl-sidebar .rs-side .rs-fact { align-items: flex-start; }
.tpl-sidebar .rs-side .rs-fact .rs-ic { margin-top: .25em; color: var(--c2); }
.tpl-sidebar .rs-side .rs-k { color: rgba(255, 255, 255, .55); }
.tpl-sidebar .rs-side .rs-intro { margin-top: 3mm; font-size: .92em; color: rgba(255, 255, 255, .8); text-align: left; }
.tpl-sidebar .rs-side .rs-intro-k { color: #FFFFFF; }
.tpl-sidebar .rs-side .rs-sec-title { padding-bottom: 1.2mm; border-bottom: .3mm solid rgba(255, 255, 255, .2); font-family: var(--ff-body); font-size: 1.1em; letter-spacing: .12em; color: #FFFFFF; }
.tpl-sidebar .rs-side .rs-sec-line { display: none; }
.tpl-sidebar .rs-side .rs-group-k, .tpl-sidebar .rs-side .rs-li-title, .tpl-sidebar .rs-side .rs-item-title, .tpl-sidebar .rs-side .rs-card-title { color: #FFFFFF; }
.tpl-sidebar .rs-side .rs-li-sub, .tpl-sidebar .rs-side .rs-li-date, .tpl-sidebar .rs-side .rs-li-desc,
.tpl-sidebar .rs-side .rs-item-date, .tpl-sidebar .rs-side .rs-item-meta, .tpl-sidebar .rs-side .rs-item-sub { color: rgba(255, 255, 255, .72); }
.tpl-sidebar .rs-side .rs-rich, .tpl-sidebar .rs-side .rs-card-desc, .tpl-sidebar .rs-side .rs-group-v { color: rgba(255, 255, 255, .86); }
.tpl-sidebar .rs-side .rs-rich b { color: #FFFFFF; }
.tpl-sidebar .rs-side .rs-tag { background: rgba(255, 255, 255, .12); color: #FFFFFF; }
.tpl-sidebar .rs-side .rs-rich ul > li::before, .tpl-sidebar .rs-side .rs-groups.is-lines .rs-group::before { background: var(--c2); }
.tpl-sidebar .rs-side .rs-card { background: rgba(255, 255, 255, .08); border-top-color: var(--c2); }
.tpl-sidebar .rs-side .rs-li-date { margin-left: 0; flex-basis: 100%; }
.tpl-sidebar .rs-side .rs-empty { border-color: rgba(255, 255, 255, .3); color: rgba(255, 255, 255, .6); }
.tpl-sidebar .rs-main .rs-sec-title { gap: 2.2mm; font-family: var(--ff-body); letter-spacing: .06em; }
.tpl-sidebar .rs-main .rs-sec-icon { display: inline-grid; place-items: center; width: 6.2mm; height: 6.2mm; border-radius: 50%; background: var(--c1); color: var(--c1-on); font-size: .78em; }
.tpl-sidebar .rs-main .rs-sec-line { height: .3mm; background: var(--c1-t2); }
.tpl-sidebar .rs-main .rs-item-tag { border: 0; padding: 0; }
.tpl-sidebar .rs-main .rs-item-date { color: var(--c1-ink); font-weight: 600; }
.tpl-sidebar.rs-cols-1 .rs-head { padding-bottom: 4mm; border-bottom: .4mm solid var(--c1); }
.tpl-sidebar.rs-cols-1 .rs-name { color: var(--c1-ink); }

/* ================================================================ 4. 现代双栏 modern */
.tpl-modern .rs-head {
  flex-direction: row-reverse;
  justify-content: space-between;
  align-items: center;
  gap: 7mm;
  margin: calc(-1 * var(--pmy)) calc(-1 * var(--pm)) var(--sg);
  padding: 9mm var(--pm) 8mm;
  background: var(--c1);
  color: var(--c1-on);
}
.tpl-modern .rs-photo { border: 1mm solid rgba(255, 255, 255, .85); background: rgba(255, 255, 255, .15); }
.tpl-modern .rs-name { font-family: var(--ff-body); font-size: 2.45em; letter-spacing: .06em; color: #FFFFFF; }
.tpl-modern .rs-headline { color: rgba(255, 255, 255, .92); font-weight: 600; }
.tpl-modern .rs-hl-k { color: rgba(255, 255, 255, .7); font-weight: 400; }
.tpl-modern .rs-tagline span { display: inline-block; margin-top: .6mm; padding: 0 2.6mm; border-radius: 99px; background: var(--c2); color: var(--c2-on); font-size: .92em; }
.tpl-modern .rs-facts { margin-top: 3mm; color: rgba(255, 255, 255, .92); gap: .8mm 5mm; }
.tpl-modern .rs-fact .rs-ic { color: #FFFFFF; opacity: .8; }
.tpl-modern .rs-k { color: rgba(255, 255, 255, .7); }
.tpl-modern .rs-intro { color: rgba(255, 255, 255, .88); }
.tpl-modern .rs-intro-k { color: #FFFFFF; }
.tpl-modern .rs-body { gap: 6mm; }
.tpl-modern .rs-side { padding: 4mm 4.2mm; background: var(--c1-t1); border-radius: 2mm; }
.tpl-modern .rs-page.is-cont .rs-side, .tpl-modern .rs-side:empty { background: var(--c1-t1); }
.tpl-modern .rs-sec-title { padding-left: 2.2mm; border-left: 1.1mm solid var(--c2); font-family: var(--ff-body); letter-spacing: .06em; line-height: 1.15; }
.tpl-modern .rs-sec-line { height: .25mm; background: var(--c1-t2); }
.tpl-modern .rs-side .rs-sec-line { display: none; }
.tpl-modern .rs-side .rs-tag { background: #FFFFFF; }
.tpl-modern .rs-item-tag { border-radius: 99px; }
.tpl-modern .rs-card { border-top: 0; border-left: .8mm solid var(--c1); border-radius: 1mm; }

/* ================================================================ 5. 极简留白 minimal */
.tpl-minimal .rs-head { align-items: center; margin-bottom: calc(var(--sg) + 1mm); }
.tpl-minimal .rs-name { font-family: var(--ff-body); font-size: 2.8em; font-weight: 600; letter-spacing: .05em; color: #0B0B0C; }
.tpl-minimal .rs-headline { margin-top: 1mm; color: #4B5563; font-size: 1.12em; }
.tpl-minimal .rs-hl-k { display: none; }
.tpl-minimal .rs-facts { margin-top: 2.6mm; color: #4B5563; font-size: .95em; }
.tpl-minimal .rs-fact .rs-ic { display: none; }
.tpl-minimal .rs-sec { display: grid; grid-template-columns: 23mm minmax(0, 1fr); column-gap: 6mm; align-items: start; }
.tpl-minimal .rs-sec + .rs-sec { padding-top: var(--sg); border-top: .25mm solid #E5E7EB; }
.tpl-minimal .rs-sec-title { grid-column: 1; margin: 0; padding-top: .1em; font-family: var(--ff-body); font-size: .98em; font-weight: 600; letter-spacing: .14em; color: #111827; line-height: var(--lh); }
.tpl-minimal .rs-sec-body { grid-column: 2; min-width: 0; }
.tpl-minimal .rs-sec-line { display: none; }
.tpl-minimal .rs-sec-cont .rs-sec-body { grid-column: 2; }
.tpl-minimal .rs-item-title { font-size: 1.02em; }
.tpl-minimal .rs-item-sub { font-weight: 500; color: #374151; }
.tpl-minimal .rs-item-tag { border: 0; padding: 0; color: #4B5563; }
.tpl-minimal .rs-item-tag .rs-ic { display: none; }
.tpl-minimal .rs-rich ul > li::before, .tpl-minimal .rs-groups.is-lines .rs-group::before { width: 1.6mm; height: .3mm; border-radius: 0; background: #6B7280; top: calc(var(--lh) * .5em - .15mm); }
.tpl-minimal .rs-card { background: transparent; border-top: 0; padding: 0; }
.tpl-minimal .rs-card-title { color: #111827; }
.tpl-minimal .rs-tag { background: transparent; border: .25mm solid #D1D5DB; color: #374151; }

/* ================================================================ 6. 时间轴 timeline */
.tpl-timeline .rs-head { flex-direction: row-reverse; justify-content: space-between; align-items: center; padding-bottom: 4mm; border-bottom: .35mm solid var(--c1-t2); }
.tpl-timeline .rs-name { font-family: var(--ff-body); font-size: 2.45em; letter-spacing: .06em; color: var(--c1-ink); }
.tpl-timeline .rs-headline { font-weight: 600; color: #1F2937; }
.tpl-timeline .rs-facts { display: grid; grid-template-columns: repeat(3, max-content); column-gap: 7mm; row-gap: .8mm; margin-top: 2.6mm; }
.tpl-timeline .rs-sec-title { gap: 2.2mm; font-family: var(--ff-body); letter-spacing: .06em; }
.tpl-timeline .rs-sec-icon { display: inline-grid; place-items: center; width: 6.4mm; height: 6.4mm; border-radius: 1.6mm; background: var(--c1); color: var(--c1-on); font-size: .78em; }
.tpl-timeline .rs-sec-line { height: .25mm; background: var(--c1-t2); }
.tpl-timeline .k-entries .rs-item { position: relative; padding-left: 6mm; }
.tpl-timeline .k-entries .rs-item + .rs-item { margin-top: 0; padding-top: var(--ig); }
.tpl-timeline .k-entries .rs-item::before { content: ""; position: absolute; left: 1.35mm; top: 0; bottom: 0; width: .35mm; background: var(--c1-t3); }
.tpl-timeline .k-entries .rs-item:first-child::before { top: calc(var(--lh) * .5em); }
.tpl-timeline .k-entries .rs-item:last-child::before { bottom: auto; height: calc(var(--ig) + var(--lh) * .5em); }
.tpl-timeline .k-entries .rs-item:only-child::before { display: none; }
.tpl-timeline .k-entries .rs-item-head::before {
  content: "";
  position: absolute;
  left: 0;
  margin-top: calc(var(--lh) * .5em - 1.5mm);
  width: 3mm;
  height: 3mm;
  border-radius: 50%;
  background: #FFFFFF;
  border: .7mm solid var(--c1);
}
.tpl-timeline .k-entries .rs-item + .rs-item .rs-item-head::before { margin-top: calc(var(--lh) * .5em - 1.5mm); }
.tpl-timeline .rs-item-date { padding: 0 2mm; border-radius: 1mm; background: var(--c1-t1); color: var(--c1-ink); font-weight: 600; line-height: 1.7; }
.tpl-timeline .rs-item-tag { border-radius: 1mm; }
.tpl-timeline .rs-item-cont::before { top: 0 !important; }

/* ================================================================ 7. 技术极客 tech */
.tpl-tech .rs-deco i.rs-deco-a { display: block; left: 0; top: 0; bottom: 0; width: 1.6mm; background: linear-gradient(180deg, var(--c1) 0%, var(--c2) 100%); }
.tpl-tech .rs-head { padding-bottom: 3.6mm; border-bottom: .3mm dashed var(--c1-t3); flex-direction: row-reverse; justify-content: space-between; }
.tpl-tech .rs-name { font-family: var(--ff-body); font-size: 2.35em; letter-spacing: .03em; color: #0F172A; }
.tpl-tech .rs-headline { margin-top: .6mm; font-size: 1.04em; color: var(--c1-ink); font-weight: 600; }
.tpl-tech .rs-hl-k { display: none; }
.tpl-tech .rs-hl-v::before { content: "<"; margin-right: .6mm; color: var(--c2); font-family: var(--ff-mono); }
.tpl-tech .rs-hl-v::after { content: " />"; color: var(--c2); font-family: var(--ff-mono); }
.tpl-tech .rs-tagline { font-size: .92em; color: #475569; }
.tpl-tech .rs-facts { font-size: .94em; gap: .8mm 5.5mm; color: #334155; }
.tpl-tech .rs-sec-title { font-family: var(--ff-body); font-size: 1.14em; letter-spacing: .04em; color: #0F172A; }
.tpl-tech .rs-sec-name::before { content: "# "; color: var(--c2); font-family: var(--ff-mono); font-weight: 700; }
.tpl-tech .rs-sec-line { height: 0; border-top: .3mm dashed var(--c1-t3); background: none; }
.tpl-tech .rs-item-title { color: #0F172A; }
.tpl-tech .rs-item-meta { font-family: var(--ff-mono); font-size: .84em; color: var(--c2-ink); }
.tpl-tech .rs-item-date { font-family: var(--ff-mono); font-size: .84em; }
.tpl-tech .rs-item-link { font-family: var(--ff-mono); font-size: .86em; }
.tpl-tech .rs-item-tag { border-style: dashed; }
.tpl-tech .rs-rich ul > li::before, .tpl-tech .rs-groups.is-lines .rs-group::before {
  width: 0;
  height: 0;
  border-radius: 0;
  background: none;
  border-top: .9mm solid transparent;
  border-bottom: .9mm solid transparent;
  border-left: 1.3mm solid var(--c1);
  top: calc(var(--lh) * .5em - .9mm);
}
.tpl-tech .rs-tag { font-family: var(--ff-mono); font-size: .84em; background: var(--c1-t1); border: .25mm solid var(--c1-t3); border-radius: .8mm; }
.tpl-tech .rs-card { border-top: 0; border: .25mm solid var(--c1-t3); background: #FFFFFF; border-radius: 1mm; }
.tpl-tech .rs-card-title { font-size: .98em; }

/* ================================================================ 8. 清新应届 fresh */
.tpl-fresh .rs-deco i.rs-deco-a { display: block; right: -18mm; top: -22mm; width: 62mm; height: 62mm; border-radius: 50%; background: var(--c2-t1); }
.tpl-fresh .rs-deco i.rs-deco-b { display: block; right: 26mm; top: 12mm; width: 9mm; height: 9mm; border-radius: 50%; background: var(--c1-t2); }
.tpl-fresh .rs-head { align-items: center; gap: 6mm; padding: 5mm 6mm; border-radius: 4mm; background: var(--c1-t1); }
.tpl-fresh .rs-photo { box-shadow: 0 0 0 1mm #FFFFFF; }
.tpl-fresh .rs-name { font-family: var(--ff-body); font-size: 2.35em; letter-spacing: .1em; color: var(--c1-ink); }
.tpl-fresh .rs-headline { font-weight: 600; color: #1F2937; }
.tpl-fresh .rs-facts { display: grid; grid-template-columns: repeat(2, max-content); column-gap: 9mm; row-gap: .8mm; margin-top: 2.4mm; }
.tpl-fresh .rs-sec-title { gap: 2.4mm; font-family: var(--ff-body); font-size: 1.1em; }
.tpl-fresh .rs-sec-name { display: inline-flex; align-items: center; gap: 1.4mm; padding: .5mm 3.6mm; border-radius: 99px; background: var(--c1); color: var(--c1-on); letter-spacing: .08em; }
.tpl-fresh .rs-sec-icon { display: none; }
.tpl-fresh .rs-sec-line { height: 0; border-top: .45mm dotted var(--c1-t3); background: none; }
.tpl-fresh .rs-item-sub { color: var(--c1-ink); }
.tpl-fresh .rs-item-tag { border: 0; border-radius: 99px; background: var(--c2-t1); padding: 0 2.6mm; }
.tpl-fresh .rs-rich ul > li::before, .tpl-fresh .rs-groups.is-lines .rs-group::before { background: var(--c2); }
.tpl-fresh .rs-card { border-top: 0; border-radius: 2.4mm; }
.tpl-fresh .rs-tag { border-radius: 99px; padding: 0 2.6mm; }

/* ================================================================ 9. 典雅衬线 elegant */
.tpl-elegant .rs-deco i.rs-deco-a { display: block; left: 7mm; right: 7mm; top: 7mm; bottom: 7mm; border: .3mm solid var(--c1-t3); }
.tpl-elegant .rs-inner { padding: calc(var(--pmy) + 4mm) calc(var(--pm) + 2mm); }
.tpl-elegant .rs-head { position: relative; display: block; margin-bottom: var(--sg); padding-bottom: 4mm; text-align: center; border-bottom: .3mm solid var(--c1); }
.tpl-elegant .rs-head::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1.2mm; height: .25mm; background: var(--c1-t3); }
.tpl-elegant .rs-head.has-photo { padding-right: 0; }
.tpl-elegant .rs-photo { position: absolute; right: 0; top: 0; width: 23mm; height: 30mm; border: .3mm solid var(--c1-t3); padding: .8mm; background: #FFFFFF; }
.tpl-elegant .rs-photo img { width: 100%; height: 100%; }
.tpl-elegant.rs-photo-circle .rs-photo { width: 26mm; height: 26mm; border-radius: 50%; }
.tpl-elegant.rs-photo-circle .rs-photo img { border-radius: 50%; }
.tpl-elegant .rs-head.has-photo .rs-head-main { padding: 0 28mm; }
.tpl-elegant .rs-name { font-size: 2.5em; font-weight: 700; letter-spacing: .3em; color: var(--c1-ink); padding-left: .3em; }
.tpl-elegant .rs-headline { display: inline-flex; align-items: center; gap: 3mm; margin-top: 1.2mm; color: var(--c1-ink); letter-spacing: .12em; }
.tpl-elegant .rs-headline::before, .tpl-elegant .rs-headline::after { content: ""; width: 9mm; height: .25mm; background: var(--c2); }
.tpl-elegant .rs-hl-k { display: none; }
.tpl-elegant .rs-tagline { color: #57534E; }
.tpl-elegant .rs-facts { justify-content: center; gap: .6mm 6mm; margin-top: 2.4mm; color: #44403C; }
.tpl-elegant .rs-fact .rs-ic { display: none; }
.tpl-elegant .rs-intro { font-style: normal; color: #44403C; }
.tpl-elegant .rs-sec-title { justify-content: center; gap: 3mm; font-size: 1.2em; font-weight: 700; letter-spacing: .32em; color: var(--c1-ink); }
.tpl-elegant .rs-sec-title::before { content: ""; flex: 1 1 auto; height: .25mm; background: var(--c1-t3); order: -1; }
.tpl-elegant .rs-sec-name { padding-left: .32em; }
.tpl-elegant .rs-sec-line { background: var(--c1-t3); height: .25mm; }
.tpl-elegant .rs-item-title { color: #1C1917; }
.tpl-elegant .rs-item-sub { color: var(--c1-ink); font-weight: 600; }
.tpl-elegant .rs-item-tag { border: 0; padding: 0; color: var(--c2-ink); font-style: italic; }
.tpl-elegant .rs-item-tag .rs-ic { display: none; }
.tpl-elegant .rs-rich ul > li::before, .tpl-elegant .rs-groups.is-lines .rs-group::before { width: 1.5mm; height: 1.5mm; border-radius: 0; transform: rotate(45deg); background: transparent; border: .3mm solid var(--c2); }
.tpl-elegant .rs-card { background: transparent; border: .25mm solid var(--c1-t3); border-top: .6mm solid var(--c1); }
.tpl-elegant .rs-tag { background: transparent; border: .25mm solid var(--c1-t3); border-radius: 0; }

/* ================================================================ 10. 撞色设计 bold */
.tpl-bold .rs-head {
  align-items: stretch;
  gap: 0;
  margin: calc(-1 * var(--pmy)) calc(-1 * var(--pm)) var(--sg);
  background: var(--c1);
  color: #FFFFFF;
}
.tpl-bold .rs-photo { width: 34mm; height: auto; min-height: 42mm; background: rgba(255, 255, 255, .08); }
.tpl-bold.rs-photo-circle .rs-photo, .tpl-bold.rs-photo-round .rs-photo { align-self: center; width: 30mm; height: 30mm; min-height: 0; margin-left: var(--pm); border-radius: 50%; border: 1mm solid var(--c2); }
.tpl-bold.rs-photo-round .rs-photo { border-radius: 3mm; }
.tpl-bold .rs-head-main { position: relative; padding: 8.5mm var(--pm) 7.5mm 9mm; }
.tpl-bold .rs-head:not(.has-photo) .rs-head-main { padding-left: var(--pm); }
.tpl-bold .rs-head-main::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2.4mm; background: var(--c2); }
.tpl-bold .rs-head:not(.has-photo) .rs-head-main::before { display: none; }
.tpl-bold .rs-name { font-family: var(--ff-body); font-size: 2.85em; font-weight: 800; letter-spacing: .04em; color: #FFFFFF; }
.tpl-bold .rs-headline { color: var(--c2); font-weight: 700; letter-spacing: .08em; }
.tpl-bold .rs-hl-k { display: none; }
.tpl-bold .rs-tagline { color: rgba(255, 255, 255, .78); letter-spacing: .06em; }
.tpl-bold .rs-facts { margin-top: 3mm; color: rgba(255, 255, 255, .9); gap: .8mm 5mm; }
.tpl-bold .rs-fact .rs-ic { color: var(--c2); }
.tpl-bold .rs-k { color: rgba(255, 255, 255, .6); }
.tpl-bold .rs-intro { color: rgba(255, 255, 255, .85); }
.tpl-bold .rs-intro-k { color: var(--c2); }
.tpl-bold .rs-sec-title { font-family: var(--ff-body); font-size: 1.36em; font-weight: 800; letter-spacing: .04em; color: #111111; }
.tpl-bold .rs-sec-name { padding: 0 .6mm; background: linear-gradient(180deg, transparent 58%, var(--c2-t2) 58%); }
.tpl-bold .rs-sec-line { display: none; }
.tpl-bold .rs-item-title { font-weight: 800; }
.tpl-bold .rs-item-sub { color: var(--c2-ink); font-weight: 700; }
.tpl-bold .rs-item-tag { border: 0; background: var(--c2-t1); }
.tpl-bold .rs-rich ul > li::before, .tpl-bold .rs-groups.is-lines .rs-group::before { border-radius: 0; background: var(--c2); }
.tpl-bold .rs-card { background: #F4F4F5; border-top: 0; border-left: 1.2mm solid var(--c2); }
.tpl-bold .rs-card-title { color: #111111; }
.tpl-bold .rs-tag { background: #111111; color: #FFFFFF; border-radius: 0; }

/* ================================================================ 11. 紧凑高密 compact */
.tpl-compact .rs-head { align-items: flex-end; gap: 5mm; margin-bottom: calc(var(--sg) + .6mm); padding-bottom: 2.4mm; border-bottom: .6mm solid var(--c1); }
.tpl-compact .rs-head-main { display: grid; grid-template-columns: auto 1fr; column-gap: 4mm; align-items: end; }
.tpl-compact .rs-eyebrow { display: none; }
.tpl-compact .rs-name { grid-column: 1; font-family: var(--ff-body); font-size: 2.1em; letter-spacing: .04em; color: #0F172A; line-height: 1.1; }
.tpl-compact .rs-headline { grid-column: 2; margin: 0; padding-bottom: .5mm; font-weight: 600; color: var(--c1-ink); }
.tpl-compact .rs-hl-k { display: none; }
.tpl-compact .rs-tagline, .tpl-compact .rs-facts, .tpl-compact .rs-intro { grid-column: 1 / -1; }
.tpl-compact .rs-facts { margin-top: 1.6mm; gap: .4mm 4.5mm; font-size: .95em; }
.tpl-compact .rs-photo { width: 21mm; height: 28mm; }
.tpl-compact.rs-photo-circle .rs-photo { width: 24mm; height: 24mm; }
.tpl-compact .rs-sec-title { margin-bottom: 1.5mm; padding: .5mm 2.2mm; border-left: 1mm solid var(--c1); background: var(--c1-t1); font-family: var(--ff-body); font-size: 1.06em; letter-spacing: .08em; }
.tpl-compact .rs-sec-line { display: none; }
.tpl-compact .rs-item-sub::before, .tpl-compact .rs-item-meta::before { content: "|"; margin-right: 2.2mm; color: #CBD5E1; }
.tpl-compact .rs-rich { margin-top: .6mm; }
.tpl-compact .rs-rich li + li { margin-top: .2mm; }
.tpl-compact .rs-groups.is-lines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5mm 5mm; }
.tpl-compact .rs-groups.is-lines .rs-group + .rs-group { margin-top: 0; }
.tpl-compact .rs-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6mm; }
.tpl-compact .rs-card { padding: 1.6mm 2.4mm; border-top-width: .5mm; }
.tpl-compact .rs-item-tag { border: 0; padding: 0; margin-top: .6mm; }

/* ================================================================ 12. 英文 ATS harvard */
.tpl-harvard { color: #111111; }
.tpl-harvard .rs-head { display: block; margin-bottom: calc(var(--sg) - .4mm); text-align: center; }
.tpl-harvard .rs-photo { display: none; }
.tpl-harvard .rs-name { font-size: 1.95em; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #111111; }
.tpl-harvard .rs-headline { margin-top: .4mm; font-size: 1.02em; color: #111111; }
.tpl-harvard .rs-hl-k { display: none; }
.tpl-harvard .rs-tagline { color: #333333; }
.tpl-harvard .rs-facts { justify-content: center; gap: .4mm 0; margin-top: 1.2mm; color: #111111; font-size: .96em; }
.tpl-harvard .rs-fact .rs-ic { display: none; }
.tpl-harvard .rs-k { color: #111111; }
.tpl-harvard .rs-fact + .rs-fact::before { content: "|"; margin: 0 2.2mm; color: #555555; }
.tpl-harvard .rs-intro { text-align: left; }
.tpl-harvard .rs-sec-title { margin-bottom: 1.6mm; padding-bottom: .4mm; border-bottom: .3mm solid #111111; font-size: 1.02em; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #111111; }
.tpl-harvard .rs-sec-line { display: none; }
.tpl-harvard .rs-item-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 4mm; row-gap: 0; }
.tpl-harvard .rs-item-main { display: contents; }
.tpl-harvard .rs-item-title { grid-column: 1; grid-row: 1; font-size: 1em; color: #111111; }
.tpl-harvard .rs-item-meta { grid-column: 2; grid-row: 1; text-align: right; font-size: 1em; color: #111111; }
.tpl-harvard .rs-item-sub { grid-column: 1; grid-row: 2; font-style: italic; font-weight: 400; color: #111111; }
.tpl-harvard .rs-item-date { grid-column: 2; grid-row: 1; text-align: right; font-size: 1em; color: #111111; }
.tpl-harvard .rs-item-meta ~ .rs-item-date, .tpl-harvard .rs-item-head:has(.rs-item-meta) .rs-item-date { grid-row: 2; font-style: italic; }
.tpl-harvard .rs-item-tag { border: 0; padding: 0; margin-top: .3mm; color: #111111; font-style: italic; }
.tpl-harvard .rs-item-tag .rs-ic { display: none; }
.tpl-harvard .rs-rich { margin-top: .6mm; color: #111111; }
.tpl-harvard .rs-rich ul > li::before, .tpl-harvard .rs-groups.is-lines .rs-group::before { width: 1.1mm; height: 1.1mm; background: #111111; }
.tpl-harvard .rs-rich b, .tpl-harvard .rs-group-k { color: #111111; }
.tpl-harvard .rs-card { background: transparent; border: 0; padding: 0; }
.tpl-harvard .rs-card-title { color: #111111; }
.tpl-harvard .rs-tag { background: transparent; color: #111111; padding: 0; }
.tpl-harvard .rs-tag + .rs-tag::before { content: "· "; }
.tpl-harvard .rs-li-date { color: #111111; }

/* ================================================================ 打印 */
@media print {
  .rs-page { box-shadow: none !important; margin: 0 !important; break-after: page; page-break-after: always; }
  .rs-page:last-child { break-after: auto; page-break-after: auto; }
  .rs-empty { display: none !important; }
}
