/* CV builder */
.phero--compact .wrap{padding-top:clamp(32px,4vw,56px);padding-bottom:clamp(36px,4vw,56px)}
.cv-hero-score{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center}
.cv-hero-score .ring{width:110px;height:110px;background:conic-gradient(var(--c) calc(var(--p)*1%),rgba(255,255,255,.12) 0)}
.cv-hero-score .ring::before{background:var(--navy)}
.cv-hero-score .ring b{color:#fff}
.cv-app{background:var(--ivory-2);padding:28px 0 56px;border-bottom:1px solid var(--line)}
.cv-grid{display:grid;grid-template-columns:200px minmax(0,1fr) minmax(0,1.05fr);gap:20px;align-items:start;max-width:1440px}
@media (max-width:1240px){.cv-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cv-steps{grid-column:1/-1;flex-direction:row!important;overflow-x:auto;position:static!important}}
@media (max-width:860px){.cv-grid{grid-template-columns:minmax(0,1fr)}}
.cv-steps{display:flex;flex-direction:column;gap:4px;position:sticky;top:calc(var(--head-h) + 12px)}
.cv-steps button{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:var(--r);border:0;background:transparent;color:var(--ink-2);font:600 .84rem var(--f-ui);text-align:left;white-space:nowrap}
.cv-steps button:hover{background:var(--paper)}
.cv-steps button.is-on{background:var(--navy);color:#fff}
.cv-steps .st{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1.5px solid currentColor;font-size:.66rem;flex:none}
.cv-steps .st.done{background:var(--ok);border-color:var(--ok);color:#fff}
.cv-steps button.is-on .st.done{background:#fff;color:var(--ok);border-color:#fff}
.cv-form{padding:24px}
.cv-form h2{font-size:1.6rem}
.cv-form .sub{color:var(--ink-3);font-size:.92rem;margin-top:6px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}
.fgrid .full{grid-column:1/-1}
@media (max-width:560px){.fgrid{grid-template-columns:minmax(0,1fr)}}
.rep{border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;margin-top:16px;background:var(--ivory)}
.rep-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.rep-head b{font:600 .9rem var(--f-ui);color:var(--navy)}
.rep-head .row{gap:2px}
.tag-in{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--paper);min-height:48px}
.tag-in:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px rgba(10,143,219,.15)}
.tag-in input{flex:1;min-width:140px;border:0;outline:0;background:transparent;padding:4px}
.tag-in .chip button{border:0;background:none;padding:0;color:inherit;display:inline-grid;margin-left:2px}
.sugg{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sugg button{font-size:.72rem}
.form-nav{display:flex;justify-content:space-between;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.counter{font:600 .72rem var(--f-ui);color:var(--ink-3);text-align:right}
.counter.ok{color:var(--ok)}
.cv-side{position:sticky;top:calc(var(--head-h) + 12px)}
@media (max-width:860px){.cv-side{position:static}}
.cv-toolbar{padding:14px}
.sw{width:24px;height:24px;border-radius:50%;border:2px solid #fff;background:var(--sw);box-shadow:0 0 0 1px var(--line);padding:0}
.sw.is-on{box-shadow:0 0 0 2px var(--navy)}
.more-menu{display:grid;margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.more-menu button,.more-menu .imp{display:flex;gap:10px;align-items:center;padding:9px 8px;border:0;background:none;border-radius:8px;font:600 .82rem var(--f-ui);color:var(--ink-2);cursor:pointer;text-align:left}
.more-menu button:hover,.more-menu .imp:hover{background:var(--ivory)}
.paper-wrap{margin-top:12px;max-height:calc(100vh - var(--head-h) - 170px);overflow:auto;border-radius:var(--r-lg);background:#cfd6df;padding:18px;box-shadow:inset 0 2px 8px rgba(0,0,0,.08)}
@media (max-width:860px){.paper-wrap{max-height:none}}
.paper{background:#fff;width:100%;aspect-ratio:210/297;min-height:min-content;box-shadow:0 10px 30px -10px rgba(0,0,0,.35);overflow:hidden;font-size:clamp(7px,.62vw,10px)}

/* CV document (also used for export) */
.cv{--ac:#002349;font-family:"Source Sans 3","Segoe UI",Arial,sans-serif;color:#1d2633;line-height:1.42;padding:2.6em 2.8em;font-size:1em;min-height:100%}
.cv h1{font-family:"Newsreader",Georgia,serif;font-weight:500;font-size:2.6em;line-height:1.05;color:var(--ac);margin:0}
.cv .role{font:600 1.1em "Montserrat",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#5a6676;margin-top:.4em}
.cv .contact{display:flex;flex-wrap:wrap;gap:.3em 1.2em;margin-top:.9em;font-size:.95em;color:#3c4858}
.cv h2{font:700 .9em "Montserrat",Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--ac);margin:1.7em 0 .7em;padding-bottom:.35em;border-bottom:1.5px solid var(--ac)}
.cv .item{margin-bottom:1em;break-inside:avoid}
.cv .ih{display:flex;justify-content:space-between;gap:1em;align-items:baseline}
.cv .ih b{font-weight:700;font-size:1.05em;color:#111}
.cv .ih span{font-size:.92em;color:#5a6676;white-space:nowrap}
.cv .org{color:#3c4858;font-style:italic}
.cv ul{margin:.35em 0 0;padding-left:1.2em}
.cv li{margin:.15em 0}
.cv .skills{display:flex;flex-wrap:wrap;gap:.35em}
.cv .skills span{padding:.2em .7em;border-radius:1em;background:#eef2f6;font-size:.92em}
.cv .ph{color:#9aa4b1;font-style:italic}
.cv--modern{display:grid;grid-template-columns:34% 1fr;padding:0}
.cv--modern .side{background:var(--ac);color:#fff;padding:2.6em 1.8em}
.cv--modern .side h1{color:#fff;font-size:2.2em}
.cv--modern .side .role{color:rgba(255,255,255,.75)}
.cv--modern .side h2{color:#fff;border-color:rgba(255,255,255,.4)}
.cv--modern .side .contact{flex-direction:column;color:rgba(255,255,255,.85)}
.cv--modern .side .skills span{background:rgba(255,255,255,.14);color:#fff}
.cv--modern .main{padding:2.6em 2.2em}
.cv--modern .main h2:first-child{margin-top:0}
.cv--ats{font-family:Arial,Helvetica,sans-serif}
.cv--ats h1{font-family:Arial,Helvetica,sans-serif;font-weight:700;font-size:2.2em;color:#000}
.cv--ats h2{color:#000;border-color:#000;letter-spacing:.06em}
.cv--ats .role{color:#333}
.cv--ats .skills span{background:none;padding:0}
.cv--ats .skills span:not(:last-child)::after{content:","}

.ats-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:1024px){.ats-grid{grid-template-columns:minmax(0,1fr)}}
.ats-score{display:grid;gap:16px;justify-items:start}
.ats-score .ring{width:140px;height:140px}
.ats-cats{display:grid;gap:10px;width:100%}
.issues{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.issues li{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:12px 14px;border-radius:var(--r);background:var(--ivory)}
.issues li .icon{margin-top:3px}
.issues li.error .icon{color:var(--bad)}
.issues li.warning .icon{color:var(--warn)}
.issues li.pass .icon{color:var(--ok)}
.issues b{display:block;font:600 .9rem var(--f-ui)}
.issues span{font-size:.86rem;color:var(--ink-2)}
.issues button{border:0;background:none;padding:0;margin-top:4px;color:var(--blue-ink);font:600 .78rem var(--f-ui)}
.kw{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.kw .chip.found{background:var(--ok-bg);border-color:transparent;color:var(--ok)}
.kw .chip.miss{background:var(--bad-bg);border-color:transparent;color:var(--bad)}
.tool-pane{padding-top:22px}
.tool-out{margin-top:16px}
.tool-out:empty{display:none}
.letter{padding:28px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);font-family:var(--f-display);font-size:1.05rem;line-height:1.7;white-space:pre-wrap;max-width:78ch}
.letter:focus{outline:2px solid var(--blue)}
.imp-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px;border-radius:var(--r);background:var(--ivory);margin-top:10px}
.imp-row .before{color:var(--ink-3);text-decoration:line-through}
.imp-row .after{color:var(--ink)}
@media (max-width:640px){.imp-row{grid-template-columns:minmax(0,1fr)}}
.drop{display:flex;gap:14px;align-items:center;justify-content:center;padding:36px;margin-top:16px;border:2px dashed var(--line);border-radius:var(--r-lg);background:var(--ivory);cursor:pointer;color:var(--ink-2)}
.drop.is-over{border-color:var(--blue);background:var(--sky)}
.merge-list{list-style:none;margin:16px 0;padding:0;display:grid;gap:8px}
.merge-list li{display:flex;gap:12px;align-items:center;padding:10px 14px;border-radius:var(--r);background:var(--paper);border:1px solid var(--line);font-size:.9rem}
.merge-list li .sz{color:var(--ink-3);margin-left:auto}

/* ---------- ATS format: the original EduHub CV fonts, unchanged ---------- */
.cv.cv--ats{padding:0;background:#fff;overflow:hidden;--cv-serif:"Times New Roman",Times,"Liberation Serif",Tinos,serif;--cv-sans:Calibri,Carlito,"Segoe UI",system-ui,sans-serif}
.cv--ats .cv-doc{width:794px;transform-origin:0 0;background:#fff;color:#000;font-family:var(--cv-sans);font-size:13px;line-height:1.42;padding:34px 40px;min-height:1123px;box-sizing:border-box}
.cv--ats .cvx-name{font-family:var(--cv-serif);font-size:30px;font-weight:400;text-transform:uppercase;letter-spacing:.4px;text-align:center;color:#000;line-height:1.05;margin-bottom:3px}
.cv--ats .cvx-contact{font-family:var(--cv-sans);font-size:12px;text-align:center;color:#000;margin-bottom:4px}
.cv--ats .cvx-h{font-family:var(--cv-serif);font-size:16px;font-weight:400;text-transform:uppercase;letter-spacing:.3px;color:#000;border-bottom:1px solid #000;padding-bottom:1px;margin:13px 0 7px}
.cv--ats .cvx-p{font-family:var(--cv-sans);font-size:12.5px;text-align:justify;color:#000;margin-bottom:8px}
.cv--ats .cvx-entry{margin-bottom:11px}
.cv--ats .cvx-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.cv--ats .cvx-title{font-family:var(--cv-serif);font-size:14px;font-weight:400;color:#000}
.cv--ats .cvx-date{font-family:var(--cv-sans);font-size:12px;color:#000;white-space:nowrap;flex-shrink:0}
.cv--ats .cvx-sub{display:flex;justify-content:space-between;gap:14px;font-family:var(--cv-serif);font-style:italic;font-size:12.5px;color:#000;margin-bottom:3px}
.cv--ats .cvx-sub .loc{white-space:nowrap;flex-shrink:0}
.cv--ats .cvx-ul{list-style:none;margin:3px 0 0;padding:0}
.cv--ats .cvx-ul li{position:relative;padding-left:15px;font-family:var(--cv-sans);font-size:12.5px;color:#000;margin:0 0 2px;text-align:justify}
.cv--ats .cvx-ul li::before{content:'\25AA';position:absolute;left:2px;top:0;font-size:7px;line-height:1.9;color:#000}
.cv--ats .cvx-skill{display:flex;gap:12px;margin-bottom:4px}
.cv--ats .cvx-skill .lbl{font-family:var(--cv-serif);font-size:13px;color:#000;width:44%;flex-shrink:0}
.cv--ats .cvx-skill .val{font-family:var(--cv-sans);font-size:12.5px;color:#000;flex:1}

/* ---------- Download (unlocks on completion) ---------- */
.cv-dl{margin-top:12px}
.cv-dl-lock{display:flex;align-items:center;gap:12px;padding:12px;border:1px dashed var(--line-2,#c9d2dc);border-radius:var(--r);background:var(--ivory)}
.cv-dl-lock .lk{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;flex:none}
.cv-dl-lock .lk .icon{width:16px;height:16px}
.cv-dl-lock .grow{flex:1;min-width:0}
.cv-dl-lock b{font:600 .82rem var(--f-ui);display:block}
.cv-dl-lock small{font-size:.74rem;color:var(--ink-3)}
.cv-dl-lock .progress{margin:6px 0 4px}
.btn--dl{width:100%;justify-content:center;gap:10px;padding:14px 18px;background:linear-gradient(135deg,var(--navy),var(--blue-ink));color:#fff;border:0;box-shadow:0 10px 26px -12px rgba(0,35,73,.7),inset 0 0 0 1px rgba(63,216,247,.35);font-size:.95rem}
.btn--dl .t-xs{opacity:.72;font-weight:500}
.btn--dl:hover{filter:brightness(1.1)}
.btn--dl.is-new{animation:dlPop 1.1s cubic-bezier(.2,.9,.3,1.4) 1}
.btn--dl.is-new::after{content:"";position:absolute;inset:-3px;border-radius:inherit;box-shadow:0 0 0 0 rgba(238,10,115,.55);animation:dlRing 1.6s ease-out 2}
.btn--dl{position:relative}
@keyframes dlPop{0%{transform:scale(.9);opacity:0}60%{transform:scale(1.03);opacity:1}100%{transform:scale(1)}}
@keyframes dlRing{to{box-shadow:0 0 0 14px rgba(238,10,115,0)}}
.dl-grid{display:grid;gap:10px;margin-top:16px}
.dl-opt{display:flex;gap:14px;align-items:flex-start;text-align:left;padding:14px 16px;border:1.5px solid var(--line);border-radius:var(--r-lg,14px);background:var(--paper,#fff);cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s;font:inherit;color:inherit}
.dl-opt:hover{border-color:var(--blue);transform:translateY(-1px);box-shadow:0 10px 24px -16px rgba(0,35,73,.5)}
.dl-opt>.icon{width:26px;height:26px;color:var(--blue-ink);flex:none;margin-top:2px}
.dl-opt b{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:600 .92rem var(--f-ui)}
.dl-opt em{font-style:normal}
.dl-opt small{display:block;color:var(--ink-3);font-size:.82rem;margin-top:3px;line-height:1.45}
.dl-opt.is-rec{border-color:rgba(10,143,219,.5);background:linear-gradient(180deg,rgba(10,143,219,.05),transparent)}
.dl-opt.is-busy{opacity:.6;pointer-events:none}
.dl-opt.is-busy>.icon{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.btn--dl.is-new,.btn--dl.is-new::after{animation:none}}
