/* ==========================================================================
   templates.css — 完整版
   ========================================================================== */

:root{
  --tpl-ink:#1d2939;
  --tpl-body:#3d4759;
  --tpl-muted:#7b8494;
  --tpl-line:#e3e7ed;
}

/* ===== accent 1~50 ===== */
.resume.style1,.paper.style1{--tpl-accent:#1e3a8a}
.resume.style2,.paper.style2{--tpl-accent:#111827}
.resume.style3,.paper.style3{--tpl-accent:#0f172a}
.resume.style4,.paper.style4{--tpl-accent:#dc267f}
.resume.style5,.paper.style5{--tpl-accent:#1f2937}
.resume.style6,.paper.style6{--tpl-accent:#1e3a8a}
.resume.style7,.paper.style7{--tpl-accent:#065f46}
.resume.style8,.paper.style8{--tpl-accent:#7f1d1d}
.resume.style9,.paper.style9{--tpl-accent:#111827}
.resume.style10,.paper.style10{--tpl-accent:#7c3aed}
.resume.style11,.paper.style11{--tpl-accent:#475569}
.resume.style12,.paper.style12{--tpl-accent:#0f172a}
.resume.style13,.paper.style13{--tpl-accent:#1d4ed8}
.resume.style14,.paper.style14{--tpl-accent:#0d9488}
.resume.style15,.paper.style15{--tpl-accent:#78350f}
.resume.style16,.paper.style16{--tpl-accent:#475569}
.resume.style17,.paper.style17{--tpl-accent:#0f172a}
.resume.style18,.paper.style18{--tpl-accent:#1d4ed8}
.resume.style19,.paper.style19{--tpl-accent:#7c3aed}
.resume.style20,.paper.style20{--tpl-accent:#78350f}
.resume.style21,.paper.style21{--tpl-accent:#2563eb}
.resume.style22,.paper.style22{--tpl-accent:#065f46}
.resume.style23,.paper.style23{--tpl-accent:#0f172a}
.resume.style24,.paper.style24{--tpl-accent:#7c3aed}
.resume.style25,.paper.style25{--tpl-accent:#be123c}
.resume.style26,.paper.style26{--tpl-accent:#1d4ed8}
.resume.style27,.paper.style27{--tpl-accent:#065f46}
.resume.style28,.paper.style28{--tpl-accent:#7c3aed}
.resume.style29,.paper.style29{--tpl-accent:#0f172a}
.resume.style30,.paper.style30{--tpl-accent:#be123c}
.resume.style31,.paper.style31{--tpl-accent:#dc2626}
.resume.style32,.paper.style32{--tpl-accent:#111827}
.resume.style33,.paper.style33{--tpl-accent:#7c3aed}
.resume.style34,.paper.style34{--tpl-accent:#0d9488}
.resume.style35,.paper.style35{--tpl-accent:#78350f}
.resume.style36,.paper.style36{--tpl-accent:#475569}
.resume.style37,.paper.style37{--tpl-accent:#1e3a8a}
.resume.style38,.paper.style38{--tpl-accent:#7f1d1d}
.resume.style39,.paper.style39{--tpl-accent:#0d9488}
.resume.style40,.paper.style40{--tpl-accent:#111827}
.resume.style41,.paper.style41{--tpl-accent:#374151}
.resume.style42,.paper.style42{--tpl-accent:#374151}
.resume.style43,.paper.style43{--tpl-accent:#dc2626}
.resume.style44,.paper.style44{--tpl-accent:#111827}
.resume.style45,.paper.style45{--tpl-accent:#475569}
.resume.style46,.paper.style46{--tpl-accent:#111827}
.resume.style47,.paper.style47{--tpl-accent:#78350f}
.resume.style48,.paper.style48{--tpl-accent:#475569}
.resume.style49,.paper.style49{--tpl-accent:#1d4ed8}
.resume.style50,.paper.style50{--tpl-accent:#7c3aed}

/* ===== 通用基础 ===== */
.resume{--tpl-accent:#4059ce;width:210mm;min-height:297mm;margin:0 auto;padding:14mm 15mm;background:#fff;color:var(--tpl-ink);font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif;font-size:10.5pt;line-height:1.7;box-sizing:border-box}
.resume *{box-sizing:border-box}
.resume .r-name{font-size:26pt;line-height:1.1;margin:0;color:var(--tpl-ink);letter-spacing:-.5px;font-weight:800}
.resume .r-job{font-size:11pt;color:var(--tpl-accent);margin:2mm 0 0;font-weight:600}
.resume .r-contact{font-size:9pt;color:var(--tpl-muted);margin:2mm 0 0;letter-spacing:.3px}
.resume .r-sec{margin:0 0 6mm;break-inside:avoid}
.resume .r-sec:last-child{margin-bottom:0}
.resume .r-sec-title{font-size:12pt;font-weight:800;color:var(--tpl-accent);margin:0 0 3mm;padding:0 0 2mm;border-bottom:1px solid var(--tpl-line);letter-spacing:.5px}
.resume .r-sec-body p{font-size:10.5pt;color:var(--tpl-body);line-height:1.8;margin:0 0 2mm;white-space:pre-wrap;word-wrap:break-word}
.resume .r-sec-body p:last-child{margin-bottom:0}
.resume.mode-edit [contenteditable="true"]{outline:none;border-radius:3px;min-width:20px;display:inline-block;transition:background .12s}
.resume.mode-edit [contenteditable="true"]:hover{background:#eef4ff}
.resume.mode-edit [contenteditable="true"]:focus{background:#e3eeff;box-shadow:0 0 0 2px #a8c4ff}
.resume.mode-edit [contenteditable="true"]:empty::before{content:attr(data-placeholder);color:#b6bece;pointer-events:none}

/* ===== 1 经典商务 ===== */
.resume.layout-classic{font-family:Georgia,"Songti SC","SimSun",serif;padding:15mm 16mm}
.resume.layout-classic .r-head{display:flex;justify-content:space-between;align-items:center;gap:6mm;border-top:2px solid var(--tpl-accent);border-bottom:2px solid var(--tpl-accent);padding:4mm 0;margin:0 0 7mm}
.resume.layout-classic .r-head>h1{flex:1 1 auto;min-width:0}
.resume.layout-classic .r-head>.r-job{flex:0 0 auto;text-align:right;margin:0}
.resume.layout-classic .r-head>.r-contact{flex:0 0 auto;text-align:right;max-width:38%;margin:0;line-height:1.5}
.resume.layout-classic .r-name{font-size:24pt;letter-spacing:2px;font-weight:700}
.resume.layout-classic .r-job{font-size:10pt;color:var(--tpl-accent);letter-spacing:3px;font-weight:400}
.resume.layout-classic .r-contact{font-size:8.5pt;color:#4a5568;letter-spacing:.3px}
.resume.layout-classic .r-sec-title{font-size:11pt;color:var(--tpl-accent);border-bottom:0;padding:0 0 0 4mm;border-left:3px solid var(--tpl-accent);letter-spacing:2px;font-weight:700;margin-bottom:3mm}
.resume.layout-classic .r-sec{margin-bottom:7mm}
.resume.layout-classic .r-sec-body p{font-size:10.5pt;color:#2d3748;line-height:1.9}

/* ===== 2 现代极简 ===== */
.resume.layout-minimal{font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;padding:22mm 20mm;color:#111}
.resume.layout-minimal .r-head{text-align:center;padding:0 0 8mm;margin:0 0 12mm;border-bottom:1px solid #e5e7eb}
.resume.layout-minimal .r-name{font-size:38pt;font-weight:200;letter-spacing:8px;margin:0;color:#111}
.resume.layout-minimal .r-job{font-size:11pt;color:#6b7280;letter-spacing:5px;margin-top:3mm;font-weight:400;text-transform:uppercase}
.resume.layout-minimal .r-contact{font-size:9pt;color:#9ca3af;margin-top:4mm;letter-spacing:.5px}
.resume.layout-minimal .r-sec{margin-bottom:11mm}
.resume.layout-minimal .r-sec-title{font-size:10pt;color:#111;font-weight:700;letter-spacing:6px;text-transform:uppercase;border-bottom:0;padding:0 0 3mm;margin:0 0 4mm;position:relative}
.resume.layout-minimal .r-sec-title::after{content:"";display:block;width:24mm;height:1px;background:#111;margin-top:2mm}
.resume.layout-minimal .r-sec-body p{font-size:10pt;color:#374151;line-height:2;letter-spacing:.3px}

/* ===== 3 双栏技术 ===== */
.resume.layout-sidebar{padding:0;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;display:flex;flex-direction:row;min-height:297mm}
.resume.layout-sidebar .r-side{flex:0 0 35%;background:#0f172a;color:#e2e8f0;padding:12mm 8mm}
.resume.layout-sidebar .r-main{flex:1 1 65%;padding:12mm 12mm 12mm 10mm}
.resume.layout-sidebar .r-side-head .r-name{font-size:22pt;color:#fff;letter-spacing:1px;font-weight:700;margin:0 0 2mm}
.resume.layout-sidebar .r-side-head .r-job{font-size:9.5pt;color:#60a5fa;letter-spacing:2px;margin:0;font-weight:400}
.resume.layout-sidebar .r-side-head .r-contact{font-size:9pt;color:#cbd5e1;line-height:2;letter-spacing:.5px;margin:8mm 0 0;padding:5mm 0;border-top:1px solid #334155;border-bottom:1px solid #334155}
.resume.layout-sidebar .r-side .r-sec{margin-top:6mm}
.resume.layout-sidebar .r-side .r-sec-title{font-size:10pt;color:#60a5fa;font-weight:700;letter-spacing:2px;text-transform:uppercase;border-bottom:1px solid #334155;padding:0 0 2mm;margin:0 0 3mm}
.resume.layout-sidebar .r-side .r-sec-body p{font-size:9pt;color:#e2e8f0;line-height:1.9}
.resume.layout-sidebar .r-main .r-sec-title{font-size:11pt;color:#0f172a;font-weight:700;letter-spacing:1px;padding:0 0 2mm;border-bottom:2px solid #0f172a;margin:0 0 3mm}
.resume.layout-sidebar .r-main .r-sec-body p{font-size:10pt;color:#334155;line-height:1.9}

/* ===== 4 创意彩色 ===== */
.resume.layout-creative{padding:0;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.resume.layout-creative .r-head{background:var(--tpl-accent);color:#fff;padding:14mm 14mm 10mm}
.resume.layout-creative .r-name{font-size:32pt;color:#fff;margin:0;font-weight:900;letter-spacing:-1px}
.resume.layout-creative .r-job{font-size:12pt;color:#ffe0f0;letter-spacing:3px;margin:3mm 0 0;font-weight:600}
.resume.layout-creative .r-contact{font-size:9.5pt;color:#ffe0f0;letter-spacing:.5px;margin-top:5mm;padding-top:4mm;border-top:1px solid rgba(255,255,255,.35)}
.resume.layout-creative .r-sec{background:#fdf2f8;border-radius:8px;padding:5mm 6mm;margin:5mm 14mm;border-left:4px solid var(--tpl-accent)}
.resume.layout-creative .r-sec:first-of-type{margin-top:10mm}
.resume.layout-creative .r-sec:last-of-type{margin-bottom:12mm}
.resume.layout-creative .r-sec-title{font-size:11pt;color:var(--tpl-accent);font-weight:800;border-bottom:0;padding:0 0 2mm;margin:0 0 3mm;letter-spacing:1px}
.resume.layout-creative .r-sec-body p{font-size:10pt;color:#3d4759;line-height:1.85}

/* ===== 5 学术风 ===== */
.resume.layout-academic{font-family:"Songti SC","SimSun",Georgia,serif;padding:16mm 20mm;color:#111}
.resume.layout-academic .r-head{text-align:center;border-bottom:1px solid #111;padding:0 0 5mm;margin:0 0 8mm}
.resume.layout-academic .r-name{font-size:24pt;letter-spacing:10px;font-weight:700;margin:0;color:#111}
.resume.layout-academic .r-job{font-size:10pt;color:#444;letter-spacing:3px;margin-top:3mm;font-weight:400}
.resume.layout-academic .r-contact{font-size:9pt;color:#666;letter-spacing:.5px;margin-top:3mm}
.resume.layout-academic .r-sec{margin-bottom:7mm}
.resume.layout-academic .r-sec-title{font-size:11pt;color:#111;font-weight:700;letter-spacing:3px;border-bottom:1px solid #111;padding:0 0 1.5mm;margin:0 0 3mm}
.resume.layout-academic .r-sec-body p{font-size:10pt;color:#222;line-height:1.95;letter-spacing:.2px;text-align:justify}

/* ============================================================
   6~10 B 类：顶部色块
   ============================================================ */
.resume.layout-banner-navy{padding:0}
.resume.layout-banner-navy .r-head{background:#1e3a8a;color:#fff;padding:12mm 14mm 10mm;display:flex;justify-content:space-between;align-items:flex-end;gap:6mm}
.resume.layout-banner-navy .r-name{font-size:28pt;color:#fff;margin:0;font-weight:800}
.resume.layout-banner-navy .r-job{font-size:11pt;color:#bfdbfe;margin:2mm 0 0;font-weight:400}
.resume.layout-banner-navy .r-contact{font-size:9pt;color:#dbeafe;text-align:right;max-width:45%;line-height:1.7;margin:0}
.resume.layout-banner-navy .r-sec{margin:6mm 14mm;border-bottom:2px solid #1e3a8a;padding-bottom:4mm}
.resume.layout-banner-navy .r-sec:first-of-type{margin-top:10mm}
.resume.layout-banner-navy .r-sec:last-of-type{border-bottom:0;margin-bottom:12mm}
.resume.layout-banner-navy .r-sec-title{font-size:11pt;color:#1e3a8a;font-weight:800;border-bottom:0;padding:0;margin:0 0 3mm;letter-spacing:1.5px}
.resume.layout-banner-navy .r-sec-body p{font-size:10pt;color:#2d3748;line-height:1.9}

.resume.layout-banner-green{padding:0}
.resume.layout-banner-green .r-head{background:#065f46;color:#fff;padding:12mm 14mm 10mm;text-align:center}
.resume.layout-banner-green .r-name{font-size:30pt;color:#fff;margin:0;font-weight:700;letter-spacing:6px}
.resume.layout-banner-green .r-job{font-size:11pt;color:#a7f3d0;margin:3mm 0 0;font-weight:400}
.resume.layout-banner-green .r-contact{font-size:9pt;color:#d1fae5;margin-top:4mm}
.resume.layout-banner-green .r-sec{margin:6mm 14mm;padding:0 0 0 5mm;border-left:3px solid #065f46}
.resume.layout-banner-green .r-sec:first-of-type{margin-top:10mm}
.resume.layout-banner-green .r-sec-title{font-size:11pt;color:#065f46;font-weight:700;border-bottom:0;padding:0;margin:0 0 3mm}
.resume.layout-banner-green .r-sec-body p{font-size:10pt;color:#2d3748;line-height:1.9}

.resume.layout-banner-wine{padding:0;font-family:Georgia,"Songti SC",serif}
.resume.layout-banner-wine .r-head{background:#7f1d1d;color:#fff;padding:14mm 14mm 10mm}
.resume.layout-banner-wine .r-name{font-size:34pt;color:#fff;margin:0;font-weight:900}
.resume.layout-banner-wine .r-job{font-size:11pt;color:#fecaca;margin:3mm 0 0;letter-spacing:3px}
.resume.layout-banner-wine .r-contact{font-size:9pt;color:#fee2e2;margin-top:5mm;padding-top:4mm;border-top:1px solid rgba(255,255,255,.35)}
.resume.layout-banner-wine .r-sec{margin:6mm 14mm;background:#fef7f7;border-radius:8px;padding:5mm 6mm;border-left:4px solid #7f1d1d}
.resume.layout-banner-wine .r-sec:first-of-type{margin-top:10mm}
.resume.layout-banner-wine .r-sec:last-of-type{margin-bottom:12mm}
.resume.layout-banner-wine .r-sec-title{font-size:11pt;color:#7f1d1d;font-weight:800;border-bottom:0;padding:0 0 2mm;margin:0 0 3mm}
.resume.layout-banner-wine .r-sec-body p{font-size:10pt;color:#3d4759;line-height:1.85}

.resume.layout-banner-black{padding:0}
.resume.layout-banner-black .r-head{background:#111827;color:#fff;padding:14mm 14mm 10mm;text-align:center;border-bottom:3px solid #c8a44a}
.resume.layout-banner-black .r-name{font-size:32pt;color:#c8a44a;margin:0;font-weight:700;letter-spacing:8px}
.resume.layout-banner-black .r-job{font-size:11pt;color:#d1d5db;margin:3mm 0 0;letter-spacing:3px}
.resume.layout-banner-black .r-contact{font-size:9pt;color:#9ca3af;margin-top:4mm}
.resume.layout-banner-black .r-sec{margin:7mm 14mm;padding:0 0 3mm;border-bottom:1px solid #c8a44a}
.resume.layout-banner-black .r-sec:first-of-type{margin-top:10mm}
.resume.layout-banner-black .r-sec:last-of-type{border-bottom:0;margin-bottom:12mm}
.resume.layout-banner-black .r-sec-title{font-size:11pt;color:#111827;font-weight:700;border-bottom:0;padding:0;margin:0 0 3mm;letter-spacing:2px}
.resume.layout-banner-black .r-sec-title::after{content:"";display:block;width:18mm;height:1px;background:#c8a44a;margin-top:2mm}
.resume.layout-banner-black .r-sec-body p{font-size:10pt;color:#374151;line-height:1.9}

.resume.layout-banner-violet{padding:0}
.resume.layout-banner-violet .r-head{background:#7c3aed;color:#fff;padding:12mm 14mm 10mm}
.resume.layout-banner-violet .r-name{font-size:30pt;color:#fff;margin:0;font-weight:800}
.resume.layout-banner-violet .r-job{font-size:11pt;color:#ddd6fe;margin:2mm 0 0}
.resume.layout-banner-violet .r-contact{font-size:9pt;color:#ede9fe;margin-top:4mm}
.resume.layout-banner-violet .r-sec{margin:6mm 14mm;padding:4mm 5mm;background:linear-gradient(90deg,#f5f3ff,#fff);border-radius:0 6px 6px 0;border-left:4px solid #7c3aed}
.resume.layout-banner-violet .r-sec:first-of-type{margin-top:10mm}
.resume.layout-banner-violet .r-sec:last-of-type{margin-bottom:12mm}
.resume.layout-banner-violet .r-sec-title{font-size:11pt;color:#7c3aed;font-weight:800;border-bottom:0;padding:0 0 2mm;margin:0 0 3mm}
.resume.layout-banner-violet .r-sec-body p{font-size:10pt;color:#3d4759;line-height:1.85}

/* ============================================================
   11~15 C 类：左栏
   ============================================================ */
.resume.layout-side-gray,
.resume.layout-side-black,
.resume.layout-side-outline,
.resume.layout-side-color,
.resume.layout-side-serif{display:flex;flex-direction:row;min-height:297mm;padding:0}
.resume.layout-side-gray .r-side,
.resume.layout-side-black .r-side,
.resume.layout-side-outline .r-side,
.resume.layout-side-color .r-side,
.resume.layout-side-serif .r-side{flex:0 0 32%;padding:12mm 7mm}
.resume.layout-side-gray .r-main,
.resume.layout-side-black .r-main,
.resume.layout-side-outline .r-main,
.resume.layout-side-color .r-main,
.resume.layout-side-serif .r-main{flex:1 1 68%;padding:12mm 12mm 12mm 10mm}
.resume.layout-side-gray .r-side-head .r-name,
.resume.layout-side-black .r-side-head .r-name,
.resume.layout-side-outline .r-side-head .r-name,
.resume.layout-side-color .r-side-head .r-name,
.resume.layout-side-serif .r-side-head .r-name{font-size:20pt;font-weight:700;margin:0 0 2mm}
.resume.layout-side-gray .r-side-head .r-job,
.resume.layout-side-black .r-side-head .r-job,
.resume.layout-side-outline .r-side-head .r-job,
.resume.layout-side-color .r-side-head .r-job,
.resume.layout-side-serif .r-side-head .r-job{font-size:9.5pt;margin:0}
.resume.layout-side-gray .r-side-head .r-contact,
.resume.layout-side-black .r-side-head .r-contact,
.resume.layout-side-outline .r-side-head .r-contact,
.resume.layout-side-color .r-side-head .r-contact,
.resume.layout-side-serif .r-side-head .r-contact{font-size:9pt;line-height:1.9;margin:5mm 0 0;padding:4mm 0;border-top:1px solid var(--tpl-line);border-bottom:1px solid var(--tpl-line)}
.resume.layout-side-gray .r-side .r-sec,
.resume.layout-side-black .r-side .r-sec,
.resume.layout-side-outline .r-side .r-sec,
.resume.layout-side-color .r-side .r-sec,
.resume.layout-side-serif .r-side .r-sec{margin-top:6mm}
.resume.layout-side-gray .r-side .r-sec-title,
.resume.layout-side-black .r-side .r-sec-title,
.resume.layout-side-outline .r-side .r-sec-title,
.resume.layout-side-color .r-side .r-sec-title,
.resume.layout-side-serif .r-side .r-sec-title{font-size:10pt;font-weight:700;letter-spacing:2px;padding:0 0 2mm;margin:0 0 3mm}
.resume.layout-side-gray .r-side .r-sec-body p,
.resume.layout-side-black .r-side .r-sec-body p,
.resume.layout-side-outline .r-side .r-sec-body p,
.resume.layout-side-color .r-side .r-sec-body p,
.resume.layout-side-serif .r-side .r-sec-body p{font-size:9pt;line-height:1.85}
.resume.layout-side-gray .r-main .r-sec-title,
.resume.layout-side-black .r-main .r-sec-title,
.resume.layout-side-outline .r-main .r-sec-title,
.resume.layout-side-color .r-main .r-sec-title,
.resume.layout-side-serif .r-main .r-sec-title{font-size:11pt;font-weight:700;padding:0 0 2mm;margin:0 0 3mm}
.resume.layout-side-gray .r-main .r-sec-body p,
.resume.layout-side-black .r-main .r-sec-body p,
.resume.layout-side-outline .r-main .r-sec-body p,
.resume.layout-side-color .r-main .r-sec-body p,
.resume.layout-side-serif .r-main .r-sec-body p{font-size:10pt;line-height:1.9}

.resume.layout-side-gray .r-side{background:#f1f5f9}
.resume.layout-side-gray .r-side .r-sec-title{color:#334155;border-bottom:1px solid #cbd5e1}
.resume.layout-side-gray .r-main .r-sec-title{color:#334155;border-bottom:2px solid #334155}
.resume.layout-side-gray .r-side-head .r-name{color:#0f172a}
.resume.layout-side-gray .r-side-head .r-job{color:#475569}
.resume.layout-side-gray .r-side-head .r-contact{color:#475569;border-color:#cbd5e1}

.resume.layout-side-black .r-side{background:#0f172a;color:#e2e8f0}
.resume.layout-side-black .r-side .r-sec-title{color:#60a5fa;border-bottom:1px solid #334155}
.resume.layout-side-black .r-side .r-sec-body p{color:#e2e8f0}
.resume.layout-side-black .r-main .r-sec-title{color:#0f172a;border-bottom:2px solid #0f172a}
.resume.layout-side-black .r-side-head .r-name{color:#fff}
.resume.layout-side-black .r-side-head .r-job{color:#60a5fa}
.resume.layout-side-black .r-side-head .r-contact{color:#cbd5e1;border-color:#334155}

.resume.layout-side-outline .r-side{background:#fff;border-right:2px solid #1d4ed8}
.resume.layout-side-outline .r-side .r-sec-title{color:#1d4ed8;border-bottom:1px solid #dbeafe}
.resume.layout-side-outline .r-main .r-sec-title{color:#1d4ed8;border-bottom:2px solid #1d4ed8}
.resume.layout-side-outline .r-side-head .r-name{color:#1d4ed8}
.resume.layout-side-outline .r-side-head .r-job{color:#475569}
.resume.layout-side-outline .r-side-head .r-contact{color:#475569;border-color:#dbeafe}

.resume.layout-side-color .r-side{background:#0d9488;color:#fff}
.resume.layout-side-color .r-side .r-sec-title{color:#fff;border-bottom:1px solid #14b8a6}
.resume.layout-side-color .r-side .r-sec-body p{color:#f0fdfa}
.resume.layout-side-color .r-main .r-sec-title{color:#0d9488;border-bottom:2px solid #0d9488}
.resume.layout-side-color .r-side-head .r-name{color:#fff}
.resume.layout-side-color .r-side-head .r-job{color:#a7f3d0}
.resume.layout-side-color .r-side-head .r-contact{color:#d1fae5;border-color:#14b8a6}
.resume.layout-side-color .r-main .r-sec-body p{color:#334155}

.resume.layout-side-serif{font-family:Georgia,"Songti SC",serif}
.resume.layout-side-serif .r-side{background:#faf7f0;border-right:1px solid #d6cdb8}
.resume.layout-side-serif .r-side .r-sec-title{color:#78350f;border-bottom:1px solid #d6cdb8}
.resume.layout-side-serif .r-main .r-sec-title{color:#78350f;border-bottom:1px solid #78350f}
.resume.layout-side-serif .r-side-head .r-name{color:#78350f;letter-spacing:2px}
.resume.layout-side-serif .r-side-head .r-job{color:#92400e}
.resume.layout-side-serif .r-side-head .r-contact{color:#78350f;border-color:#d6cdb8}

/* ============================================================
   16~20 D 类：右栏
   ============================================================ */
.resume.layout-right-gray,
.resume.layout-right-black,
.resume.layout-right-outline,
.resume.layout-right-color,
.resume.layout-right-serif{display:flex;flex-direction:row-reverse;min-height:297mm;padding:0}
.resume.layout-right-gray .r-side,
.resume.layout-right-black .r-side,
.resume.layout-right-outline .r-side,
.resume.layout-right-color .r-side,
.resume.layout-right-serif .r-side{flex:0 0 32%;padding:12mm 7mm}
.resume.layout-right-gray .r-main,
.resume.layout-right-black .r-main,
.resume.layout-right-outline .r-main,
.resume.layout-right-color .r-main,
.resume.layout-right-serif .r-main{flex:1 1 68%;padding:12mm 10mm 12mm 12mm}
.resume.layout-right-gray .r-side-head .r-name,
.resume.layout-right-black .r-side-head .r-name,
.resume.layout-right-outline .r-side-head .r-name,
.resume.layout-right-color .r-side-head .r-name,
.resume.layout-right-serif .r-side-head .r-name{font-size:20pt;font-weight:700;margin:0 0 2mm}
.resume.layout-right-gray .r-side-head .r-job,
.resume.layout-right-black .r-side-head .r-job,
.resume.layout-right-outline .r-side-head .r-job,
.resume.layout-right-color .r-side-head .r-job,
.resume.layout-right-serif .r-side-head .r-job{font-size:9.5pt;margin:0}
.resume.layout-right-gray .r-side-head .r-contact,
.resume.layout-right-black .r-side-head .r-contact,
.resume.layout-right-outline .r-side-head .r-contact,
.resume.layout-right-color .r-side-head .r-contact,
.resume.layout-right-serif .r-side-head .r-contact{font-size:9pt;line-height:1.9;margin:5mm 0 0;padding:4mm 0;border-top:1px solid var(--tpl-line);border-bottom:1px solid var(--tpl-line)}
.resume.layout-right-gray .r-side .r-sec,
.resume.layout-right-black .r-side .r-sec,
.resume.layout-right-outline .r-side .r-sec,
.resume.layout-right-color .r-side .r-sec,
.resume.layout-right-serif .r-side .r-sec{margin-top:6mm}
.resume.layout-right-gray .r-side .r-sec-title,
.resume.layout-right-black .r-side .r-sec-title,
.resume.layout-right-outline .r-side .r-sec-title,
.resume.layout-right-color .r-side .r-sec-title,
.resume.layout-right-serif .r-side .r-sec-title{font-size:10pt;font-weight:700;letter-spacing:2px;padding:0 0 2mm;margin:0 0 3mm}
.resume.layout-right-gray .r-side .r-sec-body p,
.resume.layout-right-black .r-side .r-sec-body p,
.resume.layout-right-outline .r-side .r-sec-body p,
.resume.layout-right-color .r-side .r-sec-body p,
.resume.layout-right-serif .r-side .r-sec-body p{font-size:9pt;line-height:1.85}
.resume.layout-right-gray .r-main .r-sec-title,
.resume.layout-right-black .r-main .r-sec-title,
.resume.layout-right-outline .r-main .r-sec-title,
.resume.layout-right-color .r-main .r-sec-title,
.resume.layout-right-serif .r-main .r-sec-title{font-size:11pt;font-weight:700;padding:0 0 2mm;margin:0 0 3mm}
.resume.layout-right-gray .r-main .r-sec-body p,
.resume.layout-right-black .r-main .r-sec-body p,
.resume.layout-right-outline .r-main .r-sec-body p,
.resume.layout-right-color .r-main .r-sec-body p,
.resume.layout-right-serif .r-main .r-sec-body p{font-size:10pt;line-height:1.9}

.resume.layout-right-gray .r-side{background:#f1f5f9}
.resume.layout-right-gray .r-side .r-sec-title{color:#334155;border-bottom:1px solid #cbd5e1}
.resume.layout-right-gray .r-main .r-sec-title{color:#334155;border-bottom:2px solid #334155}
.resume.layout-right-gray .r-side-head .r-name{color:#0f172a}
.resume.layout-right-gray .r-side-head .r-job{color:#475569}
.resume.layout-right-gray .r-side-head .r-contact{color:#475569;border-color:#cbd5e1}

.resume.layout-right-black .r-side{background:#0f172a}
.resume.layout-right-black .r-side .r-sec-title{color:#60a5fa;border-bottom:1px solid #334155}
.resume.layout-right-black .r-side .r-sec-body p{color:#e2e8f0}
.resume.layout-right-black .r-main .r-sec-title{color:#0f172a;border-bottom:2px solid #0f172a}
.resume.layout-right-black .r-side-head .r-name{color:#fff}
.resume.layout-right-black .r-side-head .r-job{color:#60a5fa}
.resume.layout-right-black .r-side-head .r-contact{color:#cbd5e1;border-color:#334155}

.resume.layout-right-outline .r-side{background:#fff;border-left:2px solid #1d4ed8}
.resume.layout-right-outline .r-side .r-sec-title{color:#1d4ed8;border-bottom:1px solid #dbeafe}
.resume.layout-right-outline .r-main .r-sec-title{color:#1d4ed8;border-bottom:2px solid #1d4ed8}
.resume.layout-right-outline .r-side-head .r-name{color:#1d4ed8}

.resume.layout-right-color .r-side{background:#7c3aed}
.resume.layout-right-color .r-side .r-sec-title{color:#fff;border-bottom:1px solid #a78bfa}
.resume.layout-right-color .r-side .r-sec-body p{color:#f5f3ff}
.resume.layout-right-color .r-main .r-sec-title{color:#7c3aed;border-bottom:2px solid #7c3aed}
.resume.layout-right-color .r-side-head .r-name{color:#fff}
.resume.layout-right-color .r-side-head .r-job{color:#ddd6fe}
.resume.layout-right-color .r-side-head .r-contact{color:#ede9fe;border-color:#a78bfa}

.resume.layout-right-serif{font-family:Georgia,"Songti SC",serif}
.resume.layout-right-serif .r-side{background:#faf7f0;border-left:1px solid #d6cdb8}
.resume.layout-right-serif .r-side .r-sec-title{color:#78350f;border-bottom:1px solid #d6cdb8}
.resume.layout-right-serif .r-main .r-sec-title{color:#78350f;border-bottom:1px solid #78350f}
.resume.layout-right-serif .r-side-head .r-name{color:#78350f;letter-spacing:2px}

/* ============================================================
   21~25 E 类：双栏
   ============================================================ */
.resume.layout-two-even,
.resume.layout-two-stack,
.resume.layout-two-narrow,
.resume.layout-two-wide,
.resume.layout-two-card{padding:14mm 14mm}
.resume.layout-two-even .r-two-col,
.resume.layout-two-stack .r-two-col,
.resume.layout-two-narrow .r-two-col,
.resume.layout-two-wide .r-two-col,
.resume.layout-two-card .r-two-col{display:flex;flex-direction:row;gap:8mm;margin-top:8mm}
.resume.layout-two-even .r-col-l,.resume.layout-two-even .r-col-r{flex:1 1 50%}
.resume.layout-two-narrow .r-col-l{flex:0 0 32%}
.resume.layout-two-narrow .r-col-r{flex:1 1 68%}
.resume.layout-two-wide .r-col-l{flex:1 1 68%}
.resume.layout-two-wide .r-col-r{flex:0 0 32%}
.resume.layout-two-stack .r-two-col{flex-direction:column;gap:0}
.resume.layout-two-stack .r-col-l,.resume.layout-two-stack .r-col-r{flex:1 1 auto;width:100%}

.resume.layout-two-even .r-head{text-align:center;border-bottom:2px solid #2563eb;padding:0 0 6mm;margin:0 0 8mm}
.resume.layout-two-even .r-name{font-size:28pt;color:#2563eb;letter-spacing:3px}
.resume.layout-two-even .r-job{color:#64748b}
.resume.layout-two-even .r-sec-title{color:#2563eb;border-bottom:1px solid #dbeafe}

.resume.layout-two-stack .r-head{text-align:center;border-bottom:1px dashed #065f46;padding:0 0 5mm;margin:0 0 7mm}
.resume.layout-two-stack .r-name{color:#065f46}
.resume.layout-two-stack .r-job{color:#059669}
.resume.layout-two-stack .r-sec-title{color:#065f46;border-bottom:0;padding:0 0 2mm;border-left:3px solid #065f46;padding-left:4mm}

.resume.layout-two-narrow .r-head{border-bottom:3px solid #0f172a;padding:0 0 5mm;margin:0 0 8mm}
.resume.layout-two-narrow .r-name{color:#0f172a;font-size:24pt}
.resume.layout-two-narrow .r-job{color:#0f172a}
.resume.layout-two-narrow .r-col-l{background:#f1f5f9;padding:6mm;border-radius:8px}
.resume.layout-two-narrow .r-col-l .r-sec-title{color:#0f172a;font-size:10pt;letter-spacing:2px;border-bottom:1px solid #cbd5e1}
.resume.layout-two-narrow .r-col-l .r-sec-body p{font-size:9pt}
.resume.layout-two-narrow .r-col-r .r-sec-title{color:#0f172a;border-bottom:2px solid #0f172a}

.resume.layout-two-wide .r-head{border-bottom:2px double #7c3aed;padding:0 0 5mm;margin:0 0 8mm;text-align:center}
.resume.layout-two-wide .r-name{color:#7c3aed}
.resume.layout-two-wide .r-col-r{background:#f5f3ff;padding:6mm;border-radius:8px}
.resume.layout-two-wide .r-col-r .r-sec-title{color:#7c3aed;font-size:10pt;border-bottom:1px solid #ddd6fe}
.resume.layout-two-wide .r-col-r .r-sec-body p{font-size:9pt}
.resume.layout-two-wide .r-col-l .r-sec-title{color:#7c3aed;border-bottom:2px solid #7c3aed}

.resume.layout-two-card .r-head{border-bottom:2px solid #be123c;padding:0 0 5mm;margin:0 0 8mm}
.resume.layout-two-card .r-name{color:#be123c}
.resume.layout-two-card .r-two-col{gap:6mm}
.resume.layout-two-card .r-col-l,
.resume.layout-two-card .r-col-r{background:#fff5f7;padding:5mm;border-radius:8px;border-left:3px solid #be123c}
.resume.layout-two-card .r-sec-title{color:#be123c;border-bottom:1px solid #fecdd3;font-size:10.5pt}
.resume.layout-two-card .r-sec-body p{font-size:9.5pt}

/* ============================================================
   26~30 F 类：时间轴
   ============================================================ */
.resume.layout-tl-dot .r-head,
.resume.layout-tl-num .r-head,
.resume.layout-tl-card .r-head,
.resume.layout-tl-line .r-head,
.resume.layout-tl-tight .r-head{padding:0 0 5mm;margin:0 0 7mm;border-bottom:2px solid var(--tpl-accent)}
.resume.layout-tl-dot .r-sec-tl,
.resume.layout-tl-num .r-sec-tl,
.resume.layout-tl-card .r-sec-tl,
.resume.layout-tl-line .r-sec-tl,
.resume.layout-tl-tight .r-sec-tl{margin:0 0 6mm}
.resume.layout-tl-dot .r-tl-list,
.resume.layout-tl-num .r-tl-list,
.resume.layout-tl-card .r-tl-list,
.resume.layout-tl-line .r-tl-list,
.resume.layout-tl-tight .r-tl-list{margin-top:2mm}
.resume.layout-tl-dot .r-tl,
.resume.layout-tl-num .r-tl,
.resume.layout-tl-card .r-tl,
.resume.layout-tl-line .r-tl,
.resume.layout-tl-tight .r-tl{position:relative;padding-left:10mm;margin-bottom:5mm}
.resume.layout-tl-dot .r-tl-head,
.resume.layout-tl-num .r-tl-head,
.resume.layout-tl-card .r-tl-head,
.resume.layout-tl-line .r-tl-head,
.resume.layout-tl-tight .r-tl-head{font-size:10.5pt;font-weight:700;color:#273449;margin:0 0 1.5mm;line-height:1.5}
.resume.layout-tl-dot .r-tl-desc,
.resume.layout-tl-num .r-tl-desc,
.resume.layout-tl-card .r-tl-desc,
.resume.layout-tl-line .r-tl-desc,
.resume.layout-tl-tight .r-tl-desc{font-size:10pt;color:#3d4759;line-height:1.75;margin:0}

.resume.layout-tl-dot .r-tl-dot{position:absolute;left:0;top:2mm;width:4mm;height:4mm;border-radius:50%;background:#1d4ed8}
.resume.layout-tl-dot .r-tl::before{content:"";position:absolute;left:1.8mm;top:4mm;bottom:-5mm;width:1px;background:#dbeafe}
.resume.layout-tl-dot .r-tl:last-child::before{display:none}
.resume.layout-tl-dot .r-sec-title{color:#1d4ed8;border-bottom:1px solid #dbeafe}
.resume.layout-tl-dot .r-name{color:#1d4ed8}

.resume.layout-tl-num .r-tl{padding-left:12mm;counter-increment:tl-num}
.resume.layout-tl-num .r-tl-list{counter-reset:tl-num}
.resume.layout-tl-num .r-tl-dot{position:absolute;left:0;top:0;width:7mm;height:7mm;border-radius:50%;background:#065f46;color:#fff;font-size:7pt;font-weight:700;text-align:center;line-height:7mm}
.resume.layout-tl-num .r-tl-dot::after{content:counter(tl-num)}
.resume.layout-tl-num .r-tl::before{content:"";position:absolute;left:3.4mm;top:7mm;bottom:-5mm;width:1px;background:#a7f3d0}
.resume.layout-tl-num .r-tl:last-child::before{display:none}
.resume.layout-tl-num .r-sec-title{color:#065f46;border-bottom:1px solid #a7f3d0}
.resume.layout-tl-num .r-name{color:#065f46}

.resume.layout-tl-card .r-tl{padding:3.5mm 4.5mm;background:#faf5ff;border-left:3px solid #7c3aed;border-radius:0 4px 4px 0}
.resume.layout-tl-card .r-tl-dot{display:none}
.resume.layout-tl-card .r-sec-title{color:#7c3aed;border-bottom:0;background:#faf5ff;padding:1.5mm 3mm;border-radius:3px;display:inline-block;margin-bottom:3mm}
.resume.layout-tl-card .r-name{color:#7c3aed}

.resume.layout-tl-line .r-tl{padding-left:8mm;border-left:2px solid #0f172a}
.resume.layout-tl-line .r-tl-dot{position:absolute;left:-4px;top:3mm;width:7px;height:7px;background:#0f172a}
.resume.layout-tl-line .r-sec-title{color:#0f172a;border-bottom:0;font-size:11pt;letter-spacing:2px}
.resume.layout-tl-line .r-name{color:#0f172a}

.resume.layout-tl-tight .r-tl{padding-left:6mm;padding-bottom:3mm;margin-bottom:3mm;border-bottom:1px dashed #fecdd3}
.resume.layout-tl-tight .r-tl:last-child{border-bottom:0}
.resume.layout-tl-tight .r-tl-dot{position:absolute;left:0;top:2mm;width:3mm;height:3mm;background:#be123c}
.resume.layout-tl-tight .r-tl-head{font-size:10pt}
.resume.layout-tl-tight .r-tl-desc{font-size:9.5pt;line-height:1.6}
.resume.layout-tl-tight .r-sec-title{color:#be123c;border-bottom:1px solid #fecdd3}
.resume.layout-tl-tight .r-name{color:#be123c}

/* ============================================================
   31~35 G 类：卡片
   ============================================================ */
.resume.layout-card-round .r-head,
.resume.layout-card-dark .r-head,
.resume.layout-card-shadow .r-head,
.resume.layout-card-stripe .r-head,
.resume.layout-card-frame .r-head{padding:0 0 5mm;margin:0 0 7mm}

.resume.layout-card-round{background:#f8fafc}
.resume.layout-card-round .r-head{text-align:center;border-bottom:2px solid #dc2626;padding:0 0 6mm;margin:0 0 8mm}
.resume.layout-card-round .r-name{color:#dc2626;font-size:28pt}
.resume.layout-card-round .r-sec{background:#fff;border-radius:12px;padding:5mm 6mm;margin:0 0 5mm;box-shadow:0 2px 8px #17203310;border:0}
.resume.layout-card-round .r-sec-title{color:#dc2626;border-bottom:0;margin-bottom:3mm}

.resume.layout-card-dark .r-head{text-align:center;padding:0 0 6mm;margin:0 0 8mm;border-bottom:1px solid #111827}
.resume.layout-card-dark .r-name{color:#111827;font-size:28pt;letter-spacing:3px}
.resume.layout-card-dark .r-sec{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:0;margin:0 0 5mm;overflow:hidden}
.resume.layout-card-dark .r-sec-title{background:#111827;color:#fff;border:0;padding:2.5mm 5mm;margin:0;border-radius:0;font-size:11pt;letter-spacing:1px}
.resume.layout-card-dark .r-sec-body{padding:4mm 5mm}

.resume.layout-card-shadow .r-head{padding:0 0 5mm;margin:0 0 8mm;border-bottom:1px solid #e5e7eb}
.resume.layout-card-shadow .r-sec{box-shadow:0 4px 20px #1720330d;padding:5mm 6mm;border-radius:8px;margin:0 0 5mm;border:0}
.resume.layout-card-shadow .r-sec-title{color:#7c3aed;border-bottom:0;margin-bottom:3mm}
.resume.layout-card-shadow .r-name{color:#7c3aed}

.resume.layout-card-stripe .r-head{padding:0 0 5mm;margin:0 0 8mm;border-bottom:1px solid #e5e7eb}
.resume.layout-card-stripe .r-sec{background:#f0fdfa;border-left:4px solid #0d9488;padding:4mm 5mm;margin:0 0 4mm;border-radius:0 4px 4px 0}
.resume.layout-card-stripe .r-sec-title{color:#0d9488;border-bottom:0;margin-bottom:2.5mm}
.resume.layout-card-stripe .r-name{color:#0d9488}

.resume.layout-card-frame .r-head{padding:0 0 5mm;margin:0 0 8mm;border-bottom:1px solid #78350f}
.resume.layout-card-frame .r-sec{border:1px solid #e7e5df;padding:4mm 5mm;margin:0 0 4mm;border-radius:2px}
.resume.layout-card-frame .r-sec-title{color:#78350f;border-bottom:0;font-weight:700;letter-spacing:1px;margin-bottom:2.5mm}
.resume.layout-card-frame .r-name{color:#78350f}

/* ============================================================
   36~40 H 类：线框
   ============================================================ */
.resume.layout-line-h .r-head{padding:0 0 5mm;margin:0 0 7mm;border-bottom:2px solid #475569}
.resume.layout-line-h .r-name{color:#475569}
.resume.layout-line-h .r-sec{border-bottom:1px solid #e5e7eb;padding-bottom:5mm;margin:0 0 5mm}
.resume.layout-line-h .r-sec:last-child{border-bottom:0;margin-bottom:0}
.resume.layout-line-h .r-sec-title{border-bottom:0;padding-bottom:0;margin-bottom:3mm;color:#475569;font-weight:700}

.resume.layout-line-double .r-head{text-align:center;padding:0 0 6mm;margin:0 0 8mm;border-bottom:3px double #1e3a8a}
.resume.layout-line-double .r-name{color:#1e3a8a;letter-spacing:4px}
.resume.layout-line-double .r-sec-title{color:#1e3a8a;border-bottom:3px double #1e3a8a;padding-bottom:2mm;letter-spacing:2px}

.resume.layout-line-dash .r-head{padding:0 0 5mm;margin:0 0 7mm;border-bottom:2px dashed #7f1d1d}
.resume.layout-line-dash .r-name{color:#7f1d1d}
.resume.layout-line-dash .r-sec-title{color:#7f1d1d;border-bottom:1px dashed #fca5a5;letter-spacing:1.5px}

.resume.layout-line-table .r-head{padding:0 0 5mm;margin:0 0 7mm;border-bottom:3px solid #0d9488}
.resume.layout-line-table .r-name{color:#0d9488}
.resume.layout-line-table .r-sec-title{background:#f0fdfa;color:#0d9488;border-bottom:0;padding:2mm 4mm;border-left:4px solid #0d9488;letter-spacing:1.5px;font-weight:700}
.resume.layout-line-table .r-sec-body{padding:3mm 4mm 0}

.resume.layout-line-box .r-head{padding:0 0 5mm;margin:0 0 7mm;border-bottom:2px solid #111827}
.resume.layout-line-box .r-name{color:#111827}
.resume.layout-line-box .r-sec-title{border:1px solid #111827;padding:2mm 4mm;display:inline-block;border-radius:2px;background:#f9fafb;color:#111827;font-weight:700;letter-spacing:1.5px;margin-bottom:3mm}
.resume.layout-line-box .r-sec-body{padding:0 2mm}

/* ============================================================
   41~45 I 类：极简
   ============================================================ */
.resume.layout-mini-plain .r-head{padding:0 0 4mm;margin:0 0 6mm}
.resume.layout-mini-plain .r-name{font-size:26pt;color:#111}
.resume.layout-mini-plain .r-job{color:#111;font-weight:400}
.resume.layout-mini-plain .r-contact{color:#666}
.resume.layout-mini-plain .r-sec-title{color:#111;border-bottom:0;font-size:11pt;font-weight:700;padding:0;margin-bottom:3mm;letter-spacing:2px}
.resume.layout-mini-plain .r-sec-body p{color:#333}

.resume.layout-mini-line .r-head{padding:0 0 5mm;margin:0 0 7mm;border-bottom:1px solid #374151}
.resume.layout-mini-line .r-name{color:#374151;font-size:24pt}
.resume.layout-mini-line .r-job{color:#374151;font-weight:400}
.resume.layout-mini-line .r-sec-title{color:#374151;border-bottom:0;font-size:11pt;font-weight:700;padding:0;margin-bottom:3mm}

.resume.layout-mini-dot .r-head{padding:0 0 5mm;margin:0 0 7mm;border-bottom:1px solid #e5e7eb}
.resume.layout-mini-dot .r-name{color:#111}
.resume.layout-mini-dot .r-job{color:#dc2626}
.resume.layout-mini-dot .r-sec-title{color:#111;border-bottom:0;font-size:11pt;font-weight:700;padding:0;margin-bottom:3mm}
.resume.layout-mini-dot .r-sec-title::before{content:"● ";color:#dc2626;font-size:8pt}

.resume.layout-mini-mono{color:#111}
.resume.layout-mini-mono .r-head{padding:0 0 5mm;margin:0 0 7mm;border-bottom:2px solid #111}
.resume.layout-mini-mono .r-name{color:#111;font-size:24pt;letter-spacing:2px}
.resume.layout-mini-mono .r-job{color:#111;font-weight:400}
.resume.layout-mini-mono .r-contact{color:#555}
.resume.layout-mini-mono .r-sec-title{color:#111;border-bottom:1px solid #111;padding-bottom:2mm;font-size:11pt;font-weight:700;margin-bottom:3mm}
.resume.layout-mini-mono .r-sec-body p{color:#222}

.resume.layout-mini-space{padding:24mm 22mm}
.resume.layout-mini-space .r-head{padding:0 0 10mm;margin:0 0 15mm;border-bottom:1px solid #e5e7eb}
.resume.layout-mini-space .r-name{color:#475569;font-size:28pt;font-weight:300;letter-spacing:6px}
.resume.layout-mini-space .r-job{color:#94a3b8;font-weight:400;letter-spacing:3px;margin-top:3mm}
.resume.layout-mini-space .r-contact{color:#94a3b8;margin-top:5mm}
.resume.layout-mini-space .r-sec{margin-bottom:14mm}
.resume.layout-mini-space .r-sec-title{color:#475569;border-bottom:0;font-size:10pt;font-weight:600;letter-spacing:5px;padding:0;margin-bottom:5mm}
.resume.layout-mini-space .r-sec-body p{color:#64748b;line-height:2}

/* ============================================================
   46~50 J 类：现代杂志
   ============================================================ */
.resume.layout-mag-center .r-head{text-align:center;padding:0 0 8mm;margin:0 0 12mm;border-bottom:1px solid #111}
.resume.layout-mag-center .r-name{font-size:36pt;font-weight:200;letter-spacing:6px;color:#111}
.resume.layout-mag-center .r-job{color:#6b7280;letter-spacing:4px;font-weight:400;margin-top:3mm}
.resume.layout-mag-center .r-contact{color:#9ca3af;margin-top:4mm}
.resume.layout-mag-center .r-sec{margin-bottom:11mm}
.resume.layout-mag-center .r-sec-title{color:#111;border-bottom:0;font-size:11pt;font-weight:700;letter-spacing:5px;padding:0 0 4mm;margin:0 0 4mm;position:relative}
.resume.layout-mag-center .r-sec-title::after{content:"";display:block;width:20mm;height:1px;background:#111;margin-top:2mm}

.resume.layout-mag-serif{font-family:Georgia,"Songti SC",serif;padding:20mm 20mm}
.resume.layout-mag-serif .r-head{padding:0 0 8mm;margin:0 0 12mm;border-bottom:2px solid #78350f}
.resume.layout-mag-serif .r-name{font-size:34pt;color:#78350f;font-weight:700;letter-spacing:3px}
.resume.layout-mag-serif .r-job{color:#92400e;letter-spacing:4px;font-weight:400;margin-top:3mm;font-style:italic}
.resume.layout-mag-serif .r-contact{color:#78350f;margin-top:4mm}
.resume.layout-mag-serif .r-sec{margin-bottom:10mm}
.resume.layout-mag-serif .r-sec-title{color:#78350f;border-bottom:1px solid #78350f;letter-spacing:4px;font-size:11pt;padding:0 0 2mm}

.resume.layout-mag-small{padding:20mm 22mm;font-size:9.5pt}
.resume.layout-mag-small .r-head{padding:0 0 6mm;margin:0 0 10mm;border-bottom:1px solid #475569}
.resume.layout-mag-small .r-name{font-size:26pt;color:#475569;font-weight:600;letter-spacing:2px}
.resume.layout-mag-small .r-job{color:#64748b;letter-spacing:3px;margin-top:3mm}
.resume.layout-mag-small .r-contact{color:#94a3b8;margin-top:4mm;font-size:8.5pt}
.resume.layout-mag-small .r-sec{margin-bottom:8mm}
.resume.layout-mag-small .r-sec-title{color:#475569;border-bottom:0;font-size:9.5pt;font-weight:700;letter-spacing:4px;padding:0;margin-bottom:3mm}
.resume.layout-mag-small .r-sec-body p{font-size:9pt;line-height:1.85;color:#475569}

.resume.layout-mag-duo{padding:18mm 20mm}
.resume.layout-mag-duo .r-head{padding:0 0 7mm;margin:0 0 11mm;border-bottom:1px solid #e5e7eb}
.resume.layout-mag-duo .r-name{color:#111827;font-size:30pt;font-weight:800;letter-spacing:1px}
.resume.layout-mag-duo .r-name::after{content:".";color:#dc2626;font-size:1.2em}
.resume.layout-mag-duo .r-job{color:#dc2626;font-weight:500;letter-spacing:2px;margin-top:2mm}
.resume.layout-mag-duo .r-contact{color:#6b7280;margin-top:4mm}
.resume.layout-mag-duo .r-sec{margin-bottom:9mm}
.resume.layout-mag-duo .r-sec-title{color:#111827;border-bottom:0;font-size:11.5pt;font-weight:800;padding:0 0 3mm;margin:0 0 3mm;position:relative}
.resume.layout-mag-duo .r-sec-title::after{content:"";display:block;width:100%;height:2px;background:linear-gradient(90deg,#111827,#dc2626);margin-top:2mm}

.resume.layout-mag-drop{padding:18mm 22mm;font-family:Georgia,"Songti SC",serif}
.resume.layout-mag-drop .r-head{padding:0 0 6mm;margin:0 0 10mm;border-bottom:1px solid #111}
.resume.layout-mag-drop .r-name{font-size:28pt;color:#111;font-weight:700;letter-spacing:2px}
.resume.layout-mag-drop .r-job{color:#666;font-style:italic;letter-spacing:1px;margin-top:3mm}
.resume.layout-mag-drop .r-contact{color:#666;margin-top:4mm;font-size:9pt}
.resume.layout-mag-drop .r-sec{margin-bottom:8mm}
.resume.layout-mag-drop .r-sec-title{color:#111;border-bottom:1px solid #111;letter-spacing:3px;font-size:11pt;padding:0 0 2mm}
.resume.layout-mag-drop .r-sec-body p::first-letter{font-size:2.2em;line-height:1;color:#111;font-weight:800;float:left;margin:2px 6px 0 0;font-family:Georgia,serif}

/* ============================================================
   网格与卡片
   ============================================================ */
.gallery-tools{background:#fff;border:1px solid var(--tpl-line);border-radius:14px;padding:16px 18px;margin-bottom:20px}
.template-search{display:flex;align-items:center;gap:10px;max-width:none;margin:0}
.search-box{display:flex;align-items:center;gap:8px;flex:1;min-width:0;border:1px solid #dfe4ed;background:#fafbfe;border-radius:11px;padding:0 12px;color:#7a8498}
.search-box>span{font-size:22px;line-height:1}
.template-search .search-box input{flex:1;min-width:0;width:100%;margin:0;padding:12px 0;border:0;outline:0;background:transparent;font:inherit}
.template-filters{display:flex;flex-wrap:nowrap;gap:7px;overflow-x:auto;padding:0 0 12px;margin:0 0 12px;border-bottom:1px solid var(--tpl-line);-webkit-overflow-scrolling:touch}
.template-filters a{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;padding:6px 10px;color:#596579;font-size:14px;position:relative}
.template-filters a.active{color:#3849c6;font-weight:750}
.template-filters a.active::after{content:"";position:absolute;left:10px;right:10px;bottom:-13px;height:2px;background:#3849c6}
.gallery-results{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 2px 14px}
.gallery-results .result-count{margin:0;color:#667085}
.gallery-results>span{font-size:12px;color:var(--tpl-muted)}
.gallery-results strong{font-size:18px;color:#3548c7}
.template-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.home-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.template-card{min-width:0;padding:0;overflow:hidden;border:1px solid var(--tpl-line);border-radius:12px;background:#fff;box-shadow:0 4px 16px #1720330d;transition:border-color .2s,box-shadow .2s}
.template-card:hover{border-color:#cbd4f5;box-shadow:0 12px 28px #17203318}

/* 缩略图 */
.resume-sheet{position:relative !important;display:block;aspect-ratio:210/297;overflow:hidden !important;background:#fff;border-bottom:1px solid var(--tpl-line)}
.resume-sheet-inner{position:absolute !important;top:0 !important;left:0 !important;width:210mm;height:297mm;transform-origin:top left;pointer-events:none}
.resume-sheet-inner .resume{margin:0 !important;box-shadow:none !important;min-height:297mm}

/* 工具条 / 预览 */
.home-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:0 0 22px}
.home-tools .template-search{flex:1 1 320px;max-width:520px;margin:0}
.home-tools .template-filters{margin:0;border:0;padding:0}
.preview-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:8px 0 22px}
.preview-toolbar h1{font-size:26px;line-height:1.25;margin:7px 0}
.preview-toolbar p{font-size:13px;color:#7b8498;margin:0}
.back-link{display:inline-block;font-size:13px;color:#5364d8;margin-bottom:8px}
.preview-toolbar-label{display:inline-block;margin-left:12px;color:var(--tpl-muted);font-size:12px}
.preview-actions{display:flex;gap:9px;flex-wrap:wrap}
.preview-stage{padding:24px;background:#e9edf5;border-radius:16px;overflow:auto}
.preview-stage .resume{box-shadow:0 8px 28px #1720331a}
.only-mobile{display:none}

/* 响应式 */
@media(max-width:1100px){.home-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){.template-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.home-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){
  .only-desktop{display:none}
  .only-mobile{display:inline-block}
  .template-gallery,.home-gallery{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px !important}
  .template-card-meta{flex-direction:column;align-items:stretch;gap:6px;padding:8px 10px 10px}
  .template-card-meta h2{font-size:12px;margin:3px 0}
  .template-category{font-size:9px;padding:3px 5px}
  .template-usage{font-size:10px}
  .template-use{font-size:10px;padding:6px 8px;width:100%;text-align:center}
  .template-filters{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:4px 0 8px;margin:0 0 10px;border-bottom:0}
  .template-filters a{padding:6px 12px;font-size:12px;flex:0 0 auto;border:1px solid var(--tpl-line);border-radius:999px}
  .template-filters a.active{background:#eef1ff;border-color:#d9dfff}
  .template-filters a.active::after{display:none}
  .template-search{flex-direction:column;gap:8px}
  .search-box{padding:0 10px}
  .template-search .search-box input{padding:10px 0;font-size:13px}
  .template-search .btn{width:100%;padding:10px}
  .gallery-results>span{display:none}
  .preview-toolbar{flex-direction:column;align-items:flex-start;gap:12px}
  .preview-toolbar h1{font-size:22px}
  .preview-actions{width:100%;flex-direction:column}
  .preview-actions .btn{width:100%;text-align:center}
  .preview-stage{padding:8px;overflow:visible;background:#f1f3f8;border-radius:8px}

  /* 手机端预览页：C/D 类保持左右双栏，和缩略图一致 */
  .preview-stage .resume.layout-sidebar,
  .preview-stage .resume.layout-side-gray,.preview-stage .resume.layout-side-black,.preview-stage .resume.layout-side-outline,.preview-stage .resume.layout-side-color,.preview-stage .resume.layout-side-serif,
  .preview-stage .resume.layout-right-gray,.preview-stage .resume.layout-right-black,.preview-stage .resume.layout-right-outline,.preview-stage .resume.layout-right-color,.preview-stage .resume.layout-right-serif{
    flex-direction:row;width:100%;max-width:100%;padding:0;font-size:8.5px;line-height:1.5;
  }
  .preview-stage .resume.layout-sidebar .r-side,
  .preview-stage .resume.layout-side-gray .r-side,.preview-stage .resume.layout-side-black .r-side,.preview-stage .resume.layout-side-outline .r-side,.preview-stage .resume.layout-side-color .r-side,.preview-stage .resume.layout-side-serif .r-side,
  .preview-stage .resume.layout-right-gray .r-side,.preview-stage .resume.layout-right-black .r-side,.preview-stage .resume.layout-right-outline .r-side,.preview-stage .resume.layout-right-color .r-side,.preview-stage .resume.layout-right-serif .r-side{
    flex:0 0 32%;padding:10px 8px;
  }
  .preview-stage .resume.layout-sidebar .r-main,
  .preview-stage .resume.layout-side-gray .r-main,.preview-stage .resume.layout-side-black .r-main,.preview-stage .resume.layout-side-outline .r-main,.preview-stage .resume.layout-side-color .r-main,.preview-stage .resume.layout-side-serif .r-main,
  .preview-stage .resume.layout-right-gray .r-main,.preview-stage .resume.layout-right-black .r-main,.preview-stage .resume.layout-right-outline .r-main,.preview-stage .resume.layout-right-color .r-main,.preview-stage .resume.layout-right-serif .r-main{
    flex:1 1 68%;padding:10px 10px 10px 8px;
  }
  .preview-stage .resume.layout-sidebar .r-side-head .r-name,
  .preview-stage .resume.layout-side-gray .r-side-head .r-name,
  .preview-stage .resume.layout-side-black .r-side-head .r-name,
  .preview-stage .resume.layout-side-outline .r-side-head .r-name,
  .preview-stage .resume.layout-side-color .r-side-head .r-name,
  .preview-stage .resume.layout-side-serif .r-side-head .r-name,
  .preview-stage .resume.layout-right-gray .r-side-head .r-name,
  .preview-stage .resume.layout-right-black .r-side-head .r-name,
  .preview-stage .resume.layout-right-outline .r-side-head .r-name,
  .preview-stage .resume.layout-right-color .r-side-head .r-name,
  .preview-stage .resume.layout-right-serif .r-side-head .r-name{font-size:14pt}
  .preview-stage .resume.layout-sidebar .r-side-head .r-job,
  .preview-stage .resume.layout-side-gray .r-side-head .r-job,
  .preview-stage .resume.layout-side-black .r-side-head .r-job,
  .preview-stage .resume.layout-side-outline .r-side-head .r-job,
  .preview-stage .resume.layout-side-color .r-side-head .r-job,
  .preview-stage .resume.layout-side-serif .r-side-head .r-job,
  .preview-stage .resume.layout-right-gray .r-side-head .r-job,
  .preview-stage .resume.layout-right-black .r-side-head .r-job,
  .preview-stage .resume.layout-right-outline .r-side-head .r-job,
  .preview-stage .resume.layout-right-color .r-side-head .r-job,
  .preview-stage .resume.layout-right-serif .r-side-head .r-job{font-size:8pt}
  .preview-stage .resume.layout-sidebar .r-side-head .r-contact,
  .preview-stage .resume.layout-side-gray .r-side-head .r-contact,
  .preview-stage .resume.layout-side-black .r-side-head .r-contact,
  .preview-stage .resume.layout-side-outline .r-side-head .r-contact,
  .preview-stage .resume.layout-side-color .r-side-head .r-contact,
  .preview-stage .resume.layout-side-serif .r-side-head .r-contact,
  .preview-stage .resume.layout-right-gray .r-side-head .r-contact,
  .preview-stage .resume.layout-right-black .r-side-head .r-contact,
  .preview-stage .resume.layout-right-outline .r-side-head .r-contact,
  .preview-stage .resume.layout-right-color .r-side-head .r-contact,
  .preview-stage .resume.layout-right-serif .r-side-head .r-contact{font-size:7.5px;line-height:1.6;padding:6px 0;margin:6px 0 0}
  .preview-stage .resume.layout-sidebar .r-side .r-sec-title,
  .preview-stage .resume.layout-sidebar .r-main .r-sec-title,
  .preview-stage .resume.layout-side-gray .r-side .r-sec-title,.preview-stage .resume.layout-side-gray .r-main .r-sec-title,
  .preview-stage .resume.layout-side-black .r-side .r-sec-title,.preview-stage .resume.layout-side-black .r-main .r-sec-title,
  .preview-stage .resume.layout-side-outline .r-side .r-sec-title,.preview-stage .resume.layout-side-outline .r-main .r-sec-title,
  .preview-stage .resume.layout-side-color .r-side .r-sec-title,.preview-stage .resume.layout-side-color .r-main .r-sec-title,
  .preview-stage .resume.layout-side-serif .r-side .r-sec-title,.preview-stage .resume.layout-side-serif .r-main .r-sec-title,
  .preview-stage .resume.layout-right-gray .r-side .r-sec-title,.preview-stage .resume.layout-right-gray .r-main .r-sec-title,
  .preview-stage .resume.layout-right-black .r-side .r-sec-title,.preview-stage .resume.layout-right-black .r-main .r-sec-title,
  .preview-stage .resume.layout-right-outline .r-side .r-sec-title,.preview-stage .resume.layout-right-outline .r-main .r-sec-title,
  .preview-stage .resume.layout-right-color .r-side .r-sec-title,.preview-stage .resume.layout-right-color .r-main .r-sec-title,
  .preview-stage .resume.layout-right-serif .r-side .r-sec-title,.preview-stage .resume.layout-right-serif .r-main .r-sec-title{font-size:9pt;margin:0 0 4px;padding:0 0 3px}
  .preview-stage .resume.layout-sidebar .r-side .r-sec-body p,
  .preview-stage .resume.layout-sidebar .r-main .r-sec-body p,
  .preview-stage .resume.layout-side-gray .r-side .r-sec-body p,.preview-stage .resume.layout-side-gray .r-main .r-sec-body p,
  .preview-stage .resume.layout-side-black .r-side .r-sec-body p,.preview-stage .resume.layout-side-black .r-main .r-sec-body p,
  .preview-stage .resume.layout-side-outline .r-side .r-sec-body p,.preview-stage .resume.layout-side-outline .r-main .r-sec-body p,
  .preview-stage .resume.layout-side-color .r-side .r-sec-body p,.preview-stage .resume.layout-side-color .r-main .r-sec-body p,
  .preview-stage .resume.layout-side-serif .r-side .r-sec-body p,.preview-stage .resume.layout-side-serif .r-main .r-sec-body p,
  .preview-stage .resume.layout-right-gray .r-side .r-sec-body p,.preview-stage .resume.layout-right-gray .r-main .r-sec-body p,
  .preview-stage .resume.layout-right-black .r-side .r-sec-body p,.preview-stage .resume.layout-right-black .r-main .r-sec-body p,
  .preview-stage .resume.layout-right-outline .r-side .r-sec-body p,.preview-stage .resume.layout-right-outline .r-main .r-sec-body p,
  .preview-stage .resume.layout-right-color .r-side .r-sec-body p,.preview-stage .resume.layout-right-color .r-main .r-sec-body p,
  .preview-stage .resume.layout-right-serif .r-side .r-sec-body p,.preview-stage .resume.layout-right-serif .r-main .r-sec-body p{font-size:8pt;line-height:1.55;margin:0 0 4px}

  /* 手机端：只解决 A4 固定宽度溢出，保留各模板自身 padding/字号/颜色（新增） */
  .preview-stage .resume,
  #resume-wrap .resume{
    width:100% !important;
    max-width:100% !important;
    min-height:auto !important;
    box-shadow:none !important;
    overflow-wrap:break-word !important;
    word-break:break-word !important;
  }
}
@media(max-width:320px){.template-gallery,.home-gallery{grid-template-columns:1fr !important}}

/* 桌面端隐藏顶部姓名 */
.resume .r-head-top{display:none}

/* ============================================================
   打印：强制保留背景色
   ============================================================ */
@media print{
  @page{size:A4;margin:0}
  *,*::before,*::after{
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .no-print,
  body>header,
  body>footer,
  .preview-next,
  .preview-toolbar,
  .edit-hint,
  nav{display:none!important}
  html,body{
    margin:0!important;padding:0!important;
    background:#fff!important;width:210mm!important;
  }
  main.wrap{
    margin:0!important;padding:0!important;
    max-width:none!important;width:210mm!important;
  }
  .preview-stage{
    padding:0!important;margin:0!important;
    background:#fff!important;border-radius:0!important;
    overflow:visible!important;
  }
  .resume{
    width:210mm!important;
    min-height:297mm!important;
    max-width:none!important;
    margin:0!important;
    padding:14mm 15mm!important;
    box-shadow:none!important;
    transform:none!important;
  }
  .resume .r-head,
  .resume .r-sec{break-inside:avoid;page-break-inside:avoid}
  .resume .r-head-top{display:none!important}
  .resume.layout-sidebar,
  .resume.layout-side-gray,.resume.layout-side-black,.resume.layout-side-outline,.resume.layout-side-color,.resume.layout-side-serif,
  .resume.layout-right-gray,.resume.layout-right-black,.resume.layout-right-outline,.resume.layout-right-color,.resume.layout-right-serif{
    display:flex!important;flex-direction:row!important;
  }
  .resume.layout-sidebar .r-side,
  .resume.layout-side-gray .r-side,.resume.layout-side-black .r-side,.resume.layout-side-outline .r-side,.resume.layout-side-color .r-side,.resume.layout-side-serif .r-side,
  .resume.layout-right-gray .r-side,.resume.layout-right-black .r-side,.resume.layout-right-outline .r-side,.resume.layout-right-color .r-side,.resume.layout-right-serif .r-side{
    flex:0 0 35%!important;width:35%!important;
  }
  .resume.layout-sidebar .r-main,
  .resume.layout-side-gray .r-main,.resume.layout-side-black .r-main,.resume.layout-side-outline .r-main,.resume.layout-side-color .r-main,.resume.layout-side-serif .r-main,
  .resume.layout-right-gray .r-main,.resume.layout-right-black .r-main,.resume.layout-right-outline .r-main,.resume.layout-right-color .r-main,.resume.layout-right-serif .r-main{
    flex:1 1 65%!important;width:65%!important;
  }
  .resume.layout-sidebar .r-side .r-side-head,
  .resume.layout-side-gray .r-side .r-side-head,
  .resume.layout-side-black .r-side .r-side-head,
  .resume.layout-side-outline .r-side .r-side-head,
  .resume.layout-side-color .r-side .r-side-head,
  .resume.layout-side-serif .r-side .r-side-head,
  .resume.layout-right-gray .r-side .r-side-head,
  .resume.layout-right-black .r-side .r-side-head,
  .resume.layout-right-outline .r-side .r-side-head,
  .resume.layout-right-color .r-side .r-side-head,
  .resume.layout-right-serif .r-side .r-side-head{display:block!important}
}