/* CV trong hệ thống: danh sách, trình tạo, trang xem + 3 mẫu (Cơ bản · Xanh hiện đại · Navy thanh lịch) + trang nạp hồ sơ ứng tuyển. */
.cvpage{padding-block:22px 40px;display:grid;gap:14px;max-width:900px}
.cv-head{display:flex;gap:14px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
.cv-head h1{margin:0}
.cv-sub{margin:4px 0 0;color:var(--ink-3);font-size:var(--t-body,14px)}
.cv-empty{display:grid;justify-items:center;gap:8px;text-align:center;padding:34px 16px;background:#fff;border:1px dashed var(--line);border-radius:var(--r)}
.cv-empty .ic{width:52px;height:52px;border-radius:14px;background:var(--mint-s);color:var(--mint);display:grid;place-items:center;font-size:26px}
.cv-empty b{font-size:17px}.cv-empty p{margin:0;color:var(--ink-3);max-width:420px}
.cv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.cv-card{display:grid;gap:12px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.cv-card-h{display:flex;gap:10px;align-items:center;min-width:0}
.cv-card-h .ic{flex:none;width:38px;height:38px;border-radius:10px;background:var(--blue-s);color:var(--blue);display:grid;place-items:center;font-size:19px}
.cv-card-h div{min-width:0}.cv-card-h b{display:block;font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-card-h small{display:block;color:var(--ink-3);font-size:12px}
.cv-card-a{display:flex;gap:6px;flex-wrap:wrap}
.cv-back{display:flex;justify-content:flex-end}
.cv-upsell{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;align-items:center;padding:20px;border-radius:var(--r);background:linear-gradient(135deg,#eef4ff,#e6f6f1);border:1px solid #cfe0fb}
.cv-upsell h2{margin:4px 0 10px;font-size:20px;line-height:1.25;letter-spacing:-.4px}
.cv-upsell ul{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:6px;font-size:13.5px;color:var(--ink-2)}
.cv-upsell li{display:flex;gap:8px;align-items:flex-start}.cv-upsell li i{color:var(--mint);margin-top:2px}
.cv-prev{position:relative;height:150px}
.cv-prev span{position:absolute;width:46%;height:100%;border-radius:6px;background:#fff;box-shadow:var(--sh-2)}
.cv-prev .p1{left:4%;top:0;background:linear-gradient(90deg,var(--mint) 0 32%,#fff 32%)}
.cv-prev .p2{right:4%;top:14px;background:linear-gradient(180deg,#1c2f57 0 26%,#fff 26%)}
@media (max-width:700px){.cv-upsell{grid-template-columns:1fr}.cv-prev{display:none}}
/* trình tạo */
.cv-form{display:grid;gap:14px}
.cv-sec{display:grid;gap:12px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.cv-sec h2{margin:0;font-size:16px;font-weight:700;display:flex;align-items:center;gap:9px}
.cv-sec h2>span{width:22px;height:22px;border-radius:50%;background:var(--mint);color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center}
.cv-pill{margin-left:auto;display:inline-flex;gap:4px;align-items:center;height:22px;padding:0 8px;border-radius:99px;background:#fff4d9;color:#8a5a00;font-size:11px;font-weight:700}
.cv-hint{margin:0;color:var(--ink-3);font-size:13px}
.cv-sec.locked{opacity:.78}
.cv-tpls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cv-tpl{position:relative;display:grid;gap:5px;align-content:start;padding:10px;border:1px solid var(--line);border-radius:var(--r);cursor:pointer;background:#fff}
.cv-tpl input{position:absolute;opacity:0;inset:0;cursor:pointer}
.cv-tpl:has(input:checked){border-color:var(--mint);box-shadow:0 0 0 3px var(--mint-s)}
.cv-tpl:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:2px}
.cv-tpl b{font-size:13.5px}.cv-tpl small{font-size:12px;color:var(--ink-3);line-height:1.45}
.cv-tpl em{font-style:normal;font-size:11.5px;font-weight:700;color:#8a5a00;display:flex;gap:4px;align-items:center}
.cv-tpl.lock{cursor:not-allowed}.cv-tpl.lock .th{filter:grayscale(.6) opacity(.7)}
.cv-tpl .th{display:block;aspect-ratio:3/2;border-radius:4px;border:1px solid var(--line-2);background:#fff}
.th-co-ban{background:linear-gradient(#e9edf3 0 0) 12% 16%/46% 6px no-repeat,linear-gradient(#e9edf3 0 0) 12% 34%/76% 4px no-repeat,linear-gradient(#e9edf3 0 0) 12% 46%/70% 4px no-repeat,linear-gradient(#e9edf3 0 0) 12% 62%/76% 4px no-repeat,linear-gradient(#e9edf3 0 0) 12% 74%/60% 4px no-repeat,#fff!important}
.th-xanh-hien-dai{background:linear-gradient(#fff 0 0) 42% 22%/50% 4px no-repeat,linear-gradient(#e2f4ee 0 0) 42% 40%/50% 14px no-repeat,linear-gradient(#e9edf3 0 0) 42% 66%/50% 4px no-repeat,linear-gradient(#e9edf3 0 0) 42% 78%/40% 4px no-repeat,linear-gradient(90deg,#0c9c79 0 32%,#fff 32%)!important}
.th-navy-thanh-lich{background:linear-gradient(#e2f4ee 0 0) 10% 46%/80% 12px no-repeat,linear-gradient(#e9edf3 0 0) 10% 70%/52% 4px no-repeat,linear-gradient(#e9edf3 0 0) 10% 82%/66% 4px no-repeat,linear-gradient(180deg,#1c2f57 0 30%,#fff 30%)!important}
@media (max-width:640px){.cv-tpls{grid-template-columns:1fr}}
.cv-rows{display:grid;gap:12px}
.cv-row{display:grid;gap:6px;padding:12px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-2)}
.cv-del{justify-self:end;display:inline-flex;gap:4px;align-items:center;height:28px;padding:0 8px;border:0;background:transparent;color:var(--rose);font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.cv-actions{display:flex;gap:8px;justify-content:flex-end;position:sticky;bottom:0;padding:10px 0;background:linear-gradient(transparent,var(--bg-2) 30%)}
.cv-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cv-who{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--ink-2);font-weight:600}
/* hiển thị CV (khổ A4 trên màn hình rộng) */
.cvx{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-2);font-size:13.5px;line-height:1.6;color:var(--ink);overflow:hidden;min-width:0}
.cvx h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.6px;line-height:1.15}
.cvx h2{margin:0 0 8px;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.cvx p{margin:0 0 6px;color:var(--ink-2);white-space:pre-line;overflow-wrap:anywhere}
.cvx section{margin-bottom:16px}
.cvx .cvx-job{font-size:15px;font-weight:600;color:var(--ink-2);margin:4px 0 0}
.cvx .cvx-ct{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px}
.cvx .cvx-ct li{display:flex;gap:6px;align-items:center;min-width:0}.cvx .cvx-ct span{overflow-wrap:anywhere}
.cvx .cvx-it{margin-bottom:10px}.cvx .cvx-it b{display:block;font-size:14px;font-weight:700}.cvx .cvx-it small{display:block;color:var(--ink-3);font-size:12px}
.cvx .cvx-ls{margin:0;padding-left:18px;color:var(--ink-2)}
/* mẫu cơ bản */
.cvx-co-ban{padding:30px 34px}.cvx-co-ban .cvx-head{padding-bottom:14px;margin-bottom:16px;border-bottom:2px solid var(--ink)}.cvx-co-ban h2{border-bottom:1px solid var(--line);padding-bottom:4px;color:var(--ink)}
/* mẫu xanh hiện đại */
.cvx-xanh-hien-dai{display:grid;grid-template-columns:34% 1fr}
.cvx-xanh-hien-dai .cvx-side{background:var(--mint-d);color:#fff;padding:28px 20px;display:grid;gap:12px;align-content:start}
.cvx-xanh-hien-dai .cvx-side h1{font-size:22px}.cvx-xanh-hien-dai .cvx-side .cvx-job,.cvx-xanh-hien-dai .cvx-side p{color:#d6f3ea}
.cvx-xanh-hien-dai .cvx-side h2{color:#b9ead9;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:4px;margin:6px 0 4px}
.cvx-xanh-hien-dai .cvx-avatar{width:76px;height:76px;border-radius:50%;background:#fff;color:var(--mint-d);display:grid;place-items:center;font-size:26px;font-weight:800}
.cvx-xanh-hien-dai .cvx-ct{flex-direction:column}
.cvx-xanh-hien-dai .cvx-bars{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:12.5px}.cvx-xanh-hien-dai .cvx-bars li{display:grid;gap:3px;position:relative}
.cvx-xanh-hien-dai .cvx-bars i{display:block;height:5px;border-radius:99px;background:#fff;opacity:.9}
.cvx-xanh-hien-dai .cvx-main{padding:28px 28px 16px}
.cvx-xanh-hien-dai .cvx-main h2{color:var(--mint-d);border-bottom:2px solid var(--mint-s);padding-bottom:4px}
/* mẫu navy thanh lịch */
.cvx-navy-thanh-lich .cvx-head{background:#1c2f57;color:#fff;padding:26px 32px;display:flex;gap:18px;justify-content:space-between;align-items:flex-end;flex-wrap:wrap}
.cvx-navy-thanh-lich .cvx-head .cvx-job{color:#c9d6f0}.cvx-navy-thanh-lich .cvx-ct{margin:0;flex-direction:column;gap:4px;color:#dbe5f8}
.cvx-navy-thanh-lich .cvx-body{padding:24px 32px 12px}
.cvx-navy-thanh-lich h2{color:#1c2f57;border-left:4px solid var(--mint);padding-left:8px}
.cvx-navy-thanh-lich .cvx-tl{border-left:2px solid var(--line);padding-left:14px;display:grid;gap:12px;margin-left:4px}
.cvx-navy-thanh-lich .cvx-tl .cvx-it{position:relative;margin:0}.cvx-navy-thanh-lich .cvx-tl .cvx-it::before{content:"";position:absolute;left:-20px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--mint);border:2px solid #fff}
.cvx-navy-thanh-lich .cvx-tl .cvx-it span{display:block;color:var(--ink-2);font-weight:600}
.cvx-navy-thanh-lich .cvx-two{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cvx-navy-thanh-lich .cvx-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.cvx-navy-thanh-lich .cvx-tags span{padding:2px 9px;border-radius:99px;background:var(--blue-s);color:var(--blue-d);font-size:12px;font-weight:600}
/* khung Điểm nổi bật (chú thích — chỉ mẫu chuyên nghiệp) */
.cvx-hl{padding:12px 14px;border-radius:6px;background:#fff8e6;border:1px solid #f1dc9d}
.cvx-hl h2{display:flex;gap:6px;align-items:center;color:#8a5a00!important;border:0!important;padding:0!important;margin-bottom:6px}
.cvx-hl ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}.cvx-hl li{display:flex;gap:7px;align-items:flex-start;font-weight:600;color:var(--ink)}.cvx-hl li i{color:#c98a00;margin-top:3px}
@media (max-width:700px){.cvx-xanh-hien-dai{grid-template-columns:1fr}.cvx-navy-thanh-lich .cvx-two{grid-template-columns:1fr}.cvx-co-ban{padding:20px 16px}.cvx-navy-thanh-lich .cvx-head,.cvx-navy-thanh-lich .cvx-body{padding-inline:18px}.cvx h1{font-size:24px}}
@media print{
  body:has(.cvx)>*:not(main){display:none!important}
  .cv-noprint,.cv-bar{display:none!important}
  .cvpage{padding:0;max-width:none}.cvx{border:0;box-shadow:none;border-radius:0}
  .cvx-xanh-hien-dai .cvx-side,.cvx-navy-thanh-lich .cvx-head,.cvx-hl{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
/* trang nạp hồ sơ ứng tuyển */
.ap-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}
.ap-job{display:grid;gap:4px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.ap-job b{font-size:16px}.ap-job span{font-size:13px;color:var(--ink-3)}
.ap-cvs{display:grid;gap:8px}
.ap-cv{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:#fff;cursor:pointer}
.ap-cv:has(input:checked){border-color:var(--mint);box-shadow:0 0 0 3px var(--mint-s)}
.ap-cv b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ap-cv small{color:var(--ink-3);font-size:12px}
.ap-cv a{font-size:12.5px;font-weight:600;color:var(--blue)}
@media (max-width:820px){.ap-wrap{grid-template-columns:1fr}}

.ap-up summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--blue)}
.cv-check{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:13px;color:var(--ink-2)}.cv-check li{display:flex;gap:8px;align-items:flex-start}.cv-check i{color:var(--mint);margin-top:2px}

/* dot2: ô nhiều dòng trong trình tạo CV (đầy chiều rộng, cùng phông), mẫu CV gọn trên điện thoại, thanh nút không đè thanh dưới */
.cvpage .ta{padding:0;background:#fff;color:var(--ink)}
.cvpage .ta textarea{display:block;width:100%;border:0;background:transparent;font:inherit;font-size:var(--fs-ctl);color:var(--ink);padding:var(--s-2) var(--s-3);resize:vertical;outline:0}
.cvpage .ta:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-s)}
@media (max-width:640px){
  .cv-tpl{grid-template-columns:96px minmax(0,1fr);column-gap:var(--s-3);align-items:center}
  .cv-tpl .th{grid-row:1/4;aspect-ratio:3/2}
  .cv-tpl b,.cv-tpl small,.cv-tpl em{grid-column:2}
  .cv-actions{bottom:calc(64px + env(safe-area-inset-bottom,0px));padding:var(--s-2) 0}
  .cv-actions .btn{min-height:var(--h-tap)}
}
.cv-sec .fgrid{align-items:start}
.cv-sec .fl small.muted{display:block;margin-top:var(--s-1);font-size:var(--t-meta);color:var(--ink-3)}

/* ===== Màu chủ đạo (miễn phí), mẫu bán lẻ 20.000đ, xem trước, chuyên môn/tay nghề ===== */
.cvx{--cva:#077a5f;--cva-s:#e2f4ee}
.cvx-a-blue{--cva:#1f62d6;--cva-s:#e6eefc}
.cvx-a-navy{--cva:#1c2f57;--cva-s:#e4e9f4}
.cvx-a-rose{--cva:#c2415a;--cva-s:#fbe8ec}
.cvx-co-ban .cvx-head{border-bottom-color:var(--cva)}
.cvx-co-ban h2{color:var(--cva);border-bottom-color:var(--cva-s)}
.cvx-xanh-hien-dai .cvx-side{background:var(--cva)}
.cvx-xanh-hien-dai .cvx-avatar{color:var(--cva)}
.cvx-xanh-hien-dai .cvx-main h2{color:var(--cva);border-bottom-color:var(--cva-s)}
.cvx-navy-thanh-lich h2{border-left-color:var(--cva)}
.cvx-navy-thanh-lich .cvx-tl .cvx-it::before{background:var(--cva)}
.cvx-navy-thanh-lich .cvx-tags span{background:var(--cva-s);color:var(--cva)}
.cvx .cvx-yr{font-style:normal;font-weight:600;font-size:12px;color:var(--cva);margin-left:6px}
/* chọn mẫu: thẻ có nút Xem thử / Mở khoá */
.cv-tpl{position:static;gap:8px}
.cv-tpl>label{position:relative;display:grid;gap:5px;cursor:pointer;align-content:start}
.cv-tpl>label input{position:absolute;opacity:0;inset:0;cursor:pointer}
.cv-tpl-a{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cv-tpl-a .ok{font-style:normal;font-size:12px;font-weight:600;color:var(--mint-d);display:inline-flex;gap:4px;align-items:center}
.cv-tpl.lock .th{filter:grayscale(.3)}
.cv-acc{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.cv-acc-l{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.cv-sw{position:relative;display:inline-flex;gap:6px;align-items:center;height:32px;padding:0 10px 0 6px;border:1px solid var(--line);border-radius:99px;cursor:pointer;font-size:12.5px;background:#fff}
.cv-sw input{position:absolute;opacity:0;inset:0;cursor:pointer}
.cv-sw i{width:18px;height:18px;border-radius:50%;display:block}
.cv-sw:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 2px var(--bg-3)}
.cv-sw:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:2px}
.cv-note{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r);background:#fff8e6;border:1px solid #f1dc9d;font-size:13px;line-height:1.55;color:var(--ink-2)}
.cv-note i{color:#c98a00;font-size:18px;margin-top:1px;flex:none}
.cv-opt{background:var(--bg-3)!important;color:var(--ink-3)!important}
/* cửa sổ xem trước */
.cvprev{width:min(900px,96vw);max-height:92vh;padding:0;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 20px 60px rgba(20,33,61,.35);overflow:hidden;background:var(--bg-2)}
.cvprev::backdrop{background:rgba(20,33,61,.55)}
.cvprev[open]{display:flex;flex-direction:column}
.cvprev-hd{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line);font-size:15px}
.cvprev-x{width:36px;height:36px;border:0;border-radius:var(--r-s);background:transparent;font-size:18px;cursor:pointer;color:var(--ink-2)}
.cvprev-x:hover{background:var(--bg-3)}
.cvprev-bd{overflow:auto;padding:14px;display:grid;gap:10px;min-height:0;max-height:calc(92vh - 56px);scrollbar-width:none}
.cvprev-bd::-webkit-scrollbar{display:none}
.cvp-miss,.cvp-lock{display:flex;gap:9px;align-items:flex-start;padding:9px 12px;border-radius:var(--r);background:#eef4ff;border:1px solid #cfe0fb;font-size:12.5px;line-height:1.55;color:var(--ink-2)}
.cvp-miss i{color:var(--blue);font-size:17px;margin-top:1px;flex:none}
.cvp-miss.ok{background:var(--mint-s);border-color:#bfe6da}.cvp-miss.ok i{color:var(--mint-d)}
.cvp-miss a{font-weight:700;color:var(--blue);text-decoration:underline}
.cvp-lock{background:#fff4d9;border-color:#f1dc9d;align-items:center}.cvp-lock i{color:#c98a00;font-size:18px;flex:none}.cvp-lock .btn{margin-left:auto;flex:none}
/* nội dung MẪU (chưa điền) hiện mờ trong bản xem trước */
.cvx [data-ph]{opacity:.38}
.cvx-hl[data-ph]{opacity:.5}
@media (max-width:640px){.cvprev{width:100vw;max-height:100vh;height:100vh;border-radius:0}.cvprev-bd{max-height:calc(100vh - 56px);padding:8px}.cvp-lock{flex-wrap:wrap}.cvp-lock .btn{margin-left:0}}
