/* cv.css — resume / CV page (cv-view.js) and the resume studio additions (studio base styles: biz-doc.css) */
@font-face{font-family:'BDSerif';src:url(../vendor/liberation/LiberationSerif-Regular.ttf) format('truetype');font-weight:400}
@font-face{font-family:'BDSerif';src:url(../vendor/liberation/LiberationSerif-Bold.ttf) format('truetype');font-weight:700}
@font-face{font-family:'BDArial';src:url(../vendor/liberation/LiberationSans-Regular.ttf) format('truetype');font-weight:400}
@font-face{font-family:'BDArial';src:url(../vendor/liberation/LiberationSans-Bold.ttf) format('truetype');font-weight:700}
.cv-p{width:210mm;min-height:297mm;box-sizing:border-box;padding:var(--mg);background:#fff;color:var(--tx);font:var(--fs)/var(--lh) 'BDSans','Noto Sans',Arial,sans-serif;text-align:left;position:relative}
.cv-p.p-letter{width:215.9mm;min-height:279.4mm}
.cv-p.f-serif{font-family:'BDSerif','Times New Roman',serif}
.cv-p.f-arial{font-family:'BDArial',Arial,sans-serif}
.cv-p *{box-sizing:border-box}
.cv-p p{margin:0 0 1mm}
.cv-p a{color:inherit;text-decoration:none}
.cv-h{display:flex;gap:6mm;align-items:center;margin-bottom:calc(var(--gap) + 1mm)}
.cv-h.h-center{flex-direction:column;text-align:center}
.cv-h.h-center .cv-det{justify-content:center}
.cv-h.h-bg{margin:calc(var(--mg) * -1) calc(var(--mg) * -1) calc(var(--gap) + 2mm);padding:var(--mg) var(--mg) 8mm;background:var(--ac);color:#fff}
.cv-h.h-bg .cv-role,.cv-h.h-bg h1{color:#fff}
.cv-hn{flex:1;min-width:0}
.cv-h h1{margin:0;font-size:calc(var(--fs) * 2.35);line-height:1.1;color:var(--tx);font-weight:700;letter-spacing:-.01em}
.cv-role{font-size:calc(var(--fs) * 1.25);color:var(--ac);font-weight:700;margin:1mm 0 0!important}
.cv-det{display:flex;flex-wrap:wrap;gap:1.2mm 4mm;margin-top:2.4mm;font-size:calc(var(--fs) * .92)}
.cv-det span{display:inline-flex;align-items:center;gap:1.4mm}
.cv-det.d-inline{gap:1mm 2mm}
.cv-sep{font-style:normal;color:color-mix(in srgb,var(--tx) 45%,#fff)}
.cv-ic{width:3.4mm;height:3.4mm;color:var(--ac);flex:none}
.h-bg .cv-ic{color:#fff}
.cv-photo{object-fit:cover;flex:none}
.cv-photo.ph-round{border-radius:50%}.cv-photo.ph-rounded{border-radius:3mm}
.cv-s{margin-bottom:var(--gap)}
.cv-s h2{margin:0 0 2mm;font-size:calc(var(--fs) * 1.18);color:var(--ac);font-weight:700;letter-spacing:.02em}
.tc-upper .cv-s h2{text-transform:uppercase;letter-spacing:.08em;font-size:calc(var(--fs) * 1.05)}
.t-line .cv-s h2{border-bottom:.35mm solid currentColor;padding-bottom:1mm}
.t-underline .cv-s h2{display:inline-block;border-bottom:.7mm solid var(--ac);padding-bottom:.6mm}
.t-fill .cv-s h2{background:var(--ac);color:#fff;padding:1mm 2.5mm;border-radius:1mm}
.cv-e{margin-bottom:calc(var(--gap) * .6);break-inside:avoid}
.cv-eh{display:flex;justify-content:space-between;gap:4mm;align-items:baseline}
.cv-et{min-width:0}
.cv-et b{display:block;font-size:calc(var(--fs) * 1.05)}
.cv-et span{display:block;color:color-mix(in srgb,var(--tx) 72%,#fff)}
.cv-when{white-space:nowrap;color:color-mix(in srgb,var(--tx) 65%,#fff);font-size:calc(var(--fs) * .92)}
.dt-left .cv-eh{flex-direction:row-reverse;justify-content:flex-end}
.dt-left .cv-when{width:26mm;flex:none}
.dt-left .cv-desc{margin-left:30mm}
.two .dt-left .cv-desc{margin-left:0}
.cv-lnk{font-weight:400;font-size:calc(var(--fs) * .9);color:var(--ac)}
.cv-desc{margin-top:1mm}
.cv-desc ul,.cv-desc ol{margin:0;padding-left:4.5mm}
.cv-desc li{margin-bottom:.6mm}
.cv-tags{display:flex;flex-wrap:wrap;gap:1.6mm}
.cv-tags span{background:color-mix(in srgb,var(--ac) 12%,#fff);color:color-mix(in srgb,var(--ac) 80%,#000);padding:.8mm 2.4mm;border-radius:1.4mm;font-size:calc(var(--fs) * .92)}
.cv-tags small{color:color-mix(in srgb,var(--ac) 60%,#fff)}
.cv-lv{display:grid;gap:1.6mm}
.cv-lv>div{display:flex;justify-content:space-between;align-items:center;gap:3mm}
.cv-lv small{color:color-mix(in srgb,var(--tx) 60%,#fff)}
.side-dark .cv-lv small,.side-dark .cv-tags small{color:color-mix(in srgb,#fff 72%,var(--sb))}
.cv-bar{width:24mm;height:1.6mm;border-radius:1mm;background:color-mix(in srgb,var(--ac) 18%,#fff);flex:none;overflow:hidden}
.cv-bar i{display:block;height:100%;background:var(--ac)}
.cv-dots{display:inline-flex;gap:1mm;flex:none}
.cv-dots i{width:2.2mm;height:2.2mm;border-radius:50%;background:color-mix(in srgb,var(--ac) 18%,#fff)}
.cv-dots i.on{background:var(--ac)}
.cv-list{margin:0}
.cv-decl{display:flex;justify-content:space-between;margin-top:3mm;color:color-mix(in srgb,var(--tx) 72%,#fff)}
.cv-cols{display:flex;gap:7mm;align-items:stretch}
.cv-cols.side-right{flex-direction:row-reverse}
.cv-side{width:var(--sw);flex:none;background:var(--sb);margin:0;padding:4mm;border-radius:2mm}
.cv-main{flex:1;min-width:0}
.side-dark .cv-side{color:#f8fafc}
.side-dark .cv-side .cv-s h2{color:#fff}
.side-dark .cv-side .cv-tags span{background:color-mix(in srgb,#fff 16%,var(--sb));color:#fff}
.side-dark .cv-side .cv-et span,.side-dark .cv-side .cv-when{color:color-mix(in srgb,#fff 75%,var(--sb))}
.side-dark .cv-side .cv-bar,.side-dark .cv-side .cv-dots i{background:color-mix(in srgb,#fff 24%,var(--sb))}
.side-dark .cv-side .cv-bar i,.side-dark .cv-side .cv-dots i.on{background:#fff}
.cv-side .cv-eh{flex-direction:column;gap:.4mm}
.ats .cv-s h2{color:var(--tx)}
.bd-out .cv-p{min-height:0}
/* studio */
.cv-tabs{display:flex;gap:4px;background:var(--panel,#fff);border:1px solid var(--border,#e4e9f2);border-radius:12px;padding:4px}
.cv-tabs button{flex:1;border:0;background:none;padding:9px;border-radius:9px;font:700 13.5px inherit;font-family:inherit;color:var(--muted,#5a6377);cursor:pointer;width:auto;min-width:0}
.cv-tabs button.on{background:var(--accent-soft,#eef1fe);color:var(--accent-dark,#3a52c4)}
.cv-sec>summary .h{cursor:grab;color:var(--faint,#9aa3b5);margin-right:2px}
.cv-sec.drag{opacity:.4}

.cv-item{border:1px solid var(--border,#eef1f6);border-radius:11px;background:var(--field,#f8fafc)}
.cv-item>summary{list-style:none;cursor:pointer;padding:10px 12px;display:flex;gap:8px;align-items:center;font-size:13.5px;font-weight:600}
.cv-item>summary::-webkit-details-marker{display:none}
.cv-item>summary small{color:var(--muted,#5a6377);font-weight:500;margin-left:auto;white-space:nowrap}
.cv-item .bs-in{padding:0 12px 12px}
.cv-item.drag{opacity:.4}
.cv-rte{border:1px solid var(--border,#e4e9f2);border-radius:9px;background:var(--panel,#fff)}
.cv-rte .tb{display:flex;gap:2px;padding:4px;border-bottom:1px solid var(--border,#eef1f6)}
.cv-rte .tb button{border:0;background:none;width:30px;height:28px;border-radius:6px;cursor:pointer;font:700 13px Georgia,serif;color:inherit;min-width:0;padding:0}
.cv-rte .tb button:hover{background:var(--field,#f4f6fb)}
.cv-rte [contenteditable]{min-height:70px;padding:8px 10px;outline:0;font-size:14px;line-height:1.5}
.cv-rte [contenteditable] ul{margin:0;padding-left:20px}
.cv-rte [contenteditable]:empty::before{content:attr(data-ph);color:var(--faint,#9aa3b5)}
.cv-lvl{display:flex;gap:4px}
.cv-lvl button{width:26px;height:26px;border-radius:7px;border:1px solid var(--border-2,#dfe4ee);background:var(--panel,#fff);cursor:pointer;min-width:0;padding:0;font:600 11px inherit;font-family:inherit}
.cv-lvl button.on{background:var(--accent,#4f6ef7);border-color:var(--accent,#4f6ef7);color:#fff}
.cv-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cv-presets button{border:2px solid var(--border,#e4e9f2);border-radius:10px;background:var(--panel,#fff);padding:8px 6px;font:600 12px inherit;font-family:inherit;color:inherit;cursor:pointer;width:auto;min-width:0}
.cv-presets button.on{border-color:var(--accent,#4f6ef7);background:var(--accent-soft,#eef1fe)}
.cv-addsec{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.cv-addsec button{border:1px dashed var(--border-2,#cfd6e4);background:none;border-radius:9px;padding:8px;white-space:normal!important;line-height:1.3;text-align:center;overflow-wrap:anywhere;display:flex;align-items:center;justify-content:center;min-height:38px;font:600 12.5px inherit;font-family:inherit;color:var(--accent-dark,#3a52c4);cursor:pointer;width:auto;min-width:0}
.cv-score{display:flex;gap:14px;align-items:center}
.cv-ring{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;font:800 22px system-ui,sans-serif;flex:none}
.cv-checks{display:grid;gap:5px;font-size:13px}
.cv-checks .ok::before{content:'✓ ';color:#16a34a;font-weight:700}.cv-checks .no::before{content:'✕ ';color:#dc2626;font-weight:700}.cv-checks .warn::before{content:'! ';color:#d97706;font-weight:800}
.cv-kw{display:flex;flex-wrap:wrap;gap:5px}
.cv-kw span{padding:3px 8px;border-radius:999px;font-size:12px;font-weight:600}
.cv-kw .hit{background:#dcfce7;color:#166534}.cv-kw .miss{background:#fee2e2;color:#991b1b}
.cv-pages{font-size:12px;color:var(--muted,#5a6377)}
@media (max-width:600px){.cv-presets{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-addsec{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cv-presets button{white-space:normal;line-height:1.25}
/* cover letter (cover-letter.js) */
.cl-body{font-size:calc(var(--fs) * 1.05);line-height:calc(var(--lh) + .08);margin-top:2mm}
.cl-body p{margin:0 0 3.5mm}
.cl-date{color:color-mix(in srgb,var(--tx) 70%,#fff)}
.cl-to{margin-bottom:5mm!important}
.cl-text p{margin:0 0 3.5mm}
.cl-close{margin-top:5mm!important;margin-bottom:1mm!important}
.cl-sig{max-height:18mm;max-width:60mm;display:block;margin:1mm 0}

/* ---------- cover letter: 10 own designs (cover-letter.js designed()); PDF-safe solid colours ---------- */
.clp{--fs:10.3pt;--lh:1.5;--tx:#1f2937;position:relative;width:210mm;height:297mm;box-sizing:border-box;padding:16mm 20mm 14mm;background:#fff;color:var(--tx);font:var(--fs)/var(--lh) 'BDSans','Noto Sans',Arial,sans-serif;display:flex;overflow:hidden;text-align:left}
.clp.p-letter{width:215.9mm;height:279.4mm}
.clp.f-serif{font-family:'BDSerif',Georgia,serif}
.clp *{box-sizing:border-box}.clp i{font-style:normal}
.clp>i{position:absolute;display:block}
.clp .cl-shape{position:absolute;display:block}
.clp-main{position:relative;z-index:1;flex:1;min-width:0;display:flex;flex-direction:column}
.clp-head{display:flex;justify-content:space-between;align-items:center;gap:8mm;margin-bottom:11mm}
.clp-nm{display:block;font-size:24pt;line-height:1.08;font-weight:700;color:var(--c1);letter-spacing:-.015em}
.clp-tt{display:block;font-size:9.5pt;color:#64748b;margin-top:1.4mm;letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.clp-ic{width:3.3mm;height:3.3mm;flex:none}
.clp-list{display:grid;gap:1.1mm;font-size:8.4pt;color:#475569;text-align:right}
.clp-list span{display:flex;align-items:center;justify-content:flex-end;gap:2mm}
.clp-list.l{text-align:left}.clp-list.l span{justify-content:flex-start}
.clp-row{display:flex;flex-wrap:wrap;gap:1.6mm 6mm;font-size:8.4pt;color:#475569}.clp-row span{display:flex;align-items:center;gap:1.6mm}
.clp-dots{font-size:8.4pt;color:#475569;text-align:center}.clp-dots b{margin:0 2.2mm;color:var(--c2)}
.clp .cl-body{flex:1}
/* executive */
.t-executive .clp-head{padding-bottom:6mm}
.t-executive .ex-rule{left:20mm;right:20mm;top:47mm;height:1.6mm;border-top:.7mm solid var(--c1);border-bottom:.25mm solid var(--c2)}
/* sidebar */
.t-sidebar{padding-left:80mm}
.t-sidebar .sb-col{left:0;top:0;bottom:0;width:64mm;background:var(--c1)}
.sb-side{position:absolute;z-index:1;left:10mm;top:16mm;width:44mm;display:flex;flex-direction:column;gap:5mm;color:#fff}
.sb-mono{width:20mm;height:20mm;border-radius:50%;border:.5mm solid var(--c2);display:flex;align-items:center;justify-content:center;font-size:16pt;font-weight:700;color:#fff}
.sb-side .clp-nm{color:#fff;font-size:20pt}.sb-side .clp-tt{color:var(--c1l)}
.sb-line{display:block;width:12mm;height:.7mm;background:var(--c2)}
.sb-side .clp-list{color:#fff;gap:3mm;font-size:7.8pt}.sb-side .clp-list span{align-items:flex-start}.sb-side .clp-ic{margin-top:.5mm}
.sb-side .clp-list i{overflow-wrap:anywhere}
.t-sidebar .clp-main{padding-top:4mm}
/* header band */
.t-band .bd-band{left:0;right:0;top:0;height:46mm;background:var(--c1)}
.t-band .bd-acc{left:0;right:0;top:46mm;height:1.6mm;background:var(--c2)}
.t-band .clp-head{min-height:30mm;margin:-2mm 0 16mm}
.clp-who.lt .clp-nm{color:#fff}.clp-who.lt .clp-tt{color:var(--c1l)}
.t-band .clp-list{color:#fff}
/* elegant */
.t-elegant .clp-head{flex-direction:column;gap:2mm;text-align:center;padding-bottom:3mm}
.t-elegant .clp-nm{font-family:'BDSerif',Georgia,serif;font-weight:400;font-size:26pt;letter-spacing:.1em;text-transform:uppercase}
.t-elegant .clp-tt{letter-spacing:.26em;font-size:8pt;color:var(--c2)}
.clp-orn{width:44mm;height:3mm;margin:1mm 0}
/* modern accent */
.t-modern .md-bar{left:0;top:16mm;width:10mm;height:22mm;background:var(--c1)}
.t-modern .clp-head{flex-direction:column;align-items:flex-start;gap:4mm;padding-bottom:5mm;border-bottom:.3mm solid #e2e8f0}
.t-modern .clp-tt{color:var(--c2)}
/* minimal */
.t-minimal .clp-head{flex-direction:column;align-items:flex-start;gap:3mm}
.t-minimal .clp-nm{color:#111827;font-size:28pt;letter-spacing:-.03em}
.t-minimal .clp-tt{color:var(--c1)}
.mn-rule{display:block;width:100%;height:.4mm;background:#111827}
.t-minimal .clp-dots{text-align:left}.t-minimal .clp-dots b{color:var(--c1)}
/* split header */
.t-split{padding-top:0}
.t-split .sp-a{left:0;top:0;width:60%;height:44mm;background:var(--c1)}
.t-split .sp-b{left:60%;right:0;top:0;height:44mm;background:var(--c1l)}
.t-split .clp-head{height:44mm;margin:0 0 12mm;align-items:center}
.sp-l{width:56%}.sp-r{width:40%}
.t-split .sp-r .clp-list{gap:1.6mm}
/* monogram */
.mg-l{position:relative;width:22mm;height:22mm;flex:none}
.mg-c{position:absolute;left:0;top:0;width:100%;height:100%}
.mg-t{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font:400 18pt 'BDSerif',Georgia,serif;letter-spacing:.04em}
.t-monogram .clp-head{justify-content:flex-start;gap:6mm;padding-bottom:6mm;border-bottom:.5mm solid var(--c2)}
.t-monogram .clp-who{flex:1}
/* geometric */
.t-geometric .ge-tr{right:0;top:0;width:58mm;height:34mm}
.t-geometric .ge-bl{left:0;bottom:0;width:60mm;height:30mm}
.t-geometric .clp-head{flex-direction:column;align-items:flex-start;gap:4mm;margin-bottom:12mm}
.t-geometric .clp-who,.t-geometric .clp-row{max-width:118mm}
/* ATS plain */
.t-ats{font-family:'BDArial',Arial,sans-serif}
.t-ats .clp-head{display:block;margin-bottom:9mm}
.t-ats .clp-nm{color:#111827;font-size:20pt}.t-ats .clp-tt{color:#374151;text-transform:none;letter-spacing:0;font-weight:400}
.clp-ats{margin-top:2mm;font-size:9pt;color:#374151}
/* design picker */
.cl-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;margin-bottom:12px}
.cl-th{display:flex;flex-direction:column;gap:5px;padding:6px;border:1.5px solid var(--border,#e4e9f2);border-radius:10px;background:var(--panel,#fff);cursor:pointer;font:600 11.5px inherit;font-family:inherit;color:var(--text,#1e2635);text-align:center}
.cl-th:hover{border-color:var(--accent,#4f6ef7)}.cl-th.on{border-color:var(--accent,#4f6ef7);box-shadow:0 0 0 3px var(--accent-soft,#eef1fe);color:var(--accent-dark,#3a52c4)}
.cl-th-box{position:relative;width:100%;contain:size layout paint;overflow:hidden;border-radius:3px;box-shadow:0 1px 4px rgba(15,23,42,.2);background:#fff}
.cl-th-box>*{position:absolute;left:0;top:0;transform-origin:top left}
.cl-sw{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.cl-sw button{width:34px;height:24px;border-radius:7px;border:1.5px solid var(--border,#e4e9f2);cursor:pointer;padding:0;overflow:hidden;display:flex}
.cl-sw button span{flex:1}.cl-sw button.on{border-color:var(--accent,#4f6ef7);box-shadow:0 0 0 2px var(--accent-soft,#eef1fe)}
.cl-undo{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:#0f172a;color:#fff;font-size:13px}
.cl-undo button{border:0;background:none;color:#93c5fd;font:700 13px inherit;font-family:inherit;cursor:pointer;padding:0}
/* ---------- resume skins (decorative accents, PDF-safe) ---------- */
.cv-p>.cv-shape{position:absolute;display:block;z-index:0}
.cv-p>*:not(.cv-shape){position:relative;z-index:1}
.cv-shape.sk-geo{right:0;top:0;width:70mm;height:36mm}
.sk-geo .cv-h{padding-right:52mm}
.cv-shape.sk-wave{left:0;top:0;width:100%;height:30mm}
.sk-wave .cv-h{margin-top:16mm}
.sk-stripe{border-left:6mm solid var(--ac);padding-left:calc(var(--mg) - 2mm)}
.sk-stripe .cv-h.h-bg{margin-left:calc((var(--mg) - 2mm) * -1);border-bottom:1.6mm solid color-mix(in srgb,var(--ac) 45%,#fff)}
.sk-frame{outline:.5mm solid var(--ac);outline-offset:-7mm}
.sk-frame .cv-h{padding:3mm 0 4mm;border-bottom:.3mm solid var(--ac)}
.sk-frame .cv-s h2{text-align:center;letter-spacing:.24em}
.sk-frame .cv-s h2::after{content:"";display:block;width:12mm;height:.4mm;background:var(--ac);margin:1.2mm auto 0}
/* timeline: a line with dots down the left of each section's entries */
.sk-timeline .cv-main .cv-e,.sk-timeline .cv-one .cv-s-experience .cv-e,.sk-timeline .cv-one .cv-s-education .cv-e{position:relative;padding-left:5.5mm;border-left:.35mm solid color-mix(in srgb,var(--ac) 35%,#fff);margin-left:1.2mm;padding-bottom:1mm}
.sk-timeline .cv-main .cv-e::before,.sk-timeline .cv-one .cv-s-experience .cv-e::before,.sk-timeline .cv-one .cv-s-education .cv-e::before{content:"";position:absolute;left:-1.45mm;top:1.1mm;width:2.2mm;height:2.2mm;border-radius:50%;background:var(--ac);border:.5mm solid #fff}
/* accent: a coloured tab before each section title */
.sk-accent .cv-s h2::before{content:"";display:inline-block;width:2.4mm;height:2.4mm;border-radius:.6mm;background:var(--ac);margin-right:2mm;vertical-align:middle}
.sk-accent .cv-h h1{color:var(--ac)}
/* template picker: live thumbnails */
.cv-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:10px;margin-bottom:10px}
.cv-th{display:flex;flex-direction:column;gap:5px;padding:6px;border:1.5px solid var(--border,#e4e9f2);border-radius:10px;background:var(--panel,#fff);cursor:pointer;font:600 11.5px inherit;font-family:inherit;color:var(--text,#1e2635);text-align:center}
.cv-th:hover{border-color:var(--accent,#4f6ef7)}.cv-th.on{border-color:var(--accent,#4f6ef7);box-shadow:0 0 0 3px var(--accent-soft,#eef1fe);color:var(--accent-dark,#3a52c4)}
.cv-th-box{position:relative;width:100%;contain:size layout paint;overflow:hidden;border-radius:3px;box-shadow:0 1px 4px rgba(15,23,42,.2);background:#fff}
.cv-th-box>*{position:absolute;left:0;top:0;transform-origin:top left}
.cv-undo{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:#0f172a;color:#fff;font-size:13px}
.cv-undo button{border:0;background:none;color:#93c5fd;font:700 13px inherit;font-family:inherit;cursor:pointer;padding:0}
.cv-linkbar{display:flex;gap:6px;padding:6px;border-bottom:1px solid var(--border,#e4e9f2)}.cv-linkbar input{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--border,#e4e9f2);border-radius:6px;font:inherit}.cv-linkbar button{padding:6px 10px;border:0;border-radius:6px;background:var(--accent,#4f6ef7);color:#fff;font:600 12.5px inherit;font-family:inherit;cursor:pointer}
