/* ============================================================
   简页简历 · 纸面排版与 18 套模板
   ============================================================ */
.paper{
  width:794px;min-height:1123px;background:var(--paper-bg,#fff);color:#2b2b28;
  font-family:var(--font-body);font-size:var(--fs,13.5px);line-height:var(--lh,1.62);
  letter-spacing:var(--ls,0px);position:relative;-webkit-print-color-adjust:exact;print-color-adjust:exact;
  --side-w:238px;
}
.paper *{box-sizing:border-box}
.paper p{margin:0}
.paper h1,.paper h2,.paper h3,.paper h4{margin:0}
.paper ul{margin:0;padding:0;list-style:none}

/* ---------- 布局骨架 ---------- */
.p-single{padding:50px 62px 56px;min-height:1123px;display:flex;flex-direction:column}
.p-cols{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:1123px;align-items:stretch}
.layout-right .p-cols{grid-template-columns:minmax(0,1fr) var(--side-w)}
.p-aside{padding:42px 26px 46px;background:var(--side-bg,#f3f3ef);color:var(--side-text,#2c2c29)}
.p-main{padding:42px 38px 46px;min-width:0}
.layout-right .p-main{padding:42px 42px 46px 44px}
.layout-right .p-aside{padding:42px 26px 46px 24px}
.layout-band .p-band{
  background:var(--accent,#2c4257);color:#fff;padding:30px 44px;display:flex;align-items:flex-end;
  justify-content:space-between;gap:28px;
}
.layout-band .p-cols{min-height:0;grid-template-columns:190px minmax(0,1fr)}
.layout-band .p-aside{padding:28px 22px 42px}
.layout-band .p-main{padding:32px 40px 44px}

/* ---------- 编辑态 ---------- */
.paper [data-edit]{
  border-radius:2px;outline:1px dashed transparent;outline-offset:2px;cursor:text;
  transition:background .12s ease,outline-color .12s ease;min-width:6px;
}
.paper [data-edit]:hover{background:rgba(20,20,18,.045);outline-color:rgba(20,20,18,.16)}
.paper [data-edit]:focus{background:rgba(20,20,18,.035);outline:1px solid var(--accent,#555);outline-offset:2px}
.p-aside [data-edit]:hover{background:rgba(255,255,255,.1);outline-color:rgba(255,255,255,.25)}
.p-aside [data-edit]:focus{background:rgba(255,255,255,.07);outline-color:rgba(255,255,255,.65)}
.paper [data-edit]:empty::before{content:attr(data-ph);opacity:.38;pointer-events:none}
body.is-preview .paper [data-edit]:empty::before{display:none}
.paper [data-edit] a{color:inherit}
.paper ::selection{background:rgba(80,110,95,.2)}
.p-aside ::selection{background:rgba(255,255,255,.25)}

.edit-only{display:revert}
.p-add{
  display:flex;align-items:center;justify-content:center;gap:3px;width:100%;margin-top:7px;
  padding:2px 0;border:1px dashed rgba(40,40,35,.16);border-radius:2px;
  font-size:.7em;line-height:1.7;color:#8b877d;letter-spacing:.02em;opacity:.7;
}
.p-add:hover{opacity:1;border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,.02)}
.p-aside .p-add{border-color:rgba(255,255,255,.25);color:inherit;opacity:.55}
.p-aside .p-add:hover{border-color:currentColor;opacity:.9;background:rgba(255,255,255,.06)}
.p-add-photo{font-size:.68em}
.p-actions{display:flex;align-items:center;justify-content:flex-end;gap:2px;margin-top:3px;opacity:0;transition:opacity .12s}
.p-item:hover .p-actions,.p-tag-wrap:hover .p-actions,.p-item:focus-within .p-actions{opacity:1}
.p-act{
  display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:17px;padding:0 4px;
  font-size:.64em;line-height:1;color:#8b877d;border-radius:2px;letter-spacing:.02em;
}
.p-act:hover{background:rgba(0,0,0,.07);color:#222}
.p-act svg{width:9px;height:9px;stroke-width:1.7}
.p-act.is-del:hover{color:#a43e34;background:rgba(164,62,52,.08)}
.p-aside .p-act{color:inherit;opacity:.55}
.p-aside .p-act:hover{background:rgba(255,255,255,.14);opacity:1}
.p-bullet-del{position:absolute;right:-2px;top:1px;width:14px;height:14px;display:none;place-items:center;font-size:.72em;color:#9a968d;border-radius:2px}
.p-bullet:hover>.p-bullet-del{display:grid}
.p-bullet-del:hover{background:rgba(0,0,0,.06);color:#8d352c}
.p-tag-wrap{display:inline-flex;align-items:center;gap:1px}
.p-tag-del{display:none;width:13px;height:13px;place-items:center;font-size:.7em;color:#8d887e;border-radius:50%}
.p-tag-wrap:hover .p-tag-del{display:grid}
.p-tag-del:hover{background:rgba(0,0,0,.07);color:#8d352c}

/* ---------- 头部通用 ---------- */
.p-head{margin-bottom:calc(var(--gap,20px) * 1.05)}
.p-name{font-family:var(--font-head);font-size:2.08em;line-height:1.16;font-weight:600;letter-spacing:.02em;color:inherit}
.p-role{font-family:var(--font-head);font-size:.94em;line-height:1.5;margin-top:6px;color:inherit;opacity:.72;letter-spacing:.04em}
.p-photo{
  width:90px;height:110px;overflow:hidden;position:relative;flex:0 0 auto;
  background:rgba(255,255,255,.35);border:1px solid rgba(255,255,255,.28);
}
.p-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.92)}
.p-photo-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:inherit;opacity:.62}
.p-photo-fallback b{font-family:var(--font-serif);font-size:2.2em;font-weight:500;line-height:1}
.p-photo-fallback span{font-size:.58em;letter-spacing:.14em;opacity:.7}
.p-photo.is-empty{cursor:pointer}
.photo-tools{
  position:absolute;left:0;right:0;bottom:0;display:flex;background:rgba(28,28,25,.78);
  opacity:0;transition:opacity .13s;z-index:3;
}
.p-photo:hover .photo-tools,.p-photo:focus-within .photo-tools{opacity:1}
.photo-tools button{flex:1 1 0;height:21px;color:#fff;font-size:8.5px;letter-spacing:.02em}
.photo-tools button:hover{background:rgba(255,255,255,.18)}
.photo-tools button+button{border-left:1px solid rgba(255,255,255,.18)}
.p-head-aside{display:flex;flex-direction:column;align-items:flex-start;gap:13px}
.p-head-aside .p-photo{width:90px;height:110px}
.p-head-aside .p-role{margin-top:7px}
.p-head-stack{display:flex;align-items:flex-start;justify-content:space-between;gap:30px}
.p-head-stack .p-id{flex:1 1 auto;min-width:0}
.p-head-stack .p-photo{width:96px;height:118px;border-color:rgba(0,0,0,.08);background:#f3f2ed}
.p-head-centered{text-align:center;display:flex;flex-direction:column;align-items:center}
.p-head-centered .p-photo{width:82px;height:82px;border-radius:50%;margin-bottom:13px;border-color:rgba(0,0,0,.08);background:#f1f0ea}
.p-head-centered .p-name{font-size:2.24em}
.p-head-centered .p-role{margin-top:5px}
.p-head-editorial{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding-bottom:14px;border-bottom:1px solid rgba(0,0,0,.14)}
.p-head-editorial .p-name{font-size:2.95em;letter-spacing:.03em;line-height:1.02}
.p-head-editorial .p-role{font-size:.82em;letter-spacing:.28em;opacity:.62;margin-top:9px}
.p-head-editorial .p-photo{width:78px;height:96px;border-color:rgba(0,0,0,.08);background:#f2f1ec}
.p-head-masthead{text-align:center;padding-bottom:12px;border-bottom:3px double rgba(0,0,0,.22)}
.p-head-masthead .p-name{font-size:2.7em;letter-spacing:.1em;font-weight:500}
.p-head-masthead .p-role{letter-spacing:.24em;font-size:.78em;margin-top:7px;opacity:.62}
.p-head-masthead .p-photo{display:none}
.p-band-id .p-name{color:#fff;font-size:2.15em;letter-spacing:.03em}
.p-band-id .p-role{color:rgba(255,255,255,.72);margin-top:6px;letter-spacing:.08em}
.p-band .p-photo{width:74px;height:90px;border-color:rgba(255,255,255,.32);background:rgba(255,255,255,.12)}
.p-head-grid{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:24px;align-items:start;padding-bottom:16px;border-bottom:1px solid rgba(0,0,0,.18)}
.p-head-grid .p-name{font-size:2.35em;line-height:1.05}
.p-head-grid .p-role{font-size:.82em;letter-spacing:.2em;opacity:.6}
.p-head-grid .p-photo{width:104px;height:128px;border-color:rgba(0,0,0,.1);background:#f1f0ea}
.p-head-code{padding-bottom:12px;border-bottom:1px dashed rgba(0,0,0,.22)}
.p-head-code .code-kicker{font-family:var(--font-mono,monospace);font-size:.66em;letter-spacing:.18em;color:var(--accent);margin-bottom:7px}
.p-head-code .p-name{font-size:2.2em;letter-spacing:.01em}
.p-head-code .p-role{font-size:.82em;opacity:.65;margin-top:4px}
.p-head-compact{display:flex;align-items:center;gap:18px;padding-bottom:14px;border-bottom:2px solid var(--accent)}
.p-head-compact .p-id{flex:1 1 auto;min-width:0}
.p-head-compact .p-name{font-size:2em;line-height:1.12}
.p-head-compact .p-role{font-size:.82em;opacity:.68;margin-top:3px;letter-spacing:.1em}
.p-head-compact .p-photo{width:58px;height:70px;border-color:rgba(0,0,0,.1);background:#f2f1ec}
.p-head-row{display:flex;align-items:center;justify-content:space-between;gap:24px}

/* ---------- 联系方式 / 信息对 ---------- */
.p-contacts{display:flex;flex-direction:column;gap:5px}
.p-contact{display:flex;align-items:flex-start;gap:6px;font-size:.79em;line-height:1.55;color:inherit;min-width:0}
.p-contact svg{width:.85em;height:.85em;margin-top:.28em;opacity:.55;flex:0 0 auto}
.p-contact span{min-width:0;overflow-wrap:anywhere}
.p-inline-contacts{display:flex;flex-wrap:wrap;gap:4px 15px;align-items:flex-start;justify-content:center}
.p-inline-contacts .p-contact{font-size:.8em;opacity:.82}
.p-pairs{display:grid;gap:2px 16px}
.p-pairs.cols-2{grid-template-columns:1fr 1fr}
.p-pairs.cols-1{grid-template-columns:1fr}
.p-pair{display:flex;align-items:baseline;gap:8px;font-size:.8em;line-height:1.6;min-width:0}
.p-pair-label{color:inherit;opacity:.56;flex:0 0 auto;font-size:.95em;letter-spacing:.02em}
.p-pair-value{color:inherit;opacity:.92;min-width:0;overflow-wrap:anywhere}
.p-aside .p-pairs{gap:1px}
.p-aside .p-pair{display:grid;grid-template-columns:4.7em minmax(0,1fr);gap:5px;font-size:.78em;line-height:1.55}
.p-pair-label{white-space:nowrap}
.p-aside .p-pair-label{opacity:.5}
.p-aside .p-sec-title{font-size:.7em;letter-spacing:.18em;opacity:.55;font-weight:500;margin-bottom:8px}
.p-aside .p-sec{margin-top:24px}
.p-aside .p-sec:first-of-type{margin-top:26px}
.p-aside .p-contact{font-size:.70em;opacity:.88;gap:4px;letter-spacing:-.005em}
.p-aside .p-sec-title::after{display:none}

/* ---------- 标题与章节 ---------- */
.p-sec{position:relative;margin-top:var(--gap,20px)}
.p-sec:first-child{margin-top:0}
.p-sec-head{display:flex;align-items:baseline;gap:9px;margin-bottom:8px;position:relative}
.p-sec-title{font-family:var(--font-head);font-size:1.0em;font-weight:600;letter-spacing:.09em;line-height:1.45;color:inherit}
.p-sec-index{font-family:var(--font-head);font-size:.66em;letter-spacing:.08em;color:var(--accent);opacity:.9;font-variant-numeric:tabular-nums}
.p-sec-line{flex:1 1 auto;height:1px;background:currentColor;opacity:.1;margin-left:4px;align-self:center}
.p-sec-foot{margin-top:4px}

/* ---------- 经历条目 ---------- */
.p-items{display:flex;flex-direction:column;gap:12px}
.p-item{position:relative;padding-left:0}
.p-item-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.p-org{font-family:var(--font-head);font-size:.97em;font-weight:600;line-height:1.5;min-width:0}
.p-date{font-size:.76em;line-height:1.5;color:inherit;opacity:.5;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.01em;flex:0 0 auto}
.p-role{font-size:.82em;line-height:1.5;color:inherit;opacity:.64;margin-top:2px}
.p-bullets{margin-top:4px;display:flex;flex-direction:column;gap:2px}
.p-bullet{position:relative;padding-left:12px;font-size:.84em;line-height:1.62;color:inherit;opacity:.9}
.p-bullet::before{content:"";position:absolute;left:2px;top:.7em;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.5}
.p-bullet-text{display:inline;min-width:8px}
.p-add-bullet{display:flex;align-items:center;gap:3px;margin-top:4px;font-size:.68em;color:inherit;opacity:.42;line-height:1.7;padding-left:12px}
.p-add-bullet:hover{opacity:.9}
.p-add-bullet::before{content:"＋";font-size:.9em;line-height:1}

/* ---------- 标签 ---------- */
.p-tags{display:flex;flex-wrap:wrap;gap:5px 6px;align-items:center}
.p-tag{font-size:.78em;line-height:1.7;padding:0 8px;border:1px solid rgba(40,40,35,.14);border-radius:999px;color:inherit;white-space:nowrap;min-width:8px}
.p-aside .p-tag{border-color:rgba(255,255,255,.2)}
.p-tag-wrap{display:inline-flex;align-items:center;gap:0}
.p-add-tag{display:inline-flex;align-items:center;gap:2px;height:1.75em;padding:0 7px;border:1px dashed rgba(40,40,35,.2);border-radius:999px;font-size:.7em;color:inherit;opacity:.48}
.p-add-tag:hover{opacity:.9}
.p-aside .p-add-tag{border-color:rgba(255,255,255,.24)}

/* ---------- 自定义模块 ---------- */
.p-paras{display:flex;flex-direction:column;gap:3px}
.p-para{font-size:.85em;line-height:1.68;color:inherit;opacity:.9;position:relative}
.p-para .p-act{position:absolute;right:-2px;top:0}
.p-custom-title{cursor:text}

/* ============================================================
   模板差异
   ============================================================ */

/* 01 远山 —— 深青灰左侧栏，细线章节 */
.tpl-yuanshan .p-aside .p-name{color:#fff;letter-spacing:.04em}
.tpl-yuanshan .p-aside .p-role{color:rgba(255,255,255,.72);opacity:1}
.tpl-yuanshan .p-aside .p-sec-title{color:rgba(255,255,255,.58);letter-spacing:.2em}
.tpl-yuanshan .p-aside .p-sec-title::before{content:"";display:inline-block;width:10px;height:1px;background:rgba(255,255,255,.4);vertical-align:middle;margin-right:6px}
.tpl-yuanshan .p-main .p-sec-title::before{content:"";display:inline-block;width:13px;height:2px;background:var(--accent);vertical-align:middle;margin-right:8px;transform:translateY(-1px)}
.tpl-yuanshan .p-main .p-sec-title{letter-spacing:.13em}
.tpl-yuanshan .p-contact svg{opacity:.5}
.tpl-yuanshan .p-photo{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.1)}
.tpl-yuanshan .p-photo-fallback b{color:rgba(255,255,255,.85)}

/* 02 晨雾 —— 右侧浅雾栏，细字标题 */
.tpl-chenwu .p-aside{background:linear-gradient(180deg,#eef2f3 0%,#e9eef0 100%)}
.tpl-chenwu .p-aside .p-name{font-weight:500;letter-spacing:.06em}
.tpl-chenwu .p-aside .p-sec-title{letter-spacing:.24em;font-size:.68em;opacity:.48}
.tpl-chenwu .p-main .p-sec-title{letter-spacing:.2em;font-weight:500;font-size:.94em}
.tpl-chenwu .p-main .p-sec-head{border-bottom:1px solid rgba(30,50,60,.1);padding-bottom:5px}
.tpl-chenwu .p-tag{border:0;padding:0 0;margin-right:5px}
.tpl-chenwu .p-tag::after{content:"·";margin-left:6px;opacity:.4}
.tpl-chenwu .p-tag-wrap:last-child .p-tag::after{display:none}
.tpl-chenwu .p-bullet::before{background:none;border:1px solid currentColor;width:3px;height:3px;border-radius:50%}

/* 03 留白 —— 单栏，宽松留白 */
.tpl-liubai .p-single{padding:64px 70px 64px}
.tpl-liubai .p-head-stack{padding-bottom:26px;border-bottom:1px solid rgba(0,0,0,.12)}
.tpl-liubai .p-name{font-weight:400;font-size:2.55em;letter-spacing:.02em}
.tpl-liubai .p-role{font-size:.86em;letter-spacing:.16em;opacity:.55}
.tpl-liubai .p-sec{margin-top:calc(var(--gap,20px) * 1.35)}
.tpl-liubai .p-sec-head{border-top:1px solid rgba(0,0,0,.14);padding-top:6px;margin-bottom:10px}
.tpl-liubai .p-sec-title{font-size:.8em;letter-spacing:.26em;font-weight:500}
.tpl-liubai .p-sec-index{display:none}
.tpl-liubai .p-item-top{gap:20px}
.tpl-liubai .p-org{font-weight:500}
.tpl-liubai .p-tag{border:0;border-bottom:1px solid rgba(0,0,0,.22);border-radius:0;padding:0 1px;margin-right:4px}
.tpl-liubai .p-contact{justify-content:flex-start}
.tpl-liubai .p-inline-contacts{justify-content:flex-start;gap:5px 14px}

/* 04 网格 —— 双栏流与编号 */
.tpl-wangge .p-single{padding:46px 50px 52px}
.tpl-wangge .p-head-grid{padding-bottom:18px;margin-bottom:18px}
.tpl-wangge .p-sec{margin-top:calc(var(--gap,20px) * .85)}
.tpl-wangge .p-sec-head{border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:4px;margin-bottom:7px}
.tpl-wangge .p-sec-index{order:2;margin-left:auto;font-family:var(--font-mono,monospace);font-size:.6em;opacity:.45}
.tpl-wangge .p-sec-title{font-size:.83em;letter-spacing:.12em}
.tpl-wangge .p-flow{column-count:2;column-gap:30px}
.tpl-wangge .p-flow .p-sec{break-inside:avoid;margin-top:0;margin-bottom:calc(var(--gap,20px) * .8)}
.tpl-wangge .p-flow .p-sec.force-full{column-span:all}
.tpl-wangge .p-tag{border-radius:0;padding:0 5px;border-color:rgba(0,0,0,.2)}
.tpl-wangge .p-bullet::before{width:4px;height:1px;border-radius:0;top:.85em}
.tpl-wangge .p-date{font-family:var(--font-mono,monospace);font-size:.68em}

/* 05 素页 —— 居中衬线 */
.tpl-suye .p-single{padding:56px 66px}
.tpl-suye .p-head-centered{padding-bottom:22px;border-bottom:1px solid rgba(0,0,0,.16)}
.tpl-suye .p-name{font-weight:500;letter-spacing:.2em;font-size:2.3em}
.tpl-suye .p-role{letter-spacing:.2em;font-size:.8em}
.tpl-suye .p-sec-head{justify-content:center;gap:10px;margin-bottom:9px}
.tpl-suye .p-sec-head::before,.tpl-suye .p-sec-head::after{content:"";height:1px;background:rgba(0,0,0,.14);flex:1 1 0}
.tpl-suye .p-sec-title{font-size:.84em;letter-spacing:.24em;font-weight:500}
.tpl-suye .p-sec-index,.tpl-suye .p-sec-line{display:none}
.tpl-suye .p-inline-contacts{justify-content:center;padding-bottom:4px}

/* 06 暖沙 —— 暖色侧栏，圆角照片 */
.tpl-nuansha .p-aside{background:linear-gradient(175deg,#f2e7d8 0%,#efe2d1 100%)}
.tpl-nuansha .p-photo{border-radius:50%;width:92px;height:92px;border:3px solid rgba(255,255,255,.55);background:#e5d5c1}
.tpl-nuansha .p-aside .p-sec-title{font-size:.7em;letter-spacing:.18em;color:#8b6140;opacity:.8}
.tpl-nuansha .p-main .p-sec-title::after{content:"";display:block;width:22px;height:2px;background:var(--accent);margin-top:4px;border-radius:2px}
.tpl-nuansha .p-main .p-sec-head{align-items:flex-start;flex-direction:column;gap:0}
.tpl-nuansha .p-tag{background:rgba(154,107,67,.08);border-color:rgba(154,107,67,.2);padding:0 8px}
.tpl-nuansha .p-pair-value,.tpl-nuansha .p-contact{color:#4c3a2b}

/* 07 序章 —— 编辑感大标题、章节序号 */
.tpl-xuzhang .p-single{padding:58px 64px}
.tpl-xuzhang .p-head-editorial{margin-bottom:calc(var(--gap,20px) * 1.5)}
.tpl-xuzhang .p-sec{display:grid;grid-template-columns:40px 1fr;column-gap:8px}
.tpl-xuzhang .p-sec-head{grid-column:2;margin-bottom:6px}
.tpl-xuzhang .p-sec-title{font-size:.86em;letter-spacing:.2em;font-weight:500}
.tpl-xuzhang .p-sec-index{
  grid-column:1;grid-row:1;font-family:var(--font-serif);font-size:1.5em;line-height:1;color:var(--accent);
  opacity:.36;letter-spacing:0;font-style:italic;
}
.tpl-xuzhang .p-sec> :not(.p-sec-head){grid-column:2}
.tpl-xuzhang .p-inline-contacts{justify-content:flex-start;padding-bottom:2px}
.tpl-xuzhang .p-tag{border:0;border-radius:0;padding:0;margin-right:12px;font-size:.8em}
.tpl-xuzhang .p-tag::before{content:"/";margin-right:5px;opacity:.35}
.tpl-xuzhang .p-tag-wrap:first-child .p-tag::before{display:none}

/* 08 刊物 —— 双栏正文、报刊标题 */
.tpl-kanwu .p-single{padding:46px 56px 52px}
.tpl-kanwu .p-head-masthead{padding-top:8px;padding-bottom:14px;border-top:4px solid rgba(0,0,0,.72);border-bottom:1px solid rgba(0,0,0,.55)}
.tpl-kanwu .p-name{font-size:2.9em;letter-spacing:.22em;font-weight:600}
.tpl-kanwu .p-role{letter-spacing:.34em;font-size:.72em}
.tpl-kanwu .p-flow{column-count:2;column-gap:30px;column-rule:1px solid rgba(0,0,0,.08)}
.tpl-kanwu .p-flow .p-sec{break-inside:avoid;margin-top:0;margin-bottom:calc(var(--gap,20px) * .95)}
.tpl-kanwu .p-flow .p-sec.force-full{column-span:all}
.tpl-kanwu .p-sec-head{border-bottom:3px double rgba(0,0,0,.28);padding-bottom:3px;margin-bottom:7px}
.tpl-kanwu .p-sec-title{font-size:.86em;letter-spacing:.16em;color:#6a2f2f}
.tpl-kanwu .p-sec-index{display:none}
.tpl-kanwu .p-inline-contacts{justify-content:center;border-bottom:1px solid rgba(0,0,0,.12);padding-bottom:8px}
.tpl-kanwu .p-tag{border:0;border-radius:0;padding:0;margin-right:10px}
.tpl-kanwu .p-item-top{flex-direction:column;gap:0}
.tpl-kanwu .p-date{order:-1;font-size:.7em;letter-spacing:.06em}

/* 09 领航 —— 深色通栏页眉 + 左信息栏 */
.tpl-linghang .p-band{background:linear-gradient(100deg,#243f57,#2b4a64)}
.tpl-linghang .p-aside{background:#f2f5f6;border-right:1px solid rgba(0,0,0,.06)}
.tpl-linghang .p-main .p-sec-title{font-size:.92em;letter-spacing:.15em}
.tpl-linghang .p-main .p-sec-title::before{content:"";display:inline-block;width:3px;height:.95em;background:var(--accent);margin-right:7px;vertical-align:-.12em}
.tpl-linghang .p-date{opacity:.55}
.tpl-linghang .p-tag{border-radius:2px;background:#f0f4f6;border-color:#d8e1e5}

/* 10 代码 —— 等宽标记与技术感 */
.tpl-daima .p-single{padding:48px 58px;background-image:linear-gradient(rgba(40,60,50,.035) 1px,transparent 1px);background-size:100% 24px}
.tpl-daima .p-head-code .p-name{font-size:2.3em}
.tpl-daima .p-sec-head{border-bottom:1px dashed rgba(0,0,0,.2);padding-bottom:4px}
.tpl-daima .p-sec-title{font-family:var(--font-mono,monospace);font-size:.84em;letter-spacing:.06em;font-weight:500}
.tpl-daima .p-sec-title::before{content:"[ ";opacity:.4}
.tpl-daima .p-sec-title::after{content:" ]";opacity:.4}
.tpl-daima .p-sec-index{font-family:var(--font-mono,monospace);font-size:.6em;opacity:.5}
.tpl-daima .p-items{position:relative}
.tpl-daima .p-items::before{content:"";position:absolute;left:2px;top:6px;bottom:6px;border-left:1px dashed rgba(47,107,79,.28)}
.tpl-daima .p-item{padding-left:14px}
.tpl-daima .p-item::before{content:"";position:absolute;left:0;top:.58em;width:5px;height:5px;border:1px solid var(--accent);background:var(--paper-bg,#fbfbf9);border-radius:50%}
.tpl-daima .p-bullet::before{content:"—";background:none;width:auto;height:auto;left:0;top:0;font-size:.8em;opacity:.5}
.tpl-daima .p-bullet{padding-left:13px}
.tpl-daima .p-tag{border-radius:0;padding:0 5px;font-family:var(--font-mono,monospace);font-size:.72em}
.tpl-daima .p-date{font-family:var(--font-mono,monospace);font-size:.68em}
.tpl-daima .p-contact{font-family:var(--font-mono,monospace);font-size:.71em}

/* 11 学林 —— 学术衬线 */
.tpl-xuelin .p-single{padding:54px 66px}
.tpl-xuelin .p-head-centered{padding-bottom:18px;border-bottom:3px double rgba(0,0,0,.3);margin-bottom:24px}
.tpl-xuelin .p-name{font-size:2.3em;letter-spacing:.18em;font-weight:600}
.tpl-xuelin .p-role{letter-spacing:.18em;font-size:.8em}
.tpl-xuelin .p-sec-head{border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:4px;margin-bottom:8px}
.tpl-xuelin .p-sec-title{font-size:.88em;letter-spacing:.14em;font-weight:600}
.tpl-xuelin .p-sec-index{display:none}
.tpl-xuelin .p-org{font-weight:600}
.tpl-xuelin .p-date{font-family:var(--font-serif)}
.tpl-xuelin .p-tag{border:0;border-radius:0;padding:0;margin-right:12px}
.tpl-xuelin .p-tag::after{content:"；";opacity:.4}
.tpl-xuelin .p-tag-wrap:last-child .p-tag::after{display:none}
.tpl-xuelin .p-inline-contacts{justify-content:center;margin-top:6px}

/* 12 北欧 —— 右栏极简 */
.tpl-beio .p-aside{background:#f6f6f2}
.tpl-beio .p-aside .p-name{font-weight:300;font-size:2.15em;letter-spacing:.04em}
.tpl-beio .p-aside .p-role{letter-spacing:.22em;font-size:.74em;opacity:.5}
.tpl-beio .p-aside .p-sec-title{font-size:.64em;letter-spacing:.3em;opacity:.42}
.tpl-beio .p-aside .p-sec{margin-top:28px}
.tpl-beio .p-main .p-sec-title{font-size:.72em;letter-spacing:.3em;font-weight:500;opacity:.62}
.tpl-beio .p-main .p-sec-head{padding-bottom:3px;border-bottom:1px solid rgba(0,0,0,.1)}
.tpl-beio .p-main .p-sec{margin-top:calc(var(--gap,20px) * 1.2)}
.tpl-beio .p-org{font-weight:500}
.tpl-beio .p-tag{border:0;border-radius:0;padding:0;margin-right:9px;font-size:.76em}
.tpl-beio .p-tag::after{content:"/";margin-left:9px;opacity:.25}
.tpl-beio .p-tag-wrap:last-child .p-tag::after{display:none}

/* 13 墨夜 —— 深色侧栏 + 米白纸 */
.tpl-moye .p-aside .p-name{color:#f1ede3;font-family:var(--font-serif);font-weight:500;letter-spacing:.1em}
.tpl-moye .p-aside .p-role{color:#c8a96a;opacity:1;letter-spacing:.2em;font-size:.76em}
.tpl-moye .p-aside .p-sec-title{color:#c8a96a;opacity:.8;letter-spacing:.2em;font-size:.68em}
.tpl-moye .p-aside .p-contact,.tpl-moye .p-aside .p-pair{color:rgba(240,236,226,.8)}
.tpl-moye .p-aside .p-pair-label{opacity:.4}
.tpl-moye .p-aside .p-photo{border-color:rgba(200,169,106,.4);background:rgba(255,255,255,.06)}
.tpl-moye .p-main .p-sec-title{color:#2c2a25;font-weight:500;letter-spacing:.14em}
.tpl-moye .p-main .p-sec-title::before{content:"";display:inline-block;width:16px;height:1px;background:#c8a96a;vertical-align:middle;margin-right:8px}
.tpl-moye .p-main .p-sec-index{color:#b39250}
.tpl-moye .p-bullet::before{background:#c8a96a;opacity:.8}
.tpl-moye .p-tag{border-color:rgba(160,125,60,.35);color:#5c4c2f;background:rgba(200,169,106,.07)}
.tpl-moye .p-tag-wrap .p-tag-del,.tpl-moye .p-act{color:#8a7a58}

/* 14 青苔 —— 苔绿侧栏，柔和 */
.tpl-qingtai .p-aside{background:linear-gradient(180deg,#e6ece2,#dfe7da)}
.tpl-qingtai .p-photo{border-radius:12px;border-color:rgba(74,107,79,.18);background:#d7e0d1}
.tpl-qingtai .p-aside .p-name{letter-spacing:.06em;color:#31432f}
.tpl-qingtai .p-aside .p-role{color:#5c7258;opacity:1}
.tpl-qingtai .p-aside .p-sec-title{color:#4a6b4f;opacity:.72;letter-spacing:.2em}
.tpl-qingtai .p-main .p-sec-title{color:#354b36;letter-spacing:.12em}
.tpl-qingtai .p-main .p-sec-head{padding-bottom:4px;border-bottom:1px solid rgba(74,107,79,.18)}
.tpl-qingtai .p-tag{background:rgba(74,107,79,.07);border-color:rgba(74,107,79,.16);color:#3f5540}
.tpl-qingtai .p-bullet::before{background:#6e8a68;opacity:.8}

/* 15 工作室 —— 大照片、硬朗章节 */
.tpl-gongzuoshi .p-aside{background:#f4f2ed;border-right:1px solid rgba(0,0,0,.06)}
.tpl-gongzuoshi .p-photo{width:126px;height:152px;border-radius:0;border-color:rgba(0,0,0,.1);background:#eae6de}
.tpl-gongzuoshi .p-aside .p-name{font-size:2.2em;font-weight:700;letter-spacing:.02em}
.tpl-gongzuoshi .p-aside .p-role{font-size:.8em;letter-spacing:.18em;opacity:.55}
.tpl-gongzuoshi .p-aside .p-sec-title{font-size:.68em;letter-spacing:.2em;opacity:.45}
.tpl-gongzuoshi .p-main .p-sec-head{border-top:2px solid #2b2b27;padding-top:6px;margin-bottom:9px;align-items:flex-start}
.tpl-gongzuoshi .p-main .p-sec-title{font-size:.9em;letter-spacing:.16em;font-weight:700}
.tpl-gongzuoshi .p-sec-index{font-size:.6em;color:#9a968c;margin-left:auto;letter-spacing:.1em}
.tpl-gongzuoshi .p-tag{border:0;border-radius:0;padding:0;margin-right:10px;border-bottom:1px solid rgba(0,0,0,.18)}
.tpl-gongzuoshi .p-bullet::before{width:4px;height:1px;border-radius:0;top:.88em}
.tpl-gongzuoshi .p-date{font-size:.72em;letter-spacing:.04em}

/* 16 蓝图 —— 技术网格、冷蓝侧栏 */
.tpl-lanttu .paper,.tpl-lanttu{background-image:linear-gradient(rgba(47,89,119,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(47,89,119,.055) 1px,transparent 1px);background-size:22px 22px}
.tpl-lanttu .p-aside{background:rgba(232,238,242,.92)}
.tpl-lanttu .p-aside .p-sec-title{font-family:var(--font-mono,monospace);font-size:.64em;letter-spacing:.14em;color:#2f5977}
.tpl-lanttu .p-aside .p-sec-title::before{content:"//";margin-right:4px;opacity:.5}
.tpl-lanttu .p-main{background:rgba(251,252,253,.72)}
.tpl-lanttu .p-sec-head{border-bottom:1px solid rgba(47,89,119,.2);padding-bottom:4px}
.tpl-lanttu .p-sec-title{font-family:var(--font-mono,monospace);font-size:.82em;letter-spacing:.08em;color:#24455c}
.tpl-lanttu .p-sec-index{font-family:var(--font-mono,monospace);font-size:.62em;color:#5b7e94;opacity:.7}
.tpl-lanttu .p-bullet::before{width:4px;height:1px;border-radius:0;top:.85em;background:#2f5977}
.tpl-lanttu .p-tag{border-radius:0;border-color:rgba(47,89,119,.24);background:rgba(255,255,255,.5);font-family:var(--font-mono,monospace);font-size:.71em}
.tpl-lanttu .p-date{font-family:var(--font-mono,monospace);font-size:.68em;color:#5b7e94}
.tpl-lanttu .p-photo{border-color:rgba(47,89,119,.24);background:rgba(255,255,255,.6)}
.tpl-lanttu .p-photo-fallback b{color:#2f5977}

/* 17 象牙 —— 米色衬线单栏 */
.tpl-xiangya .p-single{padding:58px 68px}
.tpl-xiangya .p-head-centered{padding-bottom:20px;border-bottom:1px solid rgba(122,106,79,.25)}
.tpl-xiangya .p-name{font-weight:500;letter-spacing:.26em;font-size:2.35em;color:#4a4031}
.tpl-xiangya .p-role{letter-spacing:.24em;font-size:.78em;color:#7a6a4f;opacity:.9}
.tpl-xiangya .p-sec-head{justify-content:center;margin-bottom:9px}
.tpl-xiangya .p-sec-head::after{content:"";width:26px;height:1px;background:rgba(122,106,79,.35);margin-left:8px;align-self:center}
.tpl-xiangya .p-sec-title{font-size:.8em;letter-spacing:.24em;font-weight:500;color:#5b4e3b}
.tpl-xiangya .p-sec-index{display:none}
.tpl-xiangya .p-tag{border:0;border-radius:0;padding:0 2px;margin-right:6px;font-size:.78em;color:#5b4e3b}
.tpl-xiangya .p-tag::after{content:"/";margin-left:6px;opacity:.35}
.tpl-xiangya .p-tag-wrap:last-child .p-tag::after{display:none}
.tpl-xiangya .p-bullet::before{background:#8b7959}
.tpl-xiangya .p-inline-contacts{color:#5b4e3b}

/* 18 精要 —— 紧凑、左条标题 */
.tpl-jingyao .p-single{padding:46px 56px 50px}
.tpl-jingyao .p-head-compact{margin-bottom:16px}
.tpl-jingyao .p-sec{margin-top:calc(var(--gap,20px) * .85)}
.tpl-jingyao .p-sec-head{padding-left:8px;border-left:3px solid var(--accent);margin-bottom:7px}
.tpl-jingyao .p-sec-title{font-size:.88em;letter-spacing:.12em}
.tpl-jingyao .p-sec-index{display:none}
.tpl-jingyao .p-item-top{gap:10px}
.tpl-jingyao .p-org{font-size:.94em}
.tpl-jingyao .p-bullet{font-size:.82em;line-height:1.58}
.tpl-jingyao .p-date{font-size:.72em}
.tpl-jingyao .p-tag{border:0;border-radius:0;padding:0;margin-right:9px;font-size:.78em}
.tpl-jingyao .p-tag::after{content:"·";margin-left:9px;opacity:.35}
.tpl-jingyao .p-tag-wrap:last-child .p-tag::after{display:none}
.tpl-jingyao .p-inline-contacts{justify-content:flex-start;gap:4px 12px}
.tpl-jingyao .p-pairs.cols-2{grid-template-columns:repeat(4,1fr);gap:2px 12px}
.tpl-jingyao .p-pair{flex-direction:column;gap:0;font-size:.75em}

/* ---- layout fixes & small controls ---- */
.paper{display:grid;grid-template-rows:auto}
.p-single{display:block}
.p-cols{display:grid}
.layout-band{grid-template-rows:auto minmax(0,1fr)}
.layout-band .p-cols{min-height:0}
.layout-band .p-sec:first-child{margin-top:0}
.p-sec-index{display:none}
.tpl-wangge .p-sec-index,.tpl-xuzhang .p-sec-index,.tpl-gongzuoshi .p-sec-index,.tpl-lanttu .p-sec-index,.tpl-daima .p-sec-index{display:inline-block}
.tpl-xuzhang .p-sec-index{display:block}
.p-contact-wrap,.p-pair-row{position:relative}
.p-row-del{
  display:none;position:absolute;right:-13px;top:2px;width:13px;height:13px;place-items:center;
  font-size:.64em;color:#9a968d;border-radius:2px;background:transparent;
}
.p-contact-wrap:hover>.p-row-del,.p-pair-row:hover>.p-row-del{display:grid}
.p-row-del:hover{background:rgba(0,0,0,.07);color:#8d352c}
.p-aside .p-row-del{color:#fff;opacity:.5}
.p-aside .p-row-del:hover{background:rgba(255,255,255,.18);opacity:1}
.p-contact-label{opacity:.45;flex:0 0 auto}
.p-contact .p-contact-label+.p-contact-value{margin-left:1px}
.p-contact-value{min-width:8px}
.p-inline-contacts .p-contact{flex-wrap:wrap}
.p-bullet .p-act{position:absolute;right:0;top:1px;display:none;min-width:13px;height:14px;font-size:.6em}
.p-bullet:hover .p-act{display:inline-flex}
.p-bullet .p-bullet-del{right:0;display:none}
.p-bullet:hover .p-bullet-del{display:grid}
.p-bullet .p-act.move{right:15px}
.p-bullet .p-act.move2{right:29px}
.p-para .p-act{display:none;position:absolute;right:0;top:0}
.p-para:hover .p-act{display:inline-flex}
.p-para .p-act.move{right:30px}
.p-para .p-act.move2{right:15px}
.custom-title-wrap{display:flex;align-items:baseline;gap:8px}

/* photo placeholder should disappear in finished output */
body.is-preview .p-photo.is-empty,.paper.is-thumb .p-photo.is-empty{display:none}
.p-head-masthead .p-photo{display:block;width:66px;height:66px;border-radius:50%;margin:0 auto 12px;border-color:rgba(0,0,0,.1);background:#f2f0ea}
@media print{.print-root .p-photo.is-empty{display:none!important}}
.p-aside .p-photo-fallback{opacity:.72}
.p-aside .p-photo-fallback span{opacity:.8}

/* 双栏刊物类模板的顶部信息带 */
.p-meta-band{
  display:grid;grid-template-columns:1.12fr 1fr 1fr;gap:0 26px;
  padding-bottom:11px;margin-bottom:18px;border-bottom:1px solid rgba(0,0,0,.1);
}
.p-meta-band .p-sec{margin:0;break-inside:avoid}
.p-meta-band .p-sec-title{font-size:.68em;letter-spacing:.16em;opacity:.55;font-weight:500;margin-bottom:6px}
.p-meta-band .p-contacts{gap:3px}
.p-meta-band .p-contact{font-size:.74em;line-height:1.5}
.p-meta-band .p-pairs{grid-template-columns:1fr;gap:0}
.p-meta-band .p-pair{font-size:.74em;line-height:1.55}
.p-meta-band .p-pair-label{min-width:3.6em;white-space:nowrap}
.p-meta-band .p-add{margin-top:3px}
.tpl-kanwu .p-meta-band{border-bottom:3px double rgba(0,0,0,.2);padding-bottom:8px}
.tpl-wangge .p-meta-band{border-bottom:1px solid rgba(0,0,0,.22)}
body.is-preview .paper [data-edit]{outline:none!important;background:none!important;cursor:default}
body.is-preview .paper [data-edit]:hover{outline:none!important;background:none!important}
