/* ===== Rev Resume — app shell ===== */
:root{
  --ink:#0b1f3a; --ink2:#22324d; --bg:#f4f6fa; --card:#ffffff; --line:#dde3ec; --muted:#5d6b80;
  --brand:#1747b5; --brand2:#0f3486; --gold:#c9a24a; --ok:#178a4c; --warn:#c27a0a; --bad:#c23a3a;
  --radius:12px; --shadow:0 1px 2px rgba(11,31,58,.06),0 8px 24px rgba(11,31,58,.08);
  --ui:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --ink:#e8edf6; --ink2:#c7d1e2; --bg:#0c1220; --card:#141c2e; --line:#26324a; --muted:#93a1b8;
  --brand:#5b8cff; --brand2:#3f6fe6; --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ink:#e8edf6; --ink2:#c7d1e2; --bg:#0c1220; --card:#141c2e; --line:#26324a; --muted:#93a1b8;
    --brand:#5b8cff; --brand2:#3f6fe6; --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--ui);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--brand)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;z-index:99;background:var(--card);padding:8px}
.muted{color:var(--muted)}.small{font-size:12.5px}
[hidden]{display:none!important}

/* buttons & inputs */
.btn{font:600 14px var(--ui);border:1px solid var(--line);background:var(--card);color:var(--ink);padding:9px 14px;border-radius:9px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;justify-content:center;transition:.15s}
.btn:hover{border-color:var(--brand)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover{background:var(--brand2)}
.btn.ghost{background:transparent}
.btn.sm{padding:6px 10px;font-size:13px}
.btn.lg{padding:13px 22px;font-size:16px}
.btn:disabled{opacity:.55;cursor:wait}
input,select,textarea{font:14px var(--ui);color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--brand) 40%,transparent);border-color:var(--brand)}
textarea{resize:vertical;line-height:1.45}
input[type=color]{padding:2px;height:36px}
input[type=range]{padding:0;accent-color:var(--brand)}
label{font-size:12.5px;font-weight:600;color:var(--ink2);display:block}
label>input,label>select,label>textarea{margin-top:4px;font-weight:400}
.lbl{margin:6px 0 4px}
.chk{display:flex;gap:8px;align-items:center;margin:12px 0}.chk input{width:auto}

/* top bar */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px max(16px,env(safe-area-inset-left));background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand img{border-radius:8px}
.brand span{display:flex;flex-direction:column;line-height:1.1}
.brand b{font-size:17px;letter-spacing:-.01em}
.brand small{font-size:11px;color:var(--muted)}
.topnav{display:flex;gap:8px;align-items:center}
.topnav>a[data-route]{color:var(--ink2);text-decoration:none;font-weight:600;font-size:14px;padding:6px 8px;border-radius:6px}
.topnav>a.on{color:var(--brand)}

