/* Resume module list, detail form, and distinct layout templates */
.module-table{width:416px;border-top:0}
#resume-form-panel.editing>.form-head,#resume-form-panel.editing>.form-foot{display:none}
.module-table-head,.module-row{display:grid;grid-template-columns:40px 256px 60px 60px;gap:0;align-items:center;box-sizing:border-box}
.module-table-head{height:47px;padding:0;background:#fafafa;color:#262626;font-size:14px;font-weight:600;line-height:22px;border-bottom:1px solid #f0f0f0;border-radius:8px 8px 0 0}
.module-table-head>span{height:47px;padding:12px 8px;box-sizing:border-box}
.module-table-head>span:not(:first-child){box-shadow:inset 1px 0 #f0f0f0}
.module-table-head>span:last-child{border-radius:0 8px 0 0}
.module-table-head:before{content:"";display:block}
.module-row{height:57px;min-height:57px;padding:0;border-bottom:1px solid #f0f0f0}
.module-row:hover{background:#fafcff}
.module-name{width:240px;height:32px;margin-left:8px;border:1px solid #d9d9d9;border-radius:6px;padding:4px 11px;box-sizing:border-box;color:#405069;font-size:14px}
.module-row .drag-handle{display:block;width:18px;height:18px;margin-left:12px;font-size:0;position:relative;color:rgba(0,0,0,.88)}
.module-row .drag-handle:before{content:"";display:block;width:18px;height:18px;background:linear-gradient(to bottom,rgba(0,0,0,.88) 0 2px,transparent 2px 8px,rgba(0,0,0,.88) 8px 10px,transparent 10px 16px,rgba(0,0,0,.88) 16px 18px)}
.section-toggle{appearance:none;position:relative;width:44px;height:22px;border-radius:100px;background:rgba(0,0,0,.25);cursor:pointer;margin:0}
.section-toggle:checked{background:#1677ff}
.section-toggle:after{content:"";position:absolute;width:18px;height:18px;top:2px;left:2px;border-radius:50%;background:white;box-shadow:0 1px 3px #26395030;transition:.15s}
.section-toggle:checked:after{left:24px}
.switch-wrap{display:flex;justify-content:flex-start;padding-left:8px;box-sizing:border-box}
.fill-section{justify-self:start;margin-left:8px;padding:0;border:0;background:transparent;color:#1677ff;font-size:14px;font-weight:400;line-height:19px}
.module-edit-head{display:flex;align-items:center;gap:9px;padding:8px 0 15px;border-bottom:1px solid #edf0f4;margin-bottom:16px}
.module-edit-head b{font-size:15px}
.module-edit-head span{font-size:11px;color:#9aa5b3}
.back-modules{width:28px;height:28px;border:1px solid #e4e9ef;border-radius:7px;background:#fff;font-size:22px;line-height:1;color:#66758a}
.danger-text{margin-left:auto;border:0;background:none;color:#d76f73;font-size:11px}
.edit-title{display:block;color:#738096;font-size:11px;margin-bottom:12px}
.edit-title input{display:block;width:100%;margin-top:6px;border:1px solid #e0e6ed;border-radius:7px;padding:9px}
.module-edit-body{padding:0}
.module-edit-footer{display:flex;justify-content:flex-end;gap:7px;padding:13px 0;border-top:1px solid #edf0f4;margin-top:13px}
.module-edit-body .resume-field-row{margin-bottom:10px}
.resume-layout{display:block}
.resume-body{min-width:0}
.resume-paper.layout-sidebar .resume-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px}
.resume-paper.layout-sidebar .resume-contact{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:18px;border:0;border-right:2px solid var(--theme);padding:0 17px 0 0;margin:0}
.resume-paper.layout-sidebar .resume-contact-fields{display:grid;grid-template-columns:1fr;gap:10px}
.resume-paper.layout-sidebar .resume-photo{width:96px;height:120px;align-self:center}
.resume-paper.layout-sidebar .resume-section{margin-top:0;margin-bottom:15px}
.resume-paper.layout-sidebar .resume-section h3{border-left:0;border-bottom:2px solid var(--theme);background:transparent;padding:6px 0}
.resume-paper.layout-timeline .resume-section{border-left:2px solid var(--theme);padding-left:14px;margin-left:7px}
.resume-paper.layout-timeline .resume-section h3{position:relative;background:transparent;border-left:0;padding:3px 0 6px}
.resume-paper.layout-timeline .resume-section h3:before{content:"";position:absolute;left:-21px;top:7px;width:10px;height:10px;border:2px solid var(--theme);background:#fff;border-radius:50%}
.resume-paper.layout-banner .resume-title{background:var(--theme);color:white;padding:15px 20px;letter-spacing:4px;text-align:left}
.resume-paper.layout-banner .resume-contact{border-bottom:1px solid #dce2e9}
.resume-paper.layout-banner .resume-section h3{background:transparent;border-left:0;border-bottom:1px solid #dfe4eb;color:var(--theme);padding-left:0}
.resume-paper.layout-minimal .resume-title{letter-spacing:3px;font-size:22px}
.resume-paper.layout-minimal .resume-contact{border-bottom:1px solid #d5dbe3}
.resume-paper.layout-minimal .resume-section h3{background:transparent;border-left:0;border-bottom:1px solid var(--theme-light);padding:5px 0;color:#303b4a}
.resume-template-picker{grid-template-columns:repeat(5,1fr)}
.resume-template-picker .template-option{padding:11px 9px}
.resume-template-picker .template-option b{display:block;font-size:11px}
.resume-template-picker .template-option small{display:block;margin-top:5px;color:#8995a5;font-size:9px;line-height:1.4}
.template-sample i{position:absolute;left:7px;right:7px;top:12px;height:4px;background:#e6eaf0;box-shadow:0 9px #e6eaf0,0 18px #eef1f4}
.template-sample.template-sidebar{border-top:0}
.template-sample.template-sidebar:before{content:"";position:absolute;left:0;top:0;bottom:0;width:32%;background:var(--sample);opacity:.6}
.template-sample.template-sidebar i{left:39%;top:12px}
.template-sample.template-timeline i{left:12px;right:7px;border-left:2px solid var(--sample)}
.template-sample.template-banner{height:55px;background:linear-gradient(var(--sample) 0 17px,#fff 17px)}
.template-sample.template-banner i{top:23px}
.template-sample.template-minimal{border-top:1px solid #e4e8ee;box-shadow:none}
.template-sample.template-minimal i{height:2px;background:#e7ebf0;box-shadow:0 10px #e7ebf0,0 20px #e7ebf0}
@media(max-width:700px){.resume-template-picker{grid-template-columns:repeat(2,1fr)}.module-table{width:416px}.module-table-head,.module-row{grid-template-columns:40px 256px 60px 60px;gap:0}.resume-paper.layout-sidebar .resume-layout{grid-template-columns:150px minmax(0,1fr);gap:14px}.resume-paper.layout-sidebar .resume-contact-field{font-size:10px}}
@media print{.resume-paper.layout-banner .resume-title{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Template chooser: select a design first, then confirm it, like the reference editor. */
.modal:has(.resume-template-picker){width:min(850px,100%)}
.modal:has(.card-template-picker){width:min(650px,100%)}
.modal-footer{background:#fff}
.resume-template-picker{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.resume-template-picker .template-option{padding:12px 10px 13px;transition:border-color .16s,box-shadow .16s,transform .16s}
.resume-template-picker .template-option:hover,.card-template-picker .template-option:hover{transform:translateY(-2px);box-shadow:0 7px 18px #26395012}
.resume-template-picker .template-sample{height:155px;margin:0 auto 10px;max-width:104px;border:1px solid #e9edf2;border-top:4px solid var(--sample);box-shadow:0 3px 9px #26395012}
.resume-template-picker .template-sample:before{left:12px;right:12px;top:32px;height:7px;box-shadow:0 15px #e6eaf0,0 30px #eef1f4}
.resume-template-picker .template-sample i{left:12px;right:12px;top:86px;height:5px;box-shadow:0 12px #e6eaf0,0 24px #eef1f4,0 43px #e6eaf0,0 55px #eef1f4}
.resume-template-picker .template-sample.template-sidebar:before{left:0;right:auto;top:0;bottom:0;width:34%;height:auto;background:var(--sample);opacity:.18;box-shadow:none}
.resume-template-picker .template-sample.template-sidebar i{left:43%;right:9px;top:40px}
.resume-template-picker .template-sample.template-timeline i{left:20px;border-left:2px solid var(--sample)}
.resume-template-picker .template-sample.template-banner{height:155px;background:linear-gradient(var(--sample) 0 34px,#fff 34px);}
.resume-template-picker .template-sample.template-banner:before{display:none}
.resume-template-picker .template-sample.template-banner i{top:55px}
.resume-template-picker .template-sample.template-minimal{border-top:1px solid #dce2e9}
.resume-template-picker .template-sample.template-minimal:before{height:2px;top:31px;background:#dce2e9;box-shadow:0 20px #e6eaf0,0 40px #eef1f4}
.resume-template-picker .template-sample.template-minimal i{top:92px;height:2px;box-shadow:0 15px #e6eaf0,0 30px #eef1f4}
.template-option b{display:block;font-size:12px;color:#3d4b61}
.resume-template-picker .template-option small{font-size:10px;line-height:1.5}
.card-template-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.card-template-picker .template-sample{aspect-ratio:90/54;height:auto;border:1px solid #e5e9ef;border-radius:6px;overflow:hidden;background:linear-gradient(135deg,#fff 0 46%,#f7f9fc 46%);}
.card-template-picker .template-sample:before{left:10px;right:57%;top:18px;height:5px;background:var(--sample);opacity:.9;box-shadow:0 10px #e6eaf0,0 20px #eef1f4}
.card-template-picker .template-sample i{left:51%;right:8px;top:20px;height:4px;box-shadow:0 9px #e6eaf0,0 18px #eef1f4}
.card-template-picker .template-sample.card-style-2{background:linear-gradient(135deg,#263449 0 46%,#fff 46%)}
.card-template-picker .template-sample.card-style-3{background:linear-gradient(135deg,#eff7f2 0 46%,#fff 46%)}
.card-template-picker .template-sample.card-style-4{background:linear-gradient(135deg,#fff7ed 0 46%,#fff 46%)}
.theme-picker{grid-template-columns:repeat(5,minmax(0,1fr))}
.theme-picker .template-option{font-size:11px;padding:8px 6px}
.theme-picker .theme-swatch-sample{height:33px;border:0;border-radius:99px;background:var(--sample);box-shadow:inset 0 0 0 1px #24334810;margin:0 auto 7px;width:33px}
.theme-picker .theme-swatch-sample:before{display:none}
.business-card[class*="card-style-"]{--card-accent:#397ca1;--card-accent-soft:#b2d1e6;--card-bg:#fff;--card-ink:#293746;--card-muted:#7f8b9b;background:var(--card-bg);color:var(--card-ink)}
.business-card.card-style-2{--card-bg:#1f2939;--card-muted:#c7d0dd}
.business-card.card-style-3{--card-bg:#f1f7f3}
.business-card.card-style-4{--card-bg:#fff9f1}
.business-card[class*="card-style-"] .card-deco-a{background:var(--card-accent)}
.business-card[class*="card-style-"] .card-deco-b{border-color:var(--card-accent-soft);box-shadow:0 0 0 35px var(--card-accent)}
.business-card[class*="card-style-"] .card-avatar{color:var(--card-accent)}
.business-card[class*="card-style-"] .card-brandline b{color:var(--card-accent)}
.business-card[class*="card-style-"] .card-brandline small,.business-card[class*="card-style-"] .card-details>p,.business-card[class*="card-style-"] .card-contact-line{color:var(--card-muted)}
.business-card[class*="card-style-"] .card-contact-line span{color:var(--card-accent)}
.business-card.card-theme-blue{--card-accent:#397ca1;--card-accent-soft:#b2d1e6}
.business-card.card-theme-green{--card-accent:#49a286;--card-accent-soft:#b8dfd0}
.business-card.card-theme-gray{--card-accent:#586579;--card-accent-soft:#c5ccd5}
.business-card.card-theme-orange{--card-accent:#df874b;--card-accent-soft:#f0c39f}
.business-card.card-theme-black{--card-accent:#242a33;--card-accent-soft:#b9bec5}
.business-card.card-theme-purple{--card-accent:#856cb9;--card-accent-soft:#d7ccef}
.business-card.card-theme-navy{--card-accent:#314e77;--card-accent-soft:#bdcadc}
.business-card.card-theme-red{--card-accent:#cb5960;--card-accent-soft:#ecc2c4}
.business-card.card-theme-cyan{--card-accent:#3d9b9d;--card-accent-soft:#b8dddd}
.business-card.card-theme-pink{--card-accent:#cc7f9e;--card-accent-soft:#edccda}
@media(max-width:700px){.resume-template-picker{grid-template-columns:repeat(2,minmax(0,1fr));}.resume-template-picker .template-sample{height:135px}.card-template-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Ten complete, populated resume previews matching the reference template gallery. */
.modal:has(.template-gallery) .modal-header{flex:none;padding:13px 20px}
.modal:has(.template-gallery) .modal-footer{flex:none;padding:10px 24px 24px}
.modal:has(.template-gallery) .modal-footer .btn{width:62px;height:32px;padding:0;border-radius:4px;font-size:14px;line-height:30px}
.template-option.template-resume-option{display:block;min-width:0;width:100%;height:auto;padding:0;border:1px solid #d7dee6;border-radius:0;background:#fff;text-align:left;overflow:hidden;box-shadow:0 1px 2px #23384e14;transition:border-color .15s,box-shadow .15s}
.template-option.template-resume-option:hover{border-color:#65a3ca;box-shadow:0 3px 11px #23384e1c}
.template-option.template-resume-option.selected{border:2px solid #2677a8;box-shadow:0 0 0 1px #2677a833}
.template-page{position:relative;width:100%;aspect-ratio:210/297;overflow:hidden;padding:4.1% 4.8%;background:#fff;color:#242c36;font-family:Arial,"Microsoft YaHei",sans-serif;font-size:clamp(5px,.48vw,10px);line-height:1.42}
.template-page>h2{position:relative;margin:0 0 2.5%;text-align:center;color:#4382a6;font-size:1.9em;font-weight:700;letter-spacing:.2em;line-height:1.3}
.sample-resume-contact{position:relative;display:grid;grid-template-columns:1fr 14%;gap:3%;align-items:center;padding:2.3% 2%;margin-bottom:2.1%;border-bottom:2px solid #4e88a8}
.sample-resume-fields{display:grid;grid-template-columns:1fr 1fr;gap:1.8% 3%;min-width:0}
.sample-info-line{display:flex;gap:.45em;min-width:0;white-space:nowrap;font-size:.92em}
.sample-info-line b{flex:none;font-weight:700}
.sample-info-line span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.sample-portrait{position:relative;justify-self:end;width:100%;aspect-ratio:4/5;overflow:hidden;background:linear-gradient(155deg,#d7eff8 0 39%,#19b8e9 39%);}
.sample-portrait:before{content:"";position:absolute;z-index:1;left:31%;top:13%;width:39%;height:40%;border-radius:48% 48% 43% 43%;background:linear-gradient(110deg,#e3b391,#f2cfaa 60%,#d9a786)}
.sample-portrait:after{content:"";position:absolute;left:11%;right:11%;bottom:-11%;height:54%;border-radius:42% 42% 0 0;background:linear-gradient(90deg,#1e2a36,#333f4b 55%,#151c24)}
.sample-portrait span{position:absolute;z-index:2;top:10%;left:32%;width:36%;height:20%;border-radius:55% 55% 25% 25%;background:#202932;color:transparent}
.sample-resume-sections{display:block}
.sample-resume-section{margin:0 0 1.65%;break-inside:avoid}
.sample-resume-section h3{margin:0 0 1%;padding:1.15% 2%;background:#d8e6ef;border:0;color:#263847;font-size:1.08em;line-height:1.35;font-weight:700}
.template-page>.sample-basic-heading{margin:0 0 1%;padding:1.15% 2%;background:#d8e6ef;color:#263847;font-size:1.08em;line-height:1.35;font-weight:700}
.template-page.layout-tpl2>.sample-basic-heading,.template-page.layout-tpl4>.sample-basic-heading,.template-page.layout-tpl9>.sample-basic-heading{display:none}
.sample-resume-section p{margin:0;padding:0 1.7%;font-size:.92em;line-height:1.55;white-space:normal}
/* 1: blue full-width section bars */
.template-page.layout-tpl1 .sample-resume-section h3{background:#d7e6ef}
/* 2: solid blue identity header */
.template-page.layout-tpl2>h2{text-align:left;color:#fff;margin:0;padding:2.4% 2%;background:#3e7fa3;letter-spacing:0}
.template-page.layout-tpl2 .sample-resume-contact{background:#3e7fa3;color:#fff;border:0;margin:0;padding:2% 2% 4%}
.template-page.layout-tpl2 .sample-portrait{grid-column:1;grid-row:1;width:80%;justify-self:start}
.template-page.layout-tpl2 .sample-resume-fields{grid-column:2;grid-row:1 / span 2;grid-template-columns:1fr 1fr}
.template-page.layout-tpl2 .sample-info-line{font-size:.88em}
.template-page.layout-tpl2 .sample-resume-section h3{border-bottom:1px solid #9ab9cc;background:#fff;color:#397a9e;padding:1.2% 0}
/* 3: rounded blue tabs */
.template-page.layout-tpl3>h2{margin:0 0 3%;padding:1.5% 3%;width:max-content;border-radius:0 2em 2em 0;background:#3f80a4;color:#fff;text-align:left;letter-spacing:0}
.template-page.layout-tpl3 .sample-resume-contact{grid-template-columns:1fr 13%;}
.template-page.layout-tpl3 .sample-resume-section h3{position:relative;margin:0 0 1%;padding:1.1% 2%;width:max-content;min-width:24%;border-radius:2em;background:#4385a8;color:#fff}
.template-page.layout-tpl3 .sample-resume-section{border-bottom:1px solid #8bb0c5;padding-bottom:1%}
/* 4: left profile rail and right experience column */
.template-page.layout-tpl4{display:grid;grid-template-columns:29% minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:4%;padding:4% 4%}
.template-page.layout-tpl4>h2{grid-column:1;grid-row:1;margin:0;padding:0 0 5%;align-self:start;color:#3f80a4;font-size:1.45em}
.template-page.layout-tpl4 .sample-resume-contact{grid-column:1;grid-row:2 / span 2;display:flex;flex-direction:column;align-items:stretch;gap:3%;padding:4% 0;border:0;border-right:1px solid #98b5c4;margin:0}
.template-page.layout-tpl4 .sample-portrait{width:57%;align-self:center}
.template-page.layout-tpl4 .sample-resume-fields{display:flex;flex-direction:column;gap:1.2%;}
.template-page.layout-tpl4 .sample-resume-sections{grid-column:2;grid-row:1 / span 3}
.template-page.layout-tpl4 .sample-resume-section h3{background:#3f80a4;color:white;width:max-content;min-width:30%;padding:1.4% 4%;clip-path:polygon(0 0,85% 0,100% 50%,85% 100%,0 100%)}
/* 5: decorative hex title and arrow/ribbon headings */
.template-page.layout-tpl5>h2{text-align:left;border-bottom:3px solid #4583a5;padding:0 0 2%;color:#4382a6}
.template-page.layout-tpl5>h2:before{content:"个人简历";display:block;text-align:left;font-size:1.4em;letter-spacing:.24em;color:#4382a6}
.template-page.layout-tpl5 .sample-resume-section h3{position:relative;background:linear-gradient(90deg,#4a86a6 0 15%,#d9e7ef 15%);color:#263b4a;padding-left:18%}
/* 6: restrained type and fine blue rules */
.template-page.layout-tpl6{padding:5% 6%}
.template-page.layout-tpl6>h2{font-size:2em}
.template-page.layout-tpl6 .sample-resume-contact{border-bottom:1px solid #8bb1c7}
.template-page.layout-tpl6 .sample-resume-section h3{background:transparent;border-bottom:1px solid #83abc1;color:#397a9e;padding:1% 0}
/* 7: long blue rule with folded banner labels */
.template-page.layout-tpl7>h2{margin-bottom:4%;padding-bottom:2%;border-bottom:5px solid #3f80a4}
.template-page.layout-tpl7 .sample-resume-section h3{position:relative;background:#d9e7ef;border-left:0;color:#2c485a;padding-left:5%}
.template-page.layout-tpl7 .sample-resume-section h3:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3.5%;background:#3f80a4;clip-path:polygon(0 0,82% 0,100% 50%,82% 100%,0 100%)}
/* 8: portrait-led identity row */
.template-page.layout-tpl8>h2{margin-bottom:2%}
.template-page.layout-tpl8 .sample-resume-contact{grid-template-columns:19% 1fr;border-bottom:2px solid #4382a6}
.template-page.layout-tpl8 .sample-portrait{grid-column:1;grid-row:1;width:85%;justify-self:start}
.template-page.layout-tpl8 .sample-resume-fields{grid-column:2;grid-row:1;}
.template-page.layout-tpl8 .sample-resume-section h3{background:transparent;border-bottom:1px solid #76a5c0;border-left:3px solid #4382a6;color:#35799d;padding:1% 2%}
/* 9: deep blue information block */
.template-page.layout-tpl9>h2{display:none}
.template-page.layout-tpl9 .sample-resume-contact{grid-template-columns:1fr 15%;margin:-4.1% -5.3% 2.5%;padding:5% 6%;background:#3d7fa3;color:#fff;border:0}
.template-page.layout-tpl9 .sample-resume-section h3{background:transparent;border-bottom:1px solid #95b9cb;color:#3d7fa3;padding:1.2% 0}
/* 10: compact gray bars with blue label blocks */
.template-page.layout-tpl10 .sample-resume-contact{grid-template-columns:19% 1fr;border-bottom:2px solid #4382a6}
.template-page.layout-tpl10 .sample-portrait{grid-column:1;grid-row:1;width:85%;justify-self:start}
.template-page.layout-tpl10 .sample-resume-fields{grid-column:2;grid-row:1}
.template-page.layout-tpl10 .sample-resume-section h3{background:#edf0f2;color:#3e7fa2;border-left:3px solid #4382a6;padding:1.2% 2%}
/* Keep sample portraits at ID-photo size and match each reference composition. */
.template-page.layout-tpl1 .sample-resume-fields,.template-page.layout-tpl3 .sample-resume-fields,.template-page.layout-tpl5 .sample-resume-fields,.template-page.layout-tpl6 .sample-resume-fields,.template-page.layout-tpl7 .sample-resume-fields{grid-column:1;grid-row:1}
.template-page.layout-tpl1 .sample-portrait,.template-page.layout-tpl3 .sample-portrait,.template-page.layout-tpl5 .sample-portrait,.template-page.layout-tpl6 .sample-portrait,.template-page.layout-tpl7 .sample-portrait{grid-column:2;grid-row:1;width:100%;justify-self:end}
.template-page.layout-tpl2 .sample-resume-contact{grid-template-columns:19% 1fr}
.template-page.layout-tpl2 .sample-portrait{width:100%}
.template-page.layout-tpl2 .sample-resume-fields{grid-column:2}
.template-page.layout-tpl3 .sample-resume-contact{grid-template-columns:1fr 13%}
.template-page.layout-tpl9 .sample-resume-contact{grid-template-columns:19% 1fr}
.template-page.layout-tpl9 .sample-portrait{grid-column:1;grid-row:1;width:100%;justify-self:start}
.template-page.layout-tpl9 .sample-resume-fields{grid-column:2;grid-row:1}
/* Match the original template gallery's neutral empty-photo placeholder. */
.template-page .sample-portrait{background:#ddd!important}
.template-page .sample-portrait:before{z-index:1;left:39%;top:16%;width:22%;height:24%;border:2px solid #fff;border-radius:50%;background:transparent!important}
.template-page .sample-portrait:after{left:27%;right:27%;bottom:10%;height:34%;border:2px solid #fff;border-bottom:0;border-radius:55% 55% 0 0;background:transparent!important}
.template-page .sample-portrait span{display:none}
.template-page.layout-tpl1>h2{color:#222}
.template-page.layout-tpl5>h2{font-size:0;letter-spacing:0}
.template-page.layout-tpl5>h2:before{content:"个人简历";font-size:19px;line-height:1.3}
.home-update{max-width:1180px;margin:0 auto 70px;padding:26px 30px;border:1px solid #e6ebf2;border-radius:14px;background:#fff;display:flex;justify-content:space-between;align-items:center}.home-update h2{margin:6px 0;font-size:24px}.home-update p{margin:0;color:#78869a;font-size:13px}
.article-page,.log-page{max-width:1180px;min-height:calc(100vh - 140px);margin:0 auto;padding:42px 24px 65px}.article-heading{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:1px solid #e8edf3;padding-bottom:24px}.article-heading h1,.log-page .tool-heading h1{font-size:34px;margin:8px 0}.article-heading p,.log-page .tool-heading p{color:#77859a;margin:0}.article-count{padding:20px 0 12px;color:#8793a3;font-size:13px}.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.article-card{min-height:172px;padding:20px 21px;background:#fff;border:1px solid #e9edf2;border-radius:10px;cursor:pointer;transition:.16s}.article-card:hover{border-color:#a6c7e0;box-shadow:0 8px 22px #27384e12;transform:translateY(-2px)}.article-date,.article-reader time{color:#9aa6b5;font-size:12px}.article-card h2{margin:13px 0 8px;font-size:17px;color:#2f3b4c}.article-card p{margin:0;color:#778398;font-size:13px;line-height:1.8}.article-more{display:inline-block;margin-top:12px;color:#397ca1;font-size:12px}.article-pagination{display:flex;justify-content:center;gap:8px;padding:28px}.article-pagination button{width:34px;height:34px;border:1px solid #e2e8ef;border-radius:6px;background:#fff;color:#536176}.article-pagination button.active{border-color:#397ca1;background:#397ca1;color:white}.log-page .tool-heading{margin:0 auto 30px}.log-page .tool-heading b{font-weight:500;color:#526176}.log-list{max-width:900px;margin:0 auto}.log-entry{position:relative;display:grid;grid-template-columns:145px 1fr;gap:25px;padding:23px 20px;border-bottom:1px solid #e9edf2;background:#fff}.log-entry time{color:#397ca1;font-weight:700;font-size:14px}.log-entry ul{margin:0;padding-left:18px;color:#49576b;line-height:2}.article-reader{max-width:760px;line-height:1.9;color:#47556a}.article-reader p{margin:18px 0}
@media(max-width:780px){.article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-page,.log-page{padding:25px 16px}.home-update{margin:0 16px 40px}.topbar .main-nav{overflow:auto}.log-entry{grid-template-columns:1fr;gap:8px}}
@media(max-width:520px){.article-grid{grid-template-columns:1fr}.article-heading{align-items:flex-start;gap:16px;flex-direction:column}.home-update{align-items:flex-start;gap:16px;flex-direction:column}}
.brand-logo{display:block;width:150px;height:auto;max-height:38px;object-fit:contain}
.original-home-hero{max-width:1180px;min-height:260px;margin:0 auto;padding:62px 34px 44px;background:transparent;display:flex;align-items:center}
.original-home-hero .hero-copy{max-width:1040px}
.original-home-hero .eyebrow{color:#377ca2;font-size:15px;font-weight:600}
.original-home-hero h1{max-width:1000px;margin:18px 0;font-size:36px;line-height:1.35;letter-spacing:0;color:#202a38}
.original-home-hero .hero-copy>p{max-width:850px;color:#637186;font-size:15px;line-height:1.9}
.original-home-hero .hero-actions{margin-top:23px}
.home-shortcuts{max-width:1180px;margin:0 auto 42px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.home-shortcuts>button{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-height:143px;padding:21px 22px;border:1px solid #e7ebf0;border-radius:9px;background:#fff;text-align:left;cursor:pointer}
.home-shortcuts>button:hover,.feature-card:hover{border-color:#b8d2e2;box-shadow:0 8px 22px #26384d12}
.home-shortcuts b{color:#2d3b4d;font-size:16px}
.home-shortcuts span{color:#758296;font-size:13px;line-height:1.7}
.home-shortcuts i{margin-top:auto;color:#397ca1;font-size:12px;font-style:normal}
.original-feature-intro{margin:0 auto 20px;padding:0 24px;text-align:center}
.original-feature-intro h2{margin:0 0 7px;color:#273548;font-size:28px}
.original-feature-intro p{color:#7b8798;font-size:14px}
.original-feature-grid{max-width:1180px;margin:0 auto 32px;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.original-feature-grid .feature-card{min-height:196px;border-radius:9px;box-shadow:none}
.original-feature-grid .feature-card h3{margin-top:15px}
.original-feature-grid .feature-card p{font-size:12px;line-height:1.75}
.original-feature-grid .local-note{display:block;margin-top:7px;color:#397ca1;font-size:10px}
.home-secondary-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:30px}
.home-secondary-shortcuts>button{min-height:105px}
.home-local-notice{max-width:1180px;margin:0 auto 48px;padding:15px 18px;border:1px solid #e5ebf1;border-radius:7px;background:#f7f9fb;color:#617084;font-size:12px;line-height:1.75}
.home-local-notice b{margin-right:12px;color:#3d526a}
.original-template-showcase{max-width:1180px;margin:0 auto 54px;padding:28px 24px 31px;border:1px solid #e7ebf0;border-radius:10px;background:#fff}
.original-section-title{text-align:center;margin-bottom:22px}
.original-section-title h2{margin:0 0 8px;font-size:26px;color:#273548}
.original-section-title p{margin:0;color:#7f8a99;font-size:13px}
.original-template-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px}
.home-theme-tile{display:flex;min-width:0;flex-direction:column;align-items:center;gap:8px;padding:8px;border:1px solid transparent;border-radius:7px;background:transparent;color:#566579;cursor:pointer;font-size:12px}
.home-theme-tile:hover{border-color:#c7d9e6;background:#f9fbfd}
.home-theme-page{width:100%;aspect-ratio:1/1.28;display:flex;flex-direction:column;gap:5px;overflow:hidden;padding:11px 10px;background:#fff;border:1px solid #e2e7ec;box-shadow:0 2px 7px #27384e14;text-align:left}
.home-theme-page b{margin-bottom:4px;padding:4px 0;border-bottom:3px solid var(--sample);color:var(--sample);font-size:10px;text-align:center}
.home-theme-page i{height:3px;width:100%;background:#e8ebef}
.home-theme-page i:nth-of-type(2){width:78%}.home-theme-page i:nth-of-type(3){width:88%}
.home-theme-page strong{height:13px;margin-top:5px;background:linear-gradient(90deg,var(--sample) 0 30%,#edf0f2 30%)}
.home-theme-page.home-mini-tpl2{background:linear-gradient(var(--sample) 0 21%,#fff 21%)}
.home-theme-page.home-mini-tpl2 b{color:#fff;border:0}
.home-theme-page.home-mini-tpl3 b{width:72%;border-radius:0 18px 18px 0;background:var(--sample);color:#fff}
.home-theme-page.home-mini-tpl4{background:linear-gradient(90deg,color-mix(in srgb,var(--sample) 18%,white) 0 32%,#fff 32%)}
.home-theme-page.home-mini-tpl5 b{border-bottom:4px solid var(--sample);text-align:left}
.home-theme-page.home-mini-tpl6 b{border:0;color:#576578}
.home-theme-page.home-mini-tpl7 b{border-bottom:7px solid var(--sample)}
.home-theme-page.home-mini-tpl8{background:linear-gradient(90deg,#fff 0 25%,color-mix(in srgb,var(--sample) 8%,white) 25%)}
.home-theme-page.home-mini-tpl9{background:linear-gradient(var(--sample) 0 24%,#fff 24%)}
.home-theme-page.home-mini-tpl9 b{color:#fff;border:0}
.home-theme-page.home-mini-tpl10 strong{border-left:6px solid var(--sample);background:#edf0f2}
.template-lightbox-backdrop{position:fixed;inset:0;z-index:120;background:#0007}
.template-lightbox-close{position:absolute;right:12px;top:10px;width:40px;height:40px;border:0;background:transparent;color:#fff;font-size:32px;cursor:pointer}
.template-lightbox-page{position:absolute;left:50%;top:48%;width:min(86vw,620px);max-height:84vh;aspect-ratio:210/297;transform:var(--lightbox-transform);transform-origin:center center;overflow:hidden;background:#fff;box-shadow:0 8px 35px #0004}
.template-lightbox-page .template-page{width:100%;height:100%;aspect-ratio:auto;padding:4.1% 4.8%;font-size:clamp(6px,.47vw,10px)}
.template-lightbox-arrow{position:absolute;top:50%;z-index:2;width:44px;height:48px;transform:translateY(-50%);border:0;border-radius:4px;background:#fff2;color:#fff;font-size:38px;line-height:1;cursor:pointer}
.template-lightbox-arrow:hover{background:#fff4}
.template-lightbox-arrow.prev{left:15px}.template-lightbox-arrow.next{right:15px}
.template-lightbox-footer{position:absolute;left:50%;bottom:14px;display:flex;align-items:center;gap:8px;transform:translateX(-50%);color:#fff;font-size:13px}
.template-lightbox-footer button{width:38px;height:35px;border:1px solid #ffffff4d;border-radius:4px;background:#ffffff15;color:#fff;font-size:19px;cursor:pointer}
.template-lightbox-footer button:hover{background:#ffffff35}
.template-lightbox-footer span{min-width:48px;text-align:center}
@media(max-width:700px){.template-lightbox-page{width:min(88vw,400px);top:46%}.template-lightbox-arrow{width:34px}.template-lightbox-footer{gap:4px;bottom:8px}.template-lightbox-footer button{width:32px;height:31px}}
.top-actions{gap:8px}
.balance-btn{height:30px;padding:0 11px;border:1px solid #eeddb0;border-radius:18px;background:#fff9e9;color:#56657a;font-size:12px;cursor:pointer}
.balance-btn span{color:#5c6877;font-weight:700}
.user-btn{border:1px solid #e3e8ef;border-radius:18px;background:#fff;color:#5a687b;padding:7px 12px;font-size:12px;cursor:pointer}
.settings-gear{width:30px;height:30px;border:1px solid #e5e9ef;border-radius:50%;background:#fff;color:#788599;cursor:pointer}
.account-page{min-height:calc(100vh - 68px);padding:38px 20px 60px;background:#f7f9fc}
.account-heading,.account-card{width:min(1170px,100%);margin:0 auto}
.account-heading{margin-bottom:22px}
.account-heading h1{margin:0 0 7px;color:#202b3a;font-size:28px}
.account-heading p{margin:0;color:#7b899d;font-size:13px}
.account-card{overflow:hidden;border:1px solid #e7ecf2;border-radius:11px;background:#fff;box-shadow:0 4px 14px #2237500a}
.account-profile{display:flex;align-items:center;gap:16px;padding:20px;background:linear-gradient(110deg,#1262d8,#55a0f3);color:#fff}
.account-avatar{display:grid;place-items:center;width:54px;height:54px;border:2px solid #ffffff80;border-radius:50%;font-size:25px}
.account-profile b,.account-profile small{display:block}.account-profile b{font-size:15px}.account-profile small{margin-top:6px;color:#dbeaff;font-size:11px}
.account-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px}
.account-stats article{min-height:90px;padding:15px;border:1px solid #e6ebf2;border-radius:9px;background:#f9fafc}
.account-stats small,.account-stats b{display:block}.account-stats small{color:#8a96a6;font-size:11px}.account-stats b{margin:7px 0;color:#344359;font-size:13px}
.account-stats button{padding:5px 9px;border:1px solid #dce5ef;border-radius:4px;background:#fff;color:#3075d3;font-size:11px;cursor:pointer}
.account-data{margin:0 16px;padding:14px 0 17px;border-top:1px solid #edf0f4}
.account-list-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.account-list-heading h2{margin:0;font-size:15px;color:#29374a}
.account-table-head,.account-table-row{display:grid;grid-template-columns:minmax(0,1fr) 190px 190px;gap:10px;align-items:center;padding:11px 12px;border-bottom:1px solid #edf0f4;font-size:12px}
.account-table-head{background:#f8f9fb;color:#647287;font-weight:600}.account-table-row b{font-weight:500;color:#3e4d62}.account-table-row>span{color:#8a96a6}
.account-table-row>div{display:flex;justify-content:flex-end;gap:10px}.account-table-row button{padding:0;border:0;background:transparent;color:#347bd4;font-size:11px;cursor:pointer}.account-table-row button.danger{color:#d35e68}
.account-empty{margin:0;padding:15px;color:#99a3b1;font-size:12px}
.account-local-note{padding:12px 18px;background:#fbfcfe;color:#9aa4b1;border-top:1px solid #edf0f4;font-size:11px}
.charge-page{min-height:calc(100vh - 68px);padding-bottom:70px;background:#f7f9fc}
.charge-page .tool-heading{padding-top:58px}.charge-page .tool-heading h1{color:#e56963}
.charge-panel{width:min(650px,calc(100% - 36px));margin:0 auto;padding:26px;border:1px solid #e7ebf0;border-radius:12px;background:#fff;box-shadow:0 4px 18px #26395012}
.charge-panel h2{margin:0 0 15px;color:#35445b;font-size:17px}.charge-panel p{color:#718096;font-size:13px;line-height:1.8}.charge-panel .btn{margin:10px 8px 0 0}
@media(max-width:700px){.account-stats{grid-template-columns:1fr}.account-table-head,.account-table-row{grid-template-columns:minmax(0,1fr) 1fr;gap:7px}.account-table-head span:nth-child(2),.account-table-row>span{display:none}.account-table-row>div{grid-column:1/-1}.top-actions .settings-gear{display:none}}
.style-popover{position:fixed;z-index:85;width:245px;padding:13px 15px;border:1px solid #edf0f4;border-radius:9px;background:#fff;box-shadow:0 8px 25px #26395020;pointer-events:auto;color:#546176}
.style-popover>b{display:block;margin-bottom:10px;color:#334258;font-size:12px}
.style-popover label{display:grid;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:8px;margin:7px 0;font-size:11px}
.style-popover input[type=color]{width:32px;height:24px;padding:1px;border:1px solid #dbe2ea;border-radius:4px;background:white}
.style-popover input[type=number],.style-popover select{height:28px;padding:0 8px;border:1px solid #e0e5eb;border-radius:5px;background:#fff;color:#405169;font-size:11px}
.style-popover small{display:block;margin:8px 0 0 76px;color:#98a3b1;font-size:9px;line-height:1.45}
.style-popover .style-font-tip{margin:0 0 8px 68px;color:#1677ff;font-size:10px;line-height:1.45}
.resume-paper .resume-section-body,.resume-paper .resume-contact-field{font-size:var(--resume-font-size,14px)}
.business-card.card-style-1 .card-deco-a,.business-card.card-style-2 .card-deco-a,.business-card.card-style-3 .card-deco-a,.business-card.card-style-4 .card-deco-a{background:var(--card-accent)}
.business-card .card-deco-b{border-color:color-mix(in srgb,var(--card-accent) 42%,white);box-shadow:0 0 0 35px var(--card-accent)}
.business-card{font-family:Arial,"Microsoft YaHei",sans-serif;font-size:var(--card-font-size,14px)}
.business-card.card-style-1{grid-template-columns:40% 1px minmax(0,1fr);gap:5%;padding:7% 8%}
.business-card.card-style-1 .card-identity{position:static;display:block;grid-column:1;align-self:stretch}
.business-card.card-style-1 .card-avatar{position:absolute;z-index:3;left:calc(8% + 75px);top:50%;width:36px;height:36px;transform:translate(-50%,-50%);border-radius:50%;border:3px solid #fff;font-size:15px}
.business-card.card-style-1 .card-brandline{position:absolute;left:8%;bottom:25%;width:26%;text-align:center}
.business-card.card-style-1 .card-divider{grid-column:2;height:78%}
.business-card.card-style-1 .card-details{grid-column:3;align-self:center;padding:0 0 35px}
.business-card.card-style-1 .card-qr-box{left:8%;right:auto;top:27%;bottom:auto;width:150px;font-size:0}
.business-card.card-style-1 .card-qr-box .qr-fake{width:100%;height:auto;aspect-ratio:1;background:none;border:0;outline:0;box-shadow:none}
.business-card.card-style-1 .card-qr-box .qr-fake img{width:100%;height:100%}
.business-card.card-style-1 .card-qr-box .qr-fake i,.business-card.card-style-1 .card-qr-box .qr-fake b{display:none}
.business-card.card-style-2{display:block;padding:0;background:#fff;color:#293746}
.business-card.card-style-2 .card-deco-a{display:none}
.business-card.card-style-2 .card-deco-b{width:53%;height:80%;left:auto;right:-13%;bottom:-62%;border:0;border-radius:60% 0 0 0;background:linear-gradient(145deg,#bed8e7 0 40%,var(--card-accent) 40% 68%,#fff 68%);box-shadow:none;transform:rotate(-13deg)}
.business-card.card-style-2 .card-identity{position:absolute;left:8%;top:10%;display:flex;flex-direction:row;align-items:center;gap:12px;text-align:left}
.business-card.card-style-2 .card-avatar{position:static;width:45px;height:45px;border-radius:50%;font-size:16px}
.business-card.card-style-2 .card-brandline{align-items:flex-start;text-align:left}
.business-card.card-style-2 .card-brandline b{color:var(--card-accent)}
.business-card.card-style-2 .card-divider{display:none}
.business-card.card-style-2 .card-details{position:absolute;left:8%;top:31%;right:48%;padding:0}
.business-card.card-style-2 .card-details h2{font-size:25px;color:var(--card-accent)}
.business-card.card-style-2 .card-contact-line{color:#53647a}
.business-card.card-style-2 .card-qr-box{right:8%;left:auto;top:auto;bottom:9%;font-size:0}
.business-card.card-style-3{display:block;background:#fff;color:#293746}
.business-card.card-style-3 .card-deco-a{display:none}
.business-card.card-style-3 .card-deco-b{left:0;right:0;bottom:0;width:100%;height:8%;border:0;border-radius:20px 20px 0 0;background:var(--card-accent);box-shadow:none}
.business-card.card-style-3 .card-identity{position:absolute;right:8%;top:56%;display:block;width:75px;height:90px}
.business-card.card-style-3 .card-brandline{display:none}
.business-card.card-style-3 .card-divider{display:none}
.business-card.card-style-3 .card-details{position:absolute;left:8%;right:20%;top:13%;padding:0}
.business-card.card-style-3 .card-details h2{display:inline-block;color:var(--card-accent);font-size:26px}
.business-card.card-style-3 .card-details>p{display:inline-block;margin-left:12px}
.business-card.card-style-3 .card-contact-line{margin:7px 0}
.business-card.card-style-3 .card-qr-box{left:auto;right:8%;top:12%;bottom:auto;font-size:0}
.business-card.card-style-3 #card-avatar{position:static;width:75px;height:90px;border-radius:0}
.business-card.card-style-4{display:block;background:#fff;color:#293746}
.business-card.card-style-4 .card-deco-a{width:96%;height:82%;right:-30%;top:31%;border-radius:55% 0 0 0;background:linear-gradient(145deg,#c4dbe7 0 34%,var(--card-accent) 34% 61%,#fff 61%);transform:rotate(-8deg)}
.business-card.card-style-4 .card-deco-b{display:none}
.business-card.card-style-4 .card-identity{position:absolute;left:8%;top:12%;display:flex;flex-direction:row-reverse;gap:20px;text-align:left}
.business-card.card-style-4 .card-avatar{width:54px;height:64px;border-radius:0;font-size:18px}
.business-card.card-style-4 .card-divider{display:none}
.business-card.card-style-4 .card-details{position:absolute;left:8%;right:52%;top:32%;padding:0}
.business-card.card-style-4 .card-details h2{font-size:25px;color:var(--card-accent)}
.business-card.card-style-4 .card-qr-box{left:auto;right:8%;top:auto;bottom:8%;font-size:0}
.business-card .card-contact-line{display:flex;align-items:center;margin:9px 0;font-size:var(--card-font-size,14px)}
.business-card .card-contact-line span{display:inline-grid;flex:none;width:27px;height:27px;place-items:center;border:1px solid var(--card-accent);border-radius:50%;margin-right:10px;color:var(--card-accent)}
.photo-layout{max-width:1120px;grid-template-columns:minmax(270px,.95fr) minmax(460px,1.65fr);align-items:stretch}
.photo-preview{grid-column:1;grid-row:1;min-height:425px;padding:16px;background:linear-gradient(145deg,#f1f6ff,#f8fbff);border-color:#dce8fa;border-radius:10px}
.photo-controls{grid-column:2;grid-row:1;min-height:425px;padding:18px 20px;border-radius:10px}
.photo-preview .preview-head{height:30px;padding:0 2px}
.photo-preview .preview-head small{display:none}
.photo-stage{min-height:220px;margin-top:8px;background:transparent}
.photo-frame{max-width:100%;max-height:285px}
.photo-layout .upload-drop{margin:0 auto 12px;padding:16px 12px;width:min(100%,300px);border-radius:5px;background:#fff}
.photo-layout .upload-drop h3{font-size:13px}.photo-layout .upload-drop p{line-height:1.6}
.photo-process-strip{display:flex;justify-content:center;padding:8px 0 11px}
.photo-process-strip>div{display:flex;align-items:center;gap:11px;color:#4382a6;font-size:10px}
.photo-process-strip i{display:grid;place-items:center;width:44px;height:52px;border-radius:7px;background:linear-gradient(180deg,#d6eaf5,#eef4fb);font-style:normal;color:#72869b}
.photo-process-strip b{font-size:16px;color:#4382a6}
.photo-local-note{margin:0 0 8px;text-align:center;font-size:10px}
.custom-photo-size{display:flex;gap:10px;margin-top:8px;padding:8px 10px;border:1px solid #e6ebf1;border-radius:5px;background:#f9fafc}
.custom-photo-size[hidden]{display:none!important}
.custom-photo-size label{display:flex;align-items:center;gap:5px;color:#718096;font-size:11px}
.custom-photo-size input{width:72px;height:28px;padding:0 7px;border:1px solid #dce3eb;border-radius:4px;color:#45556b}
.photo-cost-note{display:block;margin-top:8px;text-align:center;color:#8b97a7;font-size:10px}
@media(max-width:850px){.photo-layout{grid-template-columns:1fr}.photo-preview,.photo-controls{grid-column:1;grid-row:auto}.photo-preview{min-height:360px}.photo-controls{min-height:0}}
.home-support{max-width:1180px;margin:0 auto 55px;padding:24px 30px;display:grid;grid-template-columns:1fr 120px 120px;align-items:center;gap:20px;border:1px solid #e7ebf0;border-radius:10px;background:#fff}
.home-support h2{margin:0 0 7px;color:#28374b;font-size:22px}.home-support p{margin:0 0 13px;color:#77859a;font-size:13px}.home-support b,.home-support small{display:block;color:#45566c;font-size:13px}.home-support small{margin-top:8px;color:#8390a1;font-size:11px}.home-support img{width:120px;height:120px;object-fit:contain}
.page.active#page-home{padding-bottom:28px}
@media(max-width:920px){.original-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.original-template-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-shortcuts{margin-left:18px;margin-right:18px}}
@media(max-width:620px){.original-home-hero{padding:38px 20px 28px;min-height:0}.original-home-hero h1{font-size:27px}.home-shortcuts,.home-secondary-shortcuts{grid-template-columns:1fr}.original-feature-grid{grid-template-columns:1fr 1fr;margin:0 14px 26px}.original-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-support{margin:0 14px 35px;padding:20px;grid-template-columns:1fr 82px 82px;gap:10px}.home-support img{width:82px;height:82px}.home-support b{font-size:11px}}
.card-photo-field,.card-qr-edit{padding:14px 0;border-bottom:1px solid #edf0f4;margin-bottom:15px}.card-photo-field h3,.card-qr-edit h3{font-size:13px;margin:0 0 11px}.card-photo-row{display:flex;align-items:center;gap:12px}.card-avatar-thumb{width:86px;height:100px;display:grid;place-items:center;background:#eaf1f8;color:#397ca1;border:1px solid #dce4ed;font-size:24px;overflow:hidden}.card-avatar-thumb img{width:100%;height:100%;object-fit:cover}.card-photo-row>div:last-child{display:grid;gap:7px;justify-items:start}.card-photo-row small{font-size:10px;color:#8a97a7}.radio-line{display:flex;gap:15px;margin:10px 0 14px;font-size:12px;color:#5a687d}.radio-line label{display:flex;align-items:center;gap:5px}.contact-edit{padding:11px 0;border-bottom:1px solid #edf0f4}.contact-edit .contact-row{display:grid;grid-template-columns:34px minmax(80px,1fr) 28px;gap:7px}.contact-edit .contact-row input{min-width:0}.contact-icon-button{border:1px solid #e0e6ed;border-radius:6px;background:#fff;color:#557a96}.contact-order{display:flex;gap:5px;justify-content:flex-end}.contact-order button{border:1px solid #e4e9ef;background:#fff;border-radius:5px;padding:4px 7px;color:#738199;font-size:10px}.contact-order button:disabled{opacity:.4}.icon-choice-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.icon-choice-grid button{border:1px solid #e2e8ef;background:#fff;border-radius:8px;padding:12px;font-size:20px;color:#397ca1}.card-qr-box .qr-fake img{width:100%;height:100%;object-fit:contain}
.custom-color{display:flex;align-items:center;gap:6px;color:#68768b;font-size:10px}.custom-color input{width:30px;height:30px;padding:0;border:0;background:none;cursor:pointer}.photo-effects{flex-wrap:wrap}.photo-category{display:block;width:100%;margin-top:9px;padding:8px 10px;border:1px solid #e1e6ee;border-radius:7px;background:white;color:#5f6e82;font-size:12px}
.modal:has(.card-template-picker){width:min(92vw,1050px)}.card-template-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.card-template-picker .template-option{padding:10px}.card-template-preview{position:relative;display:grid;grid-template-columns:40% 1fr;gap:3%;align-items:center;overflow:hidden;aspect-ratio:90/54;width:100%;padding:8% 7%;margin-bottom:8px;text-align:left;color:#344456;background:#fff;border:1px solid #e4e9ef;border-radius:3px;font-size:clamp(5px,.7vw,10px)}.card-template-brand{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;align-self:end;gap:3px;color:var(--sample);text-align:center}.card-template-brand b{font-size:1.7em}.card-template-brand small{font-size:.95em;color:#8794a6}.card-template-person{position:relative;z-index:1;border-left:1px solid #cad4df;padding-left:8%;min-width:0}.card-template-person strong{font-size:1.8em}.card-template-person span{margin-left:5px;color:#8290a2}.card-template-person p{margin:3% 0;font-size:.9em;color:#5d6b7e;white-space:nowrap}.card-template-qr{position:absolute;left:19%;top:22%;display:grid;place-items:center;width:13%;aspect-ratio:1;background:repeating-conic-gradient(#263342 0 25%,#fff 0 50%) 0/7px 7px;border:3px solid #fff;box-shadow:0 0 0 1px #b9c3cf;color:transparent}.card-template-preview.card-style-2{background:linear-gradient(135deg,#24354c 0 38%,#f9fbfd 38%);color:#344456}.card-template-preview.card-style-2 .card-template-brand b{color:#fff}.card-template-preview.card-style-2 .card-template-brand small{color:#dce4ec}.card-template-preview.card-style-2 .card-template-person strong{color:#2f4053}.card-template-preview.card-style-2 .card-template-person p,.card-template-preview.card-style-2 .card-template-person span{color:#718096}.card-template-preview.card-style-2 .card-template-person{border-color:#d3dce5}.card-template-preview.card-style-3{background:linear-gradient(135deg,#e9f4ef 0 38%,#fff 38%)}.card-template-preview.card-style-3 .card-template-brand b{color:#4e997b}.card-template-preview.card-style-4{background:linear-gradient(135deg,#fff1e4 0 38%,#fff 38%)}.card-template-preview.card-style-4 .card-template-brand b{color:#cf7945}.card-template-picker .template-option.selected .card-template-preview{outline:2px solid #78a6ed;outline-offset:1px}
.card-template-preview.card-style-2{background:linear-gradient(90deg,#24354c 0 38%,#f9fbfd 38%)}
.card-template-qr{background-color:#fff;background-image:linear-gradient(90deg,#263342 18%,transparent 18% 42%,#263342 42% 60%,transparent 60% 78%,#263342 78%),linear-gradient(#263342 18%,transparent 18% 38%,#263342 38% 55%,transparent 55% 78%,#263342 78%);background-size:100% 100%;}

/* Matching styles in the live A4 resume. */
.resume-paper.layout-tpl1 .resume-section h3{background:#d7e6ef;color:#2c4758}
.resume-paper.layout-tpl2 .resume-title{text-align:left;color:#fff;background:var(--theme);font-size:24px;margin:-30px -60px 0;padding:34px 60px 0;line-height:1.1;letter-spacing:0}
.resume-paper.layout-tpl2 .resume-contact{background:var(--theme);color:#fff;margin:0 -60px;padding:0 60px 48px;border:0}
.resume-paper.layout-tpl2 .resume-section h3{background:transparent;border:0;border-bottom:1px solid var(--theme-light);color:var(--theme);padding:5px 0}
.resume-paper.layout-tpl3 .resume-title{display:table;margin:0 0 25px;padding:8px 28px;border-radius:0 30px 30px 0;background:var(--theme);color:#fff;text-align:left;letter-spacing:0}
.resume-paper.layout-tpl3 .resume-section h3{display:table;border:0;border-radius:20px;background:var(--theme);color:#fff;padding:5px 17px}
.resume-paper.layout-tpl3 .resume-section{border-bottom:1px solid var(--theme-light);padding-bottom:8px}
.resume-paper.layout-tpl4 .resume-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:25px}
.resume-paper.layout-tpl4 .resume-contact{display:flex;flex-direction:column-reverse;gap:16px;border:0;border-right:1px solid var(--theme);padding:0 15px 0 0;margin:0}
.resume-paper.layout-tpl4 .resume-contact-fields{display:flex;flex-direction:column;gap:9px}
.resume-paper.layout-tpl4 .resume-section{margin-top:0;margin-bottom:14px}
.resume-paper.layout-tpl4 .resume-section h3{background:var(--theme);color:white;border:0;clip-path:polygon(0 0,88% 0,100% 50%,88% 100%,0 100%)}
.resume-paper.layout-tpl5 .resume-title{border-bottom:4px solid var(--theme);padding-bottom:12px;text-align:left}
.resume-paper.layout-tpl5 .resume-title:before{content:"个人简历";display:block;font-size:17px;letter-spacing:5px}
.resume-paper.layout-tpl5 .resume-section h3{background:linear-gradient(90deg,var(--theme) 0 17%,var(--theme-light) 17%);color:#2c4758}
.resume-paper.layout-tpl6 .resume-section h3{background:transparent;border:0;border-bottom:1px solid var(--theme);padding:5px 0;color:var(--theme)}
.resume-paper.layout-tpl7 .resume-title{border-bottom:8px solid var(--theme);padding-bottom:13px}
.resume-paper.layout-tpl7 .resume-section h3{position:relative;background:var(--theme-light);border:0;padding-left:21px;color:var(--theme)}
.resume-paper.layout-tpl7 .resume-section h3:before{content:"";position:absolute;left:0;top:0;bottom:0;width:14px;background:var(--theme);clip-path:polygon(0 0,75% 0,100% 50%,75% 100%,0 100%)}
.resume-paper.layout-tpl8 .resume-contact{grid-template-columns:105px 1fr}
.resume-paper.layout-tpl8 .resume-contact-fields{grid-column:2;grid-row:1}
.resume-paper.layout-tpl8 .resume-photo{grid-column:1;grid-row:1}
.resume-paper.layout-tpl8 .resume-section h3{background:transparent;border:0;border-bottom:1px solid var(--theme);border-left:4px solid var(--theme);color:var(--theme)}
.resume-paper.layout-tpl9 .resume-title{display:none}
.resume-paper.layout-tpl9 .resume-contact{background:var(--theme);color:white;margin:-55px -60px 20px;padding:55px 60px 25px;border:0}
.resume-paper.layout-tpl9 .resume-section h3{background:transparent;border:0;border-bottom:1px solid var(--theme-light);color:var(--theme)}
.resume-paper.layout-tpl10 .resume-section h3{background:#edf0f2;border-left:4px solid var(--theme);color:var(--theme)}
@media(max-width:950px){.template-page{font-size:clamp(6px,.9vw,10px)}}
@media(max-width:560px){.template-page{font-size:10px}}
.basic-title-field{display:block;margin:2px 0 16px;color:#69788b;font-size:12px}
.basic-title-field input{display:block;width:100%;height:38px;margin-top:7px;padding:0 12px;border:1px solid #dce3eb;border-radius:7px;color:#364457;background:#fff;font-size:13px}
.basic-photo-editor{margin:0 0 17px;padding:0 0 15px;border-bottom:1px solid #e9edf2}
.basic-photo-heading{margin-bottom:8px;color:#4d5c70;font-size:13px;font-weight:600}
.basic-photo-card{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px 13px;padding:12px;border:1px solid #e2e7ee;border-radius:9px;background:#fff}
.basic-photo-preview{width:90px;height:126px;display:grid;place-items:center;overflow:hidden;border-radius:6px;background:linear-gradient(180deg,#eaf5fc,#e2eef7);color:#8da1b5;font-size:12px}
.basic-photo-preview img{width:100%;height:100%;object-fit:cover}
.basic-photo-actions{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding-top:2px}
.basic-photo-actions .btn{min-width:130px;justify-content:center}
.basic-photo-actions small{max-width:150px;color:#93a0af;font-size:10px;line-height:1.5}
.basic-photo-toggle{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid #edf0f4;color:#708096;font-size:11px}
.basic-photo-toggle input{appearance:none;position:relative;width:34px;height:19px;margin:0;border-radius:20px;background:#cfd6df;cursor:pointer}
.basic-photo-toggle input:checked{background:#347ff0}
.basic-photo-toggle input:after{content:"";position:absolute;left:2px;top:2px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #26395030;transition:.15s}
.basic-photo-toggle input:checked:after{left:17px}
.basic-fields-list{display:flex;flex-direction:column;gap:0}
.basic-field-card{padding:12px 0 14px;border-bottom:1px solid #e9edf2}
.basic-field-card>label{display:block;margin-bottom:9px;color:#748196;font-size:11px}
.basic-field-card>label input{display:block;width:100%;height:37px;margin-top:6px;padding:0 11px;border:1px solid #dce3eb;border-radius:7px;color:#344256;background:#fff;font-size:12px}
.basic-field-card>.basic-width-field{display:flex;align-items:center;gap:12px;margin:2px 0 9px;color:#69788b;font-size:12px}
.basic-width-field select{width:calc(100% - 78px);height:37px;padding:0 10px;border:1px solid #dce3eb;border-radius:7px;background:#fff;color:#3d4c60;font-size:12px}
.basic-field-controls{display:flex;align-items:center;gap:6px;margin-top:4px}
.basic-field-controls button{height:32px;flex:1 1 0;min-width:0;padding:0 5px;border:1px solid #dce3eb;border-radius:6px;background:#fff;color:#66758a;font-size:11px;white-space:nowrap}
.basic-field-controls button:disabled{opacity:.45;cursor:default}
.basic-field-controls button.danger{border-color:#f0b6b9;color:#d95f65}
.basic-field-controls button[data-action="add-field"]{border-color:#7cb0f5;color:#3179d8}
.intent-fields-list .intent-field-card{padding:12px 0 26px}
.intent-fields-list .intent-field-card>label{margin-bottom:21px}
.intent-fields-list .intent-field-card>.basic-width-field{margin:0 0 22px}
.intent-field-card .basic-field-controls button[data-action="add-intent-field"]{border-color:#7cb0f5;color:#3179d8}
.form-panel:has(.intent-fields-list) .module-edit-head{gap:9px;padding:0 0 15px;margin-bottom:9px}
.form-panel:has(.intent-fields-list){padding-left:20px;padding-right:20px}
.form-panel:has(.intent-fields-list) .back-modules{width:24px;height:28px;border:0;border-radius:0;background:transparent;font-size:26px;font-family:Arial,sans-serif;font-weight:300;padding:0;color:#303b48}
.form-panel:has(.intent-fields-list) .module-edit-head b{font-size:15px;font-weight:600;color:#152b43}
.form-panel:has(.intent-fields-list) .intent-field-card>label{grid-template-columns:60px minmax(0,1fr)}
.form-panel:has(.intent-fields-list) .intent-field-card>.basic-width-field{grid-template-columns:60px minmax(0,1fr)}
.intent-preview-fields p{margin:0 0 5px}
.resume-section-body>p,.resume-item p{white-space:pre-line}
.photo-steps{display:flex;align-items:center;justify-content:center;gap:12px;margin:16px auto 11px;color:#8996a7;font-size:12px}
.photo-steps span{padding:6px 12px;border-radius:18px;background:#edf1f6}
.photo-steps span.active{background:#eaf3ff;color:#2473d5}
.photo-steps i{width:25px;height:1px;background:#d9e0e9}
.photo-local-note{margin:-3px 0 11px;color:#7890a9;font-size:11px}
.photo-controls .photo-category{width:100%;height:38px;margin-top:7px;padding:0 10px;border:1px solid #dfe5ec;border-radius:7px;background:#fff;color:#536176;font-size:12px}
.photo-controls .color-row{align-items:center;flex-wrap:wrap}
.photo-controls .color-choice{width:28px;height:28px}
.outfit-field{margin-top:23px;padding-top:17px;border-top:1px solid #edf0f4}
.outfit-categories{margin:9px 0 12px}
.local-effect-note{margin:6px 0 10px;color:#98a2b0;font-size:10px;line-height:1.5}
.outfit-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.outfit-choice{min-width:0;padding:6px 3px;border:1px solid #e2e7ee;border-radius:6px;background:#fff;color:#6e7b8e;cursor:pointer}
.outfit-choice.selected{border-color:#438cdf;background:#f4f8ff;box-shadow:0 0 0 1px #438cdf30}
.outfit-shirt{display:grid;place-items:center;position:relative;width:28px;height:32px;margin:0 auto 4px;clip-path:polygon(25% 0,40% 10%,60% 10%,75% 0,100% 23%,82% 40%,74% 32%,74% 100%,26% 100%,26% 32%,18% 40%,0 23%);background:var(--outfit)}
.outfit-shirt:after{content:"";position:absolute;left:45%;top:0;width:10%;height:100%;background:#ffffff40}
.outfit-choice small{display:block;overflow:hidden;text-overflow:ellipsis;font-size:9px;white-space:nowrap}
.photo-frame{position:relative}
.photo-watermark{position:absolute;right:6px;bottom:6px;padding:3px 6px;border-radius:3px;background:#1d314565;color:#fff;font-size:8px;pointer-events:none}
#photo-image{position:relative;z-index:0}
#photo-frame #photo-placeholder{position:absolute;z-index:1;inset:0;display:grid;place-content:center;align-content:center}
#photo-placeholder[hidden],.photo-watermark[hidden]{display:none!important}
.photo-layout .notice-box{margin-top:22px}
@media(max-width:700px){.photo-steps{gap:5px;font-size:10px}.photo-steps span{padding:5px 7px}.photo-steps i{width:12px}.outfit-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.reading-article .topbar{display:none}
.article-detail-page{min-height:100vh;background:#fff;padding:26px 22px 60px}
.article-detail-shell{max-width:920px;margin:0 auto}
.article-back{display:inline-block;margin:0 0 26px;color:#64748b;text-decoration:none;font-size:14px}
.article-detail-content{max-width:780px;margin:0 auto}
.article-detail-content header{margin-bottom:30px;padding-bottom:19px;border-bottom:1px solid #e9edf2}
.article-detail-content h1{margin:0 0 13px;color:#202b3a;font-size:31px;line-height:1.45;font-weight:700}
.article-detail-content time{color:#98a2b1;font-size:13px}
.article-prose{color:#374151;font-size:16px;line-height:2.05;white-space:pre-line}
.article-prose p{margin:0 0 16px}
.article-prose h2{margin:32px 0 14px;color:#263649;font-size:24px;line-height:1.45}
.article-prose h3{margin:23px 0 10px;color:#34465c;font-size:18px;line-height:1.5}
.article-prose ol{padding-left:24px;margin:12px 0 24px}
.article-prose li{padding-left:4px;margin:9px 0}
.article-cta{max-width:780px;margin:38px auto 28px;padding:22px 26px;border-radius:12px;background:#f5f8fc;text-align:center}
.article-cta h2{margin:0 0 5px;color:#263649;font-size:19px}
.article-cta p{margin:0 0 15px;color:#77859a;font-size:13px}
.article-detail-nav{max-width:780px;display:flex;justify-content:space-between;margin:0 auto;border-top:1px solid #e9edf2;padding-top:17px}
.module-edit-head:has(+.basic-title-field) span{display:none}
.basic-field-card{padding:12px 0 14px}
.basic-field-card>label{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:9px;color:#526176;font-size:12px;white-space:nowrap}
.basic-field-card>label input{height:34px;margin:0;padding:0 10px;border-radius:6px;font-size:12px;min-width:0}
.basic-field-card>.basic-width-field{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;margin:0 0 10px;color:#526176}
.basic-width-field select{width:100%;height:34px;padding:0 10px;border-radius:6px}
.basic-field-controls{gap:7px;margin-top:5px}
.basic-field-controls button{height:31px;font-size:11px;border-radius:5px}
.basic-photo-card{grid-template-columns:88px minmax(0,1fr);gap:10px 13px;padding:12px}
.basic-photo-preview{width:88px;height:124px;border-radius:6px}
.basic-photo-actions .btn{height:30px;min-width:132px;border-radius:5px}
.basic-photo-actions small{font-size:10px;line-height:1.5}
.template-page .sample-resume-section p{line-height:1.55}
.template-gallery{scrollbar-gutter:stable}
.resume-paper.layout-tpl10 .resume-section h3{background:linear-gradient(90deg,var(--theme) 0 16%,#edf0f2 16%);border:0;color:#fff;padding-left:12px}
.template-page.layout-tpl10 .sample-resume-section h3{background:linear-gradient(90deg,#4382a6 0 22%,#edf0f2 22%);border:0;color:#fff;padding-left:3%}
.editor-workspace .form-panel:has(.intent-fields-list){padding-left:20px;padding-right:20px}

/* Align the editor's fixed work area and resume sheet with the source site. */
.editor-toolbar{width:min(1248px,100%);margin:0 auto;padding:0 12px;border-bottom-color:#e6e9ee}
.editor-workspace{width:min(1248px,100%);height:calc(100% - 65px);margin:8px auto 0;grid-template-columns:418px minmax(0,830px);column-gap:12px;justify-content:center;background:#f1f3f6}
.editor-workspace .form-panel{padding:18px 12px 18px}
.editor-workspace .preview-area{background:#f7f8fa}
.editor-workspace .preview-head{display:none}
.editor-workspace .resume-canvas-wrap{justify-content:flex-start;padding:0 38px 50px;overflow:auto;min-height:100%}
.editor-workspace .resume-paper{transform-origin:top left;padding-top:39px}
.resume-paper .resume-contact:before{content:"基本信息";display:block;grid-column:1/-1;align-self:stretch;padding:5px 10px;background:linear-gradient(90deg,var(--theme) 0 16%,#d8e6ef 16%);color:#fff;font-size:13px;font-weight:700;line-height:1.45}
.resume-paper.layout-tpl2 .resume-contact:before,.resume-paper.layout-tpl4 .resume-contact:before,.resume-paper.layout-tpl9 .resume-contact:before{display:none}
.resume-paper .resume-section{display:flow-root;margin:20px 0 0;clear:both}
.resume-paper .resume-section h3{min-height:28px;margin:0 0 11px;padding:5px 10px;background:linear-gradient(90deg,var(--theme) 0 16%,#d8e6ef 16%);border:0;color:#fff;font-size:14px;line-height:1.35}
.resume-paper .resume-section-body{display:flow-root;line-height:1.75}
.resume-paper .resume-item{display:flow-root;margin:0 0 13px;break-inside:avoid}
.resume-paper .resume-item-head{margin:8px 0 7px;line-height:1.55}
.resume-paper .resume-item p{margin:0 0 7px;line-height:1.75}
.template-page.layout-tpl1 .sample-resume-section h3{background:linear-gradient(90deg,#4382a6 0 18%,#d7e6ef 18%);color:#fff}
.template-page.layout-tpl1>.sample-basic-heading{background:linear-gradient(90deg,#4382a6 0 18%,#d7e6ef 18%);color:#fff}
.template-page .sample-resume-section{display:flow-root;margin:0 0 1.5%;clear:both}
.template-page .sample-resume-section h3{min-height:1.8em;margin:0 0 1.1%;line-height:1.35}
.template-page .sample-resume-section p{display:flow-root;line-height:1.65}
.modal:has(.card-template-picker){width:min(92vw,1450px);height:min(82vh,800px);display:flex;flex-direction:column}
.modal:has(.card-template-picker) .modal-header,.modal:has(.card-template-picker) .modal-footer{flex:none}
.modal:has(.card-template-picker) .modal-body{flex:1;min-height:0;overflow:auto}
.card-template-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.card-template-picker .template-option{min-width:0}
.editor-workspace #resume-form-panel:not(.editing)>.form-head,
.editor-workspace #resume-form-panel:not(.editing)>.form-foot{display:none}
.resume-paper.layout-tpl5 .resume-section h3{background:linear-gradient(90deg,var(--theme) 0 16%,#d8e6ef 16%);color:#fff}
.template-page.layout-tpl5 .sample-resume-section h3{background:linear-gradient(90deg,#4382a6 0 18%,#d8e6ef 18%);color:#fff}
@media(max-width:1247px){.editor-toolbar{width:100%}.editor-workspace{width:100%;grid-template-columns:minmax(340px,34%) minmax(0,1fr)}.editor-workspace .resume-canvas-wrap{padding-left:20px;padding-right:20px}}
@media(max-width:1000px){.editor-workspace{grid-template-columns:minmax(310px,36%) minmax(0,1fr)}.editor-workspace .resume-paper{transform-origin:top left}.modal:has(.card-template-picker){width:min(96vw,1000px)}.card-template-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.editor-toolbar{padding:0 8px}.editor-workspace{height:calc(100% - 107px);display:block}.editor-workspace .form-panel{width:min(88vw,380px)}}
.modal:has(.card-template-picker){width:min(95vw,1900px);height:min(88vh,940px);display:flex;flex-direction:column}
.modal:has(.card-template-picker) .modal-header,.modal:has(.card-template-picker) .modal-footer{flex:none}
.modal:has(.card-template-picker) .modal-body{flex:1;min-height:0;overflow:auto;padding:18px}
.card-template-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 16px;align-items:start}
.card-template-picker .template-option{min-width:0;padding:0;border:1px solid #d7dee6;border-radius:0;overflow:hidden}
.card-template-picker .template-option.selected{border:2px solid #2677a8;box-shadow:0 0 0 1px #2677a833}
.card-template-preview{position:relative;display:block;width:100%;aspect-ratio:90/54;margin:0;overflow:hidden;border:0;border-radius:0;background:#fff;color:#263746;text-align:left;font-size:clamp(6px,.7vw,11px)}
.card-template-brand,.card-template-person,.card-template-avatar,.card-template-qr{position:absolute;z-index:2}
.card-template-brand{left:10%;bottom:12%;width:28%;align-items:center;gap:3px;text-align:center;color:#666;font-size:.8em}
.card-template-brand b{font-size:1.65em;color:#444}
.card-template-brand small{color:#8c96a2;font-size:.85em}
.card-template-avatar{display:grid;place-items:center;width:9%;aspect-ratio:1;background:#29bce8;color:#fff;font-size:1.6em;overflow:hidden}
.card-template-person{left:54%;right:7%;top:20%;min-width:0;padding:0;border:0}
.card-template-person strong{display:inline-block;margin-right:5px;font-size:2em;line-height:1.2;color:#384c5c}
.card-template-person span{font-size:.95em;color:#8290a2}
.card-template-person p{margin:3.5% 0 0;font-size:.95em;color:#44566a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-template-qr{display:grid;place-items:center;width:15%;aspect-ratio:1;left:15%;top:23%;border:2px solid #fff;box-shadow:0 0 0 1px #d5dde5;background:#fff}
.card-template-qr svg{display:block;width:100%;height:100%}
.card-wave{position:absolute;z-index:1;display:block;pointer-events:none}
.card-template-preview .wave-one{width:34%;aspect-ratio:1;right:-8%;top:-55%;border-radius:50%;background:#397ca1;box-shadow:inset 0 0 0 30px #ffffff50}
.card-template-preview .wave-two{width:42%;aspect-ratio:1;left:-18%;bottom:-77%;border-radius:50%;border:18px solid #397ca1;box-shadow:0 0 0 18px #b2d1e6}
.card-template-preview.card-style-2 .wave-one{display:none}
.card-template-preview.card-style-2 .wave-two{left:auto;right:-12%;bottom:-76%;border-color:#397ca1;box-shadow:0 0 0 15px #b2d1e6}
.card-template-preview.card-style-2 .card-template-brand{left:7%;top:13%;bottom:auto;width:38%;align-items:flex-start;text-align:left}
.card-template-preview.card-style-2 .card-template-avatar{left:7%;top:10%;border-radius:50%;width:8%}
.card-template-preview.card-style-2 .card-template-brand{left:17%;top:14%;width:28%}
.card-template-preview.card-style-2 .card-template-qr{left:auto;right:9%;top:auto;bottom:12%}
.card-template-preview.card-style-2 .card-template-person{left:7%;right:48%;top:34%}
.card-template-preview.card-style-3 .wave-one{display:none}
.card-template-preview.card-style-3 .wave-two{left:0;right:0;bottom:0;width:100%;height:8%;aspect-ratio:auto;border:0;border-radius:20px 20px 0 0;background:#397ca1;box-shadow:none}
.card-template-preview.card-style-3 .card-template-person{left:7%;right:18%;top:16%}
.card-template-preview.card-style-3 .card-template-person p{margin-top:2%}
.card-template-preview.card-style-3 .card-template-qr{left:auto;right:8%;top:15%;width:11%}
.card-template-preview.card-style-3 .card-template-avatar{left:auto;right:8%;top:55%;width:9%}
.card-template-preview.card-style-3 .card-template-brand{display:none}
.card-template-preview.card-style-4 .wave-one{width:90%;height:130%;right:-25%;top:32%;border-radius:55% 0 0 0;background:linear-gradient(145deg,#8fb7cb 0 32%,#397ca1 32% 57%,#fff 57%);transform:rotate(-8deg)}
.card-template-preview.card-style-4 .wave-two{display:none}
.card-template-preview.card-style-4 .card-template-brand{left:8%;top:17%;bottom:auto;width:34%;align-items:flex-start;text-align:left}
.card-template-preview.card-style-4 .card-template-avatar{left:auto;right:8%;top:12%;width:8%;border-radius:50%}
.card-template-preview.card-style-4 .card-template-qr{left:auto;right:8%;top:auto;bottom:12%;width:11%}
.card-template-preview.card-style-4 .card-template-person{left:8%;right:52%;top:37%}
.modal:has(.icon-picker){width:min(420px,94vw)}
.modal:has(.icon-picker) .modal-body{padding:14px 16px}
.icon-picker-search{width:100%;height:34px;margin:0 0 10px;padding:0 10px;border:1px solid #dce3eb;border-radius:6px;color:#405169;font-size:12px}
.icon-choice-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;max-height:220px;overflow:auto}
.icon-choice-grid button{height:34px;padding:0;border:1px solid #edf0f4;border-radius:2px;background:#fff;color:#41536b;font-size:14px}
.icon-choice-grid button:hover{border-color:#4990c0;background:#f3f8fc}
.icon-choice-grid button[hidden]{display:none}
@media(max-width:900px){.card-template-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.basic-field-card>label,.basic-field-card>.basic-width-field{grid-template-columns:70px minmax(0,1fr);gap:6px}.basic-field-controls{gap:4px}.basic-field-controls button{padding:0 2px;font-size:10px}}
.editor-workspace #resume-form-panel:not(.editing){padding-top:0}
.editor-workspace #resume-form-panel:not(.editing) .module-table{margin-left:-12px;margin-right:-12px}
.editor-workspace #resume-form-panel.editing:has(.source-module-body){padding:0 26px 18px}
.source-editor-head{height:48px;margin:0 -26px 16px;padding:0 26px;border-bottom:1px solid #d5dde6;gap:11px}
.source-editor-head .back-modules{width:26px;height:30px;border:0;border-radius:0;background:transparent;padding:0;color:#263747;font-family:Arial,sans-serif;font-size:29px;font-weight:300;line-height:1}
.source-editor-head b{color:#142d47;font-size:15px;font-weight:600}
.source-module-body{padding:0}
.source-rich-editor{margin:0 0 14px}
.rich-ai-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:0 0 9px}
.rich-ai-actions button{height:25px;padding:0 9px;border:1px solid #1677ff;border-radius:6px;background:#fff;color:#1677ff;font-size:12px;white-space:nowrap}
.rich-ai-actions button:hover{background:#f1f7ff}
.rich-ai-actions button:last-child{margin-left:auto}
.rich-editor-frame{overflow:hidden;border:1px solid #d5d5d5;border-radius:4px;background:#fff}
.rich-toolbar{display:flex;flex-wrap:wrap;gap:3px;padding:6px 7px;border-bottom:1px solid #dedede;background:#fafafa}
.rich-toolbar button,.rich-toolbar select{height:25px;min-width:25px;padding:0 5px;border:1px solid #dedede;border-radius:3px;background:#fff;color:#252525;font-size:13px;line-height:1}
.rich-toolbar select{width:46px;padding:0 3px}
.rich-toolbar button:hover{border-color:#8ab6e8;background:#f4f9ff}
.rich-toolbar button.active{border-color:#3987f5;background:#f3f8ff;color:#2475e8}
.rich-editor-frame{position:relative}
.rich-editor-frame{overflow:visible}
.rich-size-control{position:relative;display:inline-flex;flex:0 0 auto}
.rich-toolbar .rich-size-trigger{display:flex;align-items:center;justify-content:space-between;width:54px;min-width:54px;padding:0 5px;color:#222;white-space:nowrap}
.rich-size-trigger span{font-size:12px;color:#666}
.rich-size-menu{position:absolute;z-index:30;top:calc(100% + 3px);left:0;width:62px;padding:3px 0;border:1px solid #e7e7e7;border-radius:3px;background:#fff;box-shadow:0 2px 8px #0002}
.rich-size-menu[hidden]{display:none}
.rich-size-menu button{display:block;width:100%;height:32px;min-width:0;padding:0;border:0;border-radius:0;background:#fff;color:#333;font:14px/32px Arial,"Microsoft YaHei",sans-serif;text-align:center;cursor:pointer}
.rich-size-menu button:hover{background:#f5f5f5;color:#2878d0}
.rich-color-popover{position:absolute;z-index:20;top:42px;left:8px;width:258px;padding:12px;border:1px solid #e0e0e0;border-radius:9px;background:#fff;box-shadow:0 5px 18px #172b4130;color:#34404e}
.rich-color-popover[hidden]{display:none}
.color-plane{position:relative;width:234px;height:160px;border-radius:5px;cursor:crosshair;touch-action:none}
.color-plane-marker{position:absolute;width:11px;height:11px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #252525}
.color-hue-row,.color-alpha-row{height:15px;margin-top:10px}
.color-hue-row input,.color-alpha-track input{appearance:none;display:block;width:100%;height:10px;margin:2px 0;border:0;border-radius:8px}
.color-hue-row input{background:linear-gradient(90deg,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}
.color-alpha-row{display:flex;align-items:center;gap:9px;margin-top:6px}
.color-alpha-track{flex:1;height:10px;border-radius:6px;background:conic-gradient(#d8d8d8 25%,#fff 0 50%,#d8d8d8 0 75%,#fff 0) 0 0/8px 8px}
.color-alpha-track input{background:linear-gradient(90deg,transparent,var(--picker-color,#000));}
.color-alpha-swatch{width:22px;height:22px;border:1px solid #ddd;background-color:#fff;background-image:conic-gradient(#d8d8d8 25%,transparent 0 50%,#d8d8d8 0 75%,transparent 0);background-size:8px 8px}
.color-picker-controls{display:grid;grid-template-columns:53px minmax(0,1fr) 43px;gap:7px;margin-top:11px}
.color-picker-controls select,.color-picker-controls input{height:28px;min-width:0;padding:0 7px;border:1px solid #d7dadd;border-radius:4px;background:#fff;color:#46515d;font-size:11px}
.color-picker-controls input:last-child{text-align:center;padding:0 3px}
.color-hue-row input::-webkit-slider-thumb,.color-alpha-track input::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #aaa}
.color-hue-row input::-moz-range-thumb,.color-alpha-track input::-moz-range-thumb{width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #aaa}
.rich-content{min-height:520px;max-height:680px;overflow:auto;padding:10px 12px;outline:0;color:#101010;font-family:Arial,"Microsoft YaHei",sans-serif;font-size:14px;line-height:1.8;word-break:break-all;overflow-wrap:anywhere}
.rich-content p{margin:0 0 7px}
.rich-content p:last-child{margin-bottom:0}
.rich-fullscreen{position:fixed;z-index:10000;inset:10px;display:flex;flex-direction:column;margin:0;padding:12px;background:#fff;box-shadow:0 0 0 100vmax #0008}
.rich-fullscreen .rich-editor-frame{display:flex;flex:1;flex-direction:column;min-height:0}
.rich-fullscreen .rich-content{flex:1;max-height:none}
.experience-editor-item{margin:0 0 11px;padding:0 0 12px;border-bottom:1px solid #ececec}
.experience-fields{display:flex;flex-direction:column;gap:15px;padding:3px 0 15px}
.experience-field{position:relative;display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:7px;margin:0;color:#182c40;font-size:13px}
.experience-field span{text-align:right;white-space:nowrap}
.experience-field input{width:100%;height:35px;padding:0 29px 0 10px;border:1px solid #d7dce1;border-radius:6px;background:#fff;color:#33485f;font-size:13px}
.experience-field input:focus{border-color:#1677ff;outline:0;box-shadow:0 0 0 2px #1677ff18}
.experience-field button{position:absolute;right:9px;width:17px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:#b9bdc1;font-size:15px;line-height:20px;cursor:pointer}
.experience-field button:hover{background:#f1f2f3;color:#737a82}
.experience-editor-item .source-rich-editor{margin-top:0}
.experience-editor-item .rich-content{min-height:260px;max-height:400px}
.experience-controls{display:flex;gap:7px;margin-top:14px}
.experience-controls button,.experience-add-item{height:33px;padding:0 11px;border:1px solid #d8dee8;border-radius:6px;background:#fff;color:#43566d;font-size:12px}
.experience-controls button:first-child,.experience-add-item{border-color:#1677ff;color:#1677ff}
.experience-controls button.danger{border-color:#ff4d4f;color:#ff4d4f}
.experience-controls button:disabled{color:#b8bec7;border-color:#e4e6e9;background:#f6f6f6;cursor:not-allowed}
.experience-add-item{width:100%;margin:2px 0 13px;border-style:dashed}
.resume-paper .resume-item .rich-content{min-height:0;max-height:none;overflow:visible;padding:0;border:0;font:inherit;line-height:inherit}
.resume-paper .resume-item .rich-content p{margin:0 0 7px}
@media(max-width:700px){.editor-workspace #resume-form-panel.editing:has(.source-module-body){padding-left:18px;padding-right:18px}.source-editor-head{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}.experience-field{grid-template-columns:68px minmax(0,1fr)}}
:root{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}
.editor-page{height:calc(100vh - 64px)}
#page-resume{padding-top:8px}
.topbar{height:64px;padding:0 20px;gap:80px}
.brand{width:173.94px;height:42px;flex:none}
.brand-logo{display:block;width:173.94px;height:42px;max-height:none;object-fit:contain}
.main-nav{height:100%;gap:40px;align-items:center}
.nav-link{height:28px;padding:0;border:0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:18px;font-weight:700;line-height:28px;letter-spacing:1.8px;color:#020617;white-space:nowrap}
.nav-link:hover,.nav-link.active{color:#1677ff}
.nav-link.active:after{bottom:-4px;left:0;right:0;height:3px;border-radius:2px;background:#1677ff}
.top-actions .balance-btn,.top-actions .settings-gear{display:none}
.top-actions{gap:0}
.top-actions .login-btn{height:34px;padding:6px 16px;border:1px solid #1677ff;border-radius:9999px;background:#fff;color:#1677ff;font-size:14px;font-weight:600;line-height:20px}
.editor-toolbar .mobile-panel-toggle{display:none}
.style-popover{width:326px;padding:15px 18px}
.style-popover label{grid-template-columns:60px 120px;font-size:12px}
.style-popover input[type=number],.style-popover select{height:32px;font-size:12px}
.style-popover small{margin-left:68px;font-size:10px}
.resume-paper .resume-title{font-size:30px;font-weight:700;letter-spacing:0}
.resume-paper .resume-section-body,.resume-paper .resume-contact-field{font-size:var(--resume-font-size,14px)}
.resume-paper .resume-section-body{line-height:var(--resume-line-height,27px);letter-spacing:var(--resume-letter-spacing,1px)}
.resume-paper .resume-contact-field{letter-spacing:var(--resume-letter-spacing,1px)}
.resume-paper .resume-section{margin-top:var(--resume-section-spacing,0px)}
.resume-paper .resume-section h3{font-size:var(--resume-title-size,16px);font-weight:var(--resume-title-weight,700)}
.resume-paper.layout-tpl3 .resume-title{font-size:30px;padding:10px 38px}
.resume-paper.layout-tpl3 .resume-section h3{display:flex;align-items:center;width:100%;background:transparent;border:0;border-radius:0;padding:0;color:var(--theme)}
.resume-paper.layout-tpl3 .resume-section h3 span{display:inline-block;flex:none;padding:6px 18px;border-radius:22px;background:var(--theme);color:#fff}
.resume-paper.layout-tpl3 .resume-section h3:after{content:"";height:1px;flex:1;margin-left:10px;background:var(--theme)}
.resume-paper.layout-tpl3 .resume-section{border:0;padding-bottom:0}
#page-resume .toolbar-left .resume-select-control{position:relative;width:250px;min-width:250px;flex:0 0 250px}
#page-resume .toolbar-left #resume-select{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
#resume-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;height:32px;padding:4px 11px;border:1px solid #d9e0e9;border-radius:6px;background:#fff;color:#53647a;font-size:14px;text-align:left;cursor:pointer}
#resume-select-trigger[aria-expanded="true"]{border-color:#6caaff;box-shadow:0 0 0 2px #3385ff20}
.resume-select-menu{position:absolute;z-index:80;top:calc(100% + 5px);left:0;width:100%;max-height:280px;overflow-y:auto;padding:4px;border:1px solid #e2e7ee;border-radius:7px;background:#fff;box-shadow:0 7px 18px #26395024}
.resume-select-menu[hidden]{display:none}
.resume-select-option{display:block;width:100%;height:33px;padding:0 10px;border:0;border-radius:5px;background:#fff;color:#27394c;font-size:13px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.resume-select-option:hover{background:#f0f6fc}
.resume-select-option.selected{background:#b8dfff;color:#1d3349;font-weight:600}
#page-resume .toolbar-left .filename input{width:286px}
@media(max-width:1120px){#page-resume .toolbar-left #resume-select{width:180px;min-width:180px;flex-basis:180px}#page-resume .toolbar-left .filename input{width:170px}}
@media(max-width:1120px){#page-resume .toolbar-left .resume-select-control{width:180px;min-width:180px;flex-basis:180px}}
@media(max-width:820px){#page-resume .toolbar-left .resume-select-control{width:130px;min-width:130px;flex-basis:130px}#page-resume .toolbar-left .filename input{width:110px}}
.resume-paper.layout-tpl3 .resume-layout{position:relative}
.resume-paper.layout-tpl3 .resume-layout:before{content:"";position:absolute;z-index:0;top:28px;bottom:0;left:-10px;width:1px;background:var(--theme)}
.resume-paper.layout-tpl3 .resume-contact{position:relative;border-bottom:2px solid var(--theme);padding-bottom:22px}
.resume-paper.layout-tpl3 .resume-contact:before{position:relative;left:-27px;width:max-content;justify-self:start;align-self:start;margin:0 0 8px;padding:5px 30px;border-radius:22px;background:var(--theme);color:#fff}
.resume-paper.layout-tpl3 .resume-contact:after{content:"";position:absolute;top:17px;left:86px;right:0;height:1px;background:var(--theme)}
.resume-paper.layout-tpl3 .resume-section h3{margin-left:-27px;width:calc(100% + 27px)}
.resume-paper.layout-tpl3 .resume-contact-fields,.resume-paper.layout-tpl3 .resume-section-body{padding-left:0}
#resume-select-trigger{padding-right:11px}
#resume-select-trigger .select-chevron{width:14px;height:14px;flex:none;fill:none;stroke:#7f8997;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.editor-toolbar .toolbar-right .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.editor-toolbar .toolbar-right .btn svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
@media screen{
.editor-workspace .resume-canvas-wrap{padding-left:0;padding-right:0}
.editor-workspace .resume-paper{width:100%}
}

/* Local account registration and login */
.auth-panel{display:grid;gap:16px;max-width:430px;margin:0 auto;color:#465467}
.auth-panel p{margin:0;line-height:1.7}
.auth-panel form{display:grid;gap:14px}
.auth-panel form label{display:grid;gap:7px;font-size:13px;font-weight:600}
.auth-panel form input{width:100%;min-height:42px;padding:9px 12px;border:1px solid #d8e0e9;border-radius:9px;font:inherit}
.auth-panel form input:focus{outline:2px solid #3978a333;border-color:#3978a3}
.auth-intro{font-size:13px;color:#69798b}
.auth-error{min-height:18px;color:#bd4148;font-size:13px}
.auth-switch{justify-self:center}
.auth-panel .account-profile{margin:0}
.account-profile #account-logout{margin-left:auto}

#page-resume>.editor-toolbar{width:min(1248px,100%);height:48px;margin:0 auto;padding:0 12px;gap:12px;border:0}
#page-resume .toolbar-left{gap:8px;flex:0 0 798px;min-width:0}
#page-resume .toolbar-right{gap:8px;flex:0 0 414px;justify-content:flex-end;min-width:0}
#page-resume .editor-toolbar .btn{height:32px;min-height:32px;padding:0 15px;border:1px solid #d9e0e9;border-radius:6px;background:#fff;color:#43566d;font-size:14px;font-weight:400;line-height:20px;box-shadow:none;transform:none}
#page-resume .editor-toolbar .btn.primary{background:#1677ff;border-color:#1677ff;color:#fff}
#page-resume .editor-toolbar .btn svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
#page-resume #new-resume{display:flex;align-items:center;justify-content:center;width:82px;gap:8px}
#page-resume #resume-name{height:30px;padding:0 9px;font-size:14px}
#page-resume .filename{height:32px;flex:0 0 360px;border-radius:6px;font-size:14px}
#page-resume .filename span{display:flex;align-items:center;height:30px;width:73px;flex:0 0 73px;padding:0 15px;border-right:1px solid #d9e0e9;color:#53647a;font-size:14px}
#page-resume .filename input{flex:1;min-width:0}
#page-resume #theme-button{display:flex;align-items:center;justify-content:center;width:82px;gap:8px;border-color:#d9e0e9}
#page-resume #template-button{width:88px;border-color:#1677ff;background:transparent;color:#1677ff}
#page-resume #save-resume{width:82px;gap:8px}
#page-resume #print-resume,#page-resume #print-resume-long{width:110px;gap:8px}
#page-resume>.editor-workspace{height:calc(100% - 56px);margin:8px auto 0}
.floating-help{position:fixed;z-index:30;right:24px;bottom:48px;width:40px;height:132.53px;display:flex;flex-direction:column;border-radius:8px;background:#fff;box-shadow:0 2px 10px #17243b1a;overflow:hidden}
.floating-help button{height:33.333%;min-height:0;padding:4px 0;border:0;border-bottom:1px solid #f0f1f3;background:#fff;color:rgba(0,0,0,0.88);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;font-weight:400;line-height:18.86px}
.floating-help button:first-child{border-radius:8px 8px 0 0}
.floating-help button:last-child{border-bottom:0;border-radius:0 0 8px 8px}
.floating-help svg{width:14px;height:14px;fill:currentColor;stroke:none}
@media(max-width:1120px){#page-resume>.editor-toolbar{width:calc(100% - 32px)}#page-resume .toolbar-left{flex:1 1 auto}#page-resume .toolbar-right{flex:0 1 auto}}
@media(max-width:950px){.topbar{gap:18px;padding:0 16px}.brand,.brand-logo{width:150px}.main-nav{gap:12px}.nav-link{font-size:14px;letter-spacing:.6px}.top-actions{margin-left:auto}#page-resume>.editor-toolbar{height:88px;padding:8px;flex-wrap:wrap;align-content:center}#page-resume .toolbar-left{width:100%;flex:1 1 100%;gap:8px;overflow-x:auto}#page-resume .toolbar-right{width:100%;flex:1 1 100%;justify-content:flex-end}#page-resume .toolbar-left #new-resume,#page-resume #theme-button{width:72px;flex:none}#page-resume .toolbar-left .resume-select-control{width:180px;min-width:180px;flex:0 0 180px}#page-resume .filename{flex:1 1 240px;min-width:200px}#page-resume>.editor-workspace{height:calc(100% - 96px)}.floating-help{display:none}}
@media(max-width:700px){#page-resume{padding-top:0}.floating-help{display:none}#page-resume>.editor-toolbar{width:100%;height:auto;min-height:55px;margin:0;padding:8px;gap:6px}#page-resume .toolbar-left,#page-resume .toolbar-right{width:100%;flex:1 1 100%;justify-content:flex-start}#page-resume .toolbar-left{overflow:auto}#page-resume .toolbar-right{overflow:auto}#page-resume .toolbar-left .resume-select-control{width:130px;min-width:130px;flex-basis:130px}#page-resume .filename{flex:1 0 190px}#page-resume .editor-toolbar .btn{font-size:11px;padding:0 10px}#page-resume>.editor-workspace{height:calc(100% - 99px);margin:0}}
#page-resume>.editor-toolbar .toolbar-left,#page-resume>.editor-toolbar .toolbar-right{gap:10px}
.resume-paper.layout-tpl3 .resume-title{margin:-10px 0 25px -22px;font-size:32px;padding:10px 42px}
.resume-paper.layout-tpl2 .resume-contact{grid-template-columns:100px minmax(0,1fr);align-items:center;column-gap:20px;padding-top:0;padding-bottom:44px}
.resume-paper.layout-tpl2 .resume-contact-fields{grid-column:2;grid-row:1;grid-template-columns:1fr 1fr;gap:12px 8px;position:relative;top:4px}
.resume-paper.layout-tpl2 .resume-photo{grid-column:1;grid-row:1;width:100px;height:123px;justify-self:start}
.resume-paper.layout-tpl2 .resume-title{margin:-30px -60px 0;padding:32px 60px 0;line-height:1.1}
.resume-paper.layout-tpl2 .resume-title{font-size:25px;line-height:32px}
.resume-paper.layout-tpl2 .resume-contact-field{gap:4px}
.resume-paper.layout-tpl2 .resume-contact-field .resume-contact-label{display:inline-flex;flex:none;width:70px;letter-spacing:0}
.resume-paper.layout-tpl2 .resume-contact-label span{flex:1;text-align:justify;text-align-last:justify}
.resume-paper.layout-tpl2 .resume-contact-label i{font-style:normal;flex:none}
.resume-paper.layout-tpl2 .resume-contact-field:nth-child(even){position:relative;left:-8px}
.resume-paper.layout-tpl2 .resume-section h3{border-bottom:2px solid var(--theme);padding:5px 0 6px;color:var(--theme)}
.editor-workspace .resume-paper.layout-tpl2{position:relative;left:0;width:820px;max-width:820px;box-sizing:border-box}
.resume-paper .resume-contact-field{gap:4px}
.resume-paper .resume-contact-field .resume-contact-label{display:inline-flex;flex:none;width:70px;letter-spacing:0}
.resume-paper .resume-contact-label span{flex:1;text-align:justify;text-align-last:justify;white-space:nowrap}
.resume-paper .resume-contact-label i{font-style:normal;flex:none}
.resume-paper.layout-tpl1 .resume-contact:before{background:#d7e6ef;color:#2c4758}
.resume-paper.layout-tpl1 .resume-title{font-size:24px;margin-top:-18px}
.resume-paper.layout-tpl1 .resume-title{transform:translateX(6px)}
.resume-paper.layout-tpl1 .resume-contact{row-gap:24px;padding-left:10px;margin-left:-12px;margin-right:0}
.resume-paper.layout-tpl1 .resume-contact:before{position:relative;left:-10px;width:calc(100% + 10px)}
.resume-paper.layout-tpl1 .resume-contact-fields{align-content:start;position:relative;top:-6px}
.resume-paper.layout-tpl1 .resume-contact-field:nth-child(even){position:relative;left:-8px;gap:9px}
.resume-paper.layout-tpl1 .resume-photo{width:100px;height:140px;margin-right:15px}
.resume-paper.layout-tpl1 .resume-body{margin-left:-12px;margin-right:0}
.resume-paper.layout-tpl4 .resume-layout{grid-template-columns:240px minmax(0,1fr);gap:20px;align-items:stretch}
.resume-paper.layout-tpl4 .resume-contact.tpl4-sidebar{display:flex;flex-direction:column;align-items:stretch;gap:12px;min-height:100%;padding:18px 14px;background:#f1f2f3;border-right:1px solid #9ab4c2}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-title{order:0;margin:0;padding:0;text-align:center;color:var(--theme);font-size:23px;letter-spacing:0}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-photo{order:1;align-self:center;width:100px;height:140px;margin:0 0 5px}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-fields{order:2;display:flex;flex-direction:column;align-content:stretch;gap:0}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-field{gap:5px;padding:7px 0;border-bottom:1px solid #d7dce0;font-size:12px}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-field .resume-contact-label{width:62px}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-field .resume-contact-label span{text-align:justify;text-align-last:justify}
.resume-paper.layout-tpl4 .resume-sidebar-intent{order:3;margin-top:auto;padding-top:14px}
.resume-paper.layout-tpl4 .resume-sidebar-intent h3{margin:0 0 8px;padding:6px 0;border:0;border-bottom:2px solid var(--theme);background:transparent;color:var(--theme);text-align:center;font-size:14px}
.resume-paper.layout-tpl4 .resume-sidebar-intent p{margin:0;padding:6px 0;border-bottom:1px solid #d7dce0;font-size:11px;line-height:1.6}
.resume-paper.layout-tpl4 .resume-section h3{width:max-content;min-width:120px;margin:0 0 10px;padding:6px 18px;background:var(--theme);color:#fff;clip-path:polygon(0 0,100% 0,86% 50%,100% 100%,0 100%)}
.resume-paper.layout-tpl6 .resume-contact{border-bottom:0;padding-bottom:12px;margin-bottom:18px}
.resume-paper.layout-tpl6 .resume-contact:before{padding:4px 0;background:transparent;border-bottom:1px solid var(--theme);color:var(--theme);font-size:15px}
.resume-paper.layout-tpl6 .resume-title{margin-top:-8px}
.resume-paper.layout-tpl7 .resume-title{position:relative;margin:0 0 38px;padding:0;border:0;transform:translateX(-12px);text-align:left;letter-spacing:0;color:var(--theme)}
.resume-paper.layout-tpl7 .resume-title:after{content:"";position:absolute;left:0;right:0;bottom:-19px;height:10px;background:var(--theme);clip-path:polygon(0 0,96% 0,98% 50%,96% 100%,0 100%)}
.resume-paper.layout-tpl7 .resume-contact{position:relative}
.resume-paper.layout-tpl7 .resume-contact:before{position:relative;left:-27px;width:max-content;justify-self:start;padding:5px 22px;clip-path:polygon(0 0,86% 0,100% 50%,86% 100%,0 100%);background:var(--theme);color:#fff}
.resume-paper.layout-tpl7 .resume-contact:after{content:"";position:absolute;top:17px;left:86px;right:0;height:1px;background:var(--theme)}
.resume-paper.layout-tpl7 .resume-section h3{display:flex;align-items:center;width:calc(100% + 27px);margin-left:-27px;padding:0;background:transparent;border:0;color:var(--theme)}
.resume-paper.layout-tpl7 .resume-section h3 span{display:inline-block;flex:none;min-width:120px;padding:6px 18px;background:var(--theme);color:#fff;clip-path:polygon(0 0,86% 0,100% 50%,86% 100%,0 100%)}
.resume-paper.layout-tpl7 .resume-section h3:after{content:"";height:1px;flex:1;background:var(--theme)}
.resume-paper.layout-tpl5 .resume-title{display:flex;align-items:center;gap:7px;margin:0 0 22px;padding:0 0 16px;border-bottom:3px solid var(--theme);transform:translateX(-12px);text-align:left;letter-spacing:0}
.resume-paper.layout-tpl5 .resume-title-hex{display:grid;place-items:center;width:42px;height:46px;border:1px solid var(--theme);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);color:var(--theme);font-size:28px;line-height:1}
.resume-paper.layout-tpl5 .resume-title-hex{position:relative;isolation:isolate;border:0;background:var(--theme)}
.resume-paper.layout-tpl5 .resume-title-hex:before{content:"";position:absolute;inset:1.5px;background:#fff;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);z-index:-1}
.resume-paper.layout-tpl5 .resume-title-hex{clip-path:none;background:transparent}
.resume-paper.layout-tpl5 .resume-title-hex:before{inset:0;background:var(--theme);z-index:-2}
.resume-paper.layout-tpl5 .resume-title-hex:after{content:"";position:absolute;inset:1.5px;background:#fff;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);z-index:-1}
.resume-paper.layout-tpl5 .resume-contact{position:relative;border:0;padding-bottom:8px;margin-bottom:15px}
.resume-paper.layout-tpl5 .resume-contact:before{position:relative;left:-12px;width:max-content;justify-self:start;padding:5px 18px;clip-path:polygon(0 0,84% 0,100% 50%,84% 100%,0 100%);background:var(--theme);color:#fff}
.resume-paper.layout-tpl5 .resume-contact:after{content:"";position:absolute;top:17px;left:92px;right:0;height:1px;background:var(--theme)}
.resume-paper.layout-tpl5 .resume-section h3{display:flex;align-items:center;width:100%;padding:0;background:transparent;border:0;color:var(--theme)}
.resume-paper.layout-tpl5 .resume-section h3 span{display:inline-block;flex:none;min-width:108px;padding:6px 16px;background:var(--theme);color:#fff;clip-path:polygon(0 0,84% 0,100% 50%,84% 100%,0 100%)}
.resume-paper.layout-tpl5 .resume-section h3:after{content:"";height:1px;flex:1;background:var(--theme)}
.resume-paper.layout-tpl8 .resume-contact{position:relative;border-bottom:3px solid var(--theme);padding-bottom:20px}
.resume-paper.layout-tpl8 .resume-contact:before{display:block;grid-column:1/-1;justify-self:start;align-self:center;position:relative;left:-12px;width:112px;height:27px;box-sizing:border-box;margin:0;padding:5px 18px;clip-path:polygon(0 0,84% 0,100% 50%,84% 100%,0 100%);background:var(--theme);color:#fff;line-height:17px}
.resume-paper.layout-tpl8 .resume-contact:after{content:"";position:absolute;top:calc(100% - 41px);left:102px;right:0;height:1px;background:var(--theme)}
.resume-paper.layout-tpl8 .resume-section h3{min-height:28px;margin:17px 0 11px;padding:5px 10px;background:linear-gradient(90deg,var(--theme) 0 16%,#edf0f2 16%)!important;border:0;color:#fff;line-height:1.35}
.resume-paper.layout-tpl8 .resume-section h3 span{display:block;width:16%;min-width:120px;padding:0;background:transparent;color:#fff}
.resume-paper.layout-tpl8 .resume-section h3:after{content:none}
.resume-paper.layout-tpl5 .resume-title:before{content:none!important}
.resume-paper.layout-tpl5 .resume-title-hex{width:40px;height:44px;font-size:27px}
.resume-paper.layout-tpl5 .resume-contact:before{display:block;grid-column:1/-1;justify-self:start;align-self:center;position:relative;left:-12px;width:112px;height:27px;box-sizing:border-box;margin:0;padding:5px 18px;clip-path:polygon(0 0,84% 0,100% 50%,84% 100%,0 100%);background:var(--theme);color:#fff;line-height:17px}
.resume-paper.layout-tpl5 .resume-contact:after{top:14px;left:102px;height:1px}
.resume-paper.layout-tpl5 .resume-section h3{min-height:0;margin:0 0 11px;padding:0;background:none!important;border:0;line-height:1.35}
.resume-paper.layout-tpl5 .resume-section h3 span{display:inline-block;flex:none;min-width:108px;box-sizing:border-box;padding:6px 16px;background:var(--theme)!important;color:#fff;clip-path:polygon(0 0,84% 0,100% 50%,84% 100%,0 100%)}
.resume-paper.layout-tpl5 .resume-section h3:after{content:"";height:1px;flex:1;background:var(--theme)}
.resume-paper{position:relative}
.resume-page-break-markers{position:absolute;z-index:4;inset:0;pointer-events:none}
.resume-page-break{position:absolute;left:0;right:0;height:0;border-top:2px solid #687f91}
.resume-page-break span{position:absolute;left:50%;top:-12px;transform:translateX(-50%);padding:3px 10px;background:#edf1f4;color:#445b6d;border:1px solid #687f91;border-radius:3px;font-size:11px;line-height:1.2;white-space:nowrap}
@media print{.resume-page-break-markers{display:none!important}}
.resume-paper .resume-section-body p,.resume-paper .resume-item p,.resume-paper .resume-sidebar-intent p{line-height:var(--resume-line-height,27px)}
.resume-paper .resume-section-body p,.resume-paper .resume-item p{margin-bottom:7px}
.resume-paper .resume-section-body p:last-child,.resume-paper .resume-item p:last-child{margin-bottom:0}
.resume-paper.layout-tpl1 .intent-preview-fields p{margin:0;line-height:var(--resume-line-height,27px)}
.resume-paper.layout-tpl4 .resume-sidebar-intent p{line-height:var(--resume-line-height,27px)}
.resume-page-break{border-top:1px dashed #91a9b9}
.resume-page-break span{left:auto;right:12px;top:-10px;transform:none;padding:3px 8px;border:1px solid #dce6ec;border-radius:12px;background:#fff;color:#5f7585;font-size:10px;line-height:1.25;box-shadow:0 1px 3px #24384d12}
@media(max-width:700px){#page-resume>.editor-toolbar{height:auto;min-height:55px}#page-resume>.editor-workspace{height:calc(100% - 107px);margin-top:8px}}
@media print{
  html,body{width:100%!important;height:auto!important;min-width:0!important;overflow:visible!important}
  body.printing-resume .page:not(#page-resume),
  body.printing-card .page:not(#page-card){display:none!important}
  body.printing-resume #page-resume,
  body.printing-card #page-card{display:block!important;position:static!important;width:100%!important;height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}
  body.printing-resume #page-resume .editor-workspace,
  body.printing-card #page-card .card-workspace{display:block!important;width:100%!important;height:auto!important;min-height:0!important;overflow:visible!important}
  body.printing-resume #page-resume .preview-area{display:block!important;width:100%!important;height:auto!important;overflow:visible!important;background:#fff!important}
  body.printing-resume #page-resume .resume-canvas-wrap{display:block!important;width:100%!important;height:auto!important;min-height:0!important;padding:0!important;overflow:visible!important}
  body.printing-resume #page-resume .resume-paper{width:210mm!important;min-height:297mm!important;height:auto!important;margin:0!important;transform:none!important;box-shadow:none!important}
  body.printing-resume-long #page-resume .resume-paper{min-height:0!important;height:auto!important;break-after:avoid-page!important;page-break-after:avoid!important}
}

/* Source sample comparison: tpl1 has no divider under the basic-info block. */
.resume-paper.layout-tpl1 .resume-title{margin-top:-8px!important;color:#222!important}
.resume-paper.layout-tpl1 .resume-contact{border-bottom:0!important;padding-bottom:0!important;margin-bottom:11px!important}
.resume-paper.layout-tpl1 .intent-preview-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 24px}
.resume-paper.layout-tpl1 .intent-preview-fields p{margin:0;line-height:var(--resume-line-height,27px)}

/* Resume editor spacing, paragraph rhythm, and unobtrusive page guidance. */
#page-resume>.editor-toolbar{height:48px}
#page-resume>.editor-workspace{height:calc(100% - 64px);margin:8px auto 0}
#page-resume>.editor-toolbar .toolbar-left,#page-resume>.editor-toolbar .toolbar-right{gap:8px}
.resume-paper .resume-section-body,.resume-paper .resume-item-head,.resume-paper .resume-section-body p,.resume-paper .resume-item p,.resume-paper .resume-sidebar-intent p{line-height:var(--resume-line-height,27px)}
.resume-paper .resume-section-body p,.resume-paper .resume-item p{margin-bottom:7px}
.resume-paper .resume-section-body p:last-child,.resume-paper .resume-item p:last-child{margin-bottom:0}
.resume-paper.layout-tpl1 .intent-preview-fields p{margin:0;line-height:var(--resume-line-height,27px)}
.resume-paper.layout-tpl4 .resume-sidebar-intent p{line-height:var(--resume-line-height,27px)}
.resume-page-break-markers{counter-reset:resumePage}
.resume-page-break{counter-increment:resumePage;border-top:1px dashed #a9bac5}
.resume-page-break span{left:auto;right:12px;top:-20px;transform:none;padding:4px 9px;border:1px solid #dce6ec;border-radius:12px;background:#fff;color:#52697a;font-size:0;line-height:1.25;box-shadow:0 1px 3px #24384d12}
.resume-page-break span::before{content:"第 " counter(resumePage) " 页末 · 分页参考";font-size:11px}
@media(max-width:950px){#page-resume>.editor-toolbar{height:88px}#page-resume>.editor-workspace{height:calc(100% - 96px);margin-top:8px}}
@media(max-width:700px){#page-resume>.editor-toolbar{height:auto;min-height:55px}#page-resume>.editor-workspace{height:calc(100% - 99px);margin:0}}

/* Template cards are rendered from the same live resume DOM as the editor preview. */
.template-live-frame{position:relative;width:100%;aspect-ratio:210/297;overflow:hidden;background:#fff}
.template-live-paper{position:absolute!important;top:0;left:0;box-sizing:border-box!important;width:820px!important;height:1160px!important;min-height:1160px!important;max-height:none!important;margin:0!important;transform:scale(1);transform-origin:top left!important;box-shadow:none!important;overflow:hidden!important}

/* The source gallery renders an 820px resume with 14px type and a 28px baseline. */
.template-live-paper{font-size:14px!important;line-height:28px!important;--resume-font-size:14px!important}
.template-live-paper .resume-section{margin-top:0!important;margin-bottom:0!important}
.template-live-paper .resume-section h3{font-size:var(--resume-title-size,16px);margin-bottom:0!important}
.template-live-paper .resume-section-body,
.template-live-paper .resume-item-head,
.template-live-paper .resume-section-body p,
.template-live-paper .resume-item p,
.template-live-paper .resume-sidebar-intent p{font-size:14px!important;line-height:28px!important}
.template-live-paper .resume-section-body p,
.template-live-paper .resume-item p{margin-bottom:0!important}
.template-live-paper .resume-item{margin-bottom:0!important}
.template-live-paper .resume-contact-field{padding-top:0!important;padding-bottom:0!important;font-size:14px!important;line-height:28px!important}
.template-live-paper.layout-tpl1 .resume-contact,.template-live-paper.layout-tpl1 .resume-body{margin-right:0!important}
.template-live-paper.layout-tpl4 .tpl4-sidebar .resume-contact-field{font-size:14px!important;line-height:28px!important}
.template-live-paper.layout-tpl4 .resume-sidebar-intro>div,
.template-live-paper.layout-tpl4 .resume-section-body{font-size:14px!important;line-height:28px!important}

/* tpl2/tpl3 reference details: white identity copy in tpl2 and compact intent rows. */
.resume-paper.layout-tpl2 .resume-title,
.template-live-paper.layout-tpl2 .resume-title{
  border:0!important;
  box-shadow:none!important;
  background-image:none!important;
}
.resume-paper.layout-tpl2 .resume-title::before,
.resume-paper.layout-tpl2 .resume-title::after,
.template-live-paper.layout-tpl2 .resume-title::before,
.template-live-paper.layout-tpl2 .resume-title::after{content:none!important;display:none!important}
.resume-paper.layout-tpl2 .resume-contact,
.template-live-paper.layout-tpl2 .resume-contact{border:0!important;box-shadow:none!important;color:#fff!important}
.resume-paper.layout-tpl2 .resume-contact,
.template-live-paper.layout-tpl2 .resume-contact{padding-bottom:12px!important}
.resume-paper.layout-tpl2 .resume-contact,
.template-live-paper.layout-tpl2 .resume-contact{margin-top:-2px!important}
.resume-paper.layout-tpl2 .resume-contact-field,
.resume-paper.layout-tpl2 .resume-contact-field *,
.template-live-paper.layout-tpl2 .resume-contact-field,
.template-live-paper.layout-tpl2 .resume-contact-field *{color:#fff!important}
.resume-paper.layout-tpl2 .intent-preview-fields,
.resume-paper.layout-tpl3 .intent-preview-fields,
.template-live-paper.layout-tpl2 .intent-preview-fields,
.template-live-paper.layout-tpl3 .intent-preview-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 22px}
.resume-paper.layout-tpl2 .intent-preview-fields p,
.resume-paper.layout-tpl3 .intent-preview-fields p,
.template-live-paper.layout-tpl2 .intent-preview-fields p,
.template-live-paper.layout-tpl3 .intent-preview-fields p{display:flex;align-items:baseline;gap:4px;min-width:0;margin:0;line-height:1.5}
.resume-paper.layout-tpl2 .intent-preview-fields p b,
.resume-paper.layout-tpl3 .intent-preview-fields p b,
.template-live-paper.layout-tpl2 .intent-preview-fields p b,
.template-live-paper.layout-tpl3 .intent-preview-fields p b{flex:none}

/* tpl4 matches the source resume: photo, title, and personal details in the left rail. */
.resume-paper.layout-tpl4 .resume-contact.tpl4-sidebar{gap:12px;padding:18px 14px;background:#f1f2f3;border-right:1px solid #9ab4c2}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-photo{order:0;align-self:center;width:100px;height:140px;margin:0}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-title{order:1;margin:0;padding:0;text-align:center;color:var(--theme);font-size:23px;letter-spacing:0}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-fields{order:2;display:flex;flex-direction:column;align-content:stretch;gap:0}
.resume-paper.layout-tpl4 .resume-sidebar-intent{order:3;margin-top:10px;padding-top:10px}
.resume-paper.layout-tpl4 .resume-sidebar-intent h3{margin:0 0 6px;padding:5px 0;border:0;border-bottom:2px solid var(--theme);background:transparent;color:var(--theme);text-align:center;font-size:14px}
.resume-paper.layout-tpl4 .resume-sidebar-intent p{margin:0;padding:4px 0;border-bottom:1px solid #d7dce0;font-size:11px;line-height:1.5}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-field{padding:5px 0;font-size:10.5px}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-field .resume-contact-label{width:62px}
.resume-paper.layout-tpl4 .resume-sidebar-intro{order:4;margin-top:10px;padding-top:8px;border-top:1px solid #d7dce0}
.resume-paper.layout-tpl4 .resume-sidebar-intro h3{margin:0 0 5px;padding:5px 0;border:0;background:transparent;color:var(--theme);text-align:center;font-size:13px}
.resume-paper.layout-tpl4 .resume-sidebar-intro>div{font-size:10px;line-height:1.55;overflow-wrap:anywhere}
.resume-paper.layout-tpl4 .resume-sidebar-intro p{margin:0 0 4px}
.resume-paper.layout-tpl4 .resume-section{margin-bottom:8px}
.resume-paper.layout-tpl4 .resume-section h3{min-width:120px;margin-bottom:6px;padding:5px 16px;clip-path:polygon(0 0,100% 0,87% 50%,100% 100%,0 100%)}
.resume-paper.layout-tpl4 .resume-section-body{font-size:12px;line-height:1.55!important}
.resume-paper.layout-tpl4 .resume-item{margin-bottom:4px}
.resume-paper.layout-tpl4 .resume-item-head{margin:6px 0 3px;line-height:1.35}
.resume-paper.layout-tpl4 .resume-item p,.resume-paper.layout-tpl4 .resume-section-body p{margin-bottom:3px}
/* Match the original editor canvas for the left profile rail template. */
.editor-workspace #resume-paper{box-sizing:border-box;width:min(820px,100%)!important;max-width:100%!important;min-width:0!important;flex-shrink:1!important;}
.editor-workspace #resume-paper .resume-section-body,
.editor-workspace #resume-paper .resume-contact-field{font-size:var(--resume-font-size,14px)!important;}
.editor-workspace #resume-paper .resume-item-head,
.editor-workspace #resume-paper .resume-section-body p,
.editor-workspace #resume-paper .resume-item p{line-height:var(--resume-line-height,28px)!important;}
.editor-workspace #resume-paper.layout-tpl4{box-sizing:border-box;width:820px!important;padding:0!important;}
.editor-workspace #resume-paper.layout-tpl4 .resume-layout{grid-template-columns:280px minmax(0,1fr);gap:0;}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar{box-sizing:border-box;min-width:0;padding:20px 10px 20px 20px;gap:20px;background:#f1f1f1;border:0;}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-photo{width:100px;height:140px;}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-fields{gap:0;}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-field{font-size:14px;line-height:28px;padding:0;border-bottom:1px solid #d8d8d8;}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-label{width:90px;flex:none;}
.editor-workspace #resume-paper.layout-tpl4 .resume-body{box-sizing:border-box;min-width:0;padding:20px 20px 20px 10px;}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent{margin:0 10px;padding-top:20px;}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro{margin:0 10px;padding-top:20px;}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent h3,
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro h3{font-size:16px;line-height:20px;}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent p{font-size:14px;line-height:28px!important;padding:0;}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro>div{font-size:14px;line-height:28px;}
.editor-workspace #resume-paper.layout-tpl4 .resume-section{margin:0 0 0;}
.editor-workspace #resume-paper.layout-tpl4 .resume-section h3{box-sizing:border-box;width:131px;min-width:131px;height:32px;margin:0 0 0 -28px;padding:0 28px;line-height:32px;clip-path:polygon(0 0,100% 0,87% 50%,100% 100%,0 100%);}
.editor-workspace #resume-paper.layout-tpl4 .resume-section h3{font-size:14px;}
.editor-workspace #resume-paper.layout-tpl4 .resume-section-body{padding:10px;font-size:14px;line-height:28px!important;}
.editor-workspace #resume-paper.layout-tpl4 .resume-item-head{font-size:14px;line-height:28px!important;margin:0 0 10px;}
.editor-workspace #resume-paper.layout-tpl4 .resume-item{margin-bottom:0;}
.editor-workspace #resume-paper.layout-tpl4 .resume-item p,
.editor-workspace #resume-paper.layout-tpl4 .resume-section-body p{font-size:14px;line-height:28px!important;margin:0;}
.template-page.layout-tpl4{display:grid;grid-template-columns:34% minmax(0,1fr);grid-template-rows:1fr;column-gap:4%;padding:4%}
.template-page.layout-tpl4 .sample-profile-rail{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:stretch;gap:2%;min-width:0;padding:5% 7%;background:#f1f2f3;border-right:1px solid #98b5c4}
.template-page.layout-tpl4 .sample-profile-rail .sample-portrait{order:0;width:58%;align-self:center;flex:none}
.template-page.layout-tpl4 .sample-profile-rail>h2{order:1;margin:0;padding:0;text-align:center;color:#3f80a4;font-size:1.45em;letter-spacing:0}
.template-page.layout-tpl4 .sample-profile-rail .sample-resume-fields{order:2;display:flex;flex-direction:column;gap:1.2%;}
.template-page.layout-tpl4 .sample-resume-sections{grid-column:2;grid-row:1;min-width:0}
.template-page.layout-tpl4 .sample-resume-section h3{background:#3f80a4;color:white;width:max-content;min-width:30%;padding:1.4% 4%;clip-path:polygon(0 0,100% 0,87% 50%,100% 100%,0 100%)}
.template-page.layout-tpl4 .sample-sidebar-intent{order:3;margin-top:2%;padding-top:2%;color:#263847}
.template-page.layout-tpl4 .sample-sidebar-intent h3{margin:0 0 2%;padding:2% 0;border:0;border-bottom:2px solid #3f80a4;background:transparent;color:#3f80a4;text-align:center;font-size:1.1em}
.template-page.layout-tpl4 .sample-sidebar-intent p{margin:0;padding:1.4% 0;border-bottom:1px solid #d7dce0;font-size:.84em;line-height:1.45}
.template-page.layout-tpl4 .sample-sidebar-intro{margin-top:2%;padding-top:2%;border-top:1px solid #d7dce0;color:#263847}
.template-page.layout-tpl4 .sample-sidebar-intro h3{margin:0 0 2%;padding:1.5% 0;border:0;background:transparent;color:#3f80a4;text-align:center;font-size:1.05em}
.template-page.layout-tpl4 .sample-sidebar-intro p{margin:0;font-size:.78em;line-height:1.45}
.template-page.layout-tpl4 .sample-resume-section{margin-bottom:1.2%}
.template-page.layout-tpl4 .sample-resume-section h3{margin-bottom:.6%;padding:1.1% 3.5%}
.template-page.layout-tpl4 .sample-resume-section p{font-size:.86em;line-height:1.45}

/* Final source measurements for the selected left-rail template (tpl4). */
.editor-workspace #resume-paper.layout-tpl4{margin-top:-18px!important;margin-left:-2px!important}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar{padding:40px 10px 20px 20px!important;gap:20px!important}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-title{height:20px!important;margin:0!important;color:#333!important;font-size:20px!important;line-height:20px!important}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-fields{box-sizing:border-box;height:auto;min-height:0;margin:0;padding:0}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-field{box-sizing:border-box;min-height:0;display:flex;align-items:center;margin:0 10px;padding:4px 0;font-size:14px!important;line-height:var(--resume-line-height,28px)!important}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-label{width:72px!important;flex:0 0 72px!important}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent{box-sizing:border-box;min-height:0;margin:0!important;padding:0!important}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent h3,
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro h3{box-sizing:border-box;height:auto;margin:0!important;padding:20px 0 10px!important;border:0!important;border-bottom:1px solid #3978a3!important;background:transparent!important;color:#3978a3!important;text-align:center;font-size:16px!important;line-height:16px!important}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent>div{height:auto;min-height:0}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent p{font-size:14px!important;line-height:var(--resume-line-height,28px)!important;padding:4px 0!important;border-bottom:1px solid #fff!important}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro{box-sizing:border-box;min-height:0;margin:0!important;padding:0!important;border:0!important}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro>div{font-size:14px!important;line-height:var(--resume-line-height,28px)!important;padding-top:0!important}
.editor-workspace #resume-paper.layout-tpl4 .resume-section h3{position:relative;overflow:visible;clip-path:none!important;width:131px;min-width:131px;height:32px;margin:0 0 0 -28px;padding:0 40px 0 28px;background:#3978a3!important;color:#fff!important;font-size:var(--resume-title-size,16px);line-height:32px!important;}
.editor-workspace #resume-paper.layout-tpl4 .resume-section h3 span{position:relative;display:block;width:131px;height:32px;box-sizing:border-box;color:#fff!important;line-height:32px!important;}
.editor-workspace #resume-paper.layout-tpl4 .resume-section h3 span:before{content:"";position:absolute;left:0;top:32px;width:0;height:0;border-top:12px solid #2f6488;border-right:12px solid transparent}
.editor-workspace #resume-paper.layout-tpl4 .resume-section h3 span:after{content:"";position:absolute;right:-23px;top:0;width:32px;height:32px;background:#fff;transform:rotate(45deg)}

/* Match the source template picker: four 542 × 767 A4 previews with 20px gutters. */
.modal:has(.template-gallery) .modal-header{height:50px;box-sizing:border-box;padding:9px 20px}
.template-live-frame{width:100%;height:auto;aspect-ratio:820/1160;overflow:hidden;position:relative}
.template-live-paper{transform-origin:top left!important}

/* Source DOM measurements for template headings: preserve each template's own rhythm. */
.resume-paper.layout-tpl1 .resume-title{font-size:25px!important;line-height:36px!important;font-weight:400!important;text-align:center!important;margin:0 0 20px!important;transform:none!important}
.resume-paper.layout-tpl2 .resume-title{font-size:25px!important;line-height:32px!important;font-weight:400!important;text-align:left!important;color:#fff!important;background:transparent!important;border:0!important;box-shadow:none!important;margin:0!important;padding:0!important}
.resume-paper.layout-tpl2 .resume-title{position:relative;z-index:1;width:calc(100% + 40px)!important;margin:0 -20px!important;padding:0 20px!important;background:var(--theme)!important}
.resume-paper.layout-tpl2 .resume-contact{box-sizing:border-box!important;margin:0 -20px!important;padding:0 20px!important}
.resume-paper.layout-tpl9 .resume-contact{box-sizing:border-box!important;margin:-55px -20px 20px!important;padding:55px 20px 25px!important}
.resume-paper.layout-tpl9 .resume-title{display:block!important;position:relative;z-index:1;width:calc(100% + 40px)!important;margin:0 -20px!important;padding:0 20px!important;background:var(--theme)!important;color:#fff!important;font-size:25px!important;line-height:32px!important;font-weight:400!important;text-align:left!important;border:0!important;box-shadow:none!important}
.resume-paper.layout-tpl3 .resume-title{font-size:32px!important;line-height:66px!important;font-weight:400!important;text-align:left!important;margin:0 0 20px!important;padding:0 20px!important;border-radius:0 32px 32px 0!important}
.resume-paper.layout-tpl4 .tpl4-sidebar .resume-title{font-size:20px!important;line-height:20px!important;font-weight:400!important}
.resume-paper.layout-tpl6 .resume-title{font-size:32px!important;line-height:32px!important;font-weight:400!important;text-align:center!important;margin:0 0 20px!important}
.resume-paper.layout-tpl7 .resume-title{font-size:32px!important;line-height:32px!important;font-weight:400!important;text-align:left!important;margin:0 0 60px!important;transform:none!important}
.resume-paper.layout-tpl8 .resume-title{font-size:25px!important;line-height:36px!important;font-weight:400!important;text-align:center!important;margin:0!important}
.resume-paper.layout-tpl10 .resume-title{font-size:25px!important;line-height:36px!important;font-weight:400!important;text-align:center!important;margin:0 0 20px!important}

.resume-paper.layout-tpl1 .resume-section h3{box-sizing:border-box;height:28px;min-height:28px;padding:0 20px!important;line-height:28px!important;font-size:var(--resume-title-size,16px)}
.resume-paper.layout-tpl2 .resume-section h3{box-sizing:border-box;height:28px;min-height:28px;padding:0!important;border-bottom:1px solid #3978a3!important;line-height:28px!important;font-size:var(--resume-title-size,16px)}
.resume-paper.layout-tpl3 .resume-section h3{box-sizing:border-box;height:32px;min-height:32px;padding:0!important;line-height:32px!important;font-size:var(--resume-title-size,16px)}
.resume-paper.layout-tpl3 .resume-section h3 span{box-sizing:border-box;height:32px;line-height:32px!important;padding:0 25px!important;border-radius:32px!important;transform:translateX(-15px)}
.resume-paper.layout-tpl4 .resume-sidebar-intent h3,.resume-paper.layout-tpl4 .resume-sidebar-intro h3{font-size:16px!important;line-height:16px!important;padding:20px 0 10px!important;margin:0 10px!important}
.resume-paper.layout-tpl5 .resume-section h3{line-height:30px!important;font-size:var(--resume-title-size,16px)}
.resume-paper.layout-tpl5 .resume-section h3 span{line-height:29px!important;padding:0 15px!important}
.resume-paper.layout-tpl6 .resume-section h3{box-sizing:border-box;min-height:28px;padding:0 0 5px!important;line-height:28px!important;font-size:var(--resume-title-size,16px)}
.resume-paper.layout-tpl7 .resume-section h3{box-sizing:border-box;height:28px;min-height:28px;padding:0!important;line-height:28px!important;font-size:var(--resume-title-size,16px)}
.resume-paper.layout-tpl7 .resume-section h3 span{box-sizing:border-box;height:28px;line-height:28px!important;padding:0 25px!important}
.resume-paper.layout-tpl8 .resume-section h3{box-sizing:border-box;height:28px;min-height:28px;margin:17px 0 0!important;padding:0!important;line-height:28px!important;font-size:var(--resume-title-size,16px)}
.resume-paper.layout-tpl8 .resume-section h3 span{box-sizing:border-box;height:28px;line-height:28px!important;padding:0 20px!important}
.resume-paper.layout-tpl9 .resume-section h3{box-sizing:border-box;height:28px;min-height:28px;padding:0!important;line-height:28px!important;font-size:var(--resume-title-size,16px)}
.resume-paper.layout-tpl10 .resume-section h3{box-sizing:border-box;height:28px;min-height:28px;padding:0 20px!important;line-height:28px!important;font-size:var(--resume-title-size,16px)}

.template-live-paper.layout-tpl1 .resume-section h3{height:28px;min-height:28px;padding:0 20px!important;line-height:28px!important}
.template-live-paper.layout-tpl2 .resume-section h3{height:28px;min-height:28px;padding:0!important;line-height:28px!important}
.template-live-paper.layout-tpl3 .resume-title{font-size:32px!important;line-height:66px!important;padding:0 20px!important;margin:0 0 20px!important;border-radius:0 32px 32px 0!important}
.template-live-paper.layout-tpl3 .resume-section h3{height:32px;min-height:32px;padding:0!important;line-height:32px!important}
.template-live-paper.layout-tpl3 .resume-section h3 span{height:32px;line-height:32px!important;padding:0 25px!important;border-radius:32px!important;transform:translateX(-15px)}
.template-live-paper.layout-tpl4 .resume-sidebar-intent h3,.template-live-paper.layout-tpl4 .resume-sidebar-intro h3{font-size:16px!important;line-height:16px!important;padding:20px 0 10px!important;margin:0 10px!important}
.template-live-paper.layout-tpl4 .resume-section h3{line-height:29px!important;padding:0 15px!important}
.template-live-paper.layout-tpl5 .resume-section h3{line-height:30px!important}
.template-live-paper.layout-tpl5 .resume-section h3 span{line-height:29px!important;padding:0 15px!important}
.template-live-paper.layout-tpl6 .resume-title{font-size:32px!important;line-height:32px!important;margin:0 0 20px!important}
.template-live-paper.layout-tpl6 .resume-section h3{line-height:28px!important;padding:0 0 5px!important}
.template-live-paper.layout-tpl7 .resume-title{font-size:32px!important;line-height:32px!important;margin:0 0 60px!important;transform:none!important}
.template-live-paper.layout-tpl7 .resume-section h3{height:28px;min-height:28px;padding:0!important;line-height:28px!important}
.template-live-paper.layout-tpl7 .resume-section h3 span{height:28px;line-height:28px!important;padding:0 25px!important}
.template-live-paper.layout-tpl8 .resume-title{font-size:25px!important;line-height:36px!important;margin:0!important}
.template-live-paper.layout-tpl8 .resume-section h3{height:28px;min-height:28px;margin:17px 0 0!important;padding:0!important;line-height:28px!important}
.template-live-paper.layout-tpl8 .resume-section h3 span{height:28px;line-height:28px!important;padding:0 20px!important}
.template-live-paper.layout-tpl9 .resume-section h3{height:28px;min-height:28px;padding:0!important;line-height:28px!important}
.template-live-paper.layout-tpl10 .resume-title{font-size:25px!important;line-height:36px!important;margin:0 0 20px!important}
.template-live-paper.layout-tpl10 .resume-section h3{height:28px;min-height:28px;padding:0 20px!important;line-height:28px!important}

/* Bring the blue identity band in template 2 back to the source's compact block. */
.resume-paper.layout-tpl2 .resume-title,
.template-live-paper.layout-tpl2 .resume-title{border:0!important;outline:0!important;box-shadow:none!important}
.resume-paper.layout-tpl2 .resume-contact,
.template-live-paper.layout-tpl2 .resume-contact{
  box-sizing:border-box!important;
  margin:0 -20px!important;
  padding:0 20px 12px!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:var(--theme)!important;
  color:#fff!important;
}
.resume-paper.layout-tpl2 .resume-contact-fields,
.template-live-paper.layout-tpl2 .resume-contact-fields{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
.resume-paper.layout-tpl2 .resume-contact-field,
.resume-paper.layout-tpl2 .resume-contact-field *,
.template-live-paper.layout-tpl2 .resume-contact-field,
.template-live-paper.layout-tpl2 .resume-contact-field *{color:#fff!important;border-top:0!important;box-shadow:none!important}
/* Source template 3: measured from the live original DOM, 820px paper. */
@font-face{font-family:"Alibaba PuHuiTi";src:url("./assets/AlibabaPuHuiTi-3-55-Regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
:is(#resume-paper,.template-live-paper).layout-tpl3{box-sizing:border-box!important;word-break:break-all;color:rgba(0,0,0,.88)}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-title{display:block!important;box-sizing:border-box!important;width:220px!important;height:66px!important;margin:0 0 20px -20px!important;padding:0 0 0 40px!important;line-height:66px!important;font-size:32px!important;font-weight:400!important;border:0!important;border-radius:0 66px 66px 0!important;letter-spacing:var(--resume-letter-spacing,0px);background:var(--theme)!important;color:#fff!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-layout{position:relative!important;display:block!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-layout:before{content:"";position:absolute!important;left:0!important;top:-26px!important;bottom:0!important;width:1px!important;background:var(--theme)!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-contact{display:grid!important;grid-template-columns:minmax(0,1fr) 110px!important;gap:0!important;align-items:center!important;position:relative!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-contact:before{content:"基本信息";box-sizing:border-box!important;grid-column:1/-1!important;grid-row:1!important;display:block!important;position:relative!important;left:0!important;top:0!important;transform:translateX(-15px)!important;z-index:2;width:max-content!important;height:32px!important;min-height:32px!important;padding:0 25px!important;margin:0!important;font-size:var(--resume-title-size,16px)!important;font-weight:var(--resume-title-weight,700)!important;line-height:32px!important;letter-spacing:var(--resume-letter-spacing,0px);border:0!important;border-radius:32px!important;background:var(--theme)!important;color:#fff!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-contact:after{content:"";position:absolute!important;z-index:1;left:0!important;right:0!important;top:15.5px!important;height:1px!important;background:var(--theme)!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-contact-fields{box-sizing:border-box!important;grid-column:1!important;grid-row:2!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0!important;padding:10px!important;margin:0!important;border:0!important;align-content:center!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-contact-field{position:static!important;display:flex!important;align-items:center!important;gap:0!important;min-height:var(--resume-line-height,28px)!important;font-size:var(--resume-font-size,14px)!important;line-height:var(--resume-line-height,28px)!important;font-weight:400!important;margin:0!important;padding:0!important;letter-spacing:var(--resume-letter-spacing,0px)!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-contact-label{display:inline-flex!important;flex:0 0 74px!important;width:74px!important;gap:0!important;font-weight:400!important;letter-spacing:var(--resume-letter-spacing,0px)}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-contact-label span{display:block!important;flex:0 0 60px!important;width:60px!important;min-width:60px!important;text-align:justify!important;text-align-last:justify!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-contact-label i{display:block!important;flex:0 0 14px!important;width:14px!important;font-style:normal!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-photo{box-sizing:border-box!important;grid-column:2!important;grid-row:2!important;width:100px!important;height:140px!important;justify-self:start!important;align-self:center!important;margin:0!important;padding:0!important;border:0!important;transform:none!important;object-fit:cover!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-section{display:block!important;clear:none!important;margin:var(--resume-section-spacing,0px) 0 0!important;padding:0!important;border:0!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-section h3{box-sizing:border-box!important;display:block!important;position:relative!important;overflow:visible!important;width:100%!important;height:32px!important;min-height:32px!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;font-size:var(--resume-title-size,16px)!important;font-weight:var(--resume-title-weight,700)!important;line-height:32px!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-section h3 span{box-sizing:border-box!important;display:inline-block!important;position:relative!important;z-index:2;height:32px!important;margin:0!important;padding:0 25px!important;transform:translateX(-15px)!important;line-height:32px!important;letter-spacing:var(--resume-letter-spacing,0px);border-radius:32px!important;background:var(--theme)!important;color:#fff!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-section h3:after{content:"";display:block!important;position:absolute!important;z-index:1;left:0!important;right:0!important;top:50%!important;transform:translateY(-50%)!important;flex:none!important;width:auto!important;height:1px!important;margin:0!important;background:var(--theme)!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-section-body{box-sizing:border-box!important;display:flow-root!important;padding:10px!important;margin:0!important;font-size:var(--resume-font-size,14px)!important;line-height:var(--resume-line-height,28px)!important;letter-spacing:var(--resume-letter-spacing,0px)!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-section-body p{margin:0!important;padding:0!important;line-height:var(--resume-line-height,28px)!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .intent-preview-fields{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .intent-preview-fields p{display:flex!important;align-items:center!important;min-height:var(--resume-line-height,28px)!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .intent-preview-fields b{display:inline-block!important;flex:0 0 74px!important;width:74px!important;font-weight:400!important;white-space:nowrap!important;text-align:justify!important;text-align-last:justify!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-item{display:flow-root!important;margin:0!important;padding:0!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-item+.resume-item{margin-top:10px!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-item-head{position:relative!important;display:flex!important;flex-flow:wrap!important;justify-content:space-between!important;align-items:center!important;height:var(--resume-line-height,28px)!important;min-height:var(--resume-line-height,28px)!important;margin:0 0 10px!important;padding:0!important;font-weight:700!important;line-height:var(--resume-line-height,28px)!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-item-head>span:nth-child(2):not(:last-child){position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;line-height:1!important}
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-item p{margin:0!important;line-height:var(--resume-line-height,28px)!important}

/* Keep job-intent fields compact in every full-width template and in gallery clones. */
:is(#resume-paper,.template-live-paper):not(.layout-tpl4) .intent-preview-fields{
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  column-gap:24px!important;
  row-gap:0!important;
  align-items:center!important;
}
:is(#resume-paper,.template-live-paper):not(.layout-tpl4) .intent-preview-fields p{
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  gap:4px!important;
  min-width:0!important;
  min-height:28px!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
  font-size:var(--resume-font-size,14px)!important;
  line-height:28px!important;
}
:is(#resume-paper,.template-live-paper):not(.layout-tpl4) .intent-preview-fields p b{
  display:inline-block!important;
  flex:0 0 auto!important;
  font-weight:400!important;
  white-space:nowrap!important;
}

/* The left-rail version uses one tidy label/value pair per row. */
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-sidebar-intent>div{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-sidebar-intent p{
  display:flex!important;
  align-items:center!important;
  gap:4px!important;
  min-width:0!important;
  min-height:28px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  white-space:nowrap!important;
  font-size:14px!important;
  line-height:28px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-sidebar-intent p b{
  flex:0 0 auto!important;
  white-space:nowrap!important;
}

/* Keep every template's live and thumbnail content inside the paper's printable width. */
:is(#resume-paper,.template-live-paper) .resume-layout,
:is(#resume-paper,.template-live-paper) .resume-contact,
:is(#resume-paper,.template-live-paper) .resume-body,
:is(#resume-paper,.template-live-paper) .resume-section,
:is(#resume-paper,.template-live-paper) .resume-section-body,
:is(#resume-paper,.template-live-paper) .resume-item,
:is(#resume-paper,.template-live-paper) .resume-item-head,
:is(#resume-paper,.template-live-paper) .resume-contact-fields{
  box-sizing:border-box!important;
  min-width:0!important;
  max-width:100%!important;
}
:is(#resume-paper,.template-live-paper) .resume-body{margin-right:0!important}
:is(#resume-paper,.template-live-paper) .resume-section-body,
:is(#resume-paper,.template-live-paper) .resume-section-body *,
:is(#resume-paper,.template-live-paper) .rich-content,
:is(#resume-paper,.template-live-paper) .rich-content *{
  overflow-wrap:anywhere!important;
  word-break:break-all!important;
}
:is(#resume-paper,.template-live-paper) .resume-item-head>span{
  min-width:0!important;
  overflow-wrap:anywhere!important;
}
:is(#resume-paper,.template-live-paper) .resume-section-body img{max-width:100%!important;height:auto!important}

/* Reserve a real right gutter and use three stable columns for experience metadata. */
:is(#resume-paper,.template-live-paper) .resume-section-body{padding-right:14px!important}
:is(#resume-paper,.template-live-paper) .resume-item-head{
  display:grid!important;
  box-sizing:border-box!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
  width:100%!important;
  height:auto!important;
  min-height:28px!important;
  padding-right:14px!important;
}
:is(#resume-paper,.template-live-paper) .resume-item-head>span{
  position:static!important;
  min-width:0!important;
  max-width:100%!important;
  transform:none!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
:is(#resume-paper,.template-live-paper) .resume-item-head>span:first-child{text-align:left!important}
:is(#resume-paper,.template-live-paper) .resume-item-head>span:nth-child(2){text-align:center!important}
:is(#resume-paper,.template-live-paper) .resume-item-head>span:last-child{text-align:right!important}
:is(#resume-paper,.template-live-paper) .resume-item-head:has(>span:nth-child(2)):not(:has(>span:nth-child(3))){grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
:is(#resume-paper,.template-live-paper) .resume-item-head:has(>span:first-child):not(:has(>span:nth-child(2))){grid-template-columns:minmax(0,1fr)!important}

/* Align the basic-information band with the right inset used by the other sections. */
:is(#resume-paper,.template-live-paper) .resume-contact:before{margin-right:14px!important}
:is(#resume-paper,.template-live-paper) .resume-contact:before{box-sizing:border-box!important;width:calc(100% - 14px)!important;margin-right:0!important}
:is(#resume-paper,.template-live-paper) .resume-contact:before{width:100%!important;margin-right:0!important}
:is(#resume-paper,.template-live-paper) .resume-contact:before{width:calc(100% + 10px)!important}

/* Keep the vertical rhythm consistent between text sections and item sections. */
#resume-paper.layout-tpl1 .resume-section,
#resume-paper.layout-tpl2 .resume-section,
#resume-paper.layout-tpl3 .resume-section,
#resume-paper.layout-tpl4 .resume-section,
#resume-paper.layout-tpl5 .resume-section,
#resume-paper.layout-tpl6 .resume-section,
#resume-paper.layout-tpl7 .resume-section,
#resume-paper.layout-tpl8 .resume-section,
#resume-paper.layout-tpl9 .resume-section,
#resume-paper.layout-tpl10 .resume-section,
.template-live-paper.layout-tpl1 .resume-section,
.template-live-paper.layout-tpl2 .resume-section,
.template-live-paper.layout-tpl3 .resume-section,
.template-live-paper.layout-tpl4 .resume-section,
.template-live-paper.layout-tpl5 .resume-section,
.template-live-paper.layout-tpl6 .resume-section,
.template-live-paper.layout-tpl7 .resume-section,
.template-live-paper.layout-tpl8 .resume-section,
.template-live-paper.layout-tpl9 .resume-section,
.template-live-paper.layout-tpl10 .resume-section{
  margin:0!important;
}
#resume-paper .resume-section-body,
.template-live-paper .resume-section-body{display:flow-root;padding:10px 0!important}
#resume-paper .resume-section h3,
.template-live-paper .resume-section h3{margin-bottom:0!important}
#resume-paper .resume-section-body > p,
.template-live-paper .resume-section-body > p{
  margin-top:0!important;
  margin-bottom:8px!important;
}
#resume-paper .resume-section-body > p:last-child,
.template-live-paper .resume-section-body > p:last-child{margin-bottom:0!important}
#resume-paper .resume-section-body > .resume-item:last-child,
.template-live-paper .resume-section-body > .resume-item:last-child{margin-bottom:0!important}

/* Apply the same content padding to every live template and every gallery card. */
#resume-paper.layout-tpl1 .resume-section-body,#resume-paper.layout-tpl2 .resume-section-body,#resume-paper.layout-tpl3 .resume-section-body,#resume-paper.layout-tpl4 .resume-section-body,#resume-paper.layout-tpl5 .resume-section-body,#resume-paper.layout-tpl6 .resume-section-body,#resume-paper.layout-tpl7 .resume-section-body,#resume-paper.layout-tpl8 .resume-section-body,#resume-paper.layout-tpl9 .resume-section-body,#resume-paper.layout-tpl10 .resume-section-body,
.template-live-paper.layout-tpl1 .resume-section-body,.template-live-paper.layout-tpl2 .resume-section-body,.template-live-paper.layout-tpl3 .resume-section-body,.template-live-paper.layout-tpl4 .resume-section-body,.template-live-paper.layout-tpl5 .resume-section-body,.template-live-paper.layout-tpl6 .resume-section-body,.template-live-paper.layout-tpl7 .resume-section-body,.template-live-paper.layout-tpl8 .resume-section-body,.template-live-paper.layout-tpl9 .resume-section-body,.template-live-paper.layout-tpl10 .resume-section-body{
  padding-top:10px!important;
  padding-bottom:10px!important;
}
.template-page[class*="layout-tpl"] .sample-resume-section{
  margin:0!important;
  padding:1% 0!important;
}
.template-page[class*="layout-tpl"] .sample-resume-section h3{margin-bottom:0!important}
.template-page[class*="layout-tpl"] .sample-resume-section p{margin:0!important;padding:1% 1.7%!important}

/* Keep basic and job-intent rows tied to the editor's line-spacing control. */
#resume-paper .resume-contact-field *{
  line-height:var(--resume-line-height,28px)!important;
}
#resume-paper .resume-contact-field{
  min-height:var(--resume-line-height,28px)!important;
  line-height:var(--resume-line-height,28px)!important;
}
#resume-paper:not(.layout-tpl4) .intent-preview-fields p,
#resume-paper.layout-tpl4 .resume-sidebar-intent p{
  min-height:var(--resume-line-height,28px)!important;
  line-height:var(--resume-line-height,28px)!important;
}

/* Keep the right-hand content column on the same line-spacing control as the sidebar. */
.editor-workspace #resume-paper[class*="layout-tpl"] .resume-body .resume-section-body,
.editor-workspace #resume-paper[class*="layout-tpl"] .resume-body .resume-section-body *,
.editor-workspace #resume-paper[class*="layout-tpl"] .resume-body .resume-item-head,
.editor-workspace #resume-paper[class*="layout-tpl"] .resume-body .resume-item-head *{
  line-height:var(--resume-line-height,28px)!important;
}

/* Match the source template's 110px photo column and 100px photo frame. */
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact{
  grid-template-columns:minmax(0,1fr) 110px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-photo{
  box-sizing:border-box!important;
  width:100px!important;
  height:140px!important;
  justify-self:start!important;
  align-self:center!important;
  margin:0!important;
}

/* The reference site applies line spacing to each label and value in these
   rows. Keep the editor control live even when a template has fixed defaults. */
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact-field,
:is(#resume-paper,.template-live-paper).layout-tpl2 .resume-contact-field,
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-contact-field,
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-contact-field,
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-contact-field,
:is(#resume-paper,.template-live-paper).layout-tpl6 .resume-contact-field,
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-contact-field,
:is(#resume-paper,.template-live-paper).layout-tpl8 .resume-contact-field,
:is(#resume-paper,.template-live-paper).layout-tpl9 .resume-contact-field,
:is(#resume-paper,.template-live-paper).layout-tpl10 .resume-contact-field{
  min-height:var(--resume-line-height,28px)!important;
  line-height:var(--resume-line-height,28px)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact-field *,
:is(#resume-paper,.template-live-paper).layout-tpl2 .resume-contact-field *,
:is(#resume-paper,.template-live-paper).layout-tpl3 .resume-contact-field *,
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-contact-field *,
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-contact-field *,
:is(#resume-paper,.template-live-paper).layout-tpl6 .resume-contact-field *,
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-contact-field *,
:is(#resume-paper,.template-live-paper).layout-tpl8 .resume-contact-field *,
:is(#resume-paper,.template-live-paper).layout-tpl9 .resume-contact-field *,
:is(#resume-paper,.template-live-paper).layout-tpl10 .resume-contact-field *{
  line-height:var(--resume-line-height,28px)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1:not(.layout-tpl4) .intent-preview-fields p,
:is(#resume-paper,.template-live-paper).layout-tpl2:not(.layout-tpl4) .intent-preview-fields p,
:is(#resume-paper,.template-live-paper).layout-tpl3:not(.layout-tpl4) .intent-preview-fields p,
:is(#resume-paper,.template-live-paper).layout-tpl5:not(.layout-tpl4) .intent-preview-fields p,
:is(#resume-paper,.template-live-paper).layout-tpl6:not(.layout-tpl4) .intent-preview-fields p,
:is(#resume-paper,.template-live-paper).layout-tpl7:not(.layout-tpl4) .intent-preview-fields p,
:is(#resume-paper,.template-live-paper).layout-tpl8:not(.layout-tpl4) .intent-preview-fields p,
:is(#resume-paper,.template-live-paper).layout-tpl9:not(.layout-tpl4) .intent-preview-fields p,
:is(#resume-paper,.template-live-paper).layout-tpl10:not(.layout-tpl4) .intent-preview-fields p,
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-sidebar-intent p{
  min-height:var(--resume-line-height,28px)!important;
  line-height:var(--resume-line-height,28px)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .intent-preview-fields p *,
:is(#resume-paper,.template-live-paper).layout-tpl2 .intent-preview-fields p *,
:is(#resume-paper,.template-live-paper).layout-tpl3 .intent-preview-fields p *,
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-sidebar-intent p *,
:is(#resume-paper,.template-live-paper).layout-tpl5 .intent-preview-fields p *,
:is(#resume-paper,.template-live-paper).layout-tpl6 .intent-preview-fields p *,
:is(#resume-paper,.template-live-paper).layout-tpl7 .intent-preview-fields p *,
:is(#resume-paper,.template-live-paper).layout-tpl8 .intent-preview-fields p *,
:is(#resume-paper,.template-live-paper).layout-tpl9 .intent-preview-fields p *,
:is(#resume-paper,.template-live-paper).layout-tpl10 .intent-preview-fields p *{
  line-height:var(--resume-line-height,28px)!important;
}

/* Template 1: match the source paper, contact grid, and module rhythm. */
:is(#resume-paper,.template-live-paper).layout-tpl1{
  box-sizing:border-box!important;
  width:820px!important;
  font-size:14px!important;
  line-height:28px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-title{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  color:var(--theme)!important;
  text-align:center!important;
  font-size:25px!important;
  font-weight:400!important;
  line-height:36px!important;
  letter-spacing:normal!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact{
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:110px minmax(0,1fr)!important;
  grid-template-rows:188px!important;
  column-gap:0!important;
  row-gap:0!important;
  width:100%!important;
  height:194px!important;
  margin:0 0 20px!important;
  padding:0!important;
  border:0!important;
  border-bottom:6px solid var(--theme)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact:before{display:none!important;content:none!important}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact-fields{
  box-sizing:border-box!important;
  grid-column:2!important;
  grid-row:1!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-auto-rows:28px!important;
  gap:0!important;
  align-content:start!important;
  width:100%!important;
  height:188px!important;
  padding:10px!important;
  position:static!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact-field{
  display:flex!important;
  align-items:center!important;
  gap:0!important;
  min-width:0!important;
  min-height:28px!important;
  margin:0!important;
  padding:0!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:28px!important;
  letter-spacing:var(--resume-letter-spacing,0px);
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact-field *{line-height:28px!important}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact-label{
  display:inline-flex!important;
  flex:0 0 74px!important;
  width:74px!important;
  gap:0!important;
  font-weight:400!important;
  letter-spacing:var(--resume-letter-spacing,0px);
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact-label span{
  box-sizing:border-box!important;
  display:block!important;
  flex:0 0 60px!important;
  width:60px!important;
  min-width:60px!important;
  text-align:justify!important;
  text-align-last:justify!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact-label i{
  display:block!important;
  flex:0 0 14px!important;
  width:14px!important;
  font-style:normal!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-photo{
  box-sizing:border-box!important;
  grid-column:1!important;
  grid-row:1!important;
  justify-self:start!important;
  align-self:center!important;
  width:100px!important;
  height:140px!important;
  margin:0!important;
  border:0!important;
  background:rgb(230,230,230)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-section{
  display:block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .tpl1-module-heading{
  display:flex!important;
  width:100%!important;
  height:28px!important;
  margin:0!important;
  padding:0!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .tpl1-module-title{
  box-sizing:border-box!important;
  position:relative!important;
  flex:0 0 104px!important;
  width:104px!important;
  height:28px!important;
  padding:0 0 0 20px!important;
  background:var(--theme)!important;
  color:#fff!important;
  font-size:var(--resume-title-size,16px);
  font-weight:var(--resume-title-weight,700);
  line-height:28px!important;
  letter-spacing:var(--resume-letter-spacing,0px);
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .tpl1-module-title:before{
  content:""!important;
  position:absolute!important;
  top:0!important;
  bottom:0!important;
  left:5px!important;
  width:5px!important;
  background:#fff!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .tpl1-module-fill{
  flex:1 1 auto!important;
  height:28px!important;
  background:rgb(240,240,240)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-section-body{
  box-sizing:border-box!important;
  padding:10px!important;
  font-size:14px!important;
  line-height:28px!important;
  letter-spacing:var(--resume-letter-spacing,0px);
}
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-section-body p,
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-section-body .resume-item,
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-section-body .resume-item p{
  margin:0!important;
  padding:0!important;
  font-size:14px!important;
  line-height:28px!important;
}

/* Template 2: use the source's padded, full-bleed blue identity wrapper. */
:is(#resume-paper,.template-live-paper).layout-tpl2 .resume-title{
  box-sizing:border-box!important;
  width:calc(100% + 40px)!important;
  margin:0 -20px!important;
  padding:20px 20px 0!important;
  line-height:32px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl2 .resume-contact{
  box-sizing:border-box!important;
  width:calc(100% + 40px)!important;
  grid-template-columns:110px minmax(0,1fr)!important;
  column-gap:0!important;
  align-items:center!important;
  margin:0 -20px 20px!important;
  padding:0 20px 20px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl2 .resume-contact-fields{
  box-sizing:border-box!important;
  grid-column:2!important;
  grid-row:1!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:0!important;
  position:static!important;
  top:auto!important;
  padding:10px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl2 .resume-contact-field{
  min-width:0!important;
  gap:0!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl2 .resume-photo{
  grid-column:1!important;
  grid-row:1!important;
  width:100px!important;
  height:140px!important;
  justify-self:start!important;
}

/* Rebuild the four highlighted source templates from their captured DOM geometry. */
:is(#resume-paper,.template-live-paper).layout-tpl2 .resume-title{
  box-sizing:border-box!important;
  margin:0 -20px!important;
  padding:20px 20px 0!important;
  background:var(--theme)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl2 .resume-contact{
  margin:0 -20px 20px!important;
  padding:0 20px 20px!important;
  background:var(--theme)!important;
}

/* tpl5: four compact hexagon title glyphs, twin rules and a left rail. */
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-title{
  position:relative!important;
  display:flex!important;
  align-items:flex-start!important;
  gap:16px!important;
  height:26px!important;
  margin:0 0 70px!important;
  padding:0!important;
  border:0!important;
  transform:none!important;
  text-align:left!important;
  font-size:26px!important;
  line-height:26px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-title::after{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  top:48px!important;
  left:-20px!important;
  right:-20px!important;
  height:6px!important;
  border-top:4px solid var(--theme)!important;
  border-bottom:2px solid color-mix(in srgb,var(--theme) 70%,transparent)!important;
  background:none!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-title-hex{
  position:relative!important;
  isolation:isolate!important;
  z-index:1!important;
  display:grid!important;
  place-items:center!important;
  box-sizing:border-box!important;
  flex:0 0 46px!important;
  width:46px!important;
  height:26px!important;
  margin:0!important;
  padding:0!important;
  clip-path:none!important;
  background:transparent!important;
  color:var(--theme)!important;
  font-size:26px!important;
  font-weight:700!important;
  line-height:26px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-title-hex::before,
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-title-hex::after{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  inset:0!important;
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-title-hex::before{background:var(--theme)!important}
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-title-hex::after{
  inset:1.5px!important;
  z-index:-1!important;
  background:#fff!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-layout{position:relative!important}
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-layout::before{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  top:-22px!important;
  bottom:0!important;
  left:0!important;
  width:1px!important;
  background:var(--theme)!important;
}

/* tpl8: source title, 6px full-width divider, then a 20px breathing gap. */
:is(#resume-paper,.template-live-paper).layout-tpl8 .resume-title{
  margin:0!important;
  padding:0!important;
  border:0!important;
  transform:none!important;
  text-align:center!important;
  font-size:25px!important;
  line-height:36px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl8 .resume-layout::before{content:none!important;display:none!important}

/* Template 4: keep the source ribbon's notch in its own box and wrap sidebar values. */
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-contact-field{
  box-sizing:border-box!important;
  width:auto!important;
  min-width:0!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl4 .tpl4-sidebar .resume-contact-field>span:last-child{
  box-sizing:border-box!important;
  flex:1 1 0!important;
  min-width:0!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-sidebar-intent p{
  box-sizing:border-box!important;
  display:flex!important;
  align-items:flex-start!important;
  gap:4px!important;
  width:100%!important;
  min-width:0!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-sidebar-intent p b{
  box-sizing:border-box!important;
  flex:0 0 72px!important;
  width:72px!important;
  white-space:nowrap!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl4 .sidebar-intent-value{
  box-sizing:border-box!important;
  flex:1 1 0!important;
  min-width:0!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-section h3{
  box-sizing:border-box!important;
  position:relative!important;
  overflow:visible!important;
  clip-path:none!important;
  width:100%!important;
  height:32px!important;
  min-width:0!important;
  min-height:32px!important;
  margin:0 0 0 -28px!important;
  padding:0!important;
  background:transparent!important;
  line-height:32px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-section h3 span{
  box-sizing:border-box!important;
  position:relative!important;
  display:block!important;
  overflow:visible!important;
  width:131px!important;
  height:32px!important;
  padding:0 25px!important;
  background:var(--theme)!important;
  clip-path:polygon(0 0,100% 0,82% 50%,100% 100%,0 100%)!important;
  color:#fff!important;
  line-height:32px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-section h3:before{
  content:""!important;
  position:absolute!important;
  z-index:1!important;
  left:0!important;
  top:32px!important;
  width:18px!important;
  height:14px!important;
  background:#2f6488!important;
  clip-path:polygon(0 0,100% 0,100% 100%)!important;
  pointer-events:none!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-section h3 span:after{content:none!important;display:none!important}
.editor-workspace #resume-paper.layout-tpl4 .resume-section h3{background:transparent!important}

/* Final override: template-specific fixed line heights must not block the style control. */
#resume-paper[class*="layout-tpl"] .resume-body .resume-section-body,
#resume-paper[class*="layout-tpl"] .resume-body .resume-section-body *,
#resume-paper[class*="layout-tpl"] .resume-body .resume-item-head,
#resume-paper[class*="layout-tpl"] .resume-body .resume-item-head *{
  line-height:max(var(--resume-line-height,28px),1.4em)!important;
}
.editor-workspace #resume-paper[class*="layout-tpl"] .resume-body .resume-section-body,
.editor-workspace #resume-paper[class*="layout-tpl"] .resume-body .resume-section-body *,
.editor-workspace #resume-paper[class*="layout-tpl"] .resume-body .resume-item-head,
.editor-workspace #resume-paper[class*="layout-tpl"] .resume-body .resume-item-head *{
  line-height:max(var(--resume-line-height,28px),1.4em)!important;
}

/* Template 4's lower sidebar blocks also follow the line-spacing control. */
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent p,
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent p *,
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro>div,
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro>div *{
  line-height:max(var(--resume-line-height,28px),1.4em)!important;
}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent p{
  box-sizing:border-box!important;
  min-height:max(var(--resume-line-height,28px),1.5em)!important;
  height:auto!important;
  margin-top:0!important;
  margin-bottom:0!important;
  padding:0!important;
}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent>div{
  display:grid!important;
  grid-auto-rows:min-content!important;
  row-gap:0!important;
}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-field,
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-field *{
  line-height:max(var(--resume-line-height,28px),1.4em)!important;
}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-field{
  min-height:max(var(--resume-line-height,28px),1.5em)!important;
  height:auto!important;
}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-fields{
  height:auto!important;
  min-height:0!important;
  flex:0 0 auto!important;
}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro>div p{
  margin-top:0!important;
  margin-bottom:0!important;
}

/* Match the reference DOM: the photo and title are followed by one shared
   sidebar content wrapper containing basics, intent, and introduction. */
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar-content{
  display:block!important;
  order:2!important;
  flex:0 0 auto!important;
  width:100%!important;
  min-width:0!important;
}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar-content .resume-contact-fields{
  box-sizing:border-box!important;
  height:auto!important;
  min-height:0!important;
  flex:none!important;
  margin:0!important;
  padding:0!important;
}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar-content .resume-contact-field{
  min-height:0!important;
  height:auto!important;
  margin:0 10px!important;
  padding:4px 0!important;
  border-bottom:1px solid #fff!important;
  line-height:var(--resume-line-height,28px)!important;
}
.editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar-content .resume-contact-field *{
  line-height:inherit!important;
}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent{
  box-sizing:border-box!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent h3{
  box-sizing:border-box!important;
  height:auto!important;
  min-height:0!important;
  margin:10px 10px 0!important;
  padding:0 0 10px!important;
  line-height:1!important;
}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent>div{
  display:block!important;
  height:auto!important;
  min-height:0!important;
}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent p{
  box-sizing:border-box!important;
  height:auto!important;
  min-height:0!important;
  margin:0 10px!important;
  padding:4px 0!important;
  border-bottom:1px solid #fff!important;
  line-height:var(--resume-line-height,28px)!important;
}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent p *{
  line-height:inherit!important;
}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro{
  box-sizing:border-box!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro h3{
  box-sizing:border-box!important;
  height:auto!important;
  min-height:0!important;
  margin:0 10px!important;
  padding:20px 0 10px!important;
  line-height:1!important;
}
.editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro>div{
  min-height:0!important;
  padding:0!important;
  line-height:max(var(--resume-line-height,28px),1.4em)!important;
}

/* Template gallery uses the downloaded, original per-template DOM inside isolated preview frames. */
.template-live-frame.template-source-frame-wrap{position:relative;width:100%;height:auto;aspect-ratio:542.2/767.015;overflow:hidden;background:#fff;}
.template-source-frame{position:absolute;inset:0 auto auto 0;width:542.2px;height:767.015px;border:0;display:block;transform-origin:top left;background:#fff;}

.template-source-frame{pointer-events:none;}

/* Template 1 source wraps each module with margin-top: 0. The generic editor
   section margin was adding an 18px gap after basic info and accumulating
   between later modules, shifting the intent block and everything below it. */
#resume-paper.layout-tpl1 .resume-contact{margin-bottom:20px!important}
#resume-paper.layout-tpl1 .resume-body>.resume-section{margin-top:0!important}
#resume-paper.layout-tpl1 .resume-body{margin-left:0!important;margin-right:0!important}
#resume-paper.layout-tpl1 .resume-contact:before{width:100%!important}

/* The source templates mark every module heading as bold. Keep that weight
   independent from the resume title control and allow synthesis for the
   regular-only resume font used by the editor. */
#resume-paper[class*="layout-tpl"]{font-synthesis:weight!important}
#resume-paper[class*="layout-tpl"] h3,
#resume-paper[class*="layout-tpl"] h3 *{
  font-weight:700!important;
  font-synthesis:weight!important;
}

/* Template 1 uses the same solid black, bold heading treatment for every strip. */
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-contact:before,
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-section h3,
:is(#resume-paper,.template-live-paper).layout-tpl1 .resume-section h3 *{
  color:#000!important;
  font-family:inherit!important;
  font-size:var(--resume-title-size,16px);
  font-weight:var(--resume-title-weight,700);
  font-synthesis:weight!important;
}
.template-page.layout-tpl1 .sample-basic-heading,
.template-page.layout-tpl1 .sample-resume-section h3{
  color:#000!important;
  font-weight:700!important;
  font-synthesis:weight!important;
}

/* The source templates use 28px rows for profile fields, independent of the
   editable body line-spacing setting. Keep the live resume at the same rhythm. */
#resume-paper[class*="layout-tpl"] .resume-contact-field,
#resume-paper[class*="layout-tpl"] .resume-contact-field *{
  min-height:28px!important;
  line-height:28px!important;
}

/* Template 2's source banner is one padded blue block: the profile rows are
   28px tall, so the live block ends at the same baseline as the gallery card. */
#resume-paper.layout-tpl2 .resume-contact-fields,
#resume-paper.layout-tpl2 .resume-contact-field,
#resume-paper.layout-tpl2 .resume-contact-field *{
  line-height:28px!important;
}

/* The generic paper-width safety rule was capping tpl2's contact half of the
   banner at the inset content width. Keep both halves equally full-bleed. */
#resume-paper.layout-tpl2 .resume-title,
#resume-paper.layout-tpl2 .resume-contact{
  width:calc(100% + 40px)!important;
  max-width:none!important;
}

/* tpl3 source badges sit 5px inside the paper edge after their -15px offset.
   The editor's saved page padding can be smaller than the source's 20px, so
   preserve that visible inset instead of letting the rounded badges touch the edge. */
#resume-paper.layout-tpl3 .resume-contact:before,
#resume-paper.layout-tpl3 .resume-section h3 span{
  transform:translateX(-9px)!important;
}

/* Source tpl5/tpl7 place profile text 10px to the right of the guide rule. */
#resume-paper.layout-tpl5 .resume-contact-fields,
#resume-paper.layout-tpl7 .resume-contact-fields{
  padding-left:10px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-section-body{
  padding-left:10px!important;
  padding-right:14px!important;
}

/* Source tpl8 has no separate “基本信息” ribbon; its blue divider follows
   the photo and profile grid, before 求职意向. */
#resume-paper.layout-tpl8 .resume-contact:before{
  content:none!important;
  display:none!important;
}
#resume-paper.layout-tpl8 .resume-contact:after{
  content:none!important;
  display:none!important;
}
#resume-paper.layout-tpl8 .resume-contact{
  border-bottom:6px solid var(--theme)!important;
}
#resume-paper.layout-tpl10 .resume-contact:before{
  content:none!important;
  display:none!important;
}

/* Keep the short source ribbons after the shared profile-band width rule. */
:is(#resume-paper,.template-live-paper).layout-tpl5 .resume-contact:before{
  box-sizing:border-box!important;
  width:112px!important;
  max-width:100%!important;
  margin-right:0!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-contact:before{
  box-sizing:border-box!important;
  width:max-content!important;
  max-width:100%!important;
  margin-right:0!important;
}

/* Source template 10 keeps a segmented 基本信息 heading above its contact grid. */
:is(#resume-paper,.template-live-paper).layout-tpl10 .resume-contact:before{
  content:"基本信息"!important;
  display:block!important;
  grid-column:1/-1!important;
  box-sizing:border-box!important;
  width:100%!important;
  height:28px!important;
  min-height:28px!important;
  margin:0!important;
  padding:0 20px!important;
  background:linear-gradient(90deg,var(--theme) 0 16%,color-mix(in srgb,var(--theme) 20%,white) 16%)!important;
  color:#fff!important;
  font-size:var(--resume-title-size,16px);
  font-weight:var(--resume-title-weight,700);
  line-height:28px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl8 .resume-section h3 span{
  position:relative!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl8 .resume-section h3 span:before{
  content:""!important;
  position:absolute!important;
  top:0!important;
  left:5px!important;
  width:5px!important;
  height:28px!important;
  background:#fff!important;
}

/* Source template 9's identity panel is full-bleed; its 20px inset belongs
   to the contents, so do not let the shared max-width guard clip the right edge. */
:is(#resume-paper,.template-live-paper).layout-tpl9 .resume-title,
:is(#resume-paper,.template-live-paper).layout-tpl9 .resume-contact{
  max-width:none!important;
  width:calc(100% + 40px)!important;
}

/* tpl7 editor header reconstructed from template-07.html's original DOM:
   the source uses two flex items and CSS border triangles, not a clipped bar. */
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-title{
  box-sizing:content-box!important;
  position:relative!important;
  z-index:1!important;
  height:32px!important;
  margin:0 0 60px!important;
  padding:0!important;
  border:0!important;
  transform:none!important;
  text-align:left!important;
  font-size:32px!important;
  line-height:1!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-title::after{content:none!important;display:none!important}
:is(#resume-paper,.template-live-paper).layout-tpl7 .tpl7-banner{
  position:absolute!important;
  z-index:-1!important;
  top:53px!important;
  left:0!important;
  right:0!important;
  height:18px!important;
  display:flex!important;
  justify-content:space-between!important;
  align-items:flex-end!important;
  pointer-events:none!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .tpl7-banner-main{
  position:relative!important;
  display:block!important;
  flex:none!important;
  width:calc(70% - 25px)!important;
  height:18px!important;
  background:var(--theme)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .tpl7-banner-main::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:100%!important;
  top:0!important;
  width:0!important;
  height:0!important;
  overflow:hidden!important;
  border-style:solid!important;
  border-width:18px 0 0 18px!important;
  border-color:transparent transparent transparent var(--theme)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .tpl7-banner-tail{
  position:relative!important;
  display:block!important;
  flex:none!important;
  width:30%!important;
  height:12px!important;
  background:var(--theme)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .tpl7-banner-tail::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:-12px!important;
  top:0!important;
  width:0!important;
  height:0!important;
  overflow:hidden!important;
  border-style:solid!important;
  border-width:12px 0 0 12px!important;
  border-color:var(--theme) transparent transparent!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-layout{position:relative!important}
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-layout::before{
  content:""!important;
  position:absolute!important;
  top:-32px!important;
  bottom:0!important;
  left:0!important;
  width:1px!important;
  background:var(--theme)!important;
}

/* Template 9 source details: diagonal identity cut and blue experience metadata. */
:is(#resume-paper,.template-live-paper).layout-tpl9 .resume-contact{position:relative!important;overflow:visible!important}
:is(#resume-paper,.template-live-paper).layout-tpl9 .tpl9-identity-cutout{
  display:block!important;position:absolute!important;z-index:2!important;left:0!important;bottom:-1px!important;
  width:100%!important;height:30px!important;background:#fff!important;
  clip-path:polygon(7% 100%,100% 0,100% 100%)!important;pointer-events:none!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl9 .resume-section h3{
  height:28px!important;min-height:28px!important;margin:0!important;padding:0!important;border:0!important;
  background:transparent!important;color:#111!important;font-weight:var(--resume-title-weight,700);line-height:28px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl9 .resume-item-head{
  height:28px!important;min-height:28px!important;margin:0 0 10px!important;
  color:var(--theme)!important;font-weight:700!important;line-height:28px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl9 .resume-item-head>span{color:var(--theme)!important;font-weight:700!important}
:is(#resume-paper,.template-live-paper).layout-tpl9 .resume-section-body{
  padding-left:10px!important;
  padding-right:10px!important;
}

/* tpl7 section headings use the same three-node ribbon as the source DOM. */
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-section h3{
  display:block!important;
  box-sizing:border-box!important;
  position:relative!important;
  width:100%!important;
  height:28px!important;
  min-height:28px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-bottom:1px solid var(--theme)!important;
  background:transparent!important;
  color:var(--theme)!important;
  font-size:var(--resume-title-size,16px);
  line-height:28px!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-section h3::before,
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-section h3::after{
  content:none!important;
  display:none!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .tpl7-module-title{
  box-sizing:content-box!important;
  display:inline-block!important;
  position:relative!important;
  padding-left:25px!important;
  padding-right:45px!important;
  transform:translateX(-15px)!important;
  color:#fff!important;
  background:var(--theme)!important;
  font-size:var(--resume-title-size,16px);
  font-weight:var(--resume-title-weight,700);
  line-height:28px!important;
  white-space:nowrap!important;
  clip-path:polygon(0 0,calc(100% - 24px) 0,100% 100%,0 100%)!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .tpl7-module-shadow{
  display:block!important;
  position:absolute!important;
  left:-15px!important;
  top:100%!important;
  width:0!important;
  height:0!important;
  overflow:hidden!important;
  border-style:solid!important;
  border-width:9px 0 0 16px!important;
  border-color:color-mix(in srgb,var(--theme) 80%,black) transparent transparent!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .tpl7-module-cutout{
  display:none!important;
}

/* tpl7's profile block has the same explicit module ribbon as the other
   sections. Remove the older pseudo-ribbon and its detached divider. */
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-contact:before,
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-contact:after{
  content:none!important;
  display:none!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl7 .resume-contact>.tpl7-module-heading{
  grid-column:1 / -1!important;
  width:100%!important;
  margin:0!important;
}

/* R004: mobile resume shell and paper fit. */
.mobile-menu-toggle{display:none}
#page-resume.active .editor-workspace #resume-paper{box-sizing:border-box;width:820px!important;min-width:820px!important;max-width:none!important;flex:0 0 820px!important}
@media(max-width:1280px){
  body:has(#page-resume.active){overflow:hidden}
  body:has(#page-resume.active) .topbar{height:64px;min-height:64px;padding:0 20px;gap:0;flex-wrap:nowrap;position:sticky;top:0;z-index:40}
  body:has(#page-resume.active) .topbar .mobile-menu-toggle{display:grid;place-items:center;position:absolute;left:20px;top:22px;width:20px;height:20px;padding:0;border:0;background:transparent;color:#333}
  body:has(#page-resume.active) .mobile-menu-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
  body:has(#page-resume.active) .topbar .brand{position:absolute;left:calc(50% - 95.545px);top:14px;width:149.09px;height:36px;display:block}
  body:has(#page-resume.active) .topbar .brand-logo{display:block;width:149.09px;height:36px;object-fit:contain}
  body:has(#page-resume.active) .topbar .main-nav{display:none}
  body:has(#page-resume.active) .topbar .top-actions{height:64px;margin-left:auto;display:flex;align-items:center;gap:0}
  body:has(#page-resume.active) .topbar .login-btn{display:block;box-sizing:border-box;width:62px;height:33.59px;padding:6px 16px;border:0;border-radius:9999px;background:#fff;color:rgb(22,119,255);font-size:14px;font-weight:600;line-height:19.6px}
  body:has(#page-resume.active) .topbar .top-actions>:not(.login-btn){display:none}
  body:has(#page-resume.active) #page-resume{height:calc(100dvh - 64px);min-height:0;padding:0;overflow:hidden}
  body:has(#page-resume.active) #page-resume>.editor-toolbar,
  body:has(#page-resume.active) #page-resume .form-panel,
  body:has(#page-resume.active) #page-resume .form-head,
  body:has(#page-resume.active) #page-resume .preview-head{display:none!important}
  body:has(#page-resume.active) #page-resume>.editor-workspace{display:block;height:100%;margin:0}
  body:has(#page-resume.active) #page-resume .preview-area{height:100%;padding:0 16px 12px;overflow-x:hidden;overflow-y:auto;background:#fff}
  body:has(#page-resume.active) #page-resume .resume-canvas-wrap{display:flex;justify-content:center;align-items:flex-start;width:100%;min-height:100%;padding:0;overflow:visible}
  body:has(#page-resume.active) #page-resume #resume-paper{transform-origin:top left!important;margin:0!important}
  body:has(#page-resume.active) .floating-help{display:none}
  body:has(#page-resume.active) .floating-help--mobile{display:flex;position:fixed;z-index:50;right:24px;bottom:48px;width:40px;height:264.06px;flex-direction:column;border-radius:8px;background:#fff;box-shadow:0 2px 10px #17243b1a;overflow:hidden}
  body:has(#page-resume.active) .floating-help--mobile button{box-sizing:border-box;flex:1 1 0;height:auto;min-height:0;padding:4px 0;border:0;border-bottom:1px solid #f0f1f3;background:#fff;color:rgba(0,0,0,0.88);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;font-weight:400;line-height:18.86px}
  body:has(#page-resume.active) .floating-help--mobile button:first-child{border-radius:8px 8px 0 0}
  body:has(#page-resume.active) .floating-help--mobile button:last-child{border:0;border-radius:0 0 8px 8px}
  body:has(#page-resume.active) .floating-help--mobile button:nth-child(2){background:rgb(22,119,255);color:#fff}
  body:has(#page-resume.active) .floating-help--mobile svg{width:14px;height:14px;flex:none;fill:currentColor;stroke:none}
  .mobile-drawer:not([hidden]){display:block}
  .mobile-drawer-scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:55}
  .mobile-drawer-panel{position:fixed;top:0;left:0;width:378px;max-width:100vw;height:100%;background:#fff;z-index:56;box-shadow:8px 0 24px rgba(0,0,0,.08);display:flex;flex-direction:column}
  .mobile-drawer-head{position:relative;height:56px;flex:none;border-bottom:1px solid rgb(240,240,240)}
  .mobile-drawer-close{position:absolute;left:26px;top:18px;width:20px;height:20px;padding:0;border:0;background:transparent;display:grid;place-items:center;color:#8c8c8c;cursor:pointer}
  .mobile-drawer-close svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}
  .mobile-drawer-nav{padding:15px 24px 0;overflow-y:auto}
  .mobile-drawer-nav .drawer-link{position:relative;display:block;width:330px;max-width:100%;padding:12px 0;border:0;background:transparent;text-align:left;font-size:18px;font-weight:400;line-height:24px;letter-spacing:0;color:rgba(0,0,0,.88);cursor:pointer}
  .mobile-drawer-nav .drawer-link.active{color:rgb(22,119,255)}
  .mobile-drawer-nav .drawer-link.active::after{content:"";position:absolute;left:0;right:0;bottom:9px;height:2px;background:currentColor}
  body.drawer-open{overflow:hidden}
}
.mobile-drawer{display:none}

/* R006: keep the desktop sheet aligned and let the template chooser use the full target height. */
@media (min-width:1281px){.editor-workspace .preview-area{margin-left:-2px;margin-right:2px}}
.floating-help--mobile{display:none}

/* R014: match the measured responsive template gallery geometry. */
.modal:has(.template-gallery){
  width:90vw;
  height:92vh;
  max-height:92vh;
  display:flex;
  flex-direction:column;
}
.modal:has(.template-gallery) .modal-body{
  flex:1;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:2px 29px 16px 24px;
  scrollbar-gutter:stable;
}
.modal:has(.template-gallery) .modal-footer{flex:none}
.modal:has(.template-gallery) .template-gallery{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:20px;
  align-items:start;
}
@media (min-width: 2267px){
  .modal:has(.template-gallery) .template-gallery{
    grid-template-columns:repeat(4, minmax(0,1fr));
  }
}

/* R015: match the toolbar filename field to the 32px control height. */
#page-resume #resume-name{
  height:32px;
  box-sizing:border-box;
}
@media (min-width:1281px){
  #page-resume .toolbar-left .filename input{
    width:287px;
    min-width:287px;
    flex:0 0 287px;
    margin-left:-1px;
    margin-top:-1px;
    margin-bottom:-1px;
  }
  #page-resume .toolbar-left .filename{
    overflow:visible;
  }
}

/* R017: match the source modal height on short screens and keep its footer compact. */
@media (max-height:800px){
  .modal:has(.template-gallery){
    height:95vh;
    max-height:95vh;
  }
}
.modal:has(.template-gallery) .modal-footer{
  box-sizing:border-box;
  height:32px;
  min-height:32px;
  margin:0 24px 20px;
  padding:0;
  border:0;
  gap:8px;
}
.modal:has(.template-gallery) .modal-footer .btn{
  box-sizing:border-box;
  width:64px;
  min-width:64px;
  height:32px;
  min-height:32px;
  padding:0;
  line-height:30px;
}
.style-popover.resume-style-popover{
  box-sizing:border-box;
  width:325px;
  height:auto;
}


/* Shared field structure for all live resume templates. */
#resume-paper .intent-preview-fields{
  display:flex!important;
  flex-flow:row wrap!important;
  align-items:center!important;
  gap:0!important;
  box-sizing:border-box!important;
  padding:10px!important;
}
#resume-paper .resume-sidebar-intent>div.intent-preview-fields{
  display:flex!important;
  flex-flow:row wrap!important;
  align-items:center!important;
  padding:10px!important;
}
#resume-paper .intent-preview-row{
  display:inline-flex!important;
  flex:0 0 50%!important;
  width:50%!important;
  min-width:0!important;
  align-items:center!important;
  box-sizing:border-box!important;
  font-size:14px!important;
  line-height:28px!important;
  letter-spacing:var(--resume-letter-spacing,0px);
}
#resume-paper .intent-preview-label{
  display:inline-flex!important;
  flex:0 0 60px!important;
  min-width:60px!important;
  align-items:center!important;
  white-space:nowrap!important;
  font-size:14px!important;
  line-height:28px!important;
}
#resume-paper .intent-preview-label-characters{
  display:inline-flex!important;
  flex:1 1 auto!important;
  justify-content:space-between!important;
  min-width:0!important;
}
#resume-paper .intent-preview-colon{
  flex:none!important;
  font-size:14px!important;
  line-height:28px!important;
}
#resume-paper .intent-preview-value{
  flex:1 1 0%!important;
  min-width:0!important;
  font-size:14px!important;
  line-height:28px!important;
}

/* Template 5 title ornaments: three rotated side-stroke rectangles per glyph. */
#resume-paper.layout-tpl5 .resume-title{
  display:block!important;
  position:relative!important;
  box-sizing:border-box!important;
  width:100%!important;
  height:26px!important;
  min-height:26px!important;
  margin:0 0 70px!important;
  padding:0!important;
  border:0!important;
  transform:none!important;
  overflow:visible!important;
  color:var(--theme)!important;
  text-align:left!important;
  font-size:26px!important;
  font-weight:700!important;
  line-height:26px!important;
  letter-spacing:var(--resume-letter-spacing,0px);
}
#resume-paper.layout-tpl5 .resume-title::before,
#resume-paper.layout-tpl5 .resume-title::after{content:none!important;display:none!important}
#resume-paper.layout-tpl5 .resume-title-hex{
  position:relative!important;
  display:block!important;
  float:left!important;
  box-sizing:border-box!important;
  width:46px!important;
  height:26px!important;
  margin:0 16px 0 0!important;
  padding:0!important;
  border:0!important;
  clip-path:none!important;
  background:transparent!important;
  color:var(--theme)!important;
  text-align:center!important;
  font-size:26px!important;
  font-weight:700!important;
  line-height:26px!important;
}
#resume-paper.layout-tpl5 .resume-title-hex>span{
  position:absolute!important;
  top:0!important;
  left:0!important;
  display:block!important;
  box-sizing:border-box!important;
  width:100%!important;
  height:100%!important;
  overflow:hidden!important;
  border:0!important;
  border-left:1px solid var(--theme)!important;
  border-right:1px solid var(--theme)!important;
  background:transparent!important;
  transform:none!important;
}
#resume-paper.layout-tpl5 .resume-title-hex>span:nth-of-type(2){transform:rotate(-60deg)!important}
#resume-paper.layout-tpl5 .resume-title-hex>span:nth-of-type(3){transform:rotate(-120deg)!important}

/* Template 5 module heading uses a continuous center rule and a blue label. */
#resume-paper.layout-tpl5 .tpl5-module-heading{
  position:relative!important;
  width:100%!important;
  height:30px!important;
  box-sizing:border-box!important;
  margin:0 0 11px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--theme)!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:30px!important;
}
#resume-paper.layout-tpl5 .tpl5-module-rule{
  position:absolute!important;
  z-index:1!important;
  top:50%!important;
  left:0!important;
  right:0!important;
  height:1px!important;
  background:var(--theme)!important;
  transform:translateY(-50%)!important;
}
#resume-paper.layout-tpl5 .tpl5-module-label{
  position:relative!important;
  z-index:2!important;
  display:inline-block!important;
  box-sizing:border-box!important;
  height:29px!important;
  padding:0 15px!important;
  background:var(--theme)!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:29px!important;
}
/* Override older per-template intent grids with the shared half-width field rows. */
#resume-paper:not(.layout-tpl4) .intent-preview-fields{
  display:flex!important;
  flex-flow:row wrap!important;
  grid-template-columns:none!important;
  column-gap:0!important;
  row-gap:0!important;
}
#resume-paper.layout-tpl4 .resume-sidebar-intent>div.intent-preview-fields{
  display:flex!important;
  flex-flow:row wrap!important;
  grid-template-columns:none!important;
  column-gap:0!important;
  row-gap:0!important;
}
#resume-paper.layout-tpl5 .resume-contact::before,
#resume-paper.layout-tpl5 .resume-contact::after{
  content:none!important;
  display:none!important;
}
#resume-paper.layout-tpl5 .resume-contact>.tpl5-module-heading{grid-column:1/-1!important;width:100%!important}

/* Match the source's collapsed floating title row and its separate blue rule. */
#resume-paper.layout-tpl5 .resume-title{
  height:0!important;
  min-height:0!important;
}
#resume-paper.layout-tpl5 .resume-title::after{
  content:""!important;
  position:absolute!important;
  display:block!important;
  top:48px!important;
  right:0!important;
  left:0!important;
  height:4px!important;
  background:#3978a3!important;
}

/* The source uses a 28px profile row rhythm in these templates. */
#resume-paper.layout-tpl5 .resume-contact-fields,
#resume-paper.layout-tpl6 .resume-contact-fields,
#resume-paper.layout-tpl7 .resume-contact-fields,
#resume-paper.layout-tpl8 .resume-contact-fields,
#resume-paper.layout-tpl10 .resume-contact-fields{
  row-gap:0!important;
}

/* Source template 1 reserves one row for its basic-information heading,
   then places the six 28px lines on the left and the portrait on the right. */
#resume-paper.layout-tpl1 .resume-title{margin-bottom:20px!important}
#resume-paper.layout-tpl1 .resume-contact{
  grid-template-columns:minmax(0,1fr) 110px!important;
  grid-template-rows:28px 188px!important;
  column-gap:0!important;
  row-gap:0!important;
  margin:0!important;
  padding:0!important;
}
#resume-paper.layout-tpl1 .resume-contact::before{
  content:"基本信息"!important;
  display:block!important;
  grid-column:1/-1!important;
  grid-row:1!important;
  box-sizing:border-box!important;
  width:100%!important;
  height:28px!important;
  margin:0!important;
  padding:0 20px!important;
  background:#d7e6ef!important;
  color:#2c4758!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:28px!important;
}
#resume-paper.layout-tpl1 .resume-contact-fields{
  grid-column:1!important;
  grid-row:2!important;
}
#resume-paper.layout-tpl1 .resume-photo{
  grid-column:2!important;
  grid-row:2!important;
  justify-self:end!important;
  align-self:center!important;
  margin:0!important;
}
#resume-paper.layout-tpl1 .resume-contact{margin-bottom:0!important}
#resume-paper.layout-tpl1 .resume-contact-field:nth-child(even){left:0!important;gap:0!important}

/* Template 2's blue identity banner ends 20px higher on the source site. */
#resume-paper.layout-tpl2 .resume-layout{
  position:relative!important;
  top:-20px!important;
}
#resume-paper.layout-tpl2 .resume-title{position:relative!important;top:-20px!important}
#resume-paper.layout-tpl2 .resume-contact-field:nth-child(even){left:0!important}

/* Template-specific vertical offsets are measured against the live source at
   1920px: keep the 28px rows intact and align the sections between them. */
#resume-paper.layout-tpl1 .resume-body{position:static!important;top:auto!important;margin-top:22px!important}
#resume-paper.layout-tpl4{position:relative!important;top:0!important}
#resume-paper.layout-tpl4 .tpl4-sidebar .resume-contact-fields{position:relative!important;top:0!important}
#page-resume .editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar-content .resume-sidebar-intent{margin-top:30px!important}
#page-resume .editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar-content .resume-sidebar-intro{margin-top:38px!important}
#resume-paper.layout-tpl4 .resume-sidebar-intent .intent-preview-row{
  flex:0 0 100%!important;
  width:100%!important;
  height:37px!important;
  padding:4px 0!important;
}
#resume-paper.layout-tpl5 .resume-contact-fields{position:relative!important;top:-17px!important}
#resume-paper.layout-tpl5 .resume-contact-fields{column-gap:0!important}
#resume-paper.layout-tpl5 .resume-body{position:relative!important;top:-41px!important}
#resume-paper.layout-tpl5 .resume-body>.resume-section:nth-child(2){position:relative!important;top:-11px!important}
#resume-paper.layout-tpl6 .resume-contact-fields{position:relative!important;top:-3px!important}
#resume-paper.layout-tpl6 .resume-body{position:relative!important;top:-23px!important}
#resume-paper.layout-tpl7 .resume-contact-fields{position:relative!important;top:-6px!important}
#resume-paper.layout-tpl7 .resume-body{position:relative!important;top:-39px!important}
#resume-paper.layout-tpl8 .resume-contact-fields{position:relative!important;top:10px!important}
#resume-paper.layout-tpl8 .resume-body{position:relative!important;top:-15px!important}
#resume-paper.layout-tpl8 .resume-body>.resume-section:nth-child(2){position:relative!important;top:-17px!important}
#resume-paper.layout-tpl9 .resume-body{position:relative!important;top:-20px!important}
#resume-paper.layout-tpl9 .resume-contact-fields{position:relative!important;top:10px!important;row-gap:0!important}
#resume-paper.layout-tpl9 .resume-contact{padding-bottom:70px!important}
#resume-paper.layout-tpl10 .resume-contact-fields{position:relative!important;top:-6px!important}
#resume-paper.layout-tpl10 .resume-body{position:relative!important;top:-39px!important}

/* Align the first education entry's baseline without moving later modules. */
#resume-paper.layout-tpl1 .resume-body>.resume-section:nth-of-type(3),
#resume-paper.layout-tpl2 .resume-body>.resume-section:nth-of-type(3),
#resume-paper.layout-tpl7 .resume-body>.resume-section:nth-of-type(3),
#resume-paper.layout-tpl10 .resume-body>.resume-section:nth-of-type(3){position:relative!important;top:-8px!important}
#resume-paper.layout-tpl5 .resume-body>.resume-section:nth-of-type(3){position:relative!important;top:-30px!important}
#resume-paper.layout-tpl6 .resume-body>.resume-section:nth-of-type(3){position:static!important;top:auto!important}
#resume-paper.layout-tpl8 .resume-body>.resume-section:nth-of-type(3){position:relative!important;top:-42px!important}

/* R022: restore template 1's source ribbon and title styles. The 6px border
   previously used to imitate another template's divider crossed the final
   contact row and was visible nowhere on the source template. */
#resume-paper.layout-tpl1 .resume-title{
  color:#000!important;
  font-size:25px!important;
  font-weight:400!important;
  line-height:36px!important;
}
#resume-paper.layout-tpl1 .resume-contact{
  border-bottom:0!important;
}
#resume-paper.layout-tpl1 .resume-contact::before{
  background:rgba(57,120,163,.2)!important;
  color:#000!important;
  font-size:16px!important;
  font-weight:700!important;
  padding-left:20px!important;
}
#resume-paper.layout-tpl1 .tpl1-module-heading{
  position:relative!important;
  display:block!important;
  height:28px!important;
  background:rgba(57,120,163,.2)!important;
}
#resume-paper.layout-tpl1 .tpl1-module-title{
  display:inline-block!important;
  width:auto!important;
  min-width:0!important;
  flex:none!important;
  padding:0 20px!important;
  background:transparent!important;
  color:#000!important;
  font-size:var(--resume-title-size,16px);
  font-weight:var(--resume-title-weight,700);
  line-height:28px!important;
}
#resume-paper.layout-tpl1 .tpl1-module-title::before{display:none!important;content:none!important}
#resume-paper.layout-tpl1 .tpl1-module-fill{display:none!important}
#resume-paper.layout-tpl1 .resume-body>.resume-section:nth-of-type(3){top:0!important}
#resume-paper.layout-tpl1 .resume-item-head{margin:1px 0 9px!important}

/* Keep a subtle one-pixel divider directly below each tpl1 section band.
   Section margins remain zero and the existing 10px body padding fixes the gap. */
#resume-paper.layout-tpl1 .resume-contact::before,
#resume-paper.layout-tpl1 .tpl1-module-heading{
  border-bottom:1px solid #d9d9d9!important;
}

/* Keep the R021 four-pixel separator exactly four pixels tall; an earlier
   layered rule retained its six-pixel bottom border and made it ten pixels. */
#resume-paper.layout-tpl5 .resume-title::after{
  box-sizing:border-box!important;
  height:4px!important;
  border:0!important;
  background:#3978a3!important;
}
#resume-paper.layout-tpl5 .tpl5-module-label::after{
  content:""!important;
  position:absolute!important;
  top:0!important;
  right:-14px!important;
  width:14px!important;
  height:29px!important;
  background:var(--theme)!important;
  clip-path:polygon(0 0,100% 50%,0 100%)!important;
}
#resume-paper.layout-tpl5 .resume-section-body{padding:0 10px!important}
/* Replace R021's stacked negative positioning on tpl5 with normal section
   spacing. It placed the intro/education headings over the preceding text. */
#resume-paper.layout-tpl5 .resume-body{top:-31px!important}
#resume-paper.layout-tpl5 .resume-body>.resume-section:nth-child(2){top:0!important;margin-top:7px!important}
#resume-paper.layout-tpl5 .resume-body>.resume-section:nth-child(3){top:0!important;margin-top:12px!important}

/* R022 follow-up: source templates 8 and 9 use a 100×140 portrait.  The
   shared editor portrait default is smaller, which is visible even with both
   pages rendered in the same locked font. */
#resume-paper.layout-tpl8 .resume-photo{
  width:100px!important;
  height:140px!important;
  transform:translateY(24px)!important;
}
#resume-paper.layout-tpl8 .resume-section h3{
  display:block!important;
  box-sizing:border-box!important;
  width:100%!important;
  height:28px!important;
  min-height:28px!important;
  margin:17px 0 0!important;
  padding:0 10px!important;
  border:0!important;
  border-left:4px solid #3978a3!important;
  background:#eee!important;
  color:#111!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:28px!important;
}
#resume-paper.layout-tpl8 .resume-section h3 span{
  position:static!important;
  padding:0!important;
  background:transparent!important;
  color:inherit!important;
}
#resume-paper.layout-tpl8 .resume-section h3 span::before{content:none!important;display:none!important}

/* Template 9's source identity panel is 20px shorter than the current local
   panel.  Move the flowing sections by the same amount and size the portrait
   to match the source box; the independent cutout remains attached to the panel. */
#resume-paper.layout-tpl9 .resume-title{font-weight:700!important}
#resume-paper.layout-tpl9 .resume-contact{
  margin-bottom:13px!important;
  padding-bottom:50px!important;
}
#resume-paper.layout-tpl9 .resume-body{top:-20px!important}
#resume-paper.layout-tpl9 .resume-photo{
  position:relative!important;
  left:-10px!important;
  top:24px!important;
  width:100px!important;
  height:140px!important;
}

/* The captured source uses a 100×140 gray box for the stock photo placeholder
   in every template. Scope this correction to that asset so saved portraits
   keep their existing dimensions and crop. */
#resume-paper[class*="layout-tpl"] img.resume-photo{
  font-size:0!important;
  color:transparent!important;
}
#resume-paper[class*="layout-tpl"] img.resume-photo[src*="resume-photo-placeholder"],
#resume-paper[class*="layout-tpl"] img.resume-photo[src*="fill=%22%23e6e6e6%22"]{
  box-sizing:border-box!important;
  width:100px!important;
  height:140px!important;
  border:0!important;
  background:#e6e6e6!important;
}

/* R022 measured tpl1 heading styles against the live reference DOM. */
@media (min-width:1200px){
  .editor-workspace #resume-paper.layout-tpl1 .resume-title{
    box-sizing:border-box!important;
    width:100%!important;
    height:36px!important;
    margin:0 0 20px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:#000!important;
    text-align:center!important;
    font-size:25px!important;
    font-weight:400!important;
    line-height:36px!important;
    letter-spacing:normal!important;
    transform:none!important;
  }
  .editor-workspace #resume-paper.layout-tpl1 .resume-contact{
    border:0!important;
    box-shadow:none!important;
  }
  .editor-workspace #resume-paper.layout-tpl1 .tpl1-module-heading{
    position:relative!important;
    display:block!important;
    box-sizing:border-box!important;
    width:100%!important;
    height:28px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
  }
  .editor-workspace #resume-paper.layout-tpl1 .tpl1-module-title{
    position:relative!important;
    z-index:2!important;
    display:block!important;
    box-sizing:border-box!important;
    width:100%!important;
    height:28px!important;
    margin:0!important;
    padding:0 20px!important;
    border:0!important;
    background:transparent!important;
    color:#000!important;
    text-align:left!important;
    font-size:var(--resume-title-size,16px);
    font-weight:var(--resume-title-weight,700);
    line-height:28px!important;
  }
  .editor-workspace #resume-paper.layout-tpl1 .tpl1-module-fill{
    position:absolute!important;
    z-index:1!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:28px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:#3978a3!important;
    opacity:.2!important;
  }
}

/* Keep the template-specific base rhythm while honoring the style control. */
#resume-paper[class*="layout-tpl"] .resume-body > .resume-section:nth-child(n),
.template-live-paper[class*="layout-tpl"] .resume-body > .resume-section:nth-child(n){
  margin-top:var(--resume-section-spacing,0px)!important;
}
#resume-paper[class*="layout-tpl"] .resume-body > .resume-section:first-child,
.template-live-paper[class*="layout-tpl"] .resume-body > .resume-section:first-child{
  margin-top:0!important;
}

/* R039: numeric style controls share the same editable label/control columns. */
.style-popover.resume-style-popover{width:min(325px,calc(100vw - 16px));height:auto;max-height:calc(100vh - 16px);overflow-y:auto}
.style-popover.resume-style-popover label{grid-template-columns:68px minmax(0,1fr);gap:8px;margin:7px 0}
.style-popover.resume-style-popover .style-font-tip{margin:0 0 8px 76px}
.style-popover.resume-style-popover input[type=number],.style-popover.resume-style-popover select{width:100%;min-width:0}

/* Source-like number steppers: hidden at rest, revealed on hover/focus, and
   each arrow remains a real button so clicks always update the input value. */
.style-popover .style-number-control{position:relative;display:block;width:100%;min-width:0;transform-origin:center;transition:transform .16s cubic-bezier(.2,.8,.2,1)}
.style-popover .style-number-control input[type=number]{box-sizing:border-box;width:100%;min-width:0;padding-right:26px!important;appearance:textfield;-moz-appearance:textfield;transform-origin:center;transition:border-color .16s ease,box-shadow .16s ease}
.style-popover .style-number-control input[type=number]::-webkit-inner-spin-button,.style-popover .style-number-control input[type=number]::-webkit-outer-spin-button{display:none;-webkit-appearance:none;margin:0}
.style-popover .style-number-stepper{position:absolute;z-index:2;top:0;right:0;bottom:0;display:flex;flex-direction:column;width:21px;overflow:hidden;border-left:1px solid #d9d9d9;border-radius:0 5px 5px 0;background:#fff;opacity:0;visibility:hidden;transform:scale(.94);transform-origin:right center;transition:opacity .16s ease,transform .16s cubic-bezier(.2,.8,.2,1),visibility .16s}
.style-popover .style-number-control:hover .style-number-stepper,.style-popover .style-number-control:focus-within .style-number-stepper{opacity:1;visibility:visible;transform:scale(1)}
.style-popover .style-number-control:hover,.style-popover .style-number-control:focus-within{transform:scale(1.015)}
.style-popover .style-number-stepper button{display:grid;flex:1 1 50%;place-items:center;width:100%;min-height:0;margin:0;padding:0;border:0;background:transparent;color:#8c8c8c;cursor:pointer;transition:color .12s ease,background-color .12s ease,transform .12s cubic-bezier(.2,.8,.2,1)}
.style-popover .style-number-stepper button+button{border-top:1px solid #e5e8ed}
.style-popover .style-number-stepper button:hover{z-index:1;background:#f5faff;color:#1677ff;transform:scale(1.12)}
.style-popover .style-number-stepper button:active{background:#eaf3ff;transform:scale(1.04)}
.style-popover .style-number-stepper svg{display:block;width:9px;height:6px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .12s ease}
.style-popover .style-number-stepper button:hover svg{transform:scale(1.12)}
.style-popover .style-number-control:focus-within input[type=number]{border-color:#1677ff!important;outline:0!important;box-shadow:0 0 0 2px rgba(22,119,255,.16)!important}
:is(#resume-paper,.template-live-paper) .resume-section h3,
:is(#resume-paper,.template-live-paper) .tpl1-module-title,
:is(#resume-paper,.template-live-paper) .tpl7-module-title{font-size:var(--resume-title-size,16px);font-weight:var(--resume-title-weight,700)}
:is(#resume-paper,.template-live-paper) .resume-section-body,
:is(#resume-paper,.template-live-paper) .resume-section-body *{letter-spacing:var(--resume-letter-spacing,0px)}


/* Round-040: live resume DOM thumbnails and source-style page guidance. */
.template-live-frame{position:relative;width:100%;aspect-ratio:820/1160;overflow:hidden;background:#fff;box-sizing:border-box}
.template-live-scale{position:absolute;inset:0 auto auto 0;width:820px;height:1160px;transform:scale(.25);transform-origin:top left;pointer-events:none;user-select:none}
.template-live-paper{position:relative!important;inset:auto!important;box-sizing:border-box!important;width:820px!important;min-width:820px!important;max-width:820px!important;height:1160px!important;min-height:1160px!important;margin:0!important;transform:none!important;box-shadow:none!important;overflow:hidden!important}
.resume-page-break{height:18px;border:0;background:rgba(18,18,18,.4)}
.resume-page-break span,.resume-page-break span::before{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform:none;padding:0;border:0;border-radius:0;background:transparent;color:rgba(245,245,245,.8);font-size:12px;line-height:18px;font-weight:400;white-space:nowrap;box-shadow:none;content:normal}
.resume-page-break-markers{counter-reset:none}
@media print{.resume-page-break-markers{display:none!important}}


/* Round-041: keep contact rows bound to the same editable line-height as resume text. */
#resume-paper[class*="layout-tpl"] .resume-contact-field,
#resume-paper[class*="layout-tpl"] .resume-contact-field *,
.template-live-paper[class*="layout-tpl"] .resume-contact-field,
.template-live-paper[class*="layout-tpl"] .resume-contact-field *{
  min-height:var(--resume-line-height,28px)!important;
  line-height:var(--resume-line-height,28px)!important;
}
.template-live-frame{background:#fff}
.template-live-scale{width:820px;height:1160px;transform-origin:top left;pointer-events:none;user-select:none}
.template-live-scale .template-page{box-sizing:border-box;width:820px!important;height:1160px!important;min-height:1160px!important;margin:0!important;transform:none!important;box-shadow:none!important;overflow:hidden!important;--theme:#397ca3}


/* Restore the original source template previews in the chooser. */
.template-live-frame.template-source-frame-wrap{aspect-ratio:542.2/767.015;background:#fff}
.template-source-frame{position:absolute;inset:0 auto auto 0;width:542.2px;height:767.015px;border:0;display:block;transform-origin:top left;background:#fff;pointer-events:none}


/* Follow the line-spacing control across identity and intention rows. */
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-contact-field,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-contact-field *,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .intent-preview-fields,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .intent-preview-fields *{
  line-height:max(var(--resume-line-height,28px),1.4em)!important;
}
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-contact-field,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-contact-field *,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .intent-preview-fields p,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .intent-preview-row{
  min-height:max(var(--resume-line-height,28px),1.4em)!important;
  height:auto!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent .intent-preview-row{
  flex-basis:100%!important;width:100%!important;padding:2px 0!important;
}

/* Keep tpl4's sidebar headings separate from the line-spacing control. The
   source template uses a unitless title line-height and fixed vertical padding,
   so the underline stays below the title as the title font grows. */
#page-resume .editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intent h3,
#page-resume .editor-workspace #resume-paper.layout-tpl4 .resume-sidebar-intro h3{
  box-sizing:border-box!important;
  height:auto!important;min-height:0!important;
  margin:0 10px!important;padding:20px 0 10px!important;
  line-height:1!important;
}

/* Ribbon tips must be cut from the theme fill, without a white overlay. */
#page-resume .editor-workspace #resume-paper.layout-tpl4 .resume-section h3 span::after{
  content:none!important;display:none!important;background:transparent!important;
}
:is(#resume-paper,.template-live-paper).layout-tpl4 .resume-section h3 span::after{
  content:none!important;display:none!important;background:transparent!important;
}

/* Replace visual-only upward offsets with flow-compacting margins. */
#resume-paper.layout-tpl5 .resume-body{position:relative!important;top:auto!important;margin-top:-41px!important}
#resume-paper.layout-tpl6 .resume-body{position:relative!important;top:auto!important;margin-top:-23px!important}
#resume-paper.layout-tpl7 .resume-body{position:relative!important;top:auto!important;margin-top:-39px!important}
#resume-paper.layout-tpl8 .resume-body{position:relative!important;top:auto!important;margin-top:-15px!important}
#resume-paper.layout-tpl9 .resume-body{position:relative!important;top:auto!important;margin-top:-20px!important}
#resume-paper.layout-tpl10 .resume-body{position:relative!important;top:auto!important;margin-top:-39px!important}
#resume-paper[class*="layout-tpl"] .resume-body>.resume-section{position:static!important;top:auto!important}
#resume-paper.layout-tpl1 .resume-body>.resume-section:nth-of-type(3),
#resume-paper.layout-tpl2 .resume-body>.resume-section:nth-of-type(3),
#resume-paper.layout-tpl7 .resume-body>.resume-section:nth-of-type(3),
#resume-paper.layout-tpl10 .resume-body>.resume-section:nth-of-type(3){margin-top:-8px!important}
#resume-paper.layout-tpl5 .resume-body>.resume-section:nth-child(2){margin-top:7px!important}
#resume-paper.layout-tpl5 .resume-body>.resume-section:nth-child(3){margin-top:12px!important}
#resume-paper.layout-tpl8 .resume-body>.resume-section:nth-child(2){margin-top:-17px!important}
#resume-paper.layout-tpl8 .resume-body>.resume-section:nth-of-type(3){margin-top:-42px!important}


/* Make the title controls the final authority for every live template heading. */
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-section h3,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-section h3 span,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-mod-title,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-mod-title *,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .tpl1-module-title,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .tpl3-module-label,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .tpl5-module-label,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .tpl6-module-label,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .tpl7-module-title,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-contact::before,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-sidebar-intent h3,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-sidebar-intro h3{
  font-size:var(--resume-title-size,16px)!important;
  font-weight:var(--resume-title-weight,700)!important;
}


/* Title size controls the whole heading block, as in the source templates. */
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-section h3,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-mod-title,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .tpl1-module-heading{
  box-sizing:border-box!important;
  height:auto!important;
  min-height:calc(var(--resume-title-size,16px)*1.45)!important;
  line-height:1.25!important;
}
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-section h3{
  padding-top:.1em!important;padding-bottom:.1em!important;
}

/* tpl1: the label and its full-width bar grow with the title line. */
#page-resume .editor-workspace #resume-paper.layout-tpl1 .tpl1-module-heading{
  display:flex!important;align-items:stretch!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl1 .tpl1-module-title{
  flex:0 0 auto!important;width:max-content!important;min-width:6.5em!important;
  height:auto!important;min-height:calc(var(--resume-title-size,16px)*1.45)!important;
  padding:.1em 1em .1em 1.25em!important;line-height:1.25!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl1 .tpl1-module-fill{
  height:auto!important;min-height:calc(var(--resume-title-size,16px)*1.45)!important;
}

/* tpl3: expand the pill and its heading row together. */
#page-resume .editor-workspace #resume-paper.layout-tpl3 .resume-section h3,
#page-resume .editor-workspace #resume-paper.layout-tpl3 .resume-section h3 span{
  box-sizing:border-box!important;height:auto!important;
  min-height:calc(var(--resume-title-size,16px)*1.5)!important;line-height:1.35!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl3 .resume-section h3 span{
  padding:.05em 1.55em!important;border-radius:2em!important;
}

/* tpl4: let the ribbon size to its label instead of clipping large headings. */
#page-resume .editor-workspace #resume-paper.layout-tpl4 .resume-section h3{
  display:block!important;width:max-content!important;max-width:100%!important;
  min-width:0!important;height:auto!important;
  min-height:calc(var(--resume-title-size,16px)*1.55)!important;
  margin:0 0 0 -28px!important;padding:0!important;line-height:1.35!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl4 .resume-section h3 span{
  display:inline-block!important;box-sizing:border-box!important;
  width:max-content!important;max-width:100%!important;height:auto!important;
  min-height:calc(var(--resume-title-size,16px)*1.55)!important;
  padding:.08em 1.1em!important;line-height:1.35!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl4 .resume-section h3::before{
  top:100%!important;width:.55em!important;height:.42em!important;
}

/* tpl5/tpl7 angled ribbons use font-relative block height and padding. */
#page-resume .editor-workspace #resume-paper.layout-tpl5 .tpl5-module-label,
#page-resume .editor-workspace #resume-paper.layout-tpl7 .tpl7-module-title{
  box-sizing:border-box!important;height:auto!important;
  min-height:calc(var(--resume-title-size,16px)*1.5)!important;
  padding-top:.1em!important;padding-bottom:.1em!important;line-height:1.3!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl5 .tpl5-module-label::after{
  height:100%!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl7 .resume-section h3{
  min-height:calc(var(--resume-title-size,16px)*1.5)!important;
}

/* Templates with plain, line, or filled headings also grow their title row. */
#page-resume .editor-workspace #resume-paper.layout-tpl6 .resume-section h3,
#page-resume .editor-workspace #resume-paper.layout-tpl8 .resume-section h3,
#page-resume .editor-workspace #resume-paper.layout-tpl9 .resume-section h3,
#page-resume .editor-workspace #resume-paper.layout-tpl10 .resume-section h3{
  height:auto!important;min-height:calc(var(--resume-title-size,16px)*1.5)!important;
  padding-top:.1em!important;padding-bottom:.1em!important;line-height:1.3!important;
}
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-section h3 span{
  box-sizing:border-box!important;height:auto!important;
  min-height:calc(var(--resume-title-size,16px)*1.45)!important;line-height:1.3!important;
}
/* Keep text modules in normal flow so their spacing is reflected in export height. */
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-body > .resume-section:nth-child(n){
  margin-top:var(--resume-section-spacing,0px)!important;
}
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-body > .resume-section:first-child{
  margin-top:0!important;
}
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-section-body,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-section-body p,
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-item p{
  line-height:var(--resume-line-height,28px)!important;
}
#page-resume .editor-workspace #resume-paper[class*="layout-tpl"] .resume-text-section + .resume-section{
  margin-top:calc(24px + var(--resume-section-spacing,0px))!important;
}
/* Basic information is a separate grid, so the section margin rules do not reach it. */
#page-resume .editor-workspace #resume-paper.layout-tpl1 .resume-contact{
  grid-template-rows:28px max-content!important;
  height:auto!important;
  margin-bottom:0!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl1 .resume-contact-fields{
  top:0!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl1 .resume-body{
  margin-top:calc(10px + var(--resume-section-spacing,0px))!important;
}
/* Other templates position their body with fixed offsets; padding adds the
   requested first-module gap without changing those zero-value positions. */
#page-resume .editor-workspace #resume-paper:is(.layout-tpl2,.layout-tpl3,.layout-tpl5,.layout-tpl6,.layout-tpl7,.layout-tpl8,.layout-tpl9,.layout-tpl10) .resume-body{
  padding-top:var(--resume-section-spacing,0px)!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar-content .resume-sidebar-intent{
  margin-top:calc(30px + var(--resume-section-spacing,0px))!important;
}
#page-resume .editor-workspace #resume-paper.layout-tpl4 .tpl4-sidebar-content .resume-sidebar-intro{
  margin-top:calc(38px + var(--resume-section-spacing,0px))!important;
}
/* Compact unsaved-changes confirmation, matching the original editor dialog. */
.modal.unsaved-dialog{width:min(416px,calc(100vw - 32px));border-radius:8px;box-shadow:0 10px 30px #17243b30}
.unsaved-dialog .modal-header{padding:20px 24px 0;border:0}
.unsaved-dialog .modal-header h3{margin:0;color:#222;font-size:16px;font-weight:700;line-height:24px}
.unsaved-dialog .modal-close{display:none}
.unsaved-dialog .modal-body{padding:10px 24px 0;color:#444;font-size:14px;line-height:22px}
.unsaved-dialog .modal-body p{margin:0}
.unsaved-dialog .modal-footer{padding:20px 24px;border:0;gap:8px}
.unsaved-dialog .modal-footer .btn{min-width:64px;height:32px;padding:0 12px;border-radius:5px;font-size:14px}
.unsaved-dialog .modal-footer .btn.primary{min-width:102px;background:#4096ff;border-color:#4096ff}
