.cv-sheet{background:#fff;color:#1a1a1a;box-shadow:0 18px 50px #1c19151f;overflow:hidden;position:relative}.cv-sheet[data-paper=a4]{width:210mm;min-height:297mm}.cv-sheet[data-paper=letter]{width:8.5in;min-height:11in}.cv-sheet *{box-sizing:border-box}.cv-h{margin:0 0 8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700}.cv-sec{margin:0 0 14px}.cv-stack{display:grid;gap:10px}.cv-job-top{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.cv-job-meta,.cv-muted{color:#5b5750;font-size:11.5px}.cv-prose{margin:4px 0 0;font-size:12.2px;line-height:1.45}.cv-bullets{margin:6px 0 0;padding-left:16px;font-size:12px;line-height:1.4}.cv-plain{margin:0;padding:0;list-style:none;font-size:12.2px;line-height:1.5}.cv-kicker{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px}.cv-pills{display:flex;flex-wrap:wrap;gap:5px}.cv-pill{border:1px solid currentColor;border-radius:999px;padding:2px 8px;font-size:10.5px}.cv-pill-group{margin-bottom:8px}.cv-contact{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:11.5px}.cv-contact span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:9px;opacity:.7}.cv-inline{margin:0;font-size:11px;line-height:1.45}.cv-photo{object-fit:cover;background:#ddd}.cv-meters{display:grid;gap:7px}.cv-meter{display:grid;gap:3px;font-size:11px}.cv-meter i{display:block;height:5px;background:currentColor;border-radius:99px}.tpl-minimalist{font-family:Outfit,sans-serif;padding:16mm 18mm 18mm}.tpl-minimalist .name{font-family:Fraunces,serif;font-size:34px;margin:0;font-weight:650;letter-spacing:-.03em}.tpl-minimalist .role{margin:4px 0 10px;color:#6a645c;font-size:13px}.tpl-minimalist .rule{height:1px;background:#1c1915;margin:12px 0 16px}.tpl-minimalist .head{display:grid;grid-template-columns:1fr 28mm;gap:16px;align-items:end}.tpl-minimalist .cv-photo{width:28mm;height:34mm}.tpl-minimalist .cv-h{border-bottom:1px solid #e6e1d8;padding-bottom:4px}.tpl-corporate{font-family:Outfit,sans-serif;--ink: #0d2b45;--gold: #c9a227;color:#1e2933}.tpl-corporate .mast{background:#0d2b45;color:#fff;padding:14mm 16mm 12mm;display:grid;grid-template-columns:32mm 1fr;gap:14px;align-items:center}.tpl-corporate .cv-photo{width:32mm;height:38mm;border:2px solid #c9a227}.tpl-corporate .name{margin:0;font-size:28px;letter-spacing:-.03em}.tpl-corporate .role{margin:4px 0 0;color:#c9a227;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.tpl-corporate .body{display:grid;grid-template-columns:62mm 1fr;gap:12mm;padding:10mm 16mm 14mm}.tpl-corporate .cv-h{color:#0d2b45;border-bottom:2px solid #c9a227;padding-bottom:3px}.tpl-corporate .side{border-right:1px solid #d5dee6;padding-right:8mm}.tpl-sidebar{font-family:Outfit,sans-serif;display:grid;grid-template-columns:68mm 1fr;min-height:inherit}.tpl-sidebar .side{background:#0f3d3e;color:#f3efe6;padding:12mm 8mm}.tpl-sidebar .main{padding:12mm 12mm 14mm 10mm}.tpl-sidebar .cv-photo{width:42mm;height:42mm;border-radius:50%;margin:0 auto 10px;display:block;border:3px solid #e1c16e}.tpl-sidebar .name{margin:0;font-size:26px;letter-spacing:-.03em}.tpl-sidebar .role{color:#3f6f70;margin:4px 0 14px}.tpl-sidebar .side .cv-h,.tpl-sidebar .side .cv-muted,.tpl-sidebar .side .cv-prose,.tpl-sidebar .side .cv-job-meta{color:inherit}.tpl-sidebar .side .cv-h{color:#e1c16e;border-bottom:1px solid rgba(225,193,110,.35);padding-bottom:4px}.tpl-sidebar .main .cv-h{color:#0f3d3e}.tpl-gold{font-family:"Source Serif 4",serif;padding:14mm 16mm 16mm;background:linear-gradient(#1c1915,#1c1915) 0 0 / 100% 28mm no-repeat,#fbf8f1;color:#1c1915}.tpl-gold .head{color:#f4e7c5;text-align:center;height:28mm;display:flex;flex-direction:column;justify-content:center;margin:-14mm -16mm 10mm;padding:8mm 16mm 0}.tpl-gold .name{margin:0;font-size:30px;font-weight:700;letter-spacing:.04em}.tpl-gold .role{margin:4px 0 0;color:#d4b56a;font-family:Outfit,sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase}.tpl-gold .gold-line{height:1px;background:linear-gradient(90deg,transparent,#c9a227,transparent);margin:8px 0 12px}.tpl-gold .cv-photo{width:28mm;height:28mm;border-radius:50%;border:2px solid #c9a227;margin:0 auto 8px;display:block}.tpl-gold .cv-h{color:#8a6d1f;letter-spacing:.22em;text-align:center}.tpl-gold .cv-inline{text-align:center;font-family:Outfit,sans-serif}.tpl-creative{font-family:Outfit,sans-serif;padding:0 0 12mm}.tpl-creative .banner{background:linear-gradient(120deg,#ef5d28,#f4b942 48%,#2bb0b6);color:#fff;padding:12mm 14mm;display:grid;grid-template-columns:34mm 1fr;gap:12px;align-items:center;clip-path:polygon(0 0,100% 0,100% 86%,0 100%)}.tpl-creative .cv-photo{width:34mm;height:34mm;border-radius:50%;border:3px solid #fff}.tpl-creative .name{margin:0;font-size:30px;letter-spacing:-.04em}.tpl-creative .body{padding:4mm 14mm 0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.tpl-creative .span2{grid-column:1 / -1}.tpl-creative .cv-h{color:#ef5d28}.tpl-creative .cv-pill{background:#fff4ec;border-color:#ef5d28;color:#9a3310}.tpl-mono{font-family:"Source Serif 4",serif;padding:14mm 16mm}.tpl-mono .name{font-size:40px;margin:0;font-weight:700;line-height:.95;letter-spacing:-.04em}.tpl-mono .role{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin:8px 0}.tpl-mono .hair{border-top:3px solid #111;border-bottom:1px solid #111;padding:6px 0;margin-bottom:12px}.tpl-mono .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:12mm}.tpl-mono .cv-photo{width:100%;height:48mm;filter:grayscale(1)}.tpl-mono .cv-h{font-family:IBM Plex Mono,monospace;letter-spacing:.18em;border-bottom:1px solid #111}.tpl-twocol{font-family:Outfit,sans-serif;padding:12mm;display:grid;grid-template-columns:70mm 1fr;gap:8mm}.tpl-twocol .left{background:#eef2f6;padding:8mm 7mm}.tpl-twocol .cv-photo{width:100%;height:52mm;margin-bottom:10px}.tpl-twocol .name{margin:0;font-size:26px;letter-spacing:-.03em;color:#1b365d}.tpl-twocol .role{color:#5c6b78;margin:4px 0 12px}.tpl-twocol .cv-h{color:#1b365d;border-bottom:2px solid #1b365d}.tpl-timeline{font-family:Outfit,sans-serif;padding:14mm 16mm}.tpl-timeline .head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:8mm}.tpl-timeline .name{margin:0;font-size:30px;letter-spacing:-.04em}.tpl-timeline .cv-photo{width:28mm;height:28mm;border-radius:8px}.tpl-timeline .rail{border-left:2px solid #2d6a4f;padding-left:12px;margin-left:6px}.tpl-timeline .cv-job{position:relative}.tpl-timeline .cv-job:before{content:"";position:absolute;left:-16px;top:6px;width:8px;height:8px;border-radius:50%;background:#2d6a4f}.tpl-timeline .cv-h{color:#2d6a4f}.tpl-info{font-family:Outfit,sans-serif;padding:12mm}.tpl-info .hero{display:grid;grid-template-columns:36mm 1fr;gap:12px;background:#14213d;color:#fff;padding:8mm;border-radius:14px;margin-bottom:8mm;align-items:center}.tpl-info .cv-photo{width:36mm;height:36mm;border-radius:50%}.tpl-info .name{margin:0;font-size:26px}.tpl-info .role{color:#fca311;margin:4px 0 0}.tpl-info .cv-h{color:#14213d}.tpl-info .cv-meter i{background:#fca311}.tpl-info .cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tpl-compact{font-family:Outfit,sans-serif;padding:10mm 11mm;font-size:10.5px}.tpl-compact .name{margin:0;font-size:20px;letter-spacing:-.03em}.tpl-compact .top{display:grid;grid-template-columns:18mm 1fr;gap:8px;align-items:center;border-bottom:2px solid #222;padding-bottom:6px;margin-bottom:8px}.tpl-compact .cv-photo{width:18mm;height:22mm}.tpl-compact .cv-h{font-size:9px;margin-bottom:4px}.tpl-compact .cv-prose,.tpl-compact .cv-bullets,.tpl-compact .cv-plain,.tpl-compact .cv-job-meta{font-size:10px;line-height:1.32}.tpl-compact .cv-sec{margin-bottom:8px}.tpl-compact .cols{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tpl-academic{font-family:"Source Serif 4",serif;padding:16mm 18mm}.tpl-academic .name{margin:0;font-size:26px;text-align:center;font-weight:700}.tpl-academic .role{text-align:center;font-style:italic;margin:4px 0 6px}.tpl-academic .cv-inline{text-align:center;border-top:1px solid #111;border-bottom:1px solid #111;padding:6px 0;margin-bottom:12px}.tpl-academic .cv-photo{width:24mm;height:30mm;margin:0 auto 8px;display:block}.tpl-academic .cv-h{font-size:13px;letter-spacing:0;text-transform:none;font-variant:small-caps;border-bottom:1px solid #111}.tpl-tech{font-family:Outfit,sans-serif;display:grid;grid-template-columns:64mm 1fr;min-height:inherit;background:#f4f6f8}.tpl-tech .side{background:#111827;color:#e5e7eb;padding:12mm 8mm;font-family:IBM Plex Mono,monospace}.tpl-tech .main{padding:12mm 11mm}.tpl-tech .cv-photo{width:40mm;height:40mm;border-radius:12px;margin:0 auto 12px;display:block}.tpl-tech .name{margin:0;font-size:24px;letter-spacing:-.04em}.tpl-tech .role{font-family:IBM Plex Mono,monospace;font-size:11px;color:#4b5563;margin:6px 0 12px}.tpl-tech .side .cv-h{color:#6ee7b7;font-family:IBM Plex Mono,monospace}.tpl-tech .cv-pill{border-color:#6ee7b7;color:#6ee7b7}.tpl-tech .main .cv-h{font-family:IBM Plex Mono,monospace;color:#111827}@media print{@page{margin:0}html,body{background:#fff;margin:0}.cv-sheet{box-shadow:none;margin:0}}:root{--ink: #1c1915;--muted: #6d675e;--line: #ddd6c8;--paper: #f3eee4;--panel: #fffdf8;--accent: #c45c26;--accent-2: #1f4d45;color:var(--ink);font-family:Outfit,system-ui,sans-serif;background:var(--paper)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{min-height:100svh;display:grid;grid-template-rows:auto 1fr auto}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 22px;border-bottom:1px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:5}.brand{display:flex;flex-direction:column;gap:2px}.brand strong{font-family:Fraunces,serif;font-size:22px;letter-spacing:-.03em}.brand span{color:var(--muted);font-size:13px}.top-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.seg,.field-inline{display:flex;gap:6px;align-items:center;font-size:13px}.seg button,.ghost,.primary,.danger{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px}.seg button[aria-pressed=true],.primary{background:var(--ink);color:#f7f1e6;border-color:var(--ink)}.primary:disabled{opacity:.55}.workspace{display:grid;grid-template-columns:minmax(320px,420px) 1fr;min-height:0}.form-col,.preview-col{min-height:0}.form-col{border-right:1px solid var(--line);background:var(--panel);overflow:auto;padding:18px 18px 48px}.preview-col{overflow:auto;padding:22px;background:radial-gradient(circle at top,rgba(196,92,38,.08),transparent 28%),var(--paper)}.section{margin-bottom:22px}.section h2{margin:0 0 10px;font-size:13px;letter-spacing:.14em;text-transform:uppercase}label.stack{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;margin-bottom:10px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:#fff}textarea{min-height:84px;resize:vertical}.hint{font-weight:400;color:var(--muted);font-size:12px}.card{border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px;background:#fff}.row2,.templates{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tpl-btn{text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px}.tpl-btn[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.tpl-btn small{display:block;color:var(--muted);margin-top:4px}.preview-stage{display:flex;justify-content:center}.preview-frame{transform-origin:top center}.print-root{margin:0;background:#fff}.print-root .cv-sheet{box-shadow:none}.photo-box{display:grid;gap:8px}.photo-box img{width:84px;height:100px;object-fit:cover;border-radius:8px}.order-row{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px}.foot{padding:10px 22px;color:var(--muted);font-size:12px;border-top:1px solid var(--line);background:var(--panel)}.error{color:#9b1c1c;font-size:13px}@media(max-width:980px){.workspace{grid-template-columns:1fr}.form-col{border-right:0;border-bottom:1px solid var(--line);max-height:none}.topbar{flex-direction:column;align-items:flex-start}}
