.cvb-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:flex-start;padding-block:24px 8px}
.cvb-top h1{margin-bottom:.25rem}
.cvb-top p{margin:0;max-width:60ch}
.toolbar{display:flex;flex-wrap:wrap;gap:8px}
.mobile-tabs{display:none;gap:8px;padding-block:8px}
.tab{flex:1;border:1px solid var(--line);background:var(--soft);padding:8px;border-radius:8px;font:inherit;color:var(--ink)}
.tab.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.workspace{display:grid;grid-template-columns:minmax(320px,440px) 1fr;gap:24px;align-items:start;padding-block:12px}
.editor{display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 140px);overflow:auto;padding-right:4px;position:sticky;top:12px}
.sec{border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.sec-head{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;user-select:none}
.sec-head h3{margin:0;flex:1;font-size:1rem}
.sec-head .ctl{display:flex;gap:4px}
.sec-body{padding:4px 12px 12px;display:flex;flex-direction:column;gap:10px}
.sec.collapsed .sec-body{display:none}
.chev{display:inline-block;transition:transform .15s;color:var(--muted)}
.sec.collapsed .chev{transform:rotate(-90deg)}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-size:.8rem;color:var(--muted)}
.field input,.field textarea,.field select{font:inherit;font-size:.95rem;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);width:100%}
.field textarea{min-height:72px;resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.entry{border:1px solid var(--line);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:10px;background:var(--soft)}
.entry-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.entry-head strong{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.entry-head .ctl{display:flex;gap:4px;flex-shrink:0}
.icon{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px;width:28px;height:28px;font:inherit;cursor:pointer;line-height:1}
.icon:disabled{opacity:.35;cursor:default}
.icon.del{color:var(--danger)}
.hint{font-size:.78rem;color:var(--muted)}
.preview{display:flex;flex-direction:column;gap:10px;min-width:0}
.preview-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:.85rem;color:var(--muted)}
.preview-controls label{display:flex;align-items:center;gap:6px}
.preview-controls select,.preview-controls input[type=color]{font:inherit;font-size:.85rem;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}
.preview-controls input[type=color]{width:32px;height:28px;padding:2px}
.saved{margin-left:auto;font-size:.8rem}
.preview-wrap{position:relative;width:100%;overflow:hidden;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:16px}
.pdf-hint{font-size:.85rem;margin:0}
/* ---------- the page ---------- */
.page{--cv-accent:#0b7a5a;--cv-size:10.5pt;background:#fff;color:#111;width:210mm;min-height:297mm;padding:16mm 17mm;transform-origin:top left;box-shadow:0 2px 12px rgba(0,0,0,.12);font-family:"Helvetica Neue",Arial,"Liberation Sans",sans-serif;font-size:var(--cv-size);line-height:1.38;color-scheme:light}
.page.letter{width:8.5in;min-height:11in}
.page *{box-sizing:border-box}
.page p{margin:0}
.page ul{margin:2pt 0 0;padding-left:12pt}
.page li{margin:0 0 1.5pt;break-inside:avoid}
.page .name{font-size:2.05em;font-weight:700;letter-spacing:-.01em;line-height:1.1;margin:0}
.page .label{font-size:1.12em;color:#333;margin-top:2pt}
.page .contact{display:flex;flex-wrap:wrap;gap:3pt 10pt;font-size:.92em;color:#333;margin-top:5pt}
.page .contact a{color:inherit;text-decoration:none}
.page .contact span+span::before{content:"·";margin-right:10pt;color:#999}
.page .head{padding-bottom:7pt;border-bottom:1.2pt solid #111;margin-bottom:9pt}
.page h2{font-size:1.0em;text-transform:uppercase;letter-spacing:.09em;margin:10pt 0 4pt;padding-bottom:2pt;border-bottom:.6pt solid #bbb;font-weight:700;break-after:avoid}
.page .entry-p{margin-bottom:6pt;break-inside:avoid}
.page .eh{display:flex;justify-content:space-between;gap:10pt;align-items:baseline}
.page .eh .t{font-weight:700}
.page .eh .d{color:#444;font-size:.92em;white-space:nowrap}
.page .sub{display:flex;justify-content:space-between;gap:10pt;color:#333;font-style:italic;font-size:.96em}
.page .skills{display:grid;grid-template-columns:auto 1fr;gap:2pt 10pt}
.page .skills .k{font-weight:700}
.page .summary{margin-top:2pt}
/* modern style */
.page.tpl-modern{font-family:Georgia,"Times New Roman",serif}
.page.tpl-modern .name{color:var(--cv-accent);font-family:"Helvetica Neue",Arial,sans-serif}
.page.tpl-modern .head{border-bottom:2.2pt solid var(--cv-accent)}
.page.tpl-modern h2{color:var(--cv-accent);border-bottom:none;font-family:"Helvetica Neue",Arial,sans-serif;letter-spacing:.12em;font-size:.9em}
.page.tpl-modern .eh .t{color:#111}
.page.tpl-modern .contact span+span::before{color:var(--cv-accent)}
.page .empty{color:#999;font-style:italic}
/* responsive */
@media (max-width:900px){
  .workspace{grid-template-columns:1fr}
  .editor{position:static;max-height:none}
  .mobile-tabs{display:flex}
  body.show-preview .editor{display:none}
  body:not(.show-preview) .preview{display:none}
}
/* print */
@media print{
  @page{margin:0}
  body{background:#fff!important}
  .cvb-top,.mobile-tabs,.editor,.preview-controls,.pdf-hint,.site-header,.site-footer{display:none!important}
  .workspace{display:block;padding:0;max-width:none}
  .preview-wrap{padding:0;border:none;background:none;overflow:visible;height:auto!important;border-radius:0}
  .page{transform:none!important;box-shadow:none;min-height:0;margin:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
