/* Resume document styles. Editor UI is defined only in workspace.css. */
:root { --accent-color:#1e3a8a; --base-font-size:9.5px; --line-height:1.35; --page-padding-y:12mm; --page-padding-x:16mm; --section-margin:8px; --item-margin:3px; --title-size:1.15em; --title-weight:700; --list-indent:15px; --name-size:24px; --letter-spacing:0px; --column-width:32%; --column-gap:24px; --cjk-family:'PingFang SC','Microsoft YaHei',sans-serif; }
* { box-sizing:border-box; margin:0; padding:0; }
.font-system { --font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',var(--cjk-family); }
.font-inter { --font-family:'Inter',var(--cjk-family); }
.font-outfit { --font-family:'Outfit',var(--cjk-family); }
.font-roboto { --font-family:'Roboto',var(--cjk-family); }
.font-manrope { --font-family:'Manrope',var(--cjk-family); }
.font-dm-sans { --font-family:'DM Sans',var(--cjk-family); }
.font-jetbrains { --font-family:'JetBrains Mono',var(--cjk-family); }
.font-notosanssc-offline { --font-family:'Noto Sans SC',sans-serif; }
.font-harmonyos-offline { --font-family:'HarmonyOS Sans SC Offline',var(--cjk-family); }
.font-glow { --font-family:'Glow Sans SC Normal','Noto Sans SC',sans-serif; }
.font-glow-condensed { --font-family:'Glow Sans SC Condensed','Noto Sans SC',sans-serif; }
@font-face { font-family:'HarmonyOS Sans SC Offline'; src:url('harmonyos-sans.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
.resume-sheet { background:#fff; color:#30343a; width:210mm; min-height:297mm; flex-shrink:0; box-shadow:var(--sheet-shadow); padding:var(--page-padding-y) var(--page-padding-x); font-size:var(--base-font-size); line-height:var(--line-height); letter-spacing:var(--letter-spacing); font-family:var(--font-family); position:relative; overflow-wrap:anywhere; }
.resume-sheet h1,.resume-sheet h2 { font-family:inherit; }
.resume-header { margin-bottom:calc(var(--section-margin) + 5px); padding-bottom:12px; }
.header-main { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:8px; }
.header-name { font-size:var(--name-size); line-height:1.25; font-weight:700; color:#17202a; letter-spacing:-.025em; }
.header-title { color:var(--accent-color); font-weight:600; font-size:1.12em; }
.header-contact-list { display:flex; flex-wrap:wrap; gap:5px 14px; color:#4c5664; font-size:.95em; }
.header-contact-list > span { display:inline-flex; gap:5px; align-items:baseline; min-width:0; }
.header-contact-list a { color:inherit; text-decoration:none; }
.header-contact-list a:hover { text-decoration:underline; }
.resume-sheet[data-contact-icons=hide] .header-contact-list i { display:none; }
.resume-section { margin-bottom:var(--section-margin); }
.resume-sheet h2.sec-title { color:var(--accent-color); font-size:var(--title-size); font-weight:var(--title-weight); margin-bottom:calc(var(--item-margin)*.8 + 3px); padding-bottom:3px; line-height:1.4; break-after:avoid; }
.resume-item { margin-bottom:var(--item-margin); break-inside:avoid; }
.resume-item:last-child { margin-bottom:0; }
.item-meta-row { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:1px 8px; margin-bottom:3px; font-size:1.02em; break-after:avoid; }
.item-org { font-weight:700; color:#20262e; }
.item-role { color:#4c5664; font-weight:500; }
.item-time { color:#56616f; font-size:.95em; margin-left:auto; font-variant-numeric:tabular-nums; }
.custom-items-wrapper .item-meta-row { display:grid; grid-template-columns:minmax(0,1fr) auto; }
.custom-items-wrapper .item-org { grid-column:1; grid-row:1; }
.custom-items-wrapper .item-time { grid-column:2; grid-row:1; }
.custom-items-wrapper .item-role { grid-column:1 / -1; grid-row:2; }
.item-tech-stack { color:#4c5664; font-size:.95em; margin-bottom:4px; }
.item-tech-stack strong { color:var(--accent-color); font-weight:600; }
.item-details-list { padding-left:var(--list-indent); list-style:disc outside; font-size:.98em; }
.item-details-list li { margin-bottom:3px; padding-left:1px; }
.item-details-list li:last-child { margin-bottom:0; }
.skills-grid { display:grid; gap:4px; }
.skills-group { display:grid; grid-template-columns:9.5em minmax(0,1fr); gap:8px; font-size:.98em; }
.skills-group-title { font-weight:650; color:#20262e; }
.summary-text { white-space:pre-line; font-size:.98em; }
.tpl-classic .resume-header { border-bottom:2px solid var(--accent-color); }
.tpl-classic .sec-title { border-bottom:1px solid #d9dfe5; }
/* Centered header with restrained section rules. */
.tpl-academic .header-main { display:block; text-align:center; }
.tpl-academic .header-title { margin-top:4px; }
.tpl-academic .header-contact-list { justify-content:center; }
.tpl-academic .sec-title { border-bottom:1px solid #d9dfe5; text-align:center; }
/* The sidebar is a full-height part of the paper, including the identity header. */
.resume-sheet.tpl-split { --sidebar-fill:color-mix(in srgb,var(--accent-color) 7%,#f7f8fa); padding:0; }
.split-container { display:grid; grid-template-columns:minmax(0,var(--column-width)) minmax(0,1fr); gap:var(--column-gap); align-items:stretch; min-height:297mm; }
.split-sidebar { --base-font-size:var(--sidebar-font-size); --section-margin:var(--sidebar-sec-spacing); --item-margin:var(--sidebar-item-spacing); --title-size:var(--sidebar-title-size); --list-indent:var(--sidebar-list-indent); font-size:var(--base-font-size); background:var(--sidebar-fill); padding:var(--page-padding-y) min(var(--page-padding-x),24px); min-width:0; }
.split-main { --base-font-size:var(--main-font-size); --section-margin:var(--main-sec-spacing); --item-margin:var(--main-item-spacing); --title-size:var(--main-title-size); --list-indent:var(--main-list-indent); font-size:var(--base-font-size); padding:var(--page-padding-y) var(--page-padding-x) var(--page-padding-y) 0; min-width:0; }
.tpl-split .resume-header { margin-bottom:22px; padding-bottom:18px; border-bottom:1px solid color-mix(in srgb,var(--accent-color) 20%,transparent); }
.tpl-split .header-main { display:block; }
.tpl-split .header-name { margin-bottom:8px; }
.tpl-split .header-title { line-height:1.6; }
.tpl-split .header-contact-list { flex-direction:column; align-items:flex-start; gap:7px; margin-top:14px; }
.tpl-split .header-contact-list > span { max-width:100%; align-items:baseline; }
.tpl-split .header-contact-list i { flex-shrink:0; width:1em; }
.tpl-split .header-contact-list a,.tpl-split .header-contact-list [contenteditable] { min-width:0; overflow-wrap:anywhere; }
.tpl-split[data-header-align=center] .header-contact-list { align-items:center; }
.split-sidebar .skills-group { display:block; }
.split-sidebar .skills-group-title { display:block; margin-bottom:2px; }
.split-sidebar .item-meta-row,.split-sidebar .custom-items-wrapper .item-meta-row { display:flex; flex-direction:column; align-items:flex-start; }
.split-sidebar .item-time { margin-left:0; }
.tpl-split .sec-title { border-bottom:1px solid #d9dfe5; }
/* Three new layouts: open single column, editorial labels, tinted heading. */
.tpl-minimal .header-main { display:block; }
.tpl-minimal .header-title { margin-top:5px; }
.tpl-minimal .resume-header { padding-bottom:8px; }
.tpl-minimal .sec-title { color:#20262e; }
.tpl-editorial .resume-header { border-bottom:1px solid #d9dfe5; }
.tpl-editorial .resume-section { display:grid; grid-template-columns:90px minmax(0,1fr); column-gap:18px; }
.tpl-editorial .resume-section > .sec-title { grid-column:1; grid-row:1 / span 99; }
.tpl-editorial .resume-section > :not(.sec-title) { grid-column:2; }
.tpl-studio .resume-header { background:color-mix(in srgb,var(--accent-color) 7%,white); border-left:3px solid var(--accent-color); padding:16px 18px; }
.tpl-studio .header-main { display:block; }
.tpl-studio .header-title { margin-top:4px; }
.tpl-studio .sec-title { border-left:2px solid var(--accent-color); padding-left:8px; }
/* Three additional structures: a chronological rail, a business-card header, section bands. */
.tpl-timeline .resume-header { border-bottom:1px solid #d9dfe5; }
.tpl-timeline .resume-item { position:relative; margin-left:3px; padding-left:15px; border-left:1px solid #d3dbe4; }
.tpl-timeline .resume-item::before { content:''; position:absolute; top:5px; left:-3.5px; width:6px; height:6px; border-radius:50%; background:var(--accent-color); }
.tpl-timeline .resume-item:not(:last-child) { padding-bottom:4px; }
.tpl-timeline .sec-title { margin-bottom:10px; }
.tpl-card .resume-header { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:24px; padding-bottom:18px; border-bottom:2px solid var(--accent-color); }
.tpl-card .header-main { display:block; margin:0; }
.tpl-card .header-title { margin-top:7px; }
.tpl-card .header-contact-list { flex-direction:column; align-items:flex-end; gap:4px; font-size:.9em; }
.tpl-card .header-contact-list > span { max-width:100%; }
.tpl-card .header-contact-list a,.tpl-card .header-contact-list [contenteditable] { min-width:0; }
.tpl-card .skills-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; }
.tpl-card .skills-group { display:block; }
.tpl-card .skills-group-title { display:block; margin-bottom:2px; }
.tpl-card .sec-title { border-bottom:1px solid #d9dfe5; }
.tpl-card[data-header-align=left] .resume-header,.tpl-card[data-header-align=center] .resume-header { display:block; }
.tpl-card[data-header-align=left] .header-contact-list,.tpl-card[data-header-align=center] .header-contact-list { flex-direction:row; align-items:baseline; margin-top:12px; }
.tpl-banner .resume-header { border-top:4px solid var(--accent-color); padding-top:14px; padding-bottom:8px; }
.tpl-banner .sec-title { padding:5px 9px; background:color-mix(in srgb,var(--accent-color) 7%,white); border:0; }
.tpl-banner:not([data-heading-style=auto]) .sec-title { background:none; }
.resume-sheet[data-header-align=left] .header-main { display:block; text-align:left; }
.resume-sheet[data-header-align=left] .header-contact-list { justify-content:flex-start; }
.resume-sheet[data-header-align=center] .header-main { display:block; text-align:center; }
.resume-sheet[data-header-align=center] .header-contact-list { justify-content:center; }
.resume-sheet[data-heading-style=clean] .sec-title { border:0; padding-left:0; }
.resume-sheet[data-heading-style=line] .sec-title { border:0; border-bottom:1px solid #cdd3da; padding-left:0; }
.resume-sheet[data-heading-style=accent] .sec-title { border:0; border-left:2px solid var(--accent-color); padding-left:8px; }
.print-frame,.print-frame > tbody,.print-frame > tbody > tr,.print-frame > tbody > tr > td { display:contents; }
.print-frame > thead,.print-frame > tfoot { display:none; }
@media print {
    @page { size:A4; margin:0; }
    html,body { height:auto !important; overflow:visible !important; background:#fff !important; }
    .no-print,.editor-sidebar,.mobile-view-toggle,.resize-handle { display:none !important; }
    .app-container,.preview-container,.paper-stage { display:block !important; height:auto !important; width:auto !important; overflow:visible !important; margin:0 !important; padding:0 !important; background:none !important; }
    .print-frame { display:table !important; width:210mm; table-layout:fixed; border-collapse:collapse; border-spacing:0; margin:0; padding:0; border:0; }
    .print-frame > thead { display:table-header-group; }
    .print-frame > tfoot { display:table-footer-group; }
    .print-frame > tbody { display:table-row-group; }
    .print-frame > :is(thead,tbody,tfoot) > tr { display:table-row; }
    .print-frame > :is(thead,tbody,tfoot) > tr > td { display:table-cell; padding:0; border:0; vertical-align:top; }
    .print-frame > thead,.print-frame > tfoot { break-inside:avoid; }
    .resume-sheet { margin:0; width:210mm; transform:none !important; zoom:1 !important; box-shadow:none; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
    .resume-sheet [contenteditable] { outline:none !important; box-shadow:none !important; background:transparent !important; }
    .resume-section { break-inside:auto; } .resume-item { break-inside:avoid; } .resume-sheet h2 { break-after:avoid; }
    .tpl-editorial .resume-section { display:block; } .tpl-editorial .sec-title { float:left; width:90px; } .tpl-editorial .resume-section > :not(.sec-title) { margin-left:108px; } .tpl-editorial .resume-section::after { content:'';display:block;clear:both; }
    /* Paint the sidebar across the entire physical page, including its repeated insets. */
    .tpl-split::before { content:''; position:fixed; left:0; top:0; bottom:0; width:var(--column-width); background:var(--sidebar-fill); z-index:0; }
    .tpl-split #resume-render-target { position:relative; z-index:1; }
    .tpl-split .split-container { min-height:calc(297mm - 2 * var(--page-padding-y)); }
    .tpl-split .split-sidebar,.tpl-split .split-main { padding-top:0; padding-bottom:0; background:transparent; }
}
