/* Gaya kertas CV — ukuran A4 */
.cv{--acc:#1d4ed8;box-sizing:border-box;width:210mm;min-height:297mm;background:#fff;color:#1f2328;padding:16mm 17mm;font:10.5pt/1.42 Arial,"Helvetica Neue",Helvetica,sans-serif;text-align:left;-webkit-print-color-adjust:exact;print-color-adjust:exact;overflow-wrap:anywhere}
.cv *{box-sizing:border-box}
.cv h1,.cv h2,.cv h3,.cv p,.cv ul{margin:0;padding:0}
.cv-head{display:flex;gap:6mm;align-items:center;margin-bottom:5mm}
.cv-head-txt{flex:1;min-width:0}
.cv-name{font-size:21pt;line-height:1.15;font-weight:700;letter-spacing:.2px}
.cv-title{font-size:11.5pt;margin-top:1mm;color:#374151}
.cv-contact{margin-top:2mm;font-size:9.5pt;color:#374151}
.cv-photo{width:30mm;height:38mm;object-fit:cover;border-radius:2mm;flex:none}
.cv-sec{margin-top:4.2mm;break-inside:auto}
.cv-h2{font-size:11pt;font-weight:700;text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid #9ca3af;padding-bottom:1mm;margin-bottom:2mm;break-after:avoid}
.cv-item{margin-bottom:3mm;break-inside:avoid}
.cv-item:last-child{margin-bottom:0}
.cv-row{display:flex;justify-content:space-between;gap:4mm;align-items:baseline}
.cv-h3{font-size:10.5pt;font-weight:700}
.cv-org{font-weight:400}
.cv-date{white-space:nowrap;font-size:9.5pt;color:#4b5563;flex:none}
.cv-loc{font-size:9.5pt;color:#4b5563}
.cv-ul{margin:1mm 0 0 5mm!important}
.cv-ul li{margin:.4mm 0}
.cv-p{margin-top:.5mm}
.cv-tags{list-style:none;margin:0;padding:0}
.cv-tags li{display:inline}
.cv-tags li:not(:last-child)::after{content:" • "}
.cv-certs{list-style:disc}

/* ATS Modern */
.cv--ats-modern .cv-h2{color:#111;border-bottom:1.5px solid #111}
/* ATS Klasik */
.cv--ats-klasik{font-family:Georgia,"Times New Roman",Times,serif;font-size:11pt}
.cv--ats-klasik .cv-head{flex-direction:column-reverse;text-align:center;gap:3mm}
.cv--ats-klasik .cv-name{font-size:22pt;font-weight:700;letter-spacing:1px}
.cv--ats-klasik .cv-h2{text-align:center;border-bottom:none;border-top:1px solid #111;padding:1.4mm 0 0;letter-spacing:2px;font-size:10.5pt}
.cv--ats-klasik .cv-photo{width:27mm;height:34mm}
/* ATS Ringkas */
.cv--ats-ringkas{padding:11mm 13mm;font-size:9.8pt;line-height:1.33}
.cv--ats-ringkas .cv-name{font-size:18pt}
.cv--ats-ringkas .cv-sec{margin-top:3mm}
.cv--ats-ringkas .cv-h2{font-size:10pt;margin-bottom:1.4mm;border-bottom:.8px solid #6b7280}
.cv--ats-ringkas .cv-item{margin-bottom:2mm}
.cv--ats-ringkas .cv-photo{width:24mm;height:30mm}
/* ATS Eksekutif */
.cv--ats-eksekutif .cv-head{border-bottom:3px solid var(--acc);padding-bottom:4mm}
.cv--ats-eksekutif .cv-name{color:var(--acc);font-size:23pt}
.cv--ats-eksekutif .cv-title{font-weight:700;text-transform:uppercase;letter-spacing:1.4px;font-size:10pt}
.cv--ats-eksekutif .cv-h2{color:var(--acc);border-bottom:none;padding-bottom:0}
.cv--ats-eksekutif .cv-h2::after{content:"";display:block;width:12mm;height:2px;background:var(--acc);margin-top:1mm}

/* Sidebar */
.cv--sidebar{display:grid;grid-template-columns:64mm 1fr;padding:0;font-family:"Segoe UI",Roboto,Arial,sans-serif}
.cv--sidebar .cv-side{background:var(--acc);color:#fff;padding:14mm 7mm;font-size:9.5pt}
.cv--sidebar .cv-side .cv-h2{color:#fff;border-bottom:1px solid rgba(255,255,255,.5);font-size:10pt}
.cv--sidebar .cv-photo{display:block;width:40mm;height:40mm;border-radius:50%;margin:0 auto 6mm;border:3px solid rgba(255,255,255,.75)}
.cv--sidebar .cv-side .cv-tags li{display:block;margin:.6mm 0}
.cv--sidebar .cv-side .cv-tags li::after{content:none}
.cv--sidebar .cv-contact-list{list-style:none}
.cv--sidebar .cv-contact-list li{margin:.8mm 0}
.cv--sidebar .cv-side .cv-certs{margin-left:4mm!important}
.cv--sidebar .cv-main{padding:14mm 11mm 12mm 9mm}
.cv--sidebar .cv-name{font-size:23pt;color:var(--acc)}
.cv--sidebar .cv-main .cv-h2{color:var(--acc);border-bottom:2px solid var(--acc)}
.cv--sidebar .cv-sec:first-child{margin-top:0}
.cv--sidebar .cv-head{margin-bottom:4mm}
.cv--sidebar .cv-row{flex-direction:column;gap:0}
.cv--sidebar .cv-date{font-style:italic}
/* Elegan */
.cv--elegan{padding:0;font-family:"Segoe UI",Roboto,Arial,sans-serif}
.cv--elegan .cv-head{background:var(--acc);color:#fff;padding:12mm 16mm;margin:0}
.cv--elegan .cv-title,.cv--elegan .cv-contact{color:rgba(255,255,255,.92)}
.cv--elegan .cv-photo{width:32mm;height:32mm;border-radius:50%;border:3px solid #fff}
.cv--elegan .cv-name{font-size:24pt;font-weight:300;letter-spacing:.5px}
.cv--elegan .cv-body{padding:4mm 16mm 14mm}
.cv--elegan .cv-h2{color:var(--acc);border-bottom:none;letter-spacing:2px;font-size:10.5pt;display:flex;align-items:center;gap:3mm}
.cv--elegan .cv-h2::after{content:"";flex:1;height:1px;background:#d1d5db}
.cv--elegan .cv-sec--skills .cv-tags li,.cv--elegan .cv-sec--langs .cv-tags li{display:inline-block;border:1px solid var(--acc);color:var(--acc);border-radius:99px;padding:.4mm 3mm;margin:0 1.4mm 1.4mm 0;font-size:9pt}
.cv--elegan .cv-tags li::after{content:none}
/* Timeline */
.cv--timeline{font-family:"Trebuchet MS","Segoe UI",Arial,sans-serif}
.cv--timeline .cv-head{border-left:6px solid var(--acc);padding-left:5mm}
.cv--timeline .cv-name{font-size:24pt;text-transform:uppercase;letter-spacing:1px}
.cv--timeline .cv-title{color:var(--acc);font-weight:700}
.cv--timeline .cv-h2{border:none;color:#fff;background:var(--acc);display:inline-block;padding:.8mm 3mm;border-radius:1mm;font-size:9.5pt}
.cv--timeline .cv-sec--exp .cv-item,.cv--timeline .cv-sec--edu .cv-item,.cv--timeline .cv-sec--orgs .cv-item{position:relative;padding-left:6mm;border-left:2px solid #e5e7eb;margin-left:1.5mm;padding-bottom:1mm}
.cv--timeline .cv-sec .cv-item::before{content:"";position:absolute;left:-2.1mm;top:1.2mm;width:3.2mm;height:3.2mm;border-radius:50%;background:#fff;border:2px solid var(--acc)}
.cv--timeline .cv-date{color:var(--acc);font-weight:700}