/* landing */
.hero{max-width:1180px;margin:0 auto;padding:64px 20px 40px;display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}
.eyebrow{color:var(--brand);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 10px}
.hero h1{font-size:clamp(30px,4.4vw,50px);line-height:1.08;letter-spacing:-.025em;margin:0 0 16px}
.lead{font-size:18px;color:var(--ink2);max-width:60ch}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 16px}
.trust{list-style:none;padding:0;display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:14px}
.hero-art{position:relative;height:380px}
.mock-page{position:absolute;inset:0 30px 0 10px;background:#fff;border-radius:6px;box-shadow:var(--shadow);padding:30px 28px;transform:rotate(-2deg)}
.mp-head{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid var(--ink);padding-bottom:12px;margin-bottom:16px}
.mp-head span{width:55%;height:18px;background:#0b1f3a;border-radius:3px}.mp-head i{width:46px;height:46px;border-radius:50%;background:#dbe4f3}
.mp-line{height:8px;background:#e3e8f0;border-radius:4px;margin:9px 0}
.mp-sec{width:30%;height:10px;background:var(--brand);border-radius:3px;margin:20px 0 10px}
.w60{width:60%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w85{width:85%}.w90{width:90%}
.mock-score{position:absolute;right:0;bottom:24px;background:var(--ink);color:#fff;border-radius:14px;padding:14px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center}
:root[data-theme="dark"] .mock-score{background:#1d2a45}
.mock-score b{font-size:34px;color:var(--gold);line-height:1}.mock-score span{font-size:12px;opacity:.8}
.features,.how,.faq{max-width:1180px;margin:0 auto;padding:40px 20px}
.features h2,.how h2,.faq h2{font-size:28px;letter-spacing:-.02em;margin:0 0 22px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid3 article{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.grid3 h3{margin:0 0 6px;font-size:17px}.grid3 p{margin:0;color:var(--ink2);font-size:14.5px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:0;list-style:none;counter-reset:s;margin:0 0 24px}
.steps li{counter-increment:s;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;color:var(--ink2)}
.steps li::before{content:counter(s);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--brand);color:#fff;font-weight:700;margin-bottom:10px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin-bottom:10px}
.faq summary{font-weight:600;cursor:pointer}
.foot{text-align:center;padding:28px 16px;border-top:1px solid var(--line);color:var(--ink2);font-size:14px}
.foot p{margin:4px 0}

/* app layout */
#view-app{display:flex;flex-direction:column;height:calc(100dvh - 59px)}
body.in-app .foot{display:none}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap}
.tb-left,.tb-right{display:flex;align-items:center;gap:6px}
.docname{width:200px;font-weight:600;border-color:transparent;background:transparent}
.docname:hover{border-color:var(--line)}
.savestate{font-size:12px;color:var(--muted)}
.menu-wrap{position:relative}
.menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:6px;z-index:40;min-width:220px}
.menu button{display:block;width:100%;text-align:left;background:none;border:0;padding:9px 12px;border-radius:7px;font:500 14px var(--ui);color:var(--ink);cursor:pointer}
.menu button:hover{background:var(--bg)}
.workspace{flex:1;display:grid;grid-template-columns:minmax(380px,460px) 1fr;min-height:0}
.panel{border-right:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;min-height:0}
.ptabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none;flex:none}
.ptabs button{flex:none;background:none;border:0;border-bottom:2px solid transparent;padding:11px 12px;font:600 13px var(--ui);color:var(--muted);cursor:pointer}
.ptabs button.on{color:var(--brand);border-color:var(--brand)}
.pbody{padding:14px 16px 40px;overflow-y:auto;flex:1}
.pbody>*+*{margin-top:10px}
.ph{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 8px}
.quick{display:flex;gap:6px;flex-wrap:wrap}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.addsec{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;margin-top:16px}

/* editor */
.esec{border:1px solid var(--line);border-radius:10px;margin-top:12px;background:var(--card)}
.esec>summary{list-style:none;display:flex;align-items:center;gap:8px;padding:11px 12px;cursor:pointer;font-weight:700;font-size:14px}
.esec>summary::-webkit-details-marker{display:none}
.esec>summary::before{content:"▸";color:var(--muted);transition:.15s}
.esec[open]>summary::before{transform:rotate(90deg)}
.esec>summary .sp{flex:1}
.esec .ebody{padding:0 12px 12px}
.esec .ebody>*+*{margin-top:8px}
.item{border:1px dashed var(--line);border-radius:9px;padding:10px;position:relative}
.item+.item{margin-top:10px}
.item-tools{display:flex;gap:4px;justify-content:flex-end;margin-bottom:6px}
.ib{background:none;border:1px solid var(--line);border-radius:6px;padding:2px 7px;cursor:pointer;color:var(--ink2);font-size:12px}
.ib:hover{border-color:var(--brand);color:var(--brand)}
.ib.ai{border-color:color-mix(in srgb,var(--brand) 40%,var(--line));color:var(--brand);font-weight:600}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fgrid .full{grid-column:1/-1}
.field{position:relative}
.field input,.field textarea{padding-right:30px}
.mic{position:absolute;right:6px;top:22px;border:0;background:none;cursor:pointer;font-size:14px;opacity:.55}
.mic:hover,.mic.rec{opacity:1}.mic.rec{animation:pulse 1s infinite}
@keyframes pulse{50%{transform:scale(1.25)}}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{background:color-mix(in srgb,var(--brand) 12%,var(--card));color:var(--ink);border-radius:999px;padding:4px 6px 4px 10px;font-size:13px;display:inline-flex;gap:4px;align-items:center}
.tag button{border:0;background:none;cursor:pointer;color:var(--muted);font-size:14px}
.cur{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500}
.cur input{width:auto}

/* design */
.tplgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.tpl{border:2px solid var(--line);border-radius:8px;background:var(--card);padding:6px;cursor:pointer;font:600 11.5px var(--ui);color:var(--ink2)}
.tpl.on{border-color:var(--brand);color:var(--brand)}
.tpl svg{display:block;width:100%;height:auto;margin-bottom:4px;border-radius:3px;background:#fff}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.sw{width:30px;height:30px;border-radius:50%;border:3px solid var(--card);box-shadow:0 0 0 1px var(--line);cursor:pointer}
.sw.on{box-shadow:0 0 0 2px var(--brand)}
.order{list-style:none;padding:0;margin:0}
.order li{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;background:var(--card);font-size:14px}
.order li .sp{flex:1}
.order li.dragging{opacity:.5}
.order .grip{cursor:grab;color:var(--muted)}

/* AI */
.ai-status{font-size:12.5px;padding:8px 10px;border-radius:8px;background:var(--bg)}
.ai-status.ok{color:var(--ok)}.ai-status.off{color:var(--warn)}
.aigrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.aigrid .primary{grid-column:1/-1}
.aiout{font-size:14px}
.card{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--bg)}
.card h4{margin:0 0 6px;font-size:14px}
.card ul{margin:6px 0;padding-left:18px}
.card .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.kw{display:inline-block;border-radius:999px;padding:2px 9px;margin:2px;font-size:12.5px}
.kw.hit{background:color-mix(in srgb,var(--ok) 18%,var(--card));color:var(--ok)}
.kw.miss{background:color-mix(in srgb,var(--bad) 14%,var(--card));color:var(--bad);cursor:pointer}
.spin{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(360deg)}}

/* ATS */
.scorebox{display:flex;gap:16px;align-items:center}
.ring{--p:0;--c:var(--bad);flex:none;width:96px;height:96px;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(closest-side,var(--card) 78%,transparent 80% 100%),conic-gradient(var(--c) calc(var(--p)*1%),var(--line) 0)}
.ring b{font-size:30px;line-height:1}.ring span{font-size:11px;color:var(--muted)}
.chk-row{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.chk-row i{font-style:normal;flex:none;width:20px;text-align:center}
.chk-row small{display:block;color:var(--muted)}

/* interview */
.iv{border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:10px}
.iv h4{margin:0 0 6px;font-size:14.5px}
.iv .cat{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--brand);font-weight:700}
.iv p{margin:4px 0;font-size:13.5px;color:var(--ink2)}

/* stage */
.stage{overflow:auto;background:color-mix(in srgb,var(--bg) 70%,#c9d2df);position:relative;min-height:0}
:root[data-theme="dark"] .stage{background:#070b14}
.zoom{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:6px;justify-content:center;padding:8px;background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:blur(6px)}
.pagewrap{padding:24px 24px 80px;display:flex;justify-content:center}
.pagewrap>.resume{box-shadow:0 2px 6px rgba(0,0,0,.12),0 18px 40px rgba(0,0,0,.18);transform-origin:top center}

/* mobile */
.mobile-tabs{display:none}
@media (max-width:900px){
  .hero{grid-template-columns:1fr;padding-top:36px}.hero-art{display:none}
  .grid3{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}
  .topnav>a[data-route]{display:none}
  .hide-m{display:none}
  .docname{width:120px}
  .workspace{grid-template-columns:minmax(0,1fr)}
  .panel,.pbody,.esec,.fgrid{min-width:0}
  .mobile-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);background:var(--card)}
  .mobile-tabs button{padding:10px;border:0;background:none;font:600 14px var(--ui);color:var(--muted);border-bottom:2px solid transparent}
  .mobile-tabs button.on{color:var(--brand);border-color:var(--brand)}
  body[data-mtab="edit"] .stage{display:none}
  body[data-mtab="preview"] .panel{display:none}
  .pagewrap{padding:12px 8px 60px}
  .tplgrid{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:520px){.row2,.fgrid,.aigrid{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.topnav .btn.primary{display:none}}

/* dialog, toast, player */
.dlg{border:0;border-radius:14px;padding:0;max-width:min(640px,94vw);width:100%;background:var(--card);color:var(--ink);box-shadow:var(--shadow)}
.dlg::backdrop{background:rgba(5,12,28,.55)}
.dlg-in{padding:20px}
.dlg h3{margin:0 0 10px}
.dlg-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
.lib-item{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:9px;margin-bottom:8px}
.lib-item.on{border-color:var(--brand)}
.lib-item .sp{flex:1;min-width:0}
.lib-item small{display:block;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--card);padding:10px 16px;border-radius:10px;font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:100;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%)}
.player{position:fixed;right:16px;bottom:16px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:10px 12px;display:flex;gap:10px;align-items:center;z-index:90;font-size:13.5px;max-width:92vw}

/* ===== RESUME DOCUMENT ===== */
.resume{
  --acc:#1747b5; --rf:"Inter"; --rs:10.5pt; --rlh:1.35; --rm:.6in; --pw:8.5in; --ph:11in;
  width:var(--pw); min-height:var(--ph); background:#fff; color:#1b2433;
  font-family:var(--rf),Arial,sans-serif; font-size:var(--rs); line-height:var(--rlh);
  padding:var(--rm); position:relative; overflow-wrap:anywhere;
}
.pagewrap>.resume{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--ph) - 2px),#e05656 calc(var(--ph) - 2px),#e05656 var(--ph))}
.resume *{box-sizing:border-box}
.resume h1,.resume h2,.resume h3,.resume p,.resume ul{margin:0}
.r-head{display:flex;gap:18px;align-items:center;margin-bottom:14px}
.r-photo{width:88px;height:88px;border-radius:50%;object-fit:cover;flex:none}
.r-name{font-size:2.3em;line-height:1.05;letter-spacing:-.015em;color:#0d1626;font-weight:700}
.r-title{font-size:1.15em;color:var(--acc);font-weight:600;margin-top:3px}
.r-contact{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:6px;font-size:.92em;color:#45526a}
.r-contact a{color:inherit;text-decoration:none}
.r-body{display:block}
.r-sec{margin-top:12px;break-inside:auto}
.r-h{font-size:.95em;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--acc);border-bottom:1.2px solid color-mix(in srgb,var(--acc) 45%,#fff);padding-bottom:3px;margin-bottom:7px;break-after:avoid}
.r-item{margin-bottom:8px;break-inside:avoid}
.r-row{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.r-role{font-weight:700;color:#0d1626}
.r-org{font-weight:600;color:#33415a}
.r-date,.r-loc{color:#5a667b;font-size:.92em;white-space:nowrap}
.r-bul{padding-left:1.15em;margin-top:3px}
.r-bul li{margin:1.5px 0}
.r-bul li::marker{color:var(--acc)}
.r-sum{color:#26324a}
.r-skills{display:flex;flex-wrap:wrap;gap:4px 6px}
.r-skills span{background:color-mix(in srgb,var(--acc) 10%,#fff);color:#1f2c44;border-radius:4px;padding:1px 7px;font-size:.93em}
.r-inline{color:#26324a}
.r-desc{color:#33415a;margin-top:2px}

/* Executive */
.t-executive .r-head{flex-direction:column;text-align:center;gap:6px;border-bottom:3px double var(--acc);padding-bottom:12px}
.t-executive .r-contact{justify-content:center}
.t-executive .r-h{text-align:center;border:0;letter-spacing:.18em;position:relative}
.t-executive .r-h::after{content:"";display:block;width:48px;height:2px;background:var(--acc);margin:4px auto 0}

/* Classic */
.t-classic .r-name{font-family:"Source Serif 4",Georgia,serif;font-weight:700}
.t-classic .r-h{color:#0d1626;border-bottom:2px solid #0d1626;letter-spacing:.06em}
.t-classic .r-title{color:#33415a}

/* Banker */
.t-banker .r-head{flex-direction:column;text-align:center;gap:2px;margin-bottom:8px}
.t-banker .r-name{text-transform:uppercase;letter-spacing:.08em;font-size:1.9em}
.t-banker .r-title{color:#33415a;font-weight:500}
.t-banker .r-contact{justify-content:center;border-top:1px solid #0d1626;border-bottom:1px solid #0d1626;padding:3px 0;width:100%}
.t-banker .r-h{color:#0d1626;border-bottom:1px solid #0d1626;letter-spacing:.04em;font-size:1em}
.t-banker .r-sec{margin-top:9px}
.t-banker .r-bul li::marker{color:#0d1626}
.t-banker .r-skills span{background:none;padding:0}
.t-banker .r-skills span:not(:last-child)::after{content:" ·"}

/* Minimal */
.t-minimal .r-name{font-weight:300;font-size:2.6em;letter-spacing:-.02em}
.t-minimal .r-h{border:0;font-size:.8em;letter-spacing:.2em;color:#7a8599;margin-bottom:6px}
.t-minimal .r-item{display:grid;grid-template-columns:1fr;}
.t-minimal .r-sec{margin-top:16px}
.t-minimal .r-title{color:#45526a;font-weight:400}

/* Elegant */
.t-elegant{--rf:"EB Garamond"}
.t-elegant .r-head{flex-direction:column;text-align:center;gap:4px}
.t-elegant .r-name{font-family:"EB Garamond",Georgia,serif;font-weight:600;font-size:2.7em;letter-spacing:.02em}
.t-elegant .r-title{font-style:italic;font-weight:400;color:#45526a}
.t-elegant .r-contact{justify-content:center}
.t-elegant .r-h{text-align:center;border:0;font-family:"EB Garamond",Georgia,serif;font-weight:600;letter-spacing:.25em;display:flex;align-items:center;gap:10px}
.t-elegant .r-h::before,.t-elegant .r-h::after{content:"";flex:1;height:1px;background:var(--acc)}

/* Compact */
.t-compact .r-head{background:var(--acc);color:#fff;margin:calc(var(--rm)*-1) calc(var(--rm)*-1) 12px;padding:calc(var(--rm)*.7) var(--rm)}
.t-compact .r-name,.t-compact .r-title,.t-compact .r-contact{color:#fff}
.t-compact .r-title{opacity:.9}
.t-compact .r-sec{margin-top:8px}
.t-compact .r-item{margin-bottom:5px}

/* Two-column: Modern (left sidebar) & Tech (right sidebar) */
.t-modern,.t-tech{padding:0}
.t-modern .r-body,.t-tech .r-body{display:grid;min-height:var(--ph)}
.t-modern .r-body{grid-template-columns:32% 1fr}
.t-tech .r-body{grid-template-columns:1fr 31%}
.t-modern .r-side{order:-1;background:color-mix(in srgb,var(--acc) 92%,#000);color:#eef2f9;padding:var(--rm) calc(var(--rm)*.7)}
.t-modern .r-main{padding:var(--rm)}
.t-modern .r-side .r-h{color:#fff;border-color:rgba(255,255,255,.35)}
.t-modern .r-side .r-skills span{background:rgba(255,255,255,.14);color:#fff}
.t-modern .r-side .r-role,.t-modern .r-side .r-org{color:#fff}
.t-modern .r-side .r-date,.t-modern .r-side .r-loc,.t-modern .r-side .r-desc,.t-modern .r-side .r-inline{color:#d5ddeb}
.t-modern .r-side .r-contact{flex-direction:column;color:#eef2f9;gap:5px;margin:0 0 6px}
.t-modern .r-side .r-photo{margin:0 auto 14px;display:block;width:110px;height:110px;border:3px solid rgba(255,255,255,.3)}
.t-modern .r-head,.t-tech .r-head{padding:var(--rm) var(--rm) 0;margin:0}
.t-tech .r-head{border-bottom:4px solid var(--acc);padding-bottom:14px;margin-bottom:0}
.t-tech .r-main{padding:calc(var(--rm)*.6) var(--rm) var(--rm)}
.t-tech .r-side{background:color-mix(in srgb,var(--acc) 7%,#fff);padding:calc(var(--rm)*.6) calc(var(--rm)*.7)}
.t-tech .r-name{font-family:"Inter",sans-serif;font-weight:800}
.t-tech .r-h{border:0;font-size:.85em;background:color-mix(in srgb,var(--acc) 12%,#fff);padding:3px 7px;border-radius:3px}
.t-tech .r-side .r-skills span{background:#fff;border:1px solid color-mix(in srgb,var(--acc) 30%,#fff)}

/* print */
#printArea{display:none}
@media print{
  body>*:not(#printArea){display:none!important}
  #printArea{display:block!important}
  #printArea .resume{box-shadow:none;background-image:none!important;width:100%;min-height:0}
  #printArea .resume.t-modern .r-body,#printArea .resume.t-tech .r-body{min-height:var(--ph)}
  html,body{background:#fff!important}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .cl-page{font-family:var(--rf),Georgia,serif;font-size:11pt;line-height:1.5;white-space:pre-wrap;color:#111}
}

/* ===== v2 additions ===== */
.avatar-btn{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);background:var(--bg);padding:0;overflow:hidden;cursor:pointer;display:grid;place-items:center;font-size:16px;flex:none}
.avatar-btn img{width:100%;height:100%;object-fit:cover}
.photo-ctl{display:flex;gap:12px;align-items:center}
.photo-thumb{width:72px;height:72px;border-radius:50%;border:2px dashed var(--line);background:var(--bg);overflow:hidden;cursor:pointer;flex:none;display:grid;place-items:center;font-size:28px;padding:0}
.photo-thumb img{width:100%;height:100%;object-fit:cover}
.photo-ctl p{margin:6px 0 0}
.contact-photo{display:flex;gap:12px;align-items:center;margin-bottom:10px;padding:10px;border:1px dashed var(--line);border-radius:10px}
.contact-photo .photo-thumb{width:56px;height:56px;font-size:22px}
.coach{font-size:12px;color:var(--muted);margin-top:-2px}
.coach-ok{color:var(--ok);font-weight:600}.coach-mid{color:var(--warn);font-weight:600}.coach-bad{color:var(--bad);font-weight:600}

/* photo studio */
.studio{display:grid;grid-template-columns:300px 1fr;gap:16px}
.studio-cv{width:300px;height:300px;border-radius:12px;background:repeating-conic-gradient(#e7ebf1 0 25%,#fff 0 50%) 0 0/20px 20px;touch-action:none;cursor:grab;display:block}
.studio-cv:active{cursor:grabbing}
.studio .ctl>*+*{margin-top:9px}
.drop{border:2px dashed var(--line);border-radius:12px;padding:22px;text-align:center;color:var(--muted)}
.drop.over{border-color:var(--brand);color:var(--brand)}
.bgsw{display:flex;gap:6px;flex-wrap:wrap}
.bgsw button{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);cursor:pointer}
.bgsw button.on{box-shadow:0 0 0 2px var(--brand)}
.cam video{width:100%;max-height:300px;border-radius:12px;background:#000}
@media (max-width:640px){.studio{grid-template-columns:1fr}.studio-cv{width:100%;height:auto;aspect-ratio:1}}

/* resume photo variants + QR */
.r-photo{width:var(--psz,88px);height:var(--psz,88px)}
.ps-circle{border-radius:50%}.ps-rounded{border-radius:14%}.ps-square{border-radius:2px}
.pb-accent{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--acc)}
.pb-white{box-shadow:0 0 0 4px #fff}
.pb-shadow{box-shadow:0 4px 14px rgba(0,0,0,.22)}
.t-modern .r-side .r-photo{width:var(--psz,110px);height:var(--psz,110px)}
.r-qr{margin-left:auto;width:66px;height:66px;flex:none}
.r-qr svg{width:100%;height:100%;display:block}
.t-executive .r-qr,.t-banker .r-qr,.t-elegant .r-qr,.t-prestige .r-qr{position:absolute;right:var(--rm);top:var(--rm)}
.t-modern .r-side .r-qr{margin:10px 0 0;background:#fff;padding:4px;border-radius:4px;width:74px;height:74px}
.t-compact .r-qr{background:#fff;padding:3px;border-radius:4px}

/* Corporate */
.t-corporate::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:var(--acc)}
.t-corporate .r-head{border-bottom:1px solid #cfd6e1;padding-bottom:12px}
.t-corporate .r-sec{display:grid;grid-template-columns:1.25in 1fr;gap:0 16px;margin-top:10px}
.t-corporate .r-h{border:0;font-size:.82em;letter-spacing:.12em;padding-top:2px}
.t-corporate .r-sec>.r-h~*{grid-column:2}
/* Prestige */
.t-prestige .r-head{flex-direction:column;text-align:center;gap:4px;border-bottom:4px double var(--acc);padding-bottom:12px}
.t-prestige .r-name{font-family:"Source Serif 4",Georgia,serif;font-weight:700;letter-spacing:.03em}
.t-prestige .r-contact{justify-content:center}
.t-prestige .r-h{border:0;border-left:4px solid var(--acc);padding:1px 0 1px 9px;color:#0d1626;letter-spacing:.14em;background:linear-gradient(90deg,color-mix(in srgb,var(--acc) 10%,#fff),transparent 70%)}

/* chat */
.chatlog{display:flex;flex-direction:column;gap:10px;max-height:52vh;overflow-y:auto;padding:4px 0}
.msg{padding:10px 12px;border-radius:12px;font-size:14px;white-space:pre-wrap;max-width:92%}
.msg.u{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:4px}
.msg.a{align-self:flex-start;background:var(--bg);border:1px solid var(--line);border-bottom-left-radius:4px}
.msg .ib{margin-top:6px}
.chatin{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}

/* tracker */
.trk-head{display:flex;justify-content:space-between;align-items:center}
.trk-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:8px 0}
.trk-stats div{background:var(--bg);border-radius:8px;padding:8px;text-align:center;font-size:11px;color:var(--muted)}
.trk-stats b{display:block;font-size:20px;color:var(--ink)}
.trk{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:8px}
.trk .top{display:flex;justify-content:space-between;gap:8px;align-items:center}
.trk small{color:var(--muted)}
.st{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;text-transform:uppercase;letter-spacing:.04em}
.st-Saved{background:#e7ecf5;color:#33415a}.st-Applied{background:#dbe7ff;color:#1747b5}.st-Interview{background:#fff1d6;color:#9a5b00}.st-Offer{background:#d9f5e5;color:#126b3a}.st-Rejected{background:#fde2e2;color:#a12a2a}

/* brain */
.brain-lvl{display:flex;gap:14px;align-items:center;background:linear-gradient(135deg,#0b1f3a,#1747b5);color:#fff;border-radius:14px;padding:16px}
.brain-lvl b{font-size:28px;line-height:1}
.brain-lvl small{opacity:.8}
.meter{height:8px;background:rgba(255,255,255,.2);border-radius:99px;overflow:hidden;margin-top:6px}
.meter i{display:block;height:100%;background:var(--gold)}
.chips span{display:inline-block;margin:2px;padding:2px 9px;border-radius:999px;font-size:12.5px;background:var(--bg);border:1px solid var(--line)}

/* versions */
.ver{display:flex;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:9px;margin-bottom:6px}
.ver .sp{flex:1}.ver small{display:block;color:var(--muted)}
.diff{max-height:50vh;overflow:auto;font-size:13px;font-family:ui-monospace,Menlo,monospace;background:var(--bg);border-radius:8px;padding:10px;white-space:pre-wrap}
.diff .add{background:color-mix(in srgb,var(--ok) 18%,transparent)}.diff .del{background:color-mix(in srgb,var(--bad) 16%,transparent);text-decoration:line-through}

/* update bar */
.updbar{position:fixed;left:50%;top:70px;transform:translateX(-50%);z-index:95;background:var(--ink);color:var(--card);padding:10px 12px 10px 16px;border-radius:12px;display:flex;gap:10px;align-items:center;box-shadow:var(--shadow);font-size:14px;max-width:94vw}
.updbar .ghost{color:var(--card);border-color:transparent}
