:root{--ink:#191918;--muted:#77746d;--paper:#f4f2ed;--white:#fffdf9;--line:#d9d5cc;--accent:#a55d35;--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--mono:"DM Mono",monospace}
*{box-sizing:border-box}body{margin:0;background:#e8e5de;color:var(--ink);font-family:var(--sans)}button,input,textarea{font:inherit}button{cursor:pointer}.brand{display:flex;gap:9px;align-items:center;font-weight:700;letter-spacing:-.03em;text-decoration:none;color:inherit}.brand-mark{width:28px;height:28px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-family:var(--serif)}.builder-header{height:68px;background:#191918;color:#f6f3ec;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 22px;position:sticky;top:0;z-index:20}.header-center{font:10px var(--mono);color:#96938b}.header-actions{display:flex;justify-content:flex-end;gap:7px}.head-btn,.primary{border:1px solid #44433f;background:transparent;color:#eee;padding:9px 12px;border-radius:999px;font-size:11px}.primary{background:#f5f2eb;color:#191918;border-color:#f5f2eb;font-weight:700}.app{display:grid;grid-template-columns:minmax(420px,520px) 1fr;min-height:calc(100vh - 68px)}.editor{background:var(--paper);border-right:1px solid #d0ccc3;min-height:calc(100vh - 68px);padding:32px 32px 80px;overflow:auto}.editor-intro{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.eyebrow{font:500 10px var(--mono);letter-spacing:.14em;color:#777}.editor h1{font:600 38px var(--serif);margin:6px 0 0;letter-spacing:-.04em}.step-count{font:11px var(--mono);color:#888}.tabs{display:flex;flex-wrap:wrap;gap:5px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:30px}.tab{border:0;background:transparent;padding:7px 10px;color:#777;font-size:11px;border-radius:8px}.tab.active{background:#1b1b1a;color:white}.panel{display:none}.panel.active{display:block}.panel-title{display:flex;justify-content:space-between;gap:20px;margin-bottom:25px}.panel-title>div>span{font:10px var(--mono);color:#999}.panel-title h2{font-size:22px;letter-spacing:-.03em;margin:3px 0}.panel-title p{font-size:11px;color:#777;max-width:170px;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}label{font-size:10px;color:#666;display:block}input,textarea,select{width:100%;margin-top:6px;border:1px solid #d4d0c7;background:#fffdf9;border-radius:9px;padding:11px 12px;color:#222;outline:none}input:focus,textarea:focus,select:focus{border-color:#777;box-shadow:0 0 0 3px rgba(0,0,0,.04)}textarea{resize:vertical}.photo-row{display:flex;align-items:center;gap:14px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.photo-preview{width:56px;height:68px;border:1px dashed #bbb5aa;background:#ebe7df;display:grid;place-items:center;color:#aaa;font-size:20px;overflow:hidden}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-row strong{font-size:12px}.photo-row p{font-size:10px;color:#888;margin:2px 0 8px}.photo-row input{border:0;padding:0;background:transparent;margin:0;font-size:9px}.small-btn{margin-left:auto;background:none;border:0;text-decoration:underline;font-size:10px;color:#777}.add-btn{margin-top:15px;width:100%;padding:12px;border:1px dashed #bcb7ae;background:transparent;border-radius:10px;font-size:11px}.repeat-card{background:#fffdf9;border:1px solid var(--line);border-radius:12px;padding:15px;margin-bottom:12px;position:relative}.repeat-card .remove{position:absolute;right:12px;top:10px;border:0;background:none;color:#999;font-size:11px}.repeat-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.repeat-grid .full{grid-column:1/-1}.repeat-card label{margin-bottom:2px}.style-options{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:22px}.style-card{text-align:left;border:1px solid var(--line);background:#fffdf9;padding:14px;border-radius:10px}.style-card.active{border-color:#222;box-shadow:inset 0 0 0 1px #222}.style-card b{display:block;font-size:12px}.style-card small{display:block;color:#888;font-size:9px;margin-top:5px}.tip{margin-top:25px;padding:15px;background:#e8e4dc;font-size:11px;color:#666;border-radius:10px}.preview-area{overflow:auto;background:#d9d6cf;position:relative}.preview-toolbar{height:45px;background:#d9d6cf;display:flex;align-items:center;justify-content:center;gap:12px;position:sticky;top:0;z-index:5;font:9px var(--mono);color:#777}.preview-toolbar button{border:0;background:#c8c4bc;width:25px;height:25px;border-radius:6px}.paper-wrap{padding:35px 30px 80px;display:flex;justify-content:center}.resume{width:794px;min-height:1123px;background:#fff;color:#1d1d1b;padding:55px 58px;box-shadow:0 15px 50px rgba(0,0,0,.13);transform-origin:top center}.resume .r-header{border-bottom:1px solid #222;padding-bottom:20px;margin-bottom:25px;display:flex;justify-content:space-between;gap:25px}.resume .r-name{font-size:33px;letter-spacing:-.055em;line-height:1}.resume .r-title{color:var(--accent);font-size:12px;margin-top:7px}.resume .r-contact{text-align:right;font-size:8px;line-height:1.7;color:#666;max-width:230px}.resume .r-photo{width:65px;height:78px;object-fit:cover;margin-left:10px}.resume .r-section{margin-top:22px}.resume .r-section-title{font:600 9px var(--mono);letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #222;padding-bottom:6px;margin-bottom:10px}.resume .r-summary{font-size:9px;line-height:1.65;color:#555}.resume .r-item{margin:0 0 15px}.resume .r-item-top{display:flex;justify-content:space-between;gap:10px}.resume .r-item h4{font-size:11px;margin:0}.resume .r-date{font:8px var(--mono);color:#777;white-space:nowrap}.resume .r-meta{font-size:8px;color:var(--accent);margin:2px 0 5px}.resume .r-desc{font-size:8px;line-height:1.6;color:#555;white-space:pre-line}.resume .r-list{display:flex;flex-wrap:wrap;gap:5px}.resume .r-pill{font-size:7px;border:1px solid #d2cec6;padding:4px 6px;border-radius:99px}.resume.modern{padding:0;display:grid;grid-template-columns:210px 1fr}.resume.modern .modern-side{background:#1d1d1b;color:#f4f1ea;padding:48px 30px}.resume.modern .modern-main{padding:48px 48px}.resume.modern .r-header{display:block;border:0;padding:0}.resume.modern .r-contact{text-align:left;margin-top:18px}.resume.modern .r-name{color:#fff;font-size:29px}.resume.modern .r-title{color:#bfae9f}.resume.modern .r-section-title{border-color:#555}.resume.modern .r-summary,.resume.modern .r-desc{color:#666}.resume.editorial{padding:58px 65px;background:#f7f3eb}.resume.editorial .r-name{font-family:var(--serif);font-size:47px;line-height:.95}.resume.editorial .r-title{font:9px var(--mono);letter-spacing:.14em;text-transform:uppercase}.resume.editorial .r-header{border-bottom:0}.resume.editorial .r-section-title{font-family:var(--serif);font-size:13px;letter-spacing:0;text-transform:none;border-bottom:1px solid #222}.resume.editorial .r-item h4{font-family:var(--serif);font-size:13px}
@media(max-width:1000px){.app{grid-template-columns:1fr}.editor{border-right:0}.preview-area{min-height:900px}.builder-header{grid-template-columns:auto 1fr auto}.header-center{display:none}}
@media(max-width:560px){.editor{padding:25px 18px}.header-actions .head-btn span{display:none}.header-actions{gap:3px}.primary{font-size:10px}.form-grid,.repeat-grid{grid-template-columns:1fr}.form-grid .full,.repeat-grid .full{grid-column:auto}.style-options{grid-template-columns:1fr}.paper-wrap{padding:15px 8px 60px}.resume{transform:scale(.72);transform-origin:top center;margin-bottom:-310px}.resume.modern{transform:scale(.72);transform-origin:top center}}
@media print{body{background:#fff}.builder-header,.editor,.preview-toolbar{display:none!important}.app{display:block}.preview-area{background:#fff;overflow:visible}.paper-wrap{padding:0}.resume{box-shadow:none;transform:none!important;margin:0;page-break-after:always}}


/* ---------- Additional resume styles ---------- */
.resume.minimal{padding:52px 62px}
.resume.minimal .r-header{border-bottom:0;padding-bottom:12px}
.resume.minimal .r-name{font-size:38px;font-weight:500;letter-spacing:-.06em}
.resume.minimal .r-title{color:#555;font-size:11px}
.resume.minimal .r-section{margin-top:19px}
.resume.minimal .r-section-title{border-bottom:0;font-size:8px;color:#777;margin-bottom:8px}
.resume.minimal .r-item{margin-bottom:11px}
.resume.minimal .r-desc{line-height:1.45}

.resume.bold{padding:50px 55px}
.resume.bold .r-header{background:#191918;color:#fff;padding:24px;margin:-50px -55px 28px;border:0}
.resume.bold .r-title{color:#d3a17f}
.resume.bold .r-contact{color:#c8c5be}
.resume.bold .r-section-title{font-size:10px;border-bottom:3px solid var(--accent);padding-bottom:5px}
.resume.bold .r-name{font-size:38px;font-weight:700}

.resume.compact{padding:42px 50px;font-size:.95em}
.resume.compact .r-header{padding-bottom:14px;margin-bottom:17px}
.resume.compact .r-section{margin-top:13px}
.resume.compact .r-item{margin-bottom:8px}
.resume.compact .r-section-title{margin-bottom:7px}
.resume.compact .r-desc{line-height:1.4}
.resume.compact .r-item h4{font-size:10px}

.resume.mono{font-family:var(--mono);padding:52px 55px}
.resume.mono .r-name{font-family:var(--mono);font-size:29px;letter-spacing:-.08em}
.resume.mono .r-title,.resume.mono .r-meta{color:var(--accent)}
.resume.mono .r-section-title{font-family:var(--mono);border-bottom:1px dashed #777}
.resume.mono .r-summary,.resume.mono .r-desc,.resume.mono .r-contact{font-family:var(--mono)}

.resume.academic{padding:55px 62px;font-family:Georgia,serif}
.resume.academic .r-header{display:block;text-align:center;border-bottom:1px solid #222}
.resume.academic .r-name{font-family:Georgia,serif;font-size:32px}
.resume.academic .r-title{font-family:var(--sans);color:#555}
.resume.academic .r-contact{text-align:center;max-width:none;margin-top:8px}
.resume.academic .r-section-title{font-family:Georgia,serif;font-size:12px;letter-spacing:0;border-bottom:1px solid #222;text-transform:uppercase}
.resume.academic .r-item h4{font-family:Georgia,serif;font-size:11px}

.resume.split{padding:0;display:grid;grid-template-columns:245px 1fr}
.resume.split .split-left{padding:48px 28px;background:#eeebe4}
.resume.split .split-right{padding:48px 40px}
.resume.split .r-header{display:block;border:0}
.resume.split .r-name{font-size:29px}
.resume.split .r-contact{text-align:left;margin-top:16px}
.resume.split .r-photo{margin:15px 0 0}
.resume.split .r-section{margin-top:25px}

.dark-editor .editor{background:#171716;color:#f3f0e9;border-color:#393833}
.dark-editor .editor-intro,.dark-editor .panel-title h2,.dark-editor .panel-title strong{color:#f3f0e9}
.dark-editor .panel-title p,.dark-editor .eyebrow,.dark-editor .step-count,.dark-editor label{color:#a8a59d}
.dark-editor .tabs{border-color:#393833}
.dark-editor .tab{color:#aaa79f}
.dark-editor .tab.active{background:#f3f0e9;color:#171716}
.dark-editor input,.dark-editor textarea,.dark-editor select{background:#242422;color:#f5f2eb;border-color:#44433e}
.dark-editor .repeat-card{background:#242422;border-color:#44433e}
.dark-editor .add-btn{border-color:#55534c;color:#eee}
.dark-editor .photo-row{border-color:#393833}
.dark-editor .tip{background:#292824;color:#aaa79f}
.dark-editor .style-card{background:#242422;color:#eee;border-color:#44433e}
.dark-editor .style-card.active{border-color:#f3f0e9;box-shadow:inset 0 0 0 1px #f3f0e9}

/* Print: always target one A4 page and never print the builder UI. */
@page{size:A4 portrait;margin:0}
@media print{
  html,body{width:210mm!important;height:297mm!important;margin:0!important;background:#fff!important}
  .builder-header,.editor,.preview-toolbar{display:none!important}
  .app,.preview-area{display:block!important;width:210mm!important;height:297mm!important;min-height:0!important;background:#fff!important;overflow:hidden!important}
  .paper-wrap{display:block!important;width:210mm!important;height:297mm!important;padding:0!important;margin:0!important;overflow:hidden!important}
  .resume{
    width:210mm!important;
    min-height:297mm!important;
    height:297mm!important;
    max-height:297mm!important;
    margin:0!important;
    padding:14mm 15mm!important;
    box-shadow:none!important;
    transform:none!important;
    overflow:hidden!important;
    page-break-after:avoid!important;
    break-after:avoid-page!important;
  }
  .resume.modern{padding:0!important}
  .resume.modern .modern-side{padding:14mm 9mm!important}
  .resume.modern .modern-main{padding:14mm 12mm!important}
  .resume.split{padding:0!important}
  .resume.split .split-left{padding:14mm 9mm!important}
  .resume.split .split-right{padding:14mm 12mm!important}
  .resume .r-header{margin-bottom:12px!important;padding-bottom:10px!important}
  .resume .r-section{margin-top:12px!important}
  .resume .r-item{margin-bottom:8px!important}
  .resume .r-section-title{margin-bottom:6px!important}
  .resume .r-desc{line-height:1.35!important}
  .resume .r-summary{line-height:1.45!important}
}
