/* Nhóm B (chợ): voucher, tuyển dụng, dụng cụ, sang nhượng, tin rao, đăng tin. Selector riêng theo trang. */
.tabs a.tab{display:inline-flex;align-items:center;gap:5px}
.tk{position:relative}
.tk .svf{display:contents;margin:0}
.tk button.sv,.tk a.sv{padding:0;font:inherit;font-size:15px;text-decoration:none}
.nhan-tin{display:none;margin-top:12px}
.nhan-tin:target{display:block}
.fgrp details.more-d summary{list-style:none;cursor:pointer}
.fgrp details.more-d summary::-webkit-details-marker{display:none}
.fgrp details.more-d[open] summary .ph-caret-down{transform:rotate(180deg)}
.fs .cd:empty{display:none}

/* ===== /dang-tin ===== */
.dt-form [data-for]{display:none}
.dt-form[data-kind="dung-cu"] [data-for~="dung-cu"],.dt-form[data-kind="sang-nhuong"] [data-for~="sang-nhuong"],.dt-form[data-kind="tuyen-dung"] [data-for~="tuyen-dung"]{display:grid}
.dt-form:has(input[name=kind][value="dung-cu"]:checked) [data-for~="dung-cu"],.dt-form:has(input[name=kind][value="sang-nhuong"]:checked) [data-for~="sang-nhuong"],.dt-form:has(input[name=kind][value="tuyen-dung"]:checked) [data-for~="tuyen-dung"]{display:grid}
.dt-form .fl.full{grid-column:1/-1}
.dt-form .inp{background:#fff}
.dt-form .inp input,.dt-form .inp select{border:0;background:transparent;font:inherit;font-size:13px;color:var(--ink);flex:1;min-width:0;outline:0;height:34px;padding:0}
.dt-form .inp:focus-within,.dt-form .ta:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-s)}
.dt-form .ta{padding:0;background:#fff;color:var(--ink)}
.dt-form .ta textarea{display:block;width:100%;border:0;background:transparent;font:inherit;font-size:13px;color:var(--ink);padding:9px 10px;resize:vertical;outline:0;min-height:96px}
.dt-form .chips-ck{display:flex;flex-wrap:wrap;gap:6px 14px}
.dt-form .type-c{position:relative;display:block}
.dt-form a.type-c{color:inherit}
.dt-form .pk{display:block}
.thumbs-up{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.thumbs-up span.th{position:relative;width:86px;height:64px;border-radius:var(--r-s);overflow:hidden;background:var(--bg-3)}
.thumbs-up span.th img{width:100%;height:100%;object-fit:cover;display:block}
.thumbs-up .th b.cv0{position:absolute;left:3px;bottom:3px;background:var(--ink);color:#fff;font-size:11px;padding:1px 5px;border-radius:2px}
.thumbs-up .th button{position:absolute;right:3px;top:3px;width:18px;height:18px;border-radius:50%;border:0;background:rgba(14,22,40,.8);color:#fff;font-size:12px;line-height:1;cursor:pointer;padding:0}
.drop.over{border-color:var(--blue);background:var(--blue-s)}
.pv .tr .ti{display:block}
#dtWrap.sent .formwrap{display:none}
#dtWrap.sent .okbox{display:block}
.steps div.ok em i{font-size:13px}
@media (max-width:760px){.fcols{grid-template-columns:minmax(0,1fr)}.dt-form .fgrid{grid-template-columns:minmax(0,1fr)}.steps div{flex:1 1 0;min-width:0;flex-direction:column;justify-content:flex-start;gap:4px;text-align:center;padding:9px 3px;font-size:11px;line-height:1.25}}
#dtDraftMsg[hidden],#pvCnt[hidden],[data-share][hidden]{display:none!important}
.pc .im .sv.on{color:var(--rose)}
.act form{margin:0}
#applyForm{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#applyForm .full{grid-column:1/-1}
#applyForm .inp{background:#fff}
#applyForm .inp input,#applyForm .inp select{border:0;background:transparent;font:inherit;font-size:13px;color:var(--ink);flex:1;min-width:0;outline:0;height:34px;padding:0}
#applyForm .ta{padding:0;background:#fff;color:var(--ink)}
#applyForm .ta textarea{display:block;width:100%;border:0;background:transparent;font:inherit;font-size:13px;color:var(--ink);padding:9px 10px;resize:vertical;outline:0}
@media (max-width:760px){#applyForm{grid-template-columns:minmax(0,1fr)}}

/* ===== chi tiết tin rao / tuyển dụng ===== */
button.ibtn{cursor:pointer;font:inherit}
.spec-t td:first-child i{margin-right:7px;font-size:15px;vertical-align:-2px}
.seller .lockph{flex-wrap:wrap}
.seller .lockph .pmask{font-weight:var(--fw-semi);letter-spacing:.5px}
.seller .lockph .btn{margin-left:auto}
.seller .lockph .btn[hidden]{display:none}
.seller .msgd{border-top:1px dashed var(--line);padding-top:8px}
.seller .msgd summary{list-style:none;cursor:pointer}
.seller .msgd summary::-webkit-details-marker{display:none}
dialog.rdlg{border:1px solid var(--line);border-radius:var(--r);padding:0;width:min(460px,calc(100vw - 32px));box-shadow:0 20px 60px rgba(14,22,40,.35)}
dialog.rdlg::backdrop{background:rgba(14,22,40,.55)}
dialog.rdlg .bh{position:relative}
dialog.rdlg .x{margin-left:auto;border:0;background:transparent;font-size:18px;cursor:pointer;color:var(--ink-3);width:36px;height:36px}
.lbx{position:fixed;inset:0;z-index:9999;background:rgba(10,16,30,.92);display:flex;align-items:center;justify-content:center;padding:24px}
.lbx[hidden]{display:none}
.lbx img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--r-s)}
.lbx button{position:absolute;border:0;background:rgba(255,255,255,.92);width:44px;height:44px;border-radius:50%;font-size:20px;cursor:pointer;display:grid;place-items:center}
.lbx .lx{top:16px;right:16px}.lbx .lp{left:16px;top:50%;margin-top:-22px}.lbx .ln{right:16px;top:50%;margin-top:-22px}
.lbx.one .lp,.lbx.one .ln{display:none}
.jmap{border-radius:var(--r-s);overflow:hidden;border:1px solid var(--line);margin-top:10px}
.jmap iframe{display:block;width:100%;height:220px;border:0}
.jlist li i{flex:none}
.rpt-link{display:inline-flex;gap:5px;align-items:center;color:var(--rose);font-size:12px;font-weight:var(--fw-semi);background:none;border:0;padding:0;cursor:pointer}
.tr .act form,.tr .act>a.ibtn{display:block;margin:0;width:100%}
.tr .act .ibtn{width:100%;height:auto;min-height:34px;padding:6px 10px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:var(--fw-semi);white-space:nowrap;border-radius:var(--r-s)}
.tr .act .ibtn i{font-size:14px}
.fs .bn .art{overflow:hidden}

.dt-form .ta:focus-within{border-color:var(--blue)}
.fs .bn .art .ghost{right:0}

/* ===== chi tiết voucher: cột nội dung + cột lấy mã (cột phải rộng 360px, dính khi cuộn) ===== */
.vdt{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start;margin-top:12px}
.vdt-main{display:grid;gap:12px;min-width:0}
.vdt-main .box{margin:0}
.vdt-side{position:sticky;top:116px;display:grid;gap:12px;min-width:0}
.vdt-side .box{margin:0}
.vdt .tk{min-height:0}
.vdt .tk .ti{font-size:20px;margin:8px 0 6px}
.vdt .tk ul{display:flex;flex-wrap:wrap;gap:6px 16px;margin:6px 0 0;padding:0;list-style:none;font-size:13px;color:var(--ink-2)}
.vdt .tk ul li{display:flex;align-items:center;gap:5px}
.vdt-cta{align-self:flex-start;margin-top:12px}
.vdt-org .who{display:flex;gap:10px;align-items:center}
.vdt-org .lg{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--mint-s,#e6f6f1);color:var(--mint);font-weight:var(--fw-semi);font-size:15px}
.vdt-org .who small{color:var(--ink-3);font-size:11px}
.vdt-side .getcode{background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.vdt-side .getcode summary{list-style:none;border-radius:var(--r)}
.vdt-side .getcode summary::-webkit-details-marker{display:none}
.vdt-side .getcode .bd{padding:12px}
.vdt-side .codebox{text-align:center;border:1.5px dashed var(--orange);background:var(--orange-s,#fff4e5);border-radius:var(--r);padding:10px}
.vdt-side .codebox .code{display:block;font-size:22px;letter-spacing:.12em;font-weight:var(--fw-semi);color:var(--orange);margin-top:2px}
@media (max-width:960px){
  /* điện thoại: thẻ voucher → nơi dùng (nha khoa) → nhập mã & đặt hẹn → nội dung/điều kiện → mã khác (cuộn ngang) */
  .vdt{display:flex;flex-direction:column;gap:12px;align-items:stretch}
  .vdt-main{display:contents}
  .vdt-main>*{order:3}
  .vdt-main>.tk,.vdt-main>.lockline{order:1}
  .vdt-side{order:2;position:static}
  .vdt-main>.vdt-more{order:9}
  .vdt-more .vlist{display:flex;overflow-x:auto;gap:10px;scroll-snap-type:x mandatory;padding-bottom:8px;margin:0 -2px;-webkit-overflow-scrolling:touch}
  .vdt-more .vlist .tk{flex:0 0 84%;max-width:340px;scroll-snap-align:start}
}

/* ===== Flash Sale: chữ trên thẻ rõ ràng (nhãn dịch vụ trắng, số tiền dài xuống dòng gọn, không đè hình mờ) ===== */
.fs .bn .art{padding-top:66px}
.fs .bn .art .big{font-size:30px;line-height:1.02;text-shadow:0 1px 3px rgba(0,0,0,.22)}
.fs .bn .art .big.long{font-size:23px;letter-spacing:-.5px}
.fs .bn .art .big small{color:#fff;opacity:1;font-size:11px;line-height:1.3;letter-spacing:.05em;margin-bottom:7px;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.fs .bn .art p{margin-top:9px;opacity:1;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.28);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.fs .bn .art .ghost{opacity:.09;font-size:118px;top:60px;right:-16px}
.cd .u{min-width:30px}
.cd{gap:2px}
.cd .sep{padding:0 0}

/* ===== chi tiết voucher: nút "Lấy mã" nằm trong khung "Mã ưu đãi của bạn" ===== */
.vdt-side .getcode .codebox{display:grid;justify-items:center;gap:8px;padding:14px 10px}
.vdt-side .getcode .codebox>small{font-size:11px;font-weight:var(--fw-semi);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.vdt-side .getcode .vdt-get{justify-content:center;min-width:160px}
.vdt-side .getcode .codebox .rv{display:grid;justify-items:center;gap:2px}
.vdt-more .vlist{display:grid;grid-template-columns:1fr;gap:10px}

.vdt-side .getcode .codebox [hidden]{display:none!important}

.dt-form .ta textarea[hidden],.pnk .ta textarea[hidden]{display:none!important}
.box.desc h3,.pnk-prose h3{font-size:15px;margin:12px 0 6px}
.box.desc blockquote{margin:0 0 10px;padding:4px 12px;border-left:3px solid var(--mint);background:var(--bg-2);color:var(--ink-2)}


/* ===== chi tiết voucher: thông tin đủ như thẻ trong danh sách, nơi dùng + ô nhập mã đặt hẹn ===== */
.vdt .vdt-bar{margin:10px 0 0;height:6px}
.vdt-cd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:13px;font-weight:var(--fw-semi);color:var(--rose)}
.vdt-cd .cd{display:inline-flex}
.vdt-addr{display:flex;gap:7px;margin:10px 0 0;font-size:13px;color:var(--ink-2);line-height:1.4}
.vdt-addr i{color:var(--rose);flex:none;margin-top:2px}
.vdt-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.vdt-side .getcode .bd{display:grid;gap:10px}
.vdt-step{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:var(--fw-semi);color:var(--ink)}
.vdt-step .n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--orange);color:#fff;font-size:12px}
.vdt-hint{margin:0;color:var(--ink-3);font-size:11px;line-height:1.45}
.vdt-side .getcode .where summary{cursor:pointer;font-size:13px;font-weight:var(--fw-semi);color:var(--blue);list-style:none}
.vdt-side .getcode .where summary::-webkit-details-marker{display:none}
.vdt-side .getcode .where ul{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:6px;font-size:13px;color:var(--ink-2)}
.vdt-side .getcode .where li{display:flex;gap:7px}

@media (max-width:960px){
  .vdt-more .vlist{display:flex;overflow-x:auto;gap:10px;scroll-snap-type:x mandatory;padding-bottom:8px}
  .vdt-more .vlist .tk{flex:0 0 84%;max-width:340px;scroll-snap-align:start}
}

/* điện thoại: dải "mã khác" cuộn ngang KHÔNG được làm trang rộng ra (flex item mặc định min-width:auto) */
@media (max-width:960px){
  .vdt,.vdt>*,.vdt-main>*{min-width:0;max-width:100%}
  .vdt-more,.vdt-more .bb{min-width:0;max-width:100%;overflow:hidden}
  .vdt-more .vlist{max-width:100%}
}

/* E-Voucher của đối tác (partials/ext-deals.ejs) */
.xdeals{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.xd{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden;min-width:0}
.xd-img{position:relative;display:block;aspect-ratio:4/3;background:var(--bg-3);overflow:hidden}
.xd-img img{width:100%;height:100%;object-fit:cover;display:block}
.xd-ph{display:grid;place-items:center;height:100%;font-size:40px;color:var(--ink-4)}
.xd-off{position:absolute;left:8px;top:8px;background:var(--rose);color:#fff;font-style:normal;font-weight:var(--fw-semi);font-size:12px;padding:2px 8px;border-radius:var(--r-s)}
.xd-bd{display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px;flex:1}
.xd-bd h3{margin:0;font-size:13px;line-height:1.35}
.xd-bd h3 a{color:var(--ink)}
.xd-by,.xd-meta{color:var(--ink-3);font-size:12px;display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.xd-pr{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.xd-pr b{font-size:18px;color:var(--rose)}.xd-pr s{color:var(--ink-4);font-size:13px}
.xd-bd .btn{margin-top:auto;justify-content:center}
.xd-note{color:var(--ink-3);font-size:12px;display:flex;gap:6px;align-items:flex-start;margin:10px 0 0}
/* thanh vuốt ngang của thẻ voucher gợi ý: ẩn thanh cuộn xám (vẫn vuốt được) */
.vdt-more .vlist{scrollbar-width:none}
.vdt-more .vlist::-webkit-scrollbar{display:none}

/* E-Voucher đối tác (HotDeal): thẻ trong danh sách + trang chi tiết /voucher/hotdeal-<mã> */
.xd-sec{margin-top:22px;padding-top:14px;border-top:1px dashed var(--line)}
.xd-sec-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:8px 14px;flex-wrap:wrap;margin-bottom:10px}
.xd-sec .xdeals{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.xd{border-top:3px solid var(--orange)}
.xd-tag{position:absolute;left:8px;bottom:8px;display:inline-flex;align-items:center;gap:4px;background:rgba(20,33,61,.82);color:#fff;font-size:11px;font-weight:var(--fw-semi);padding:2px 7px;border-radius:var(--r-s);line-height:1.5}
.xd-tag i{color:#ffd9ad;font-size:12px}
.xd-acts{display:flex;flex-direction:column;gap:6px;margin-top:auto}
.xd-acts .btn{margin-top:0}
.xd-buy{display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:12px;color:var(--blue);font-weight:var(--fw-semi)}
.xd-buy i{font-size:13px}
.pd-hero{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:16px;padding:14px;align-items:start}
.pd-img{position:relative;aspect-ratio:4/3;background:var(--bg-3);border-radius:var(--r);overflow:hidden}
.pd-img img{width:100%;height:100%;object-fit:cover;display:block}
.pd-info{display:flex;flex-direction:column;gap:8px;min-width:0}
.pd-tag{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:var(--fw-semi);letter-spacing:.03em;text-transform:uppercase;color:var(--orange);background:var(--orange-s);border:1px solid #f8d6b5;border-radius:var(--r-s);padding:2px 8px}
.pd-title{margin:0;font-size:20px;line-height:1.3;color:var(--ink)}
.pd-by{margin:0;display:flex;gap:5px;align-items:center;color:var(--ink-2);font-size:13px}
.pd-by i{color:var(--mint)}
.pd-pr b{font-size:26px}
.pd-pr s{font-size:14px}
.pd-save{font-size:12px;font-weight:var(--fw-semi);color:var(--mint);background:var(--mint-s,#e6f6f1);border-radius:var(--r-s);padding:2px 7px}
.pd-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;list-style:none;font-size:13px;color:var(--ink-2)}
.pd-meta li{display:flex;align-items:center;gap:5px;min-width:0}
.pd-cta{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;margin-top:4px}
.pd-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--blue);font-weight:var(--fw-semi)}
.pd-note{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.5;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:var(--r);padding:10px 12px}
.pd-note i{color:var(--orange);font-size:16px;flex:none;margin-top:1px}
.pd-list{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.pd-list li{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.5;min-width:0}
.pd-list li i{color:var(--mint);flex:none;margin-top:3px;font-size:15px}
.pd-list-n li i{color:var(--ink-4);font-size:12px;margin-top:5px}
.pd-list li span{min-width:0;overflow-wrap:anywhere}
.pd-steps{margin:0;padding-left:20px;display:grid;gap:6px;font-size:13px;line-height:1.5}
.pd-locs{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pd-locs li{display:flex;gap:8px;align-items:flex-start;font-size:13px}
.pd-locs li i{color:var(--rose);font-size:16px;flex:none;margin-top:2px}
.pd-locs li div{display:grid;gap:1px;min-width:0}
.pd-locs li span{color:var(--ink-2);overflow-wrap:anywhere}
.pd-buy .bb{display:grid;gap:10px}
.pd-buy .btn{justify-content:center}
.pd-more .xdeals{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
@media (max-width:960px){
  .pd-hero{grid-template-columns:minmax(0,1fr)}
  .pd-img{max-width:420px}
  .pd .vdt-main>.pd-note{order:2}
  .pd .vdt-side{order:2}
  .pd-buy{display:none}
  .pd .vdt-main>.box{order:3}
  .pd .vdt-main>.pd-hero{order:1}
  .pd .vdt-main>.vdt-more{order:9}
  .pd .vdt-more .xdeals{display:flex;overflow-x:auto;gap:10px;scroll-snap-type:x mandatory;scrollbar-width:none}
  .pd .vdt-more .xdeals::-webkit-scrollbar{display:none}
  .pd .vdt-more .xdeals .xd{flex:0 0 78%;max-width:300px;scroll-snap-align:start}
}
@media (max-width:640px){
  .pd-title{font-size:18px}
  .pd-pr b{font-size:23px}
  .pd-cta .btn{width:100%;justify-content:center}
  .xd-sec .xdeals{grid-template-columns:minmax(0,1fr)}
}
.xd-acts{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:6px}
.xd-acts .btn{justify-content:center;white-space:nowrap}
