/* Release 1B — booking nội bộ và quyết toán. Chỉ áp dụng cho booking.html. */

.bk-main{width:100%;max-width:980px;min-width:0;
  padding-left:calc(16px + env(safe-area-inset-left));
  padding-right:calc(16px + env(safe-area-inset-right));padding-bottom:48px;overflow-x:hidden}
.bk-main button,.bk-main select,.bk-main textarea,
.bk-hop-bien-nhan button,.bk-hop-bien-nhan select,.bk-hop-bien-nhan textarea{font-family:inherit}
.bk-main input,.bk-hop-bien-nhan input{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.bk-main input[type="date"],.bk-main input[type="time"],
.bk-hop-bien-nhan input[type="date"],.bk-hop-bien-nhan input[type="time"]{
  width:100%;max-width:100%;min-width:0;box-sizing:border-box;
  padding:10px 8px;font-size:14px;text-overflow:ellipsis;
  background-color:#fff
}
.bk-main textarea,.bk-main select{
  width:100%;border:1.5px solid var(--vien);border-radius:12px;background:#fff;
  color:var(--chu);font-size:16px;padding:13px 14px
}
.bk-main textarea:focus,.bk-main select:focus{
  outline:none;border-color:var(--chinh);box-shadow:0 0 0 3px var(--chinh-nhat)
}
.bk-main textarea{min-height:92px;resize:vertical;line-height:1.5}
.bk-an{display:none!important}

.bk-mo-dau{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin-bottom:12px;padding:16px 18px;border-radius:16px;color:#fff;
  background:linear-gradient(135deg,#0f766e,#115e59);box-shadow:0 8px 24px rgba(15,118,110,.18)
}
.bk-mo-dau h2{margin:0;font-size:20px;letter-spacing:-.3px}
.bk-mo-dau p{margin:5px 0 0;color:rgba(255,255,255,.84);font-size:13px;line-height:1.5}
.bk-mo-dau .ic{width:30px;height:30px;opacity:.92}

.bk-bo-cuc{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(320px,.94fr);gap:14px;align-items:start}
.bk-cot{min-width:0}
.bk-the{
  background:#fff;border:1px solid var(--vien);border-radius:15px;padding:17px;
  margin-bottom:12px;box-shadow:0 1px 2px rgba(15,23,42,.035)
}
.bk-the h2{
  display:flex;align-items:center;gap:8px;margin:0 0 14px;color:var(--chinh);
  font-size:13px;text-transform:uppercase;letter-spacing:.65px
}
.bk-the h2 .ic{width:18px;height:18px}
.bk-mo-ta{margin:-6px 0 14px;color:var(--mo);font-size:12.5px;line-height:1.55}
.bk-luoi-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 11px}
.bk-luoi-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 9px}
.bk-nhom{margin-bottom:13px;min-width:0}
.bk-nhom label{display:flex;align-items:center;justify-content:space-between;gap:8px}
.bk-bat-buoc{color:var(--do)}
.bk-goi-y{display:block;margin-top:5px;color:var(--mo);font-size:11.5px;line-height:1.45}
.bk-chon-hen-moi{width:100%;min-height:64px;border:1.5px solid var(--vien);border-radius:13px;background:#fff;color:var(--chu);padding:11px 13px;display:flex;align-items:center;justify-content:space-between;text-align:left}
.bk-chon-hen-moi small{display:block;color:var(--mo);font-size:10.5px;margin-bottom:4px}.bk-chon-hen-moi b{font-size:14px}.bk-chon-hen-moi .ic{width:24px;height:24px;color:var(--chinh)}
.bk-chon-hen-moi[aria-expanded="true"]{border-color:#94a3b8;box-shadow:none}
.bk-chon-hen-moi[aria-expanded="true"]:focus-visible{border-color:#94a3b8;box-shadow:none!important;outline:2px solid rgba(51,65,85,.22);outline-offset:2px}
.bk-bo-chon-hen-moi{margin-top:10px;padding:12px;border:1px solid var(--vien);border-radius:13px;background:#fff}
.bk-lich-thang-noi{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.bk-chon-thang-noi-dau{margin:0 0 10px}.bk-chon-thang-noi-dau strong{min-width:118px}
.bk-ngay-grid-moi button{font:750 12px inherit}
.bk-ngay-grid-moi button:disabled{background:transparent!important;opacity:.3}

/* Time wheel: select native nằm phủ trên mỗi cột để Safari/trình đọc màn
   hình giữ hành vi chuẩn; ba hàng trực quan bên dưới thể hiện trước/chọn/sau. */
.bk-chon-gio-moi{min-width:0;margin-top:14px;padding-top:13px;border-top:1px solid var(--vien);color:#334155}
.bk-nhan-banh-xe{display:block;margin-bottom:8px;font-size:12px;font-weight:800}
.bk-banh-xe-gio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}
.bk-cot-banh-xe{position:relative;min-width:0}
.bk-cot-banh-xe>label{display:block;margin-bottom:5px;text-align:center;color:var(--mo);font-size:10.5px;font-weight:800}
.bk-banh-xe-hien{height:108px;border:1px solid var(--vien);border-radius:14px;background:#fff;display:grid;grid-template-rows:repeat(3,1fr);overflow:hidden;pointer-events:none}
.bk-banh-xe-hien>*{display:grid;place-items:center;min-width:0;color:var(--mo);font-size:13px;font-weight:650;line-height:1;opacity:.42}
.bk-banh-xe-hien strong{border-top:1px solid var(--vien);border-bottom:1px solid var(--vien);color:var(--chu);font-size:20px;font-weight:900;opacity:1}
.bk-cot-banh-xe>select{position:absolute;z-index:1;left:0;right:0;bottom:0;width:100%;height:108px;min-height:108px;margin:0;padding:0;border:0;opacity:.01;cursor:pointer;appearance:auto;-webkit-appearance:menulist}
.bk-cot-banh-xe:focus-within .bk-banh-xe-hien{outline:2px solid var(--chinh);outline-offset:2px}
.bk-loi-o{display:block;margin-top:5px;color:#b91c1c;font-size:11.5px;font-weight:700}
.bk-main input[aria-invalid="true"],.bk-main textarea[aria-invalid="true"]{border-color:#ef4444;background:#fffafa}

.bk-dich-vu{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.bk-chon-dv{
  position:relative;display:flex;align-items:center;gap:11px;padding:13px;
  border:1.5px solid var(--vien);border-radius:13px;background:#fff;cursor:pointer
}
.bk-chon-dv input[type="checkbox"]{
  position:absolute;width:1px;height:1px;min-width:0;padding:0;margin:0;opacity:0;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);pointer-events:none
}
.bk-chon-dv>span:last-child{min-width:0;overflow-wrap:anywhere}
.bk-check-dv{
  width:28px;height:28px;border:1.5px solid #cbd5e1;border-radius:9px;background:#fff;
  color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 28px
}
.bk-check-dv .ic{width:18px;height:18px;opacity:0;stroke-width:3}
.bk-chon-dv b{display:block;font-size:14px}
.bk-chon-dv small{display:block;color:var(--mo);font-size:11.5px;margin-top:3px;line-height:1.35}
.bk-chon-dv:has(input:checked){border-color:var(--chinh);background:var(--chinh-nhat)}
.bk-chon-dv:has(input:checked) .bk-check-dv{border-color:var(--chinh);background:var(--chinh)}
.bk-chon-dv:has(input:checked) .bk-check-dv .ic{opacity:1}
.bk-chon-dv:focus-within{box-shadow:0 0 0 3px var(--chinh-nhat)}
.bk-chon-dv:has(input:disabled){cursor:default;opacity:.72}

/* v3.0.137 (chủ dự án 22/10/2026): ba thẻ dịch vụ của form tạo booking bỏ icon minh hoạ (.bk-icon-dv) — thẻ còn ô
   tích + chữ, căn giữa dọc nhờ flex sẵn có của .bk-chon-dv. Mỗi thẻ nằm trong khung .bk-o-dv (cột flex, thẻ giãn
   bằng hàng lưới). Khi thẻ được chọn và có cọc (db/111), ô đơn giá mở NGAY TRONG thẻ: khung nhận viền + nền của thẻ
   đã chọn (lớp .co-coc do veCocTuyChinh gắn), thẻ bên trong trong suốt — đọc thành một khối. Đặc hiệu có
   #formBooking để thắng luật .bk-chon-dv của theme V2 / V3 (nạp sau tệp này). */
.bk-o-dv{display:flex;flex-direction:column;min-width:0;max-width:100%;box-sizing:border-box}
.bk-o-dv>.bk-chon-dv{flex:1 1 auto}
/* Thẻ đã mở ô cọc: phần đầu thẻ không giãn theo hàng (khung .co-coc mang nền) — ô cọc nằm sát ngay dưới đầu thẻ. */
.bk-o-dv.co-coc>.bk-chon-dv{flex:0 0 auto}
.bk-don-gia-coc{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0;padding:0 13px 13px}
.bk-don-gia-coc label{font-size:12px;font-weight:800;color:var(--mo)}
/* Vòng 3 (chủ dự án 22/10/2026: số trong ô "quá to"): cùng thang cỡ với các ô nhập khác của form — đo 22/10/2026 ô một
   dòng (tên, SĐT, số tiền phải thu) 17px/800 cao 44px, ô ghi chú 15px/700; ô cọc trước đó 18px/850 cao 49px. Nay 15px/800,
   cao 44px. Gate ghim ngưỡng ≤15px. */
.bk-don-gia-coc input{
  width:100%;min-width:0;max-width:100%;box-sizing:border-box;min-height:44px;padding:8px 14px;
  font-size:15px;font-weight:800;font-variant-numeric:tabular-nums
}
/* Chủ dự án 22/10/2026: ô cọc sai KHÔNG có dòng chữ đỏ — chỉ viền ô đổi màu cảnh báo; lý do nằm ở dòng xám "Còn thiếu: …"
   cạnh nút Tạo. Theme V2 bỏ viền ô (border:0) nên viền cảnh báo vẽ bằng box-shadow trong. */
html #formBooking .bk-don-gia-coc input[aria-invalid="true"]{
  box-shadow:inset 0 0 0 2px #dc2626;background:#fff7f7
}
/* Bốn nút gợi ý cọc bàn (50/150/200/300 nghìn): bấm là điền vào ô; nút khớp số trong ô hiện trạng thái chọn
   (aria-pressed). Mặc định 100.000đ thì không nút nào chọn. Mặc định lưới 2×2; khung ô cọc rộng từ 300px (điện thoại
   ≥390px) thì một hàng bốn nút — đo 22/10/2026: thẻ bàn ở màn rộng (lưới 2 cột) chỉ ~262px, bốn nút một hàng cắt chữ.
   Trình duyệt không có container query vẫn 2×2, không cắt chữ. */
.bk-don-gia-coc{container-type:inline-size}
.bk-muc-coc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-width:0}
@container (min-width:300px){.bk-muc-coc{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Vòng 3: nút gọn — chữ 12px/700 (nhỏ hơn nút Nguồn khách 13px/700), đệm ngang 2px, vùng bấm giữ 36px. */
.bk-chip-coc{
  min-width:0;min-height:36px;padding:0 2px;border:1px solid var(--vien);border-radius:999px;background:#fff;
  color:inherit;font-size:12px;font-weight:700;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums;cursor:pointer
}
.bk-chip-coc[aria-pressed="true"]{border-color:var(--chinh);background:var(--chinh);color:#fff}
html:not([data-nbkh-ui="v3"]) #formBooking .bk-chip-coc{border:1px solid rgba(17,17,17,.12);background:#fff;color:var(--v2-figma-text,#111)}
html:not([data-nbkh-ui="v3"]) #formBooking .bk-chip-coc[aria-pressed="true"]{
  border-color:var(--v2-brand,#111);background:var(--v2-brand,#111);color:#fff
}
html[data-nbkh-ui="v3"] #formBooking .bk-chip-coc[aria-pressed="true"]{border-color:var(--v3-brand);background:var(--v3-brand);color:#fff}
html #formBooking .bk-o-dv.co-coc{border:1.5px solid var(--chinh);border-radius:13px;background:var(--chinh-nhat)}
html #formBooking .bk-o-dv.co-coc>.bk-chon-dv{border-color:transparent;background:transparent;box-shadow:none}
html:not([data-nbkh-ui="v3"]) #formBooking .bk-o-dv.co-coc{
  border:1px solid rgba(17,17,17,.18);border-radius:18px;background:var(--v2-surface-soft,#f4f4f5)
}
html:not([data-nbkh-ui="v3"]) #formBooking .bk-o-dv.co-coc .bk-don-gia-coc{padding:0 var(--v2-space-a,14px) var(--v2-space-a,14px)}
html:not([data-nbkh-ui="v3"]) #formBooking .bk-don-gia-coc input{border:0;border-radius:14px;background:#fff}
html[data-nbkh-ui="v3"] #formBooking .bk-o-dv.co-coc{
  border:1px solid var(--v3-brand);border-radius:18px;background:var(--v3-brand-soft)
}

/* v3.0.137 (chủ dự án 22/10/2026): ba thẻ đếm khách (#khuCano) KHÔNG icon, cùng MỘT bố cục — chữ một dòng, căn giữa
   dọc, cụm tăng/giảm như nhau. Theme V2 đặt nhãn .bk-luoi-khach>.bk-nhom>label về display:block (luật dùng chung với Gửi
   xe) — ghi đè bằng #khuCano. Đo 22/10/2026 (13px/850): "Người lớn trên 1m3" cần 125px; cột nhãn còn 132px ở 390px
   nhưng chỉ 102px ở 360px ⇒ ở màn ≤430px thu Ô SỐ giữa cụm tăng/giảm (nút giữ 44px) để cột nhãn ≥134px ở 360px.
   Dưới 360px chữ được xuống dòng thay vì bị cắt. */
html #khuCano .bk-luoi-khach>.nhomDemFigma>label{display:flex;align-items:center;justify-content:flex-start;gap:6px;margin:0;min-width:0}
html #khuCano .bk-luoi-khach>.nhomDemFigma>label span{
  min-width:0;overflow:visible;text-overflow:clip;white-space:nowrap
}
@media (max-width:430px){
  html #khuCano .bk-luoi-khach>.nhomDemFigma{grid-template-columns:minmax(0,1fr) 132px;column-gap:8px}
  html #khuCano .bk-luoi-khach>.nhomDemFigma .demFigma{width:132px}
}
@media (max-width:359px){
  html #khuCano .bk-luoi-khach>.nhomDemFigma>label span{white-space:normal;overflow-wrap:break-word}
}

.bk-chi-tiet-dv{border-left:3px solid var(--chinh);padding-left:12px;margin-bottom:14px}
.bk-chi-tiet-dv h3{margin:0 0 10px;font-size:14px}
.bk-dem{display:flex;align-items:center;gap:7px}
.bk-dem button{
  width:42px;height:46px;flex:0 0 auto;border:1.5px solid var(--vien);border-radius:11px;
  background:#f8fafc;color:var(--chinh);font-size:22px;font-weight:800
}
.bk-dem input{text-align:center;font-weight:800;padding-left:5px;padding-right:5px;min-width:0}

.bk-tong{
  border-radius:14px;padding:14px 15px;background:#ecfdf5;border:1px solid #a7f3d0;
  color:#065f46;margin:3px 0 15px
}
.bk-tong .bk-dong-tien{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:13px}
/* Khối đối tác đã thu (db/141) nằm ngoài #qtTong: tự dàn dòng nhãn ↔ số tiền, không để dính chữ. */
.bk-khu-doi-tac-da-thu .bk-dong-tien{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0;font-size:13px}
.bk-khu-doi-tac-da-thu .bk-dong-tien b{white-space:nowrap}
.bk-khu-doi-tac-da-thu .bk-hh-an-chia{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.bk-khu-doi-tac-da-thu .bk-hh-an-chia label{display:inline-flex;gap:6px;align-items:center;font-size:13px}
.bk-tong .bk-cuoi{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;
  margin-top:8px;padding-top:9px;border-top:1px solid #a7f3d0}
.bk-tong .bk-cuoi span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.bk-tong .bk-cuoi b{font-size:23px;white-space:nowrap}

.bk-canh-bao{
  padding:11px 13px;border:1px solid #fde68a;background:#fffbeb;color:#92400e;
  border-radius:11px;font-size:12px;line-height:1.55;margin-bottom:13px
}
.bk-nut-tao{
  width:100%;min-height:52px;border:0;border-radius:12px;background:var(--chinh);color:#fff;
  font-size:16px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px
}
.bk-nut-tao:disabled{background:#cbd5e1;color:#f8fafc;cursor:not-allowed;opacity:.82}
.bk-goi-y-tao{text-align:center;margin-top:8px}

.bk-dau-ds{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin-bottom:9px}
.bk-web{min-width:0;margin-bottom:14px;padding:14px;border:1px solid #c7d2fe;border-radius:15px;background:#eef2ff}
.bk-web-dau{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.bk-web-dau b{display:block;color:#1e1b4b;font-size:15px}.bk-web-dau span{display:block;margin-top:3px;color:#64748b;font-size:11.5px;line-height:1.45}
.bk-web-dau em{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:#312e81;color:#fff;font-size:13px;font-style:normal;font-weight:900}
.bk-web-ds{display:grid;gap:9px;margin-top:12px}
.bk-web-muc{min-width:0;padding:14px;border:1px solid #c7d2fe;border-radius:13px;background:#fff}
.bk-web-ma{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#4338ca;font-size:10.5px}.bk-web-ma b{overflow-wrap:anywhere}.bk-web-ma span{color:#64748b}
/* Thẻ yêu cầu web nay nằm chung danh sách với booking thật. Nhãn nguồn là thứ
   duy nhất phân biệt hai loại khi chúng đứng cạnh nhau. */
.bk-web-nguon{display:inline-block;margin-top:8px;padding:3px 9px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:10.5px;font-weight:800;letter-spacing:.02em}
.bk-web-muc h3{margin:8px 0 5px;color:#0f172a;font-size:15px}.bk-web-muc p{margin:3px 0;color:#475569;font-size:12px;line-height:1.45}
/* Thời điểm khách gửi. Nhạt hơn phần còn lại vì đây là dữ liệu tra cứu, nhưng
   phải có: không thấy nó thì không biết yêu cầu đã nằm chờ bao lâu. */
.bk-web-muc p.bk-web-luc-tao{margin-top:6px;color:#94a3b8;font-size:11px}
/* Lý do nút xác nhận đang bị khoá. Nút xám không kèm lời giải thích từng làm
   nhân viên tưởng app hỏng, trong khi thủ phạm chỉ là một chữ có dấu do bộ gõ
   tiếng Việt chèn vào mã giao dịch (30/08/2026). */
.bk-ly-do-khoa{margin:10px 0 0;padding:9px 12px;border:1px solid #fbbf24;border-radius:10px;background:#fffbeb;color:#92400e;font-size:12.5px;font-weight:700;line-height:1.45}
.bk-web-hanh-dong{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}.bk-web-hanh-dong button{min-width:0;min-height:44px;flex:1 1 110px;border:1px solid #312e81;border-radius:11px;background:#312e81;color:#fff;padding:9px 13px;font-weight:800}.bk-web-hanh-dong button.phu{background:#fff;color:#475569;border-color:#cbd5e1}
.bk-web-muc .bk-web-doi-soat{max-width:100%;box-sizing:border-box;margin-top:11px;padding:10px 12px;border:1px solid #f59e0b;border-radius:11px;background:#fffbeb;color:#92400e;font-weight:800;overflow-wrap:anywhere}
.bk-chung-tu{min-width:0;margin:0 0 14px;padding:12px;border:1px solid #f59e0b;border-radius:13px;background:#fffbeb}
.bk-chung-tu-dau{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.bk-chung-tu-dau b{display:block;color:#78350f;font-size:14px}.bk-chung-tu-dau span{display:block;margin-top:3px;color:#92400e;font-size:11.5px;line-height:1.45}
.bk-chung-tu-dau em{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:#d97706;color:#fff;font-size:13px;font-style:normal;font-weight:900}
.bk-chung-tu-muc{border-color:#fde68a}.bk-chung-tu-muc h3{font-size:19px}.bk-chung-tu-muc p b{overflow-wrap:anywhere}
/* Modal xem ảnh chứng từ riêng đã bỏ 28/08/2026 — ảnh nay nằm ngay trong màn
   xác nhận tiền để đối chiếu và duyệt trong một bước. */
/* Thuộc tính `hidden` phải thắng mọi luật `display` đặt theo class.
   `[hidden]` của trình duyệt có cùng độ đặc hiệu với một class, mà luật của
   trang thì đứng sau luật mặc định, nên `.lop-nao-do{display:flex}` vô hiệu hoá
   `hidden` một cách im lặng. Đúng chuyện đã xảy ra ở màn xác nhận tiền
   (30/08/2026): luồng "khách chưa gửi ảnh" đặt `khungAnhXacNhanTien.hidden`
   nhưng khung ảnh vẫn hiện — một thanh đen đặc (ảnh rỗng trên nền #0f172a) kèm
   dòng "Đối chiếu ảnh với số tiền…" trong khi không có ảnh nào.
   Đây là lần thứ ba cùng lỗi: `app.css` đã phải vá riêng `.chiTietHH[hidden]`
   và `.taiThemLichSuLuot[hidden]`. Vá một luật chung thay vì vá từng chỗ. */
[hidden]{display:none!important}

.bk-anh-chung-tu{display:block;width:100%;max-width:100%;max-height:46vh;object-fit:contain;border-radius:12px;background:#0f172a}
.bk-anh-xac-nhan-tien{margin:12px 0 0;display:flex;flex-direction:column;gap:6px}
.bk-anh-xac-nhan-tien figcaption{font-size:11.5px;color:var(--mo);line-height:1.5}
.bk-anh-xac-nhan-tien-loi{margin:12px 0 0;padding:10px 12px;border:1px solid #f59e0b;border-radius:11px;background:#fffbeb;color:#92400e;font-size:12px;font-weight:800;line-height:1.5}

/* Bộ đếm hạn chính sách huỷ / đổi lịch / hoàn tiền (mốc 3 ngày, xem booking.js). */
.bk-dem-nguoc-chinh-sach{margin:8px 0;padding:9px 12px;border:1px solid #bfdbfe;border-radius:11px;background:#eff6ff;color:#1d4ed8;font-size:12.5px;font-weight:700;line-height:1.5;font-variant-numeric:tabular-nums}
.bk-dem-nguoc-chinh-sach.qua-han{border-color:#fecaca;background:#fef2f2;color:#b91c1c}
.bk-lop-xac-nhan-tien{z-index:242}
.bk-hop-xac-nhan-tien{width:100%;max-width:680px}
.bk-canh-bao-xac-nhan-tien{margin:0 0 14px;padding:12px 14px;border:1px solid #f59e0b;border-radius:12px;background:#fffbeb;color:#92400e;font-size:12px;font-weight:800;line-height:1.55}
/* Thẻ trắng bo tròn, ngăn ô bằng đường mảnh — cùng ngôn ngữ với màn chi tiết
   booking. Bản cũ dùng nền xám kẻ ô (gap:1px trên nền #e2e8f0) nên nhìn như một
   bảng dữ liệu, lạc lõng giữa các thẻ bo tròn xung quanh (30/08/2026). */
.bk-tom-tat-xac-nhan-tien{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 14px;border:1px solid var(--vien);border-radius:14px;background:#fff;overflow:hidden}
.bk-tom-tat-xac-nhan-tien>div{min-width:0;padding:12px 14px;background:#fff;border-bottom:1px solid var(--vien)}
.bk-tom-tat-xac-nhan-tien>div:nth-child(odd){border-right:1px solid var(--vien)}
.bk-tom-tat-xac-nhan-tien>div:nth-last-child(-n+2){border-bottom:0}
.bk-tom-tat-xac-nhan-tien dt{color:#64748b;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.35px}
.bk-tom-tat-xac-nhan-tien dd{margin:4px 0 0;color:#0f172a;font-size:13px;font-weight:800;line-height:1.45;overflow-wrap:anywhere}
.bk-form-xac-nhan-tien{display:grid;gap:9px;min-width:0;padding:14px;border:1px solid var(--vien);border-radius:14px;background:#fff}
.bk-form-xac-nhan-tien>label{color:#334155;font-size:12px;font-weight:800}
.bk-form-xac-nhan-tien>input,.bk-form-xac-nhan-tien>textarea{width:100%;max-width:100%;min-width:0;box-sizing:border-box;border:1.5px solid var(--vien);border-radius:11px;background:#fff;color:#0f172a;padding:12px 13px;font:700 15px/1.4 inherit}
.bk-form-xac-nhan-tien>input{min-height:48px}
/* Safari trên iOS canh giữa `datetime-local`, nên ô "Thời điểm ngân hàng ghi có"
   nằm giữa trong khi ô "Mã giao dịch" nằm trái — hai ô cùng một biểu mẫu, hai
   kiểu canh. Ép trái cho khớp. */
.bk-form-xac-nhan-tien>input[type="datetime-local"]{text-align:left}
.bk-form-xac-nhan-tien>textarea{min-height:82px;resize:vertical}
.bk-form-xac-nhan-tien>input:focus,.bk-form-xac-nhan-tien>textarea:focus{outline:none;border-color:var(--chinh);box-shadow:0 0 0 3px var(--chinh-nhat)}
.bk-form-xac-nhan-tien>small{margin-top:-4px;color:#64748b;font-size:10.5px;line-height:1.45}
.bk-doi-chieu-xac-nhan-tien{display:grid;gap:8px;min-width:0;margin:4px 0;padding:12px;border:1px solid #cbd5e1;border-radius:12px}
.bk-doi-chieu-xac-nhan-tien legend{padding:0 6px;color:#334155;font-size:12px;font-weight:900}
.bk-doi-chieu-xac-nhan-tien label{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:9px;border-radius:10px;background:#f8fafc;color:#334155;font-size:12px;font-weight:700;line-height:1.45;cursor:pointer}
.bk-doi-chieu-xac-nhan-tien input[type="checkbox"]{display:block!important;width:22px!important;max-width:22px!important;height:22px!important;min-width:22px!important;margin:0;accent-color:var(--chinh);cursor:pointer}
.bk-doi-chieu-xac-nhan-tien span{min-width:0;overflow-wrap:anywhere}
.bk-nut-xac-nhan-tien{width:100%;min-height:48px;border:1px solid var(--chinh);border-radius:11px;background:var(--chinh);color:#fff;padding:11px 14px;font-weight:900}
.bk-nut-xac-nhan-tien:disabled{border-color:#cbd5e1;background:#e2e8f0;color:#94a3b8;cursor:not-allowed}
.bk-chung-tu-trang-thai{display:inline-flex;align-items:center;min-height:26px;margin-top:8px;padding:4px 8px;border:1px solid #f59e0b;border-radius:999px;background:#fffbeb;color:#92400e;font-size:10.5px;font-weight:900}
.bk-chung-tu-trang-thai.da-duyet{border-color:#0f766e;background:#f0fdfa;color:#115e59}
/* Một cột thì hai luật kẻ viền của bố cục HAI cột phải tắt theo, nếu không thẻ
   tóm tắt gãy: `nth-child(odd)` vẽ một vạch dọc thừa ở rìa phải, còn
   `nth-last-child(-n+2)` bỏ gạch dưới của ô ÁP CHÓT — trên máy điện thoại thành
   ra "Nội dung phải khớp" và "Tài khoản nhận" dính liền một khối, lệch hẳn so
   với hai ô trên. Đặt lại rành mạch: mọi ô có gạch dưới, trừ ô cuối. */
@media (max-width:520px){
  .bk-tom-tat-xac-nhan-tien{grid-template-columns:1fr}
  .bk-tom-tat-xac-nhan-tien>div:nth-child(odd){border-right:0}
  /* Phải ghi đè ĐÚNG bộ chọn `:nth-last-child(-n+2)`, không viết `>div` trần:
     media query không cộng độ đặc hiệu, nên một luật thưa hơn vẫn thua luật
     hai-cột ở trên và gạch dưới vẫn mất. */
  .bk-tom-tat-xac-nhan-tien>div:nth-last-child(-n+2){border-bottom:1px solid var(--vien)}
  .bk-tom-tat-xac-nhan-tien>div:last-child{border-bottom:0}
  .bk-form-xac-nhan-tien{padding:12px}
}
.bk-dau-ds h2{margin:0;font-size:17px}
.bk-dau-ds p{margin:4px 0 0;color:var(--mo);font-size:11.5px;line-height:1.4}
.bk-loc-tien-trinh{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-bottom:9px}
.bk-loc-tien-trinh button{--mau-loc:#0f766e;--nen-loc:#ccfbf1;min-width:0;border:1px solid var(--mau-loc);border-radius:11px;background:var(--nen-loc);color:#475569;padding:8px 2px;font-family:inherit}
.bk-loc-tien-trinh button.tt-cho_xac_nhan{--mau-loc:#d97706;--nen-loc:#fffbeb}.bk-loc-tien-trinh button.tt-da_xac_nhan{--mau-loc:#0284c7;--nen-loc:#f0f9ff}.bk-loc-tien-trinh button.tt-da_den{--mau-loc:#059669;--nen-loc:#ecfdf5}.bk-loc-tien-trinh button.tt-ket_thuc{--mau-loc:#dc2626;--nen-loc:#fef2f2}
.bk-loc-tien-trinh b{display:block;color:var(--mau-loc);font-size:15px}.bk-loc-tien-trinh span{display:block;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.bk-loc-tien-trinh button.on{background:var(--mau-loc);border-color:var(--mau-loc)}.bk-loc-tien-trinh button.on b,.bk-loc-tien-trinh button.on span{color:#fff}
.bk-hang-sap-xep{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-bottom:9px;color:var(--mo);font-size:11px}
.bk-hang-sap-xep button{border:1px solid var(--vien);border-radius:9px;background:#fff;color:var(--chinh);padding:7px 9px;font:800 11px inherit;display:inline-flex;align-items:center;gap:5px}
.bk-ds-ngay-lich{margin-top:10px;padding:12px;border:1px solid var(--vien);border-radius:13px;background:#f8fafc}
.bk-ds-ngay-lich h3{margin:0 0 9px;font-size:14px}.bk-ds-ngay-lich p{margin:0;color:var(--mo);font-size:12px;text-align:center;padding:12px}
.bk-nut-lam-moi{
  width:42px;height:42px;border:1px solid var(--vien);border-radius:11px;background:#fff;
  color:var(--chinh);display:flex;align-items:center;justify-content:center;flex:0 0 auto
}
.bk-nut-lam-moi .ic{width:20px;height:20px}
.bk-nut-lam-moi.dang .ic{animation:xoay .7s linear infinite}
.bk-cong-cu-ds{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-start}
.bk-nut-icon{width:44px;height:44px;aspect-ratio:1;border:1px solid var(--vien);border-radius:12px;background:#fff;color:var(--chinh);display:grid;place-items:center;flex:0 0 44px}.bk-nut-icon .ic{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.bk-nhan-xep{font-size:10.5px;color:var(--mo);flex-basis:100%}

/* Nút sắp xếp mang theo nhãn. Bản icon-only cũ không cho nhân viên biết danh
   sách đang xếp kiểu gì — nhãn rời trước đây bị theme ẩn bằng display:none. */
.bk-nut-xep{min-height:44px;display:inline-flex;align-items:center;gap:7px;padding:0 13px;border:1px solid var(--vien);border-radius:12px;background:#fff;color:var(--chinh);font-family:inherit;font-size:12.5px;font-weight:700;white-space:nowrap}
.bk-nut-xep .ic{width:19px;height:19px;flex:0 0 19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Lọc theo nguồn — trục riêng, tách khỏi thanh tiến trình để hai trục không bị
   đọc nhầm thành loại trừ nhau. */
/* Ba nút nguồn nằm TRỌN một hàng. Cho xuống dòng thì hàng thứ hai chỉ có một
   nút, nhìn như lỗi và tốn thêm một hàng dọc — màn 390px vốn đã chật. Hẹp quá
   thì cuộn ngang, không xuống dòng. */
.bk-loc-nguon{display:flex;flex-wrap:nowrap;gap:7px;margin:0 0 10px;overflow-x:auto;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.bk-loc-nguon::-webkit-scrollbar{display:none}
.bk-loc-nguon button{flex:0 0 auto}
.bk-loc-nguon button{min-height:38px;display:inline-flex;align-items:center;gap:7px;padding:0 13px;border:1px solid var(--vien);border-radius:999px;background:#fff;color:var(--mo);font-family:inherit;font-size:12.5px;font-weight:700}
.bk-loc-nguon button b{font-size:12px;font-weight:850;font-variant-numeric:tabular-nums;color:var(--chinh)}
.bk-loc-nguon button.on{border-color:#312e81;background:#312e81;color:#fff}
.bk-loc-nguon button.on b{color:#fff}
.bk-doi-che-do{display:flex;padding:0;border:0;background:transparent;gap:8px}
.bk-doi-che-do button{width:44px;height:44px;border:1px solid var(--vien);border-radius:12px;background:#fff;color:#64748b;padding:9px;font-size:11px;font-weight:800;display:grid;place-items:center}
.bk-doi-che-do .ic{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.bk-doi-che-do button.dang-chon{background:var(--chinh)!important;border-color:var(--chinh)!important;color:#fff!important}
.bk-chon-thang{display:flex;align-items:center;justify-content:center;gap:10px;margin:4px 0 12px}
.bk-chon-thang button{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid var(--vien);border-radius:50%;background:#fff;color:var(--chinh);display:grid;place-items:center}
.bk-chon-thang button .ic{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bk-chon-thang button:disabled{opacity:.35}
.bk-chon-thang strong{min-width:105px;text-align:center;font-size:14px}

.bk-trang-thai-ds{
  min-height:150px;border:1px dashed #cbd5e1;border-radius:14px;background:rgba(255,255,255,.62);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:24px;color:var(--mo);font-size:13px;line-height:1.55
}
.bk-trang-thai-ds .quay{border-color:#cbd5e1;border-top-color:var(--chinh);margin-bottom:10px}
.bk-trang-thai-ds b{color:var(--chu);font-size:15px;margin-bottom:3px}
.bk-trang-thai-ds.loi{background:#fff7f7;border-color:#fecaca;color:#b91c1c}
.bk-trang-thai-ds button{margin-top:12px;border:0;border-radius:10px;padding:10px 15px;background:#b91c1c;color:#fff;font-weight:800}

.bk-ngay-nhom{margin:15px 0 8px;display:flex;align-items:center;gap:9px;color:#334155;font-size:12px;font-weight:800}
.bk-ngay-nhom::after{content:"";height:1px;background:var(--vien);flex:1}
.bk-ds{display:grid;gap:9px}
.bk-muc{
  background:#fff;border:2px solid var(--mau-tt,#94a3b8);
  border-radius:13px;padding:13px 14px;box-shadow:0 1px 2px rgba(15,23,42,.035)
}
.bk-muc[role="button"]{cursor:pointer;transition:border-color .16s,transform .16s,box-shadow .16s}
.bk-muc[role="button"]:hover{border-color:#94a3b8;box-shadow:0 5px 16px rgba(15,23,42,.08);transform:translateY(-1px)}
.bk-muc[role="button"]:focus-visible{outline:3px solid rgba(13,148,136,.25);outline-offset:2px}
.bk-muc[data-tt="cho_xac_nhan"],.bk-muc[data-tt="moi"]{--mau-tt:#f59e0b}
.bk-muc[data-tt="da_xac_nhan"],.bk-muc[data-tt="da_dat"]{--mau-tt:#0ea5e9}
.bk-muc[data-tt="da_thanh_toan"]{--mau-tt:#10b981}
.bk-muc[data-tt="da_den"]{--mau-tt:#059669}
.bk-muc[data-tt="huy"],.bk-muc[data-tt="da_huy"],.bk-muc[data-tt="khong_den"]{--mau-tt:#ef4444}
.bk-muc-dau{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.bk-muc-dau>div:first-child{min-width:0}
.bk-cum-badge{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:0 0 auto}
.bk-ma{font-size:11px;color:var(--mo);font-weight:700;letter-spacing:.2px}
.bk-ten{font-size:16px;font-weight:800;margin-top:2px;word-break:break-word}
.bk-hen{font-size:12px;color:var(--mo);margin-top:5px;display:flex;align-items:center;gap:5px}
.bk-badge{font-size:10.5px;font-weight:800;padding:5px 8px;border-radius:18px;background:#f1f5f9;color:#475569;white-space:nowrap}
.bk-badge.ok{background:#d1fae5;color:#065f46}
.bk-badge.canh{background:#fef3c7;color:#92400e}
.bk-badge.xau{background:#fee2e2;color:#991b1b}
.bk-badge.hoan{background:#dbeafe;color:#1e40af}
.bk-thong-tin{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:11px;padding-top:10px;border-top:1px solid #f1f5f9}
.bk-thong-tin div{font-size:12px;color:var(--mo);min-width:0;word-break:break-word}
.bk-thong-tin b{color:#334155}
.bk-dv-nhan{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.bk-dv-nhan span{padding:5px 8px;border-radius:8px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:700}
.bk-tien-muc{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding-top:9px;border-top:1px dashed var(--vien);font-size:12px;color:var(--mo)}
.bk-tien-muc b{font-size:17px;color:var(--chinh)}
.bk-hanh-dong{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.bk-hanh-dong button{
  flex:1 1 auto;min-height:39px;border:1px solid var(--vien);background:#fff;color:#334155;
  border-radius:10px;padding:8px 10px;font-size:11.5px;font-weight:800
}
.bk-hanh-dong button.chinh{background:var(--chinh);border-color:var(--chinh);color:#fff}
.bk-hanh-dong button.ok{background:#ecfdf5;border-color:#a7f3d0;color:#047857}
.bk-hanh-dong button.xau{background:#fff7f7;border-color:#fecaca;color:#b91c1c}
.bk-hanh-dong button:disabled{opacity:.55}

.bk-lich-thang{background:#fff;border:1px solid var(--vien);border-radius:13px;padding:14px;min-width:0}
.bk-thu,.bk-ngay-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.bk-thu span{text-align:center;color:#64748b;font-size:10px;font-weight:800;padding:0 0 7px}
.bk-ngay-trong,.bk-o-ngay{aspect-ratio:1;min-width:0}
.bk-o-ngay{position:relative;border:1px solid transparent;border-radius:50%!important;background:transparent!important;color:#334155;font-size:13px;padding:0;display:grid;place-items:center}
.bk-o-ngay>span,.bk-ngay-grid-moi button>span{display:grid;place-items:center;color:inherit!important;line-height:1}
/* Hover chỉ gợi nhẹ vùng có thể bấm; focus vẫn có vòng nhận biết nhưng
   không phủ màu đậm lên ngày hoặc làm lẫn với trạng thái đang chọn. */
.bk-o-ngay:hover:not(:disabled):not(.co-booking):not(.dang-chon),.bk-ngay-grid-moi button:hover:not(:disabled):not(.co-booking):not(.dang-chon):not(.on){background:#f8fafc!important;color:#334155!important;border-color:#e2e8f0!important;outline:none!important}
.bk-o-ngay:focus-visible:not(.co-booking):not(.dang-chon),.bk-ngay-grid-moi button:focus-visible:not(.co-booking):not(.dang-chon):not(.on){background:#f8fafc!important;color:#334155!important;border-color:#cbd5e1!important;outline:2px solid rgba(51,65,85,.22)!important;outline-offset:1px}
.bk-o-ngay.ngoai-pham-vi{opacity:.26;cursor:not-allowed}
.bk-o-ngay.hom-nay{box-shadow:inset 0 0 0 1.5px var(--chinh);font-weight:900}
.bk-o-ngay.co-booking,.bk-ngay-grid-moi button.co-booking{background:#d1fae5!important;color:#065f46!important;font-weight:900}
/* Ngày đang chọn dùng nền sáng + chữ đậm ở cả lịch chính và picker.
   Quy tắc này nằm sau hover/co-booking để không bao giờ rơi về chữ trắng. */
.bk-o-ngay.dang-chon,.bk-ngay-grid-moi button.dang-chon,.bk-ngay-grid-moi button.on{background:#d1fae5!important;color:#065f46!important;border-color:#111!important;box-shadow:inset 0 0 0 1px #111!important;font-weight:900}
.bk-o-ngay.co-booking:focus-visible,.bk-o-ngay.dang-chon:focus-visible,.bk-ngay-grid-moi button.co-booking:focus-visible,.bk-ngay-grid-moi button.dang-chon:focus-visible,.bk-ngay-grid-moi button.on:focus-visible{outline:2px solid rgba(6,95,70,.24)!important;outline-offset:1px}
/* Tâm badge nằm đúng trên cung 45deg của góc trên-phải hình tròn. Dùng
   inline-flex và line-height cố định để số luôn nằm giữa, kể cả hai chữ số. */
.bk-o-ngay b,.bk-ngay-grid-moi button b{position:absolute;left:85.355%;top:14.645%;right:auto;transform:translate(-50%,-50%);min-width:20px;height:20px;border:2px solid #fff;border-radius:999px;background:#dc2626!important;color:#fff!important;font-size:9px;font-weight:900;line-height:1;display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:0 5px;box-sizing:border-box;box-shadow:0 2px 5px rgba(127,29,29,.22)}
.bk-dau-loc-ngay{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;
  margin-bottom:10px;border:1px solid #99f6e4;border-radius:12px;background:#f0fdfa}
.bk-dau-loc-ngay b,.bk-dau-loc-ngay span{display:block}.bk-dau-loc-ngay b{font-size:13px;color:#115e59}
.bk-dau-loc-ngay span{font-size:11px;color:#64748b;margin-top:3px}
.bk-dau-loc-ngay button,.bk-bo-loc{border:0;border-radius:9px;background:var(--chinh);color:#fff;
  min-height:36px;padding:8px 10px;font-size:11px;font-weight:800;display:inline-flex;align-items:center;gap:5px}

.bk-khong-san-sang{
  max-width:520px;margin:12vh auto 0;background:#fff;border:1px solid var(--vien);
  border-radius:18px;padding:28px 24px;text-align:center;box-shadow:0 12px 36px rgba(15,23,42,.08)
}
.bk-khong-san-sang .bk-icon-lon{
  width:60px;height:60px;margin:0 auto 15px;border-radius:18px;background:var(--chinh-nhat);
  color:var(--chinh);display:flex;align-items:center;justify-content:center
}
.bk-khong-san-sang .bk-icon-lon .ic{width:30px;height:30px}
.bk-khong-san-sang h2{margin:0;font-size:20px}
.bk-khong-san-sang p{margin:9px 0 20px;color:var(--mo);font-size:14px;line-height:1.65}
.bk-khong-san-sang a{display:inline-flex;align-items:center;gap:7px;padding:12px 17px;border-radius:11px;background:var(--chinh);color:#fff;text-decoration:none;font-size:14px;font-weight:800}

/* Biên nhận — khối trắng, ít màu để chụp màn hình và in rõ. */
.bk-lop{
  position:fixed;inset:0;z-index:220;background:rgba(15,23,42,.58);display:none;
  align-items:flex-end;justify-content:center;padding-top:env(safe-area-inset-top);
  padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)
}
.bk-lop.hien{display:flex}
#lopBienNhan{z-index:230}
.bk-hop-bien-nhan{
  width:100%;min-width:0;max-width:620px;max-height:calc(100dvh - env(safe-area-inset-top));
  overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
  background:#f8fafc;border-radius:19px 19px 0 0;padding:0 14px calc(18px + env(safe-area-inset-bottom))
}
.bk-hop-chi-tiet{max-width:720px}
.bk-chi-tiet-tom-tat{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--vien);border-radius:14px;padding:14px;margin-bottom:10px}
.bk-chi-tiet-tom-tat>.bk-cum-badge{align-items:flex-start;flex-direction:row;flex-wrap:wrap}
.bk-chi-tiet-tom-tat>div:last-child{text-align:right}
.bk-chi-tiet-tom-tat>div:last-child span{display:block;color:var(--mo);font-size:11px}
.bk-chi-tiet-tom-tat>div:last-child b{display:block;color:var(--chinh);font-size:20px;margin-top:3px}
.bk-form-chi-tiet,.bk-khu-thao-tac,.bk-khu-quyet-toan,.bk-dau-vet{min-width:0;background:#fff;border:1px solid var(--vien);border-radius:14px;padding:16px;margin-bottom:10px}
.bk-form-chi-tiet h3,.bk-khu-thao-tac h3,.bk-khu-quyet-toan h3,.bk-dau-vet h3{margin:0 0 13px;font-size:15px}
.bk-dich-vu-ct{margin-bottom:13px}
.bk-form-chi-tiet input:not([type="checkbox"]),.bk-form-chi-tiet textarea,
.bk-khu-quyet-toan input:not([type="checkbox"]){display:block;width:100%;max-width:100%;min-width:0}
.bk-form-chi-tiet textarea{
  min-height:104px;resize:vertical;border:1.5px solid var(--vien);border-radius:12px;
  background:#fff;color:var(--chu);font-size:16px;line-height:1.5;padding:13px 14px
}
.bk-form-chi-tiet textarea:focus{
  outline:none;border-color:var(--chinh);box-shadow:0 0 0 3px var(--chinh-nhat)
}
.bk-form-chi-tiet input:disabled,.bk-form-chi-tiet textarea:disabled{background:#f8fafc;color:#475569;opacity:1}
.bk-thiet-lap-hen{min-width:0;margin-bottom:13px}
.bk-nhan-hen{display:block;margin:0 0 6px;color:#334155;font-size:13px;font-weight:700}
.bk-nut-cai-hen{
  width:100%;min-width:0;min-height:62px;border:1.5px solid var(--vien);border-radius:12px;
  background:#f8fafc;color:var(--chu);padding:10px 11px 10px 14px;text-align:left;
  display:flex;align-items:center;justify-content:space-between;gap:12px
}
.bk-nut-cai-hen>span:first-child{min-width:0}
.bk-nut-cai-hen small{display:block;color:var(--mo);font-size:11px;font-weight:700;margin-bottom:3px}
.bk-nut-cai-hen b{display:block;font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.bk-banh-rang{
  width:38px;height:38px;border-radius:11px;background:#fff;border:1px solid var(--vien);
  color:var(--chinh);display:flex;align-items:center;justify-content:center;flex:0 0 38px
}
.bk-banh-rang .ic{width:20px;height:20px;transition:transform .2s ease}
.bk-nut-cai-hen[aria-expanded="true"]{border-color:#94a3b8;background:var(--chinh-nhat);box-shadow:none}
.bk-nut-cai-hen[aria-expanded="true"]:focus-visible{border-color:#94a3b8;box-shadow:none!important;outline:2px solid rgba(51,65,85,.22);outline-offset:2px}
.bk-nut-cai-hen[aria-expanded="true"] .bk-banh-rang{border-color:var(--chinh)}
.bk-nut-cai-hen[aria-expanded="true"] .bk-banh-rang .ic{transform:rotate(45deg)}
.bk-nut-cai-hen:focus-visible{outline:3px solid var(--chinh-nhat);outline-offset:2px}
.bk-nut-cai-hen:disabled{cursor:default;opacity:1;color:#334155}
.bk-o-cai-hen{min-width:0;margin-top:11px;padding:12px;border:1px solid var(--vien);border-radius:12px;background:#fff}
.bk-du-lieu-cu{padding:9px 11px;border-radius:9px;background:#fffbeb;color:#92400e;font-size:11px;line-height:1.5}
.bk-khoa-chi-tiet{padding:10px 11px;border-radius:9px;background:#f8fafc;border:1px solid #e2e8f0;
  color:#475569;font-size:11.5px;line-height:1.55}
.bk-dau-vet>div{display:grid;grid-template-columns:minmax(90px,1fr) auto;gap:3px 10px;padding:8px 0;border-top:1px solid #f1f5f9}
.bk-dau-vet>div span{font-size:12px;font-weight:800;color:#334155}.bk-dau-vet>div b{font-size:11.5px;color:#475569;text-align:right}
.bk-dau-vet>div small{grid-column:1/-1;color:#94a3b8;font-size:10.5px}
.bk-nut-phu{min-height:44px;width:100%;border:1px solid var(--vien);border-radius:11px;background:#fff;color:#334155;font-weight:800;display:flex;align-items:center;justify-content:center;gap:7px}
/* Icon trong nút phụ dùng một cỡ cố định, không theo em — chữ nhỏ ở hàng hành
   trình từng làm icon biên nhận teo còn ~12px (feedback 28/08/2026). */
.bk-nut-phu .ic{width:16px;height:16px;flex:0 0 16px}
.bk-khu-thao-tac .bk-hanh-dong{margin-top:8px}
.bk-hanh-trinh{padding:14px 16px}
.bk-hanh-trinh-dau{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.bk-hanh-trinh-dau h3{margin:0}
.bk-hanh-trinh-dau .bk-nut-phu{width:auto;min-height:38px;padding:7px 11px;flex:0 0 auto}
.bk-timeline{position:relative;display:grid;gap:8px}
.bk-buoc{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:9px;min-width:0}
.bk-buoc:not(:last-child)::before{content:"";position:absolute;left:11px;top:23px;bottom:-10px;width:2px;background:#cbd5e1}
.bk-moc{position:relative;z-index:1;width:24px;height:24px;border:2px solid #cbd5e1;border-radius:50%;background:#fff;color:#fff;display:grid;place-items:center}
.bk-moc .ic{width:14px;height:14px;stroke-width:3}
.bk-buoc-the{min-width:0;padding:10px 11px;border:1px solid #e2e8f0;border-radius:11px;background:#f8fafc;color:#334155}
.bk-buoc-the>div{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}
.bk-buoc-the b{min-width:0;font-size:12.5px;overflow-wrap:anywhere}
.bk-buoc-the time{flex:0 0 auto;font-size:10.5px;color:#64748b;text-align:right}
.bk-buoc-the small{display:block;margin-top:3px;font-size:10.5px;line-height:1.4;color:#64748b}
.bk-buoc.xong .bk-moc{background:var(--chinh);border-color:var(--chinh)}
.bk-buoc.xong:not(:last-child)::before{background:var(--chinh)}
.bk-buoc.hien-tai .bk-moc{border:6px solid #5eead4;box-shadow:0 0 0 3px #ccfbf1}
.bk-buoc.hien-tai .bk-buoc-the{background:var(--chinh);border-color:var(--chinh);color:#fff;box-shadow:0 5px 14px rgba(15,118,110,.16)}
.bk-buoc.hien-tai .bk-buoc-the time,.bk-buoc.hien-tai .bk-buoc-the small{color:rgba(255,255,255,.82)}
.bk-buoc.sap-toi{opacity:.58}
.bk-hanh-trinh .bk-hanh-dong{padding-top:11px;margin-top:11px;border-top:1px dashed var(--vien)}
.bk-hanh-trinh .bk-nhan-tiep{flex:0 0 100%;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.45px;color:#64748b}

.bk-hanh-dong-buoc{display:grid;grid-template-columns:repeat(2,44px);justify-content:start;align-items:center;gap:9px;margin-top:9px;padding-top:8px;border-top:1px dashed rgba(255,255,255,.35)}
.bk-hanh-dong-buoc button{
  width:44px;min-width:44px;height:44px;min-height:44px;border:1px solid rgba(255,255,255,.6);background:#fff;color:var(--chinh);
  border-radius:11px;padding:8px;font-size:11.5px;font-weight:800;display:grid;place-items:center
}
.bk-hanh-dong-buoc .ic{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bk-hanh-dong-buoc button.ok{background:#d1fae5;border-color:#a7f3d0;color:#065f46}
.bk-hanh-dong-buoc button.xau{background:#fee2e2;border-color:#fecaca;color:#991b1b}
.bk-hanh-dong-buoc button.chinh{background:#fff;border-color:#fff;color:var(--chinh)}
.bk-hanh-dong-buoc button:focus-visible{outline:3px solid rgba(255,255,255,.82);outline-offset:2px}

.bk-ct-dau{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.bk-ct-dau h3{margin:0}
.bk-ct-dau .bk-nut-phu{width:auto;min-height:34px;padding:5px 10px;font-size:11.5px;flex:0 0 auto}
.bk-ct-tom-tat-khung{background:#f8fafc;border:1px solid var(--vien);border-radius:12px;padding:12px 13px}
.bk-thong-tin.bk-thong-tin-dau{border-top:0;padding-top:0}
.bk-ghi-chu-ct{font-size:12px;color:var(--mo)}

.bk-khu-quyet-toan>p{margin:-5px 0 13px;color:var(--mo);font-size:12px;line-height:1.5}
.bk-khung-gia{border-left:3px solid var(--chinh);padding-left:11px;margin:0 0 13px}
.bk-khung-gia>p{margin:0 0 10px;font-size:13px}
/* Ba dòng chiều cao đã nằm trên surface chung của quyết toán. Không lặp lại
   padding/nền của primitive counter bên ngoài; vùng chạm 44px nằm ở `.bk-dem`. */
.bk-khu-quyet-toan .bk-luoi-3>.bk-nhom.nhomDemFigma.bk-nhom-chieu-cao{
  min-height:0;padding:0;border-radius:0;background:transparent
}
.bk-khu-quyet-toan.da-xong{border-color:#a7f3d0;background:#ecfdf5}
/* Điều chỉnh quyết toán đã chốt (db/82) */
.bk-khu-quyet-toan.da-huy{border-color:#fecaca;background:#fef2f2}
.bk-khu-quyet-toan.da-huy>p{margin:-5px 0 10px;color:#991b1b;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.bk-hang-nut-qt{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;min-width:0;max-width:100%;box-sizing:border-box}
.bk-hang-nut-qt>button{flex:1 1 160px;min-width:0;max-width:100%;box-sizing:border-box;margin:0}
.bk-nut-phu.bk-nut-nguy{color:#b91c1c;border-color:#fecaca}
.bk-nut-tao.bk-nut-tao-nguy{background:#b91c1c}
.bk-nut-tao.bk-nut-tao-nguy:disabled{background:#cbd5e1}
.bk-nut-lich-su-qt{margin-top:12px}
.bk-ghi-dieu-chinh{margin:12px 0 0;padding:10px 12px;border:1px dashed #6ee7b7;border-radius:10px;background:#fff;color:var(--mo);font-size:12px;line-height:1.55;overflow-wrap:anywhere}
.bk-lich-su-qt{display:grid;gap:8px;margin:10px 0 0;padding:0;list-style:none;min-width:0}
.bk-lich-su-qt li{min-width:0;padding:10px 12px;border:1px solid var(--vien);border-radius:10px;background:#fff;font-size:12px;line-height:1.55;color:#334155;overflow-wrap:anywhere}
.bk-lich-su-qt b{color:var(--chinh)}
.bk-luoi-2-qt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;min-width:0}
.bk-dieu-chinh .truongFigmaNhieuDong{margin-top:12px}
.bk-tong .bk-cuoi.bk-chenh-thu b{color:#b45309}
.bk-tong .bk-cuoi.bk-chenh-tra b{color:#b91c1c}
.bk-loi-dieu-chinh{margin:8px 0 0;color:#b91c1c;font-size:12px;font-weight:700;line-height:1.5}
.bk-thanh-modal{position:sticky;top:0;z-index:2;background:#f8fafc;display:flex;align-items:center;justify-content:space-between;padding:14px 2px 11px}
.bk-thanh-modal strong{min-width:0;padding-right:8px;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-thanh-modal button{width:39px;height:39px;border:1px solid var(--vien);border-radius:11px;background:#fff;color:#334155;display:flex;align-items:center;justify-content:center}
.bk-bien-nhan{background:#fff;border:1px solid #dbe2ea;border-radius:14px;padding:22px 19px;color:#0f172a}
.bk-bn-logo{text-align:center;border-bottom:1px dashed #cbd5e1;padding-bottom:15px;margin-bottom:15px}
.bk-bn-logo img{width:115px;height:auto}
.bk-bn-logo h2{margin:9px 0 2px;font-size:18px;text-transform:uppercase;letter-spacing:.5px}
.bk-bn-logo p{margin:0;color:#64748b;font-size:11.5px}
.bk-bn-ma{text-align:center;margin-bottom:15px}
.bk-bn-ma span{display:block;font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.7px}
.bk-bn-ma b{display:block;margin-top:3px;font-size:20px;letter-spacing:.5px}
.bk-bn-dong{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:7px 0;border-bottom:1px solid #f1f5f9;font-size:13px}
.bk-bn-dong:last-child{border-bottom:0}
.bk-bn-dong span{color:#64748b;flex:0 0 120px}
.bk-bn-dong b{text-align:right;word-break:break-word}
.bk-bn-tien{margin:15px 0;padding:13px 14px;border-radius:11px;background:#f0fdfa;border:1px solid #99f6e4;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#115e59}
.bk-bn-tien span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}
.bk-bn-tien b{font-size:22px;white-space:nowrap}
.bk-bn-chinh-sach{margin:-4px 0 13px;color:#64748b;font-size:11px;line-height:1.55;text-align:center}.bk-bn-chinh-sach a{color:#0f766e;font-weight:800;overflow-wrap:anywhere}
.bk-bn-ck{margin-top:15px;border-top:1px dashed #cbd5e1;padding-top:15px}
.bk-bn-ck h3{margin:0 0 9px;font-size:13px;text-transform:uppercase;letter-spacing:.5px}
.bk-qr{
  width:176px;height:176px;margin:15px auto 4px;border:1.5px dashed #94a3b8;border-radius:13px;
  display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;color:#64748b;font-size:11.5px;line-height:1.5;background:#fff
}
.bk-qr img{width:100%;height:100%;object-fit:contain}
.bk-bn-ghi-chu{margin-top:14px;color:#64748b;font-size:10.5px;line-height:1.55;text-align:center}
.bk-bn-nha-be{display:flex;flex-direction:column;gap:4px;margin-top:15px;padding-top:14px;border-top:1px dashed #cbd5e1;text-align:center;color:#475569;font-size:11px;line-height:1.45}.bk-bn-nha-be b{color:#0f766e;font-size:14px}.bk-bn-nha-be span{overflow-wrap:anywhere}
.bk-bn-nut{display:flex;gap:8px;margin-top:11px}
.bk-bn-nut button{flex:1;min-height:45px;border-radius:11px;border:1px solid var(--vien);background:#fff;color:#334155;font-weight:800;display:flex;align-items:center;justify-content:center;gap:7px}
.bk-bn-nut button.chinh{background:var(--chinh);border-color:var(--chinh);color:#fff}
/* Nút bị khoá phải TRÔNG như bị khoá. Trước 30/08/2026 khối này không có luật
   :disabled nào, nên nút "Tải ảnh thanh toán" khi QR chưa mở vẫn hiện đen đặc
   hệt nút hoạt động — nhân viên bấm mãi không thấy gì và không hiểu vì sao.
   Một nút chết mà trông như sống thì tệ hơn một nút hiện rõ là đang khoá. */
.bk-bn-nut button:disabled{opacity:.42;cursor:not-allowed}
/* v3.0.139 "Gửi email vé": khung xác nhận ngay dưới hàng nút của màn vé (email đã che + loại thư, nút Gửi / Không
   gửi), rồi dòng kết quả (đang gửi / đã gửi, còn mấy lần / lỗi). Không in ra giấy. */
.bk-gui-email-ve{display:grid;gap:8px;margin-top:10px;padding:12px 14px;border:1px solid var(--vien);border-radius:14px;
  background:#f8fafc;min-width:0;max-width:100%;box-sizing:border-box}
.bk-gui-email-ve .bk-gui-email-cau{margin:0;font-size:13.5px;font-weight:700;line-height:1.45;color:#1e293b;overflow-wrap:anywhere}
.bk-gui-email-ve .bk-bn-nut{margin-top:0}
.bk-gui-email-ve .bk-gui-email-nut[hidden]{display:none}
.bk-gui-email-kq{margin:0;font-size:13px;font-weight:700;line-height:1.45;overflow-wrap:anywhere}
.bk-gui-email-kq:empty{display:none}
.bk-gui-email-kq[data-trang-thai="cho"]{color:#64748b}
.bk-gui-email-kq[data-trang-thai="ok"]{color:#047857}
.bk-gui-email-kq[data-trang-thai="loi"]{color:#b91c1c}

/* Vé booking dùng cùng một layout ở giao diện cũ/mới. Ảnh nền được đóng gói
   trong app; không gọi CDN và không đưa dữ liệu khách vào URL. */
.bk-nut-tao-moi,.bk-nut-quet-ve{min-height:40px;border:1px solid var(--vien);border-radius:11px;padding:8px 12px;background:#fff;color:#334155;font-weight:800;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.bk-nut-quet-ve{background:var(--chinh);border-color:var(--chinh);color:#fff}
.bk-nut-tao-moi .ic,.bk-nut-quet-ve .ic{width:18px;height:18px}

.bk-lop-quet{z-index:245;align-items:center;padding:calc(14px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left))}
.bk-hop-quet{width:min(100%,520px);max-height:100%;overflow:auto;overscroll-behavior:contain;background:#f8fafc;border-radius:20px;padding:0 16px 18px;box-shadow:0 24px 70px rgba(15,23,42,.28)}
.bk-hop-quet>p{margin:0 0 13px;color:#64748b;font-size:13px;line-height:1.55}
.bk-may-quet{width:100%;min-height:300px;overflow:hidden;border-radius:16px;background:#111;color:#fff;display:grid;place-items:center}
.bk-may-quet video{width:100%!important;height:auto!important;min-height:300px;object-fit:cover;border-radius:16px}
.bk-may-quet img{max-width:100%}
.bk-may-quet #khungMayQuet__scan_region{min-height:300px;background:#111}
.bk-may-quet #khungMayQuet__dashboard{padding:8px!important}
.bk-quet-du-phong{margin-top:12px;padding:12px;border:1px solid var(--vien);border-radius:13px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px}
.bk-quet-du-phong label{font-size:12px;font-weight:750;color:#475569}.bk-quet-du-phong input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.bk-quet-du-phong button{min-height:40px;border:0;border-radius:10px;padding:8px 12px;background:#e2e8f0;color:#334155;font-weight:800}
.bk-trang-thai-quet{min-height:42px;margin-top:10px;padding:10px 12px;border-radius:11px;background:#eef2ff;color:#3730a3;font-size:12px;line-height:1.5}
.bk-trang-thai-quet:empty{display:none}.bk-trang-thai-quet.ok{background:#ecfdf5;color:#065f46}.bk-trang-thai-quet.canh{background:#fffbeb;color:#92400e}.bk-trang-thai-quet.loi{background:#fff1f2;color:#9f1239}
.bk-ket-qua-quet{min-width:0;max-width:100%;box-sizing:border-box;margin-top:12px;padding:12px;border:1px solid var(--vien);border-radius:13px;background:#fff}
.bk-ket-qua-quet-dau{min-height:35px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.bk-ket-qua-quet-dau strong{font-size:13px;color:#0f172a}.bk-ket-qua-quet-dau span{font-size:11px;font-weight:800;color:#64748b}
.bk-ket-qua-quet ol{display:flex;flex-direction:column;gap:8px;margin:6px 0 0;padding:0;list-style:none}
.bk-ket-qua-quet li{min-width:0;max-width:100%;box-sizing:border-box;padding:10px 11px;border:1px solid #e2e8f0;border-radius:11px;background:#f8fafc}
.bk-ket-qua-quet li.ok{border-color:#a7f3d0;background:#ecfdf5}.bk-ket-qua-quet li.canh{border-color:#fde68a;background:#fffbeb}.bk-ket-qua-quet li.loi{border-color:#fecdd3;background:#fff1f2}
.bk-ket-qua-quet li div{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}.bk-ket-qua-quet li b{min-width:0;overflow-wrap:anywhere;font-size:12px;color:#0f172a}.bk-ket-qua-quet li time{flex:0 0 auto;font-size:10px;color:#64748b}
.bk-ket-qua-quet li p,.bk-ket-qua-quet>p{margin:4px 0 0;font-size:11px;line-height:1.45;color:#475569;overflow-wrap:anywhere}.bk-ket-qua-quet>p{margin:3px 0 0}.bk-ket-qua-quet>p.bk-an{display:none}

.bk-bien-nhan.bk-ve-booking{position:relative;overflow:hidden;width:min(600px,100%);min-width:0;margin:0 auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:0 22px 44px rgba(28,66,37,.16);container-type:inline-size;font-family:Arial,Helvetica,sans-serif}
.bk-ve-base{display:block;width:100%;height:auto;aspect-ratio:2012/3577;object-fit:contain}
/* Chữ trên bản xem trước vé: cùng bảng toạ độ với ảnh vé (toa-do-ve.mjs, Quy chuẩn vé §2), đổi 22/10/2026.
   Trước đó bản xem trước chép bộ số đã bỏ ngày 30/08 (Arial 87,5px, chữ khít -0,035em, thấp hơn 13-16px)
   nên nhìn khác ảnh vé gửi khách. --x/--y/--co/--rong là px trên nền 2012×3577; khung có container-type
   nên 1cqw = 20,12px nền. Ảnh vẽ đường chân chữ tại y + co×1854/2048; CSS line-height:1 đặt đường chân
   tại đỉnh hộp + co×1734/2048 (Arimo: hhea = typo = 1854/-434, bật USE_TYPO_METRICS) ⇒ đỉnh hộp =
   y + co×120/2048. Font là chính hai FontFace ảnh vé nạp (napFontVe); weight 700 + font-synthesis:none
   để không tô đậm giả lên tệp Bold. Chữ dài thu cỡ 2px một bước tới --min như datFontVe (vuaChuXemTruocVe). */
.bk-ve-dv-vi,.bk-ve-dv-en,.bk-ve-ngay,.bk-ve-gio,.bk-ve-khach,.bk-ve-tien,.bk-ve-ma{position:absolute;z-index:1;left:calc(var(--x)*1cqw/20.12);top:calc((var(--y) + var(--co)*120/2048)*1cqw/20.12);max-width:calc(var(--rong)*1cqw/20.12);overflow:hidden;font-family:VeSansDam,Arial,Helvetica,sans-serif;font-size:calc(var(--co)*1cqw/20.12);font-weight:700;font-synthesis:none;line-height:1;letter-spacing:0;white-space:nowrap}
.bk-ve-dv-vi{--x:214;--y:1575;--co:84;--min:54;--rong:1050;color:#303833}
.bk-ve-dv-en{--x:214;--y:1684;--co:50;--rong:1050;color:#303833;font-family:VeSans,Arial,Helvetica,sans-serif;font-weight:400}
.bk-ve-ngay{--x:214;--y:2040;--co:84;--min:59;--rong:700;color:#414141}
.bk-ve-gio{--x:1260;--y:2040;--co:84;--min:55;--rong:620;color:#414141}
.bk-ve-khach{--x:214;--y:2277;--co:84;--min:52;--rong:830;color:#414141}
.bk-ve-tien{--x:1260;--y:2277;--co:84;--min:52;--rong:610;color:#414141}
.bk-ve-ma{--x:877;--y:2651;--co:84;--min:50;--rong:850;color:#404040}
.bk-ve-ma-qr{position:absolute;top:73.61%;left:17.3%;z-index:1;width:19.88%;aspect-ratio:1;background:#fff}
.bk-ve-ma-qr .bk-qr{display:block;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;background:#fff}.bk-ve-ma-qr .bk-qr svg{display:block;width:100%;height:100%}
.bk-ve-ma-qr .bk-qr img{display:block;width:100%;height:100%;object-fit:contain}
.bk-ve-da-dung{position:absolute;top:76.5%;left:12%;z-index:2;width:76%;padding:1.2cqw;transform:rotate(-7deg);border:.55cqw solid #15703a;border-radius:1.1cqw;background:rgba(240,255,243,.93);color:#15703a;font-size:4.2cqw;font-weight:900;text-align:center;letter-spacing:.05em}
.bk-ve-canh-bao{width:min(600px,100%);margin:10px auto 0;padding:11px 13px;border:1px solid #f3cf70;border-radius:11px;background:#fff8df;color:#744b08;font-size:12px;line-height:1.5}

@media (max-width:760px){
  .bk-main{max-width:620px}
  .bk-bo-cuc{grid-template-columns:1fr}
  .bk-cot-ds{order:2}
}
@media (max-width:480px){
  .bk-main{padding-top:12px;padding-left:calc(12px + env(safe-area-inset-left));
    padding-right:calc(12px + env(safe-area-inset-right));padding-bottom:36px}
  .bk-mo-dau{padding:14px 15px;border-radius:14px}
  .bk-mo-dau h2{font-size:18px}
  .bk-the{padding:14px;border-radius:13px}
  .bk-luoi-2{grid-template-columns:1fr}
  .bk-luoi-3{grid-template-columns:1fr 1fr}
  .bk-dich-vu{grid-template-columns:1fr}
  .bk-thong-tin{grid-template-columns:1fr}
  .bk-bn-dong span{flex-basis:96px}
  .bk-bn-nut{flex-direction:column}
  /* Thanh công cụ TRƯỚC ĐÂY bị bó `max-width:190px` nên mọi nút rơi xuống một
     hàng riêng — năm hàng dọc cho thứ đáng lẽ hai hàng, đẩy danh sách booking
     xuống dưới màn hình. Bỏ trần đó và cho các nút tự co. Ở đây có hai luật
     `.bk-cong-cu-ds` chọi nhau trong CÙNG media query (none rồi 190px); gộp
     lại một luật để không ai phải đoán luật nào thắng. */
  .bk-cong-cu-ds{max-width:none;flex-wrap:wrap;row-gap:8px}
  .bk-nut-tao-moi,.bk-nut-quet-ve{flex:1 1 auto;justify-content:center}
  .bk-dau-ds{align-items:flex-start}
  .bk-hop-chi-tiet{padding-left:10px;padding-right:10px}
  .bk-form-chi-tiet,.bk-khu-thao-tac,.bk-khu-quyet-toan,.bk-dau-vet{padding:14px}
  .bk-form-chi-tiet .bk-dich-vu{gap:8px}
  .bk-form-chi-tiet .bk-chon-dv{padding:12px;gap:10px}
  .bk-khu-quyet-toan .bk-luoi-3{grid-template-columns:1fr}
  .bk-luoi-2-qt{grid-template-columns:1fr}
  .bk-khu-quyet-toan .bk-dem{width:100%}
  .bk-khu-quyet-toan .bk-dem input{min-width:0}
  .bk-hanh-trinh{padding:13px}
  .bk-hanh-trinh-dau{align-items:flex-start;flex-direction:column}
  .bk-hanh-trinh-dau .bk-nut-phu{width:100%}
  .bk-buoc-the>div{flex-direction:column;gap:2px}
  .bk-buoc-the time{text-align:left}
  .bk-nut-cai-hen{padding-left:12px}
  .bk-o-cai-hen{padding:11px}
  .bk-chi-tiet-tom-tat{flex-direction:column}
  .bk-chi-tiet-tom-tat>div:last-child{text-align:left}
  .bk-lich-thang{padding:9px}.bk-thu,.bk-ngay-grid{gap:1px}
  .bk-o-ngay{border-radius:50%;font-size:12px}
  .bk-chon-thang{gap:6px;margin-bottom:9px}.bk-chon-thang strong{min-width:92px;font-size:13px}
  .bk-dau-loc-ngay{align-items:flex-start}.bk-dau-loc-ngay button{flex:0 0 auto}
}
@media (max-width:350px){
  .bk-chon-thang{gap:5px}
  .bk-chon-thang strong{min-width:88px;font-size:12px}
  .bk-luoi-3{grid-template-columns:1fr}
  .bk-tong .bk-cuoi{align-items:flex-start;flex-direction:column}
}

@media print{
  @page{size:A4;margin:12mm}
  body.bk-dang-in{background:#fff;padding:0!important}
  body.bk-dang-in #app,body.bk-dang-in .bk-thanh-modal{display:none!important}
  body.bk-dang-in #lopChiTiet{display:none!important}
  body.bk-dang-in #lopBienNhan{position:static;display:block!important;background:#fff;padding:0}
  body.bk-dang-in .bk-hop-bien-nhan{max-width:none;max-height:none;overflow:visible;padding:0;background:#fff;border-radius:0}
  body.bk-dang-in .bk-bien-nhan{max-width:170mm;margin:0 auto;border-color:#cbd5e1;box-shadow:none}
  body.bk-dang-in .bk-bn-nut,body.bk-dang-in .bk-gui-email-ve{display:none!important}
}

/* ─────────────────────────────────────────────────────────────────────────
   Đồng bộ icon và bán kính trên màn Booking — chốt 28/08/2026.

   Trước đó cùng MỘT hàng công cụ có ba cỡ icon (18 / 19 / 21px) với nét khác
   nhau, và ba kiểu bo góc lẫn lộn: tròn hẳn, viên thuốc, và 11px. Nhìn như ba
   người làm ba lúc.

   Khối này đặt CUỐI file có chủ đích: các luật cũ nằm rải rác ở nhiều chỗ, và
   đây là nơi duy nhất quyết định hình dáng cuối cùng. Sửa hình dáng nút thì sửa
   ở đây, đừng thêm luật mới ở giữa file.
   ───────────────────────────────────────────────────────────────────────── */

/* Một cỡ icon, một độ dày nét cho toàn bộ thanh công cụ. */
.bk-cong-cu-ds .ic {
  width: 20px; height: 20px; flex: 0 0 20px;
  fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round;
}

/* Nút chữ bo tròn hết cỡ, cùng ngôn ngữ với thẻ trạng thái và bộ lọc nguồn —
   những thứ vốn đã là viên thuốc. */
.bk-nut-tao-moi,
.bk-nut-quet-ve,
.bk-nut-xep,
.bk-web-hanh-dong button {
  border-radius: 999px;
}

/* Nút chỉ có icon thì thành hình tròn, không phải vuông bo góc. */
.bk-doi-che-do button,
.bk-nut-icon {
  border-radius: 999px;
}

/* Nhãn trạng thái chứng từ cũng theo viên thuốc cho khỏi lạc lõng giữa các nút. */
.bk-chung-tu-trang-thai {
  border-radius: 999px;
}

/* Thẻ yêu cầu web bấm được — phải trông như bấm được. */
.bk-web-muc[data-web-mo]{cursor:pointer}
.bk-web-muc[data-web-mo]:focus-visible{outline:2px solid var(--chinh);outline-offset:2px}

/* Màn chi tiết yêu cầu từ website — chỉ đọc. */
.bk-hop-chi-tiet-web{max-width:520px;width:100%}
/* Từ 30/08/2026 màn này mặc cùng bộ đồ với màn chi tiết booking: nhóm thông tin
   là thẻ trắng bo tròn trên nền xám, không còn là danh sách phẳng ngăn bằng
   đường kẻ. Selector giữ nguyên nên JS không phải biết gì về thay đổi này. */
.bk-ct-nhom{background:#fff;border:1px solid var(--vien);border-radius:14px;padding:12px 14px;margin-bottom:10px}
.bk-ct-nhom:last-of-type{margin-bottom:0}
.bk-ct-dong{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:5px 0;font-size:13.5px}
.bk-ct-dong span{color:var(--mo);flex:0 0 auto}
.bk-ct-dong b{text-align:right;overflow-wrap:anywhere}
.bk-ct-ghi-chu{background:#fff;border:1px solid var(--vien);border-radius:14px;padding:12px 14px;margin-top:10px}
.bk-ct-ghi-chu span{display:block;color:var(--mo);font-size:12px;margin-bottom:5px}
.bk-ct-ghi-chu p{margin:0;font-size:13.5px;line-height:1.55;overflow-wrap:anywhere}
.bk-ct-nhac{margin:14px 0 0;color:var(--mo);font-size:11.5px;line-height:1.5}
/* Hành động dồn vào màn chi tiết (30/08/2026). Thẻ trong danh sách chỉ còn
   thông tin nhận diện, nên khối này là nơi duy nhất thao tác. */
.bk-ct-hanh-dong{margin-top:10px;background:#fff;border:1px solid var(--vien);border-radius:14px;padding:12px 14px}
.bk-ct-hanh-dong .bk-web-hanh-dong{margin-top:0}
.bk-ct-hanh-dong .bk-web-doi-soat{max-width:100%;box-sizing:border-box;margin:0 0 11px;padding:10px 12px;border:1px solid #f59e0b;border-radius:11px;background:#fffbeb;color:#92400e;font-weight:800;overflow-wrap:anywhere}

/* Khu "Đổi lịch, hủy và hoàn tiền v4" (30/08/2026).
   Trước đây `<p>` trong .bk-the không có style riêng nên thừa kế cỡ chữ body —
   to hơn hẳn .bk-mo-ta (12.5px) và làm cả khối trông dày đặc chữ. */
.bk-khu-quyet-toan .bk-the>p{margin:-4px 0 12px;color:var(--mo);font-size:12.5px;line-height:1.55}
.bk-khu-quyet-toan .bk-the>p.bk-goi-y{margin-top:0}
/* Tiêu đề thẻ dùng chung ngôn ngữ với .bk-the h2: chữ nhỏ, in hoa, có icon. */
.bk-khu-quyet-toan .bk-the>h3{
  display:flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--chinh);
  font-size:13px;text-transform:uppercase;letter-spacing:.65px
}
.bk-khu-quyet-toan .bk-the>h3 .ic{width:18px;height:18px;flex:0 0 auto}
/* Nhãn xếp TRÊN ô nhập. `.bk-nhom label` mặc định là flex space-between, nên
   nhãn dài bị bó cạnh input và vỡ bốn dòng — đúng lỗi thấy trên ảnh. */
.bk-nhom-doc label{display:block;margin-bottom:6px;font-size:12px;font-weight:800;color:#334155}
/* Tiêu đề khu có icon: căn icon với chữ thay vì để nó rơi xuống dòng riêng. */
.bk-khu-quyet-toan>h3{display:flex;align-items:center;gap:8px}
.bk-khu-quyet-toan>h3 .ic{width:19px;height:19px;flex:0 0 auto;color:var(--chinh)}

/* Đồng hồ đếm ngược chính sách (30/08/2026). Trước đây là một câu văn dài chạy
   hết chiều ngang; nay là ô số lớn, đọc bằng liếc mắt. Nhịp cập nhật 1 giây nên
   `tabular-nums` là bắt buộc — thiếu nó các chữ số nhảy qua lại. */
.bk-dem-nguoc-chinh-sach{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.bk-dem-nguoc-chinh-sach>.ic{width:18px;height:18px;flex:0 0 auto;opacity:.75}
.bk-dn-o{display:flex;align-items:flex-end;gap:8px;font-variant-numeric:tabular-nums}
.bk-dn-o b{display:flex;align-items:baseline;gap:3px;font-size:19px;font-weight:800;line-height:1}
.bk-dn-o b i{font-style:normal;font-size:10.5px;font-weight:800;opacity:.72}
.bk-dn-het{font-size:14px;font-weight:800}
/* Nhãn có icon: căn icon theo dòng chữ thay vì để nó đội lên trên. */
.bk-nhom-doc label{display:flex;align-items:center;gap:7px}
.bk-nhom-doc label .ic{width:16px;height:16px;flex:0 0 auto;opacity:.7}

/* Icon đặc (fill) — `.ic` mặc định là stroke + fill:none nên icon dạng khối sẽ
   vô hình nếu không đảo lại. Dùng cho i-tre-em (child-head do chủ dự án cung
   cấp) và mọi icon fill thêm sau. */
.ic.dac{fill:currentColor;stroke:none}
/* Nhãn nhóm chiều cao ở MỌI màn (tạo booking, chi tiết, quyết toán): icon + chữ
   ngắn trên một dòng, không xuống hàng. */
.bk-nhom-chieu-cao>label,.nhomDemFigma>label{display:flex;align-items:center;gap:5px;min-width:0}
.bk-nhom-chieu-cao>label .ic,.nhomDemFigma>label .ic{width:15px;height:15px;flex:0 0 auto;opacity:.75}
.bk-nhom-chieu-cao>label span,.nhomDemFigma>label span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Ô chọn và nút trong khối xác nhận hoàn: chiếm trọn bề ngang, không bị bó theo
   nhãn. Nút để chữ tự xuống dòng còn hơn cắt cụt số tiền. */
.bk-nhom-doc>select,.bk-nhom-doc>input{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.bk-nhom-doc>.bk-nut-phu{width:100%;min-height:44px;padding:10px 14px;white-space:normal;line-height:1.35}

/* db/87 — đóng yêu cầu website có lý do: thẻ đã đóng mờ đi như booking huỷ; hộp lý do dùng khung của màn xác nhận tiền */
.bk-web-muc.bk-web-muc-dong{opacity:.72}
.bk-web-muc.bk-web-muc-dong .bk-web-nguon{background:#fee2e2;color:#991b1b}
.bk-web-da-dong{border-color:#fecaca!important;background:#fff7f7!important;color:#991b1b!important}
.bk-hop-dong-yeu-cau-web{max-width:520px;width:100%}
.bk-hop-dong-yeu-cau-web .bk-doi-chieu-xac-nhan-tien label{align-items:flex-start}

/* db/90 — chế độ chỉ xem: ẩn mọi điểm ghi; lớp bảo vệ thật là policy/RPC phía server */
.bk-chi-xem #btnBookingMoi,.bk-chi-xem:not(.bk-quet-duoc) #btnQuetVe,.bk-chi-xem #ctBtnSua,.bk-chi-xem #formSuaBooking,.bk-chi-xem #ctHanhDong,.bk-chi-xem .bk-hanh-dong,.bk-chi-xem .bk-hanh-dong-buoc,.bk-chi-xem .bk-web-hanh-dong,.bk-chi-xem #v4VongDoi,.bk-chi-xem #btnQuyetToan,.bk-chi-xem [data-chung-tu-xac-nhan-tien],.bk-chi-xem [data-chung-tu-tu-choi]{display:none!important}
.bk-bieu-ngu-chi-xem{margin:0 0 12px;padding:10px 14px;border:1px solid #c7d2fe;border-radius:12px;background:#eef2ff;color:#3730a3;font-size:14px}

/* v3.0.132 — Theo ngày đến: hai ô đếm Hôm nay / Ngày mai, vạch chia các ngày đã qua. */
.bk-tom-tat-ngay-den{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:4px 0 6px}
.bk-o-ngay-den{min-width:0;text-align:left;font-family:inherit;border:1px solid var(--vien);border-radius:13px;background:#fff;padding:11px 12px;cursor:pointer;color:#334155}
.bk-o-ngay-den span{display:block;font-size:11.5px;font-weight:800;color:#475569}
.bk-o-ngay-den b{display:block;font-size:24px;line-height:1.15;color:#0f172a;margin-top:2px}
.bk-o-ngay-den small{display:block;font-size:10.5px;color:#64748b;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-o-ngay-den.hom-nay{border-color:#0f766e;background:#f0fdfa}
.bk-o-ngay-den.hom-nay span,.bk-o-ngay-den.hom-nay b{color:#115e59}
.bk-o-ngay-den:focus-visible{outline:2px solid #0f766e;outline-offset:2px}
.bk-ngay-nhom.hom-nay{color:#115e59}
.bk-chia-qua-khu{margin:22px 0 4px;padding:7px 10px;border-radius:9px;background:#f1f5f9;color:#64748b;font-size:11.5px;font-weight:800;text-align:center}

/* v3.0.132 — Nút ⋮ Lịch sử thao tác ở đầu hai hộp chi tiết (kiểu nút lịch sử của lượt thu ngân). */
.bk-thanh-nut{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.bk-thanh-modal .bk-nut-lich-su{width:39px;height:39px;min-width:39px;min-height:39px;border:1px solid var(--vien);border-radius:50%;box-shadow:none;background:#fff;color:#334155}
.bk-thanh-modal .bk-nut-lich-su .ic{width:22px;height:22px;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round;fill:none}
/* Nguồn khách: chip dưới trạng thái trên thẻ, ô chọn ở form tạo và chi tiết (db/93). */
.bk-nguon-khach{font-size:10.5px;font-weight:800;padding:4px 8px;border-radius:18px;white-space:nowrap;border:1px solid #cbd5e1;color:#475569;background:#fff}
.bk-nguon-khach.nguon-website{border-color:#c7d2fe;color:#3730a3;background:#eef2ff}
.bk-nguon-khach.nguon-noi_bo{border-color:#99f6e4;color:#115e59;background:#f0fdfa}
.bk-nguon-khach.nguon-doi_tac{border-color:#fde68a;color:#92400e;background:#fffbeb}
.bk-nhan-nguon{display:block;font-size:13px;font-weight:700;color:#334155;margin-bottom:7px}
.bk-chon-nguon{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.bk-chon-nguon label{position:relative;cursor:pointer}
.bk-chon-nguon input{position:absolute;opacity:0;pointer-events:none}
.bk-chon-nguon span{display:block;text-align:center;padding:11px 6px;border:1px solid var(--vien);border-radius:12px;background:#fff;font-size:13px;font-weight:700;color:#475569}
.bk-chon-nguon input:checked+span{border-color:#0f766e;background:#f0fdfa;color:#115e59;box-shadow:inset 0 0 0 1px #0f766e}
.bk-chon-nguon input:focus-visible+span{outline:2px solid #0f766e;outline-offset:2px}
.bk-nguon-ct select{font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--vien);border-radius:9px;background:#fff;color:#0f172a}

/* v3.0.132 — Tên đối tác khi nguồn là Đối tác (form tạo và chi tiết). */
.bk-o-doi-tac{margin-top:9px}
.bk-o-doi-tac label{display:block;font-size:12.5px;font-weight:700;color:#475569;margin-bottom:5px}
.bk-o-doi-tac input{width:100%;box-sizing:border-box;font:inherit;font-size:14px;padding:11px 12px;border:1px solid var(--vien);border-radius:12px;background:#fff;color:#0f172a}
.bk-ct-doi-tac{display:inline-flex;gap:6px;align-items:center;margin-left:6px;flex-wrap:wrap}
.bk-ct-doi-tac input{font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--vien);border-radius:9px;min-width:0;width:150px}
.bk-ct-doi-tac button{font:inherit;font-size:12.5px;font-weight:700;padding:5px 11px;border:1px solid #0f766e;border-radius:9px;background:#0f766e;color:#fff}
.bk-muc-dau .bk-nguon-khach{max-width:150px;overflow:hidden;text-overflow:ellipsis}
.bk-nhom-nguon{display:block;margin:12px 0;padding:14px;background:#fff;border:1px solid var(--vien);border-radius:16px}
.bk-nhom-nguon .bk-chon-nguon span{white-space:nowrap}
.bk-nhom-nguon .bk-o-doi-tac input{display:block;height:auto;min-height:44px;border:1px solid var(--vien);background:#fff;box-shadow:none}

/* v3.0.132 — % giảm giá theo phần trong quyết toán V4 (db/94). */
.bk-o-giam{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:10px 12px;background:#fff;border:1px solid var(--vien);border-radius:12px}
.bk-o-giam label{font-size:13px;font-weight:700;color:#334155}
.bk-o-giam input{width:96px;text-align:right;font:inherit;font-size:15px;font-weight:700;padding:8px 10px;border:1px solid var(--vien);border-radius:10px;background:#fff;color:#0f172a}
/* Bill ăn + giảm giá bill chung một khung nền, như khung cano (18/10/2026). */
#qtKhuAnBoc>#qtKhuAn.bk-nhom.truongFigma{background:transparent;padding:0;min-height:0;margin:0;border:0;box-shadow:none}
#qtKhuAnBoc>.bk-o-giam{margin-top:10px}
/* Nhãn "Giảm giá … (%)" luôn một hàng (18/10/2026). */
.bk-o-giam label{white-space:nowrap;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.bk-o-giam input{flex:0 0 84px;width:84px;min-width:0}
/* Bo góc thẻ giảm giá đồng bộ với thanh "Số tiền còn lại phải thu" (.bk-cuoi = 14px), 18/10/2026. */
.bk-o-giam{border-radius:14px}
/* Khung cano của form quyết toán (18/10/2026): bỏ icon, chữ canh trái, giãn hàng, kẻ mảnh xám
   phân cách. Chỉ trong #qtKhuCano — bộ đếm chung (nhomDemFigma) ở form tạo booking không đổi. */
#qtKhuCano .bk-luoi-3{row-gap:0}
#qtKhuCano .bk-nhom-chieu-cao{padding:10px 0}
#qtKhuCano .bk-nhom-chieu-cao+.bk-nhom-chieu-cao{border-top:1px solid #e5e7eb}
#qtKhuCano .bk-nhom-chieu-cao>label{justify-content:flex-start}
#qtKhuCano .bk-nhom-chieu-cao>label>svg{display:none}
/* Khối tổng tiền quyết toán (18/10/2026): đảo màu — nền xám, dòng bên trong sáng; bo đồng tâm:
   bo ngoài 24px = bo trong 14px + đệm 10px. Dòng 12px → 14px bằng thanh đen .bk-cuoi (14px).
   Áp cho form quyết toán (#qtTong) và form sửa quyết toán (#dcTong). */
html:not([data-nbkh-ui="v3"]) #qtTong.bk-tong.ketQuaTinh,html:not([data-nbkh-ui="v3"]) #dcTong.bk-tong.ketQuaTinh,
#qtTong.bk-tong.ketQuaTinh,#dcTong.bk-tong.ketQuaTinh{background:#f8f8f9;box-shadow:none;border:0;padding:10px;border-radius:24px}
html:not([data-nbkh-ui="v3"]) #qtTong.bk-tong .bk-dong-tien,html:not([data-nbkh-ui="v3"]) #dcTong.bk-tong .bk-dong-tien,
#qtTong.bk-tong .bk-dong-tien,#dcTong.bk-tong .bk-dong-tien{background:#fff;border-radius:14px}
html:not([data-nbkh-ui="v3"]) #qtTong.bk-tong .bk-cuoi,html:not([data-nbkh-ui="v3"]) #dcTong.bk-tong .bk-cuoi{border-radius:14px}
/* Nút xác nhận quyết toán = kiểu nút "Lưu thay đổi" của Thu ngân (app.css .thanhDuoi button +
   theme #thanhDuoi #btnLuu): pill 52px, chữ 15,5px đậm, icon 22px; khoá thì nền #cbd5e1 mờ .82. */
html:not([data-nbkh-ui="v3"]) #formQuyetToan #btnQuyetToan.bk-nut-luu-qt,#formQuyetToan #btnQuyetToan.bk-nut-luu-qt{
  min-height:52px;padding:15px;border:0;border-radius:999px;font-size:15.5px;font-weight:800;
  color:#fff;background:var(--chinh);display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:none}
html:not([data-nbkh-ui="v3"]) #formQuyetToan #btnQuyetToan.bk-nut-luu-qt:disabled,#formQuyetToan #btnQuyetToan.bk-nut-luu-qt:disabled{
  background:#cbd5e1;color:#f8fafc;opacity:.82;cursor:not-allowed}
#formQuyetToan #btnQuyetToan.bk-nut-luu-qt .ic{width:22px;height:22px;margin:0;flex:0 0 22px}
#formQuyetToan #btnQuyetToan.bk-nut-luu-qt span{white-space:nowrap}
/* Hộp chi tiết booking như Chi tiết lượt (18/10/2026): thanh dưới [X][Xác nhận], X ở đầu hộp ẩn;
   dưới 768px hộp đầy màn hình, bỏ bo tròn phía trên. Màn rộng (man-rong, ≥768px) giữ hộp nổi. */
#lopChiTiet #dongChiTiet{display:none}
#ctThanhDuoi.bk-thanh-duoi-ct{position:sticky;bottom:0;z-index:3;max-width:none;width:auto;
  margin:16px -14px calc(-18px - env(safe-area-inset-bottom));display:flex;align-items:center;gap:9px;
  padding:11px 14px calc(11px + env(safe-area-inset-bottom));background:#fff;border-top:0;
  border-radius:22px 22px 0 0;box-shadow:0 -10px 28px rgba(17,17,17,.08)}
#ctThanhDuoi .bk-nut-dong-duoi{flex:0 0 52px;width:52px;height:52px;min-width:52px;min-height:52px;padding:0;
  border-radius:999px;border:1px solid var(--vien);background:#fff;color:#334155;display:grid;place-items:center}
#ctThanhDuoi .bk-nut-dong-duoi .ic{width:22px;height:22px;margin:0}
html:not([data-nbkh-ui="v3"]) #ctThanhDuoi #btnQuyetToan.bk-nut-luu-qt,#ctThanhDuoi #btnQuyetToan.bk-nut-luu-qt{
  flex:1 1 auto;width:auto;margin:0;min-height:52px;padding:15px;border:0;border-radius:999px;font-size:15.5px;font-weight:800;
  color:#fff;background:var(--chinh);display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:none}
html:not([data-nbkh-ui="v3"]) #ctThanhDuoi #btnQuyetToan.bk-nut-luu-qt:disabled,#ctThanhDuoi #btnQuyetToan.bk-nut-luu-qt:disabled{
  background:#cbd5e1;color:#f8fafc;opacity:.82;cursor:not-allowed}
#ctThanhDuoi #btnQuyetToan.bk-nut-luu-qt .ic{width:22px;height:22px;margin:0;flex:0 0 22px}
#ctThanhDuoi #btnQuyetToan.bk-nut-luu-qt span{white-space:nowrap}
@media (max-width:767px){
  #lopChiTiet.bk-lop{padding-top:0}
  html:not([data-nbkh-ui="v3"]) #lopChiTiet .bk-hop-chi-tiet,#lopChiTiet .bk-hop-chi-tiet{
    max-width:none;height:100dvh;max-height:100dvh;border-radius:0;box-shadow:none;
    padding-top:env(safe-area-inset-top)}
  #ctThanhDuoi.bk-thanh-duoi-ct{margin-left:-10px;margin-right:-10px}
}
/* 18/10/2026 (iPhone): "Chờ khách đến" xanh dương — tách khỏi "Đã hoàn tất" (xanh lá), khớp ô lọc "Đã xác nhận". */
html:not([data-nbkh-ui="v3"]) .bk-badge.cho-den,.bk-badge.cho-den{background:#e0f2fe;color:#075985}
/* 21/10/2026: "Khách đã đến" (đã check-in, chưa quyết toán) — xanh logo, khác "Đã hoàn tất". */
html:not([data-nbkh-ui="v3"]) .bk-badge.da-den,.bk-badge.da-den{background:#e3eeeb;color:#31554e}
/* Sticky trong khung cuộn dính ở mép TRONG của đệm: đệm trên (tai thỏ) và dưới (18px + vùng an toàn)
   của hộp chi tiết để lộ nội dung cuộn phía trên thanh tiêu đề và phía dưới thanh nút (iPhone 18/10).
   Bỏ đệm trên/dưới của hộp, đưa vùng an toàn vào chính thanh tiêu đề và thanh nút. */
#lopChiTiet .bk-hop-chi-tiet{padding-bottom:0}
#ctThanhDuoi.bk-thanh-duoi-ct{margin-bottom:0}
@media (max-width:767px){
  html:not([data-nbkh-ui="v3"]) #lopChiTiet .bk-hop-chi-tiet,#lopChiTiet .bk-hop-chi-tiet{padding-top:0}
  #lopChiTiet .bk-hop-chi-tiet>.bk-thanh-modal{margin:0 -10px;padding:calc(14px + env(safe-area-inset-top)) 10px 11px}
}
/* 18/10/2026 (iPhone): thanh nút dưới quá cao — hộp chi tiết cao theo lớp phủ cố định (100%), không theo
   100dvh (iOS chế độ ứng dụng trừ vùng an toàn nên hộp ngắn, thanh nổi lên); đệm đáy = max(11px, vùng an toàn)
   thay cho 11px + vùng an toàn. Áp cho hộp chi tiết booking và hộp chi tiết yêu cầu web. */
#lopChiTietWeb .bk-hop-chi-tiet-web{padding-bottom:0}
#lopChiTietWeb #dongChiTietWeb{display:none}
#ctThanhDuoi.bk-thanh-duoi-ct,#ctwThanhDuoi.bk-thanh-duoi-ct{padding-bottom:max(11px, env(safe-area-inset-bottom))}
#ctwThanhDuoi.bk-thanh-duoi-ct{position:sticky;bottom:0;z-index:3;max-width:none;width:auto;margin:16px -14px 0;display:flex;align-items:center;gap:9px;
  padding-top:11px;padding-left:14px;padding-right:14px;background:#fff;border-top:0;border-radius:22px 22px 0 0;box-shadow:0 -10px 28px rgba(17,17,17,.08)}
#ctwThanhDuoi .bk-nut-dong-duoi{flex:0 0 52px;width:52px;height:52px;min-width:52px;min-height:52px;padding:0;border-radius:999px;border:1px solid var(--vien);background:#fff;color:#334155;display:grid;place-items:center}
#ctwThanhDuoi .bk-nut-dong-duoi .ic{width:22px;height:22px;margin:0}
@media (max-width:767px){
  #lopChiTiet.bk-lop,#lopChiTietWeb.bk-lop{padding-top:0;align-items:stretch}
  html:not([data-nbkh-ui="v3"]) #lopChiTiet .bk-hop-chi-tiet,#lopChiTiet .bk-hop-chi-tiet,
  html:not([data-nbkh-ui="v3"]) #lopChiTietWeb .bk-hop-chi-tiet-web,#lopChiTietWeb .bk-hop-chi-tiet-web{
    max-width:none;height:100%;max-height:none;border-radius:0;box-shadow:none;padding-top:0}
  #lopChiTietWeb .bk-hop-chi-tiet-web>.bk-thanh-modal{margin:0 -14px;padding:calc(14px + env(safe-area-inset-top)) 14px 11px}
}
/* Trang chủ: nút xem các ngày đã qua; thẻ yêu cầu web cùng khung thẻ booking. */
.bk-nut-ngay-qua{display:block;width:100%;margin:16px 0 4px;padding:13px;border:1px solid var(--vien);border-radius:14px;background:#fff;font:inherit;font-size:13.5px;font-weight:700;color:#475569}
/* 18/10/2026: bước bị dừng trong hành trình (huỷ / không đến) — dấu x đỏ đúng chỗ dừng. */
.bk-buoc.dung .bk-moc,html:not([data-nbkh-ui="v3"]) .bk-buoc.dung .bk-moc{background:#dc2626;border-color:#dc2626;color:#fff;box-shadow:none}
.bk-buoc.dung .bk-buoc-the,html:not([data-nbkh-ui="v3"]) .bk-buoc.dung .bk-buoc-the{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.bk-buoc.dung .bk-buoc-the small,.bk-buoc.dung .bk-buoc-the time{color:#b91c1c}
/* 18/10/2026: chi tiết yêu cầu web cùng nhịp với chi tiết booking — lưới, khe 14px giữa các thẻ và trong
   thẻ (chép công thức `#noiDungChiTiet` của v2-theme-black; không sửa tệp theme vì gate ghim nguyên văn). */
html:not([data-nbkh-ui="v3"]) #noiDungChiTietWeb,#noiDungChiTietWeb{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--v2-space-a,14px)}
html:not([data-nbkh-ui="v3"]) #noiDungChiTietWeb>:is(.bk-form-chi-tiet,.bk-khu-thao-tac),
#noiDungChiTietWeb>:is(.bk-form-chi-tiet,.bk-khu-thao-tac){display:grid;grid-template-columns:minmax(0,1fr);gap:var(--v2-space-a,14px);margin:0}
html:not([data-nbkh-ui="v3"]) #noiDungChiTietWeb>*,#noiDungChiTietWeb>*{margin:0}
html:not([data-nbkh-ui="v3"]) #noiDungChiTietWeb>:is(.bk-form-chi-tiet,.bk-khu-thao-tac)>*{margin:0}
html:not([data-nbkh-ui="v3"]) #noiDungChiTietWeb .bk-ct-tom-tat-khung{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--v2-space-a,14px)}
html:not([data-nbkh-ui="v3"]) #noiDungChiTietWeb .bk-ct-tom-tat-khung>*,
html:not([data-nbkh-ui="v3"]) #noiDungChiTietWeb :is(.bk-thong-tin,.bk-dv-nhan,.bk-ct-dau,.bk-hanh-trinh-dau,.bk-ghi-chu-ct,.bk-timeline){margin:0}
html:not([data-nbkh-ui="v3"]) #noiDungChiTietWeb>:is(section,form)>:is(h3,.bk-ct-dau,.bk-hanh-trinh-dau)>h3,
html:not([data-nbkh-ui="v3"]) #noiDungChiTietWeb>:is(section,form)>h3{height:35px;min-height:35px;margin:0;display:flex;align-items:center}
/* 18/10/2026 (db/95): gợi ý chỉ cần SĐT hoặc email dưới hai ô liên hệ. */
.bk-goi-y-lien-he{display:block;margin-top:-4px;font-size:12px;color:#64748b}
/* 18/10/2026: hai nút Sửa / Huỷ quyết toán chung một hàng; nút khu đổi lịch bo tròn bốn góc. */
.bk-khu-quyet-toan .bk-hang-nut-qt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.bk-khu-quyet-toan .bk-hang-nut-qt>button{flex:none;width:100%;white-space:nowrap;padding-left:10px;padding-right:10px}
.bk-khu-quyet-toan .bk-hang-nut-qt>button .ic{flex:0 0 18px;width:18px;height:18px}
.bk-khu-quyet-toan .bk-hang-nut-qt>.bk-nut-lich-su-qt{grid-column:1/-1}
.bk-tien-muc span small{font-size:11.5px;font-weight:600;color:#64748b}
html:not([data-nbkh-ui="v3"]) #v4VongDoi .bk-bn-nut button,#v4VongDoi .bk-bn-nut button{border-radius:999px}
#v4VongDoi #v4KhuLichMoi[hidden]{display:none!important}
/* 18/10/2026: ba dòng tổng trong bảng đã thanh toán nhỏ hơn dòng "Số tiền còn lại". */
html:not([data-nbkh-ui="v3"]) #khuQuyetToan .bk-tien-muc.bk-tien-muc-phu b,#khuQuyetToan .bk-tien-muc.bk-tien-muc-phu b{font-size:14px;font-weight:600}
/* 18/10/2026: ô chọn lịch mới khi đổi lịch dùng thẻ "Thời gian đã chọn" của form tạo — chép nhịp của
   #formBooking (theme khoá các luật đó vào form tạo). */
#v4VongDoi .bk-doi-lich-chon{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--v2-space-a,14px);margin-top:11px}
#v4VongDoi .bk-doi-lich-chon[hidden]{display:none!important}
html:not([data-nbkh-ui="v3"]) #v4VongDoi .bk-chon-hen-moi{width:100%;min-width:0;min-height:var(--v2-figma-row-height,72px);box-sizing:border-box;margin:0;padding:var(--v2-space-a,14px);gap:var(--v2-space-a,14px)}
html:not([data-nbkh-ui="v3"]) #v4VongDoi .bk-chon-hen-moi>span:first-child{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
html:not([data-nbkh-ui="v3"]) #v4VongDoi .bk-chon-hen-moi :is(b,small){margin:0}
html:not([data-nbkh-ui="v3"]) #v4VongDoi .bk-bo-chon-hen-moi{margin:0;padding:var(--v2-space-a,14px);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--v2-space-a,14px)}
html:not([data-nbkh-ui="v3"]) #v4VongDoi .bk-bo-chon-hen-moi>*{margin:0}
html:not([data-nbkh-ui="v3"]) #v4VongDoi .bk-bo-chon-hen-moi .bk-chon-gio-moi{margin:0;padding-top:0;border-top:0}
#v4VongDoi .bk-chon-hen-moi:disabled{opacity:.5;cursor:not-allowed}
/* 18/10/2026: dải ô ngày trượt ngang (thay hai ô Hôm nay / Ngày mai). */
.bk-tom-tat-ngay-den.bk-dai-ngay{display:flex;gap:9px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 2px 4px;margin:4px -2px 6px}
.bk-dai-ngay::-webkit-scrollbar{display:none}
.bk-dai-ngay .bk-o-ngay-den{flex:0 0 calc((100% - 18px) / 2.4);min-width:118px;scroll-snap-align:start}
.bk-o-ngay-den.qua-khu{background:#f8fafc}
.bk-o-ngay-den.qua-khu span,.bk-o-ngay-den.qua-khu b{color:#64748b}
.bk-o-ngay-den.dang-chon{border-color:#111;box-shadow:inset 0 0 0 1px #111}
.bk-o-ngay-den.dang-chon span,.bk-o-ngay-den.dang-chon b{color:#111}
/* 18/10/2026: form "Sửa quyết toán" cùng giao diện form quyết toán mới. */
#dcKhuCano .bk-luoi-3{row-gap:0}
#dcKhuCano .bk-nhom-chieu-cao{padding:10px 0}
#dcKhuCano .bk-nhom-chieu-cao+.bk-nhom-chieu-cao{border-top:1px solid #e5e7eb}
#dcKhuCano .bk-nhom-chieu-cao>label{justify-content:flex-start}
#dcKhuCano .bk-nhom-chieu-cao>label>svg{display:none}
.bk-o-giam.bk-o-gia input{flex:0 0 112px;width:112px}
#dcKhuAn>.bk-nhom.truongFigma{background:transparent;padding:0;min-height:0;margin:0;border:0;box-shadow:none}
#dcKhuAn>.bk-o-giam{margin-top:10px}
html:not([data-nbkh-ui="v3"]) #formDieuChinhQt #dcLyDo,#formDieuChinhQt #dcLyDo{border:1px solid var(--vien);border-radius:14px;background:#fff;box-shadow:none;padding:12px;font-size:14px;font-weight:500}
html:not([data-nbkh-ui="v3"]) #formDieuChinhQt .bk-hang-nut-qt>button,#formDieuChinhQt .bk-hang-nut-qt>button{min-height:52px;border-radius:999px;margin:0}
html:not([data-nbkh-ui="v3"]) #formDieuChinhQt #dcLuu.bk-nut-luu-qt,#formDieuChinhQt #dcLuu.bk-nut-luu-qt{
  border:0;color:#fff;background:var(--chinh);font-size:15.5px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:none}
html:not([data-nbkh-ui="v3"]) #formDieuChinhQt #dcLuu.bk-nut-luu-qt:disabled,#formDieuChinhQt #dcLuu.bk-nut-luu-qt:disabled{background:#cbd5e1;color:#f8fafc;opacity:.82;cursor:not-allowed}
#formDieuChinhQt #dcLuu .ic{width:22px;height:22px;margin:0;flex:0 0 22px}
#formDieuChinhQt #dcLuu span{white-space:nowrap}
/* 18/10/2026: ô "Lý do điều chỉnh" — nhãn nằm trên, ô nhập rộng hết khung. */
html:not([data-nbkh-ui="v3"]) #formDieuChinhQt .truongFigmaNhieuDong,#formDieuChinhQt .truongFigmaNhieuDong{display:block}
#formDieuChinhQt .truongFigmaNhieuDong>label{display:block;margin:0 0 8px}
#formDieuChinhQt .truongFigmaNhieuDong>textarea{display:block;width:100%;box-sizing:border-box}
/* 18/10/2026: khối tổng form sửa quyết toán — "Đã ghi nhận trước đó" là thẻ riêng ở trên. */
.bk-dc-truoc{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:14px 16px;border:1px dashed #cbd5e1;border-radius:18px;background:#fff}
.bk-dc-truoc span{font-size:13px;font-weight:600;color:#64748b}
.bk-dc-truoc b{font-size:16px;color:#334155}
#dcTong .bk-dong-tien span small{font-size:11.5px;font-weight:600;color:#64748b}
html:not([data-nbkh-ui="v3"]) #dcTong.bk-tong .bk-dong-tong,#dcTong.bk-tong .bk-dong-tong{background:#eef2f7}
/* 18/10/2026: ô tiền có dấu chấm; nhãn giá vé được xuống dòng thay vì cắt "…". */
.bk-o-giam.bk-o-gia label{white-space:normal}
input[data-tien]{text-align:right;font-variant-numeric:tabular-nums}
/* 19/10/2026 (db/96): bấm tên nhóm vé để đổi giá; nhãn hiện giá đang áp. */
#qtKhuCano .bk-nhan-doi-gia{cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
#qtKhuCano .bk-nhan-doi-gia .bk-gia-nhom{font-size:11.5px;font-weight:600;color:#64748b;text-decoration:underline dotted;text-underline-offset:3px}
#qtKhuCano .bk-nhan-doi-gia .bk-gia-nhom.rieng{color:#b45309;font-weight:800}
.bk-goi-y-gia{margin:8px 0 0;font-size:12px;color:#64748b}
#qtKhuCano .bk-ly-do-gia{margin-top:10px;background:#fff;border:1px solid #fcd34d;border-radius:14px}
#qtTong .bk-dong-gia-rieng span small{color:#b45309;font-weight:700}
html:not([data-nbkh-ui="v3"]) #qtKhuCano .bk-ly-do-gia,#qtKhuCano .bk-ly-do-gia{display:block;padding:12px 14px;min-height:0}
#qtKhuCano .bk-ly-do-gia>label{display:block;margin:0 0 6px;font-size:13px}
#qtKhuCano .bk-ly-do-gia>input{display:block;width:100%;box-sizing:border-box;text-align:left}
/* 19/10/2026 (db/97): khu Sửa dịch vụ booking V4 — cùng mảnh với form quyết toán. */
#sdKhuCano .bk-luoi-3{row-gap:0}
#sdKhuCano .bk-nhom-chieu-cao{padding:10px 0}
#sdKhuCano .bk-nhom-chieu-cao+.bk-nhom-chieu-cao{border-top:1px solid #e5e7eb}
#sdKhuCano .bk-nhom-chieu-cao>label{justify-content:flex-start}
#sdKhuCano .bk-nhom-chieu-cao>label>svg{display:none}
html:not([data-nbkh-ui="v3"]) #formSuaDichVu .bk-ly-do-sua-dv,#formSuaDichVu .bk-ly-do-sua-dv{display:block;padding:12px 14px;min-height:0;background:#fff;border:1px solid var(--vien);border-radius:14px}
#formSuaDichVu .bk-ly-do-sua-dv>label{display:block;margin:0 0 6px;font-size:13px}
#formSuaDichVu .bk-ly-do-sua-dv>input{display:block;width:100%;box-sizing:border-box;text-align:left}
html:not([data-nbkh-ui="v3"]) #sdTong.bk-tong.ketQuaTinh,#sdTong.bk-tong.ketQuaTinh{background:#f8f8f9;box-shadow:none;border:0;padding:10px;border-radius:24px}
html:not([data-nbkh-ui="v3"]) #sdTong.bk-tong .bk-dong-tien,#sdTong.bk-tong .bk-dong-tien{background:#fff;border-radius:14px}
html:not([data-nbkh-ui="v3"]) #sdTong.bk-tong .bk-cuoi{border-radius:14px}
html:not([data-nbkh-ui="v3"]) #formSuaDichVu .bk-hang-nut-qt>button,#formSuaDichVu .bk-hang-nut-qt>button{min-height:52px;border-radius:999px;margin:0}
html:not([data-nbkh-ui="v3"]) #formSuaDichVu #sdLuu.bk-nut-luu-qt,#formSuaDichVu #sdLuu.bk-nut-luu-qt{border:0;color:#fff;background:var(--chinh);font-size:15.5px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:none}
html:not([data-nbkh-ui="v3"]) #formSuaDichVu #sdLuu.bk-nut-luu-qt:disabled,#formSuaDichVu #sdLuu.bk-nut-luu-qt:disabled{background:#cbd5e1;color:#f8fafc;opacity:.82;cursor:not-allowed}
#formSuaDichVu #sdLuu .ic{width:22px;height:22px;margin:0;flex:0 0 22px}
#ctBtnSuaDv .ic{width:18px;height:18px}
#sdTong .bk-dong-sua-dv b{color:#b45309}
/* 19/10/2026: khối tạm tính Sửa dịch vụ (#sdTong) chép thứ bậc #dcTong của theme — viết ở đây để không đổi tệp theme gate ghim. */
html:not([data-nbkh-ui="v3"]) #sdTong.ketQuaTinh{
  display:grid;align-items:stretch;justify-content:normal;gap:6px;
  min-height:0;padding:10px;margin:3px 0 15px;
  border:0;border-radius:var(--v2-radius-panel-max);background:#fff;box-shadow:var(--v2-shadow-card)
}
html:not([data-nbkh-ui="v3"]) #sdTong .bk-dong-tien{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:9px 11px;border:0;border-radius:12px;background:var(--v2-surface-soft)
}
html:not([data-nbkh-ui="v3"]) #sdTong .bk-dong-tien span{
  min-width:0;color:var(--v2-brand-muted);font-size:12px
}
html:not([data-nbkh-ui="v3"]) #sdTong .bk-dong-tien b{
  color:var(--v2-brand);font-size:14px;white-space:nowrap
}
html:not([data-nbkh-ui="v3"]) #sdTong .bk-cuoi{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;
  margin:2px 0 0;padding:12px;border:0;border-radius:14px;
  background:var(--v2-brand);color:#fff
}
html:not([data-nbkh-ui="v3"]) #sdTong .bk-cuoi :where(span,b){color:#fff}
html:not([data-nbkh-ui="v3"]) #sdTong .bk-cuoi span{
  min-width:0;font-size:10.5px;line-height:1.35
}
html:not([data-nbkh-ui="v3"]) #sdTong .bk-cuoi b{
  font-size:clamp(18px,5.4vw,23px);white-space:nowrap
}
/* 19/10/2026: thẻ "Lý do sửa dịch vụ" cùng kiểu các thẻ trong form — nền #f8f8f9, bo 18px, đệm 14px, không viền;
   ô nhập trắng bo tròn, chữ 14px (trước: nền trắng, bo 14px, viền, chữ 17px đậm 800). */
html:not([data-nbkh-ui="v3"]) #formSuaDichVu .bk-ly-do-sua-dv,#formSuaDichVu .bk-ly-do-sua-dv{background:#f8f8f9;border:0;border-radius:18px;padding:14px}
html:not([data-nbkh-ui="v3"]) #formSuaDichVu .bk-ly-do-sua-dv>label,#formSuaDichVu .bk-ly-do-sua-dv>label{margin:0 0 10px;font-size:13px}
html:not([data-nbkh-ui="v3"]) #formSuaDichVu #sdLyDo,#formSuaDichVu #sdLyDo{min-height:44px;padding:10px 16px;border:0;border-radius:999px;background:#fff;font-size:14px;font-weight:600;color:#0f172a;box-shadow:none}
#formSuaDichVu #sdLyDo::placeholder{font-size:14px;font-weight:500;color:#94a3b8}
/* 19/10/2026 (db/98): ô tiền cọc trong Sửa dịch vụ — cùng thẻ với "Lý do sửa dịch vụ". */
html:not([data-nbkh-ui="v3"]) #formSuaDichVu #sdTienCoc,#formSuaDichVu #sdTienCoc{min-height:44px;padding:10px 16px;border:0;border-radius:999px;background:#fff;font-size:14px;font-weight:600;color:#0f172a;box-shadow:none;width:100%;text-align:left}
#formSuaDichVu .bk-goi-y-coc{margin:8px 4px 0;font-size:12px;line-height:1.4;color:#64748b}
/* 19/10/2026 (v3.0.132): form đã là grid gap 14px — không cộng margin; ô cọc khoá cho booking đã thu. */
html:not([data-nbkh-ui="v3"]) #formSuaDichVu #sdTienCocKhoa,#formSuaDichVu #sdTienCocKhoa{min-height:44px;padding:10px 16px;border:0;border-radius:999px;background:#eef0f3;font-size:14px;font-weight:600;color:#64748b;box-shadow:none;width:100%;opacity:1;-webkit-text-fill-color:#64748b}
/* 20/10/2026 (db/100): lượt xe đã check-in trong chi tiết booking. */
.bk-luot-gan{display:grid;gap:8px;margin-top:10px;padding:12px 14px;border-radius:16px;background:#ecfdf5;color:#065f46;font-size:13px}
.bk-luot-gan>b{font-size:13px;font-weight:850}
.bk-luot-gan-dong{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px}
.bk-luot-gan-dong span:first-child{font-weight:700}
/* 20/10/2026: bản web (màn rộng) ép ba bộ đếm chiều cao một hàng ⇒ nhãn "1m–1,3m", "Trên 1,3m" bị cắt.
   Form quyết toán và Sửa dịch vụ luôn xếp dọc như bản điện thoại. */
html #qtKhuCano .bk-luoi-3,html #sdKhuCano .bk-luoi-3{grid-template-columns:1fr}
/* 20/10/2026: popup đổi giá nhóm vé (giống popup giá vé Thu ngân). Ô giá trong form chỉ còn là nơi lưu giá trị. */
#formQuyetToan #qtHangGiaDuoi1m,#formQuyetToan #qtHangGiaTre,#formQuyetToan #qtHangGiaLon{display:none!important}
.bk-lop-gia{position:fixed;inset:0;z-index:9000;display:flex;align-items:flex-end;justify-content:center;background:rgba(15,23,42,.55)}
.bk-hop-gia{width:min(480px,100%);background:#f3f4f6;border-radius:28px 28px 0 0;padding:22px 18px calc(18px + env(safe-area-inset-bottom));display:grid;gap:12px}
.bk-hop-gia h3{margin:0;font-size:20px;font-weight:850;color:#334155}
.bk-hop-gia .bk-goi-y{margin:-6px 0 0;font-size:13px;color:#64748b}
.bk-hop-gia #gnGia{width:100%;min-height:64px;border:0;border-radius:18px;background:#fff;padding:12px 18px;text-align:right;font-size:26px;font-weight:850;color:#0f172a}
.bk-goi-y-gia{display:flex;flex-wrap:wrap;gap:8px}
.bk-goi-y-gia button{flex:1 1 calc(25% - 8px);min-height:44px;border:1.5px solid #e2e8f0;border-radius:999px;background:#fff;font-size:15px;font-weight:850;color:#0f172a}
.bk-gn-ly-do{display:grid;gap:6px;font-size:13px;font-weight:850;color:#334155}
.bk-gn-ly-do input{min-height:44px;border:0;border-radius:999px;background:#fff;padding:10px 16px;font-size:14px;font-weight:600}
.bk-hang-nut-gia{display:grid;grid-template-columns:1fr 2fr;gap:10px}
.bk-hang-nut-gia button{min-height:52px;border-radius:999px;font-size:16px;font-weight:850}
.bk-hang-nut-gia .bk-nut-tao{background:#111;color:#fff;border:0}
/* 20/10/2026: ba hàng nhóm chiều cao (quyết toán, sửa dịch vụ, điều chỉnh) — bộ đếm gọn 136px, hai nút sát số;
   tên nhóm dài ("Người lớn trên 1m3") xuống dòng thay vì bị cắt. Đặc hiệu có #id để thắng .nhomDemFigma của theme. */
html :is(#qtKhuCano,#sdKhuCano,#dcKhuCano) .bk-nhom.nhomDemFigma.bk-nhom-chieu-cao{grid-template-columns:minmax(0,1fr) 136px;gap:10px}
html :is(#qtKhuCano,#sdKhuCano,#dcKhuCano) .bk-nhom-chieu-cao>label span{white-space:normal;overflow:visible;text-overflow:clip}
html :is(#qtKhuCano,#sdKhuCano,#dcKhuCano) .bk-nhom-chieu-cao .demFigma{width:136px;gap:2px;justify-self:end}
html :is(#qtKhuCano,#sdKhuCano,#dcKhuCano) .bk-nhom-chieu-cao .demFigma input{min-width:0;width:40px;flex:1 1 40px;text-align:center}
/* 20/10/2026: giá nhóm có bánh răng như nút giá Thu ngân. */
#qtKhuCano .bk-nhan-doi-gia .bk-gia-nhom{display:inline-flex;align-items:center;gap:4px}
#qtKhuCano .bk-nhan-doi-gia .bk-gia-nhom .iconChinhGia{width:14px;height:14px;flex:none}

/* v3.0.132 (chủ dự án 20/10/2026 "Fix lỗi thiết kế, cho đồng bộ"):
   Ô Lý do đổi giá vé dùng cùng thẻ với "Giảm giá vé cano (%)": viền xám, nhãn 13px/700, ô nhập 15px/700 nền xám bo tròn.
   Dòng "Giá vé (giá riêng)" xếp dọc: nhãn trên, giá trị dưới và được xuống dòng — trước đây nhãn bị ép 31px, giá trị tràn khung. */
html #qtKhuCano .bk-ly-do-gia,html:not([data-nbkh-ui="v3"]) #qtKhuCano .bk-ly-do-gia{border:1px solid #e5e7eb;padding:10px 12px;border-radius:14px;background:#fff}
html #qtKhuCano .bk-ly-do-gia>label{margin:0 0 8px;font-size:13px;font-weight:700;color:#334155}
html #qtKhuCano .bk-ly-do-gia>input{min-height:36px;height:auto;padding:8px 12px;border:1px solid transparent;border-radius:18px;background:#f8f8f9;
  font-size:15px;font-weight:700;color:#0f172a;text-overflow:ellipsis}
/* Thêm .bk-tong: luật theme v2 (nạp sau booking.css) cùng độ ưu tiên giữ nowrap + căn giữa. */
html #qtTong.bk-tong .bk-dong-tien.bk-dong-gia-rieng{flex-direction:column;align-items:stretch;gap:4px}
html #qtTong.bk-tong .bk-dong-tien.bk-dong-gia-rieng>span{width:auto}
html #qtTong.bk-tong .bk-dong-tien.bk-dong-gia-rieng>b{width:auto;white-space:normal;text-align:left;overflow-wrap:anywhere;line-height:1.35}

/* db/104 (v3.0.132): số tiền phải thu ghi lúc tạo booking. */
html #qtTong.bk-tong .bk-dong-tien.bk-dong-phai-thu-ghi.lech{background:#fffbeb;border:1px solid #fcd34d}
html #qtTong.bk-tong .bk-dong-tien.bk-dong-phai-thu-ghi.lech span{color:#b45309;font-weight:700}
 /* v3.0.132: khối tiền đầu chi tiết = các hàng cùng cỡ, nhãn trái, số phải (chủ dự án 20/10/2026). Bộ chọn kèm
   lớp .bk-tom-tat-tien để thắng luật cũ .bk-chi-tiet-tom-tat>div:last-child span/b (nhãn 11px khối, số 20px). */
html .bk-chi-tiet-tom-tat:has(>.bk-tom-tat-tien){flex-direction:column;align-items:stretch}
html .bk-chi-tiet-tom-tat>.bk-tom-tat-tien{display:grid;gap:8px;width:100%;text-align:left}
html .bk-chi-tiet-tom-tat>.bk-tom-tat-tien>.bk-dong-tom-tat{display:flex;align-items:center;gap:8px;min-height:32px}
html .bk-chi-tiet-tom-tat>.bk-tom-tat-tien>.bk-dong-tom-tat>span{display:block;margin:0;margin-right:auto;font-size:13px;color:var(--mo);min-width:0}
html .bk-chi-tiet-tom-tat>.bk-tom-tat-tien>.bk-dong-tom-tat>b{display:block;margin:0;font-size:15px;font-weight:850;color:var(--chinh);text-align:right;white-space:nowrap}
html .bk-chi-tiet-tom-tat>.bk-tom-tat-tien>.bk-dong-phai-thu{padding-top:8px;border-top:1px solid #eef0f3}
html .bk-chi-tiet-tom-tat .bk-nut-sua-phai-thu{width:32px;height:32px;min-height:0;flex:none;padding:0;display:grid;place-items:center}
html .bk-chi-tiet-tom-tat .bk-nut-sua-phai-thu .ic{width:16px;height:16px}

/* v3.0.132 (chủ dự án 20/10/2026 "Tiếp tục đồng bộ phần này"): bộ đếm vé ở Chi tiết booking (V4 — chỉ V4 có bk-luoi-3)
   cùng kiểu form quyết toán: một thẻ xám, hàng ngăn đường kẻ, nhãn trái không icon, bộ đếm 136px bên phải.
   Không gắn modifier bk-nhom-chieu-cao (cổng giới hạn đúng chín counter quyết toán / sửa quyết toán / sửa dịch vụ). */
html #ctKhuCano.bk-luoi-3,html:not([data-nbkh-ui="v3"]) #ctKhuCano.bk-luoi-3{display:grid;grid-template-columns:1fr;row-gap:0;background:#f8f8f9;border-radius:18px;padding:4px 14px;margin:0 0 12px}
html #ctKhuCano.bk-luoi-3>.bk-nhom.nhomDemFigma,html:not([data-nbkh-ui="v3"]) #ctKhuCano.bk-luoi-3>.bk-nhom.nhomDemFigma{display:grid;grid-template-columns:minmax(0,1fr) 136px;gap:10px;align-items:center;min-height:0;padding:10px 0;border-radius:0;background:transparent;margin:0}
html #ctKhuCano.bk-luoi-3>.bk-nhom+.bk-nhom{border-top:1px solid #e5e7eb}
html #ctKhuCano.bk-luoi-3>.bk-nhom>label{display:flex;justify-content:flex-start}
html #ctKhuCano.bk-luoi-3>.bk-nhom>label>svg{display:none}
html #ctKhuCano.bk-luoi-3>.bk-nhom>label span{white-space:normal;overflow:visible;text-overflow:clip}
html #ctKhuCano.bk-luoi-3 .demFigma{width:136px;gap:2px;justify-self:end}
html #ctKhuCano.bk-luoi-3 .demFigma input{min-width:0;width:40px;flex:1 1 40px;text-align:center}

/* v3.0.132 (chủ dự án 20/10/2026 "rút ngắn thẻ, đồng bộ thiết kế 2 thẻ"): Đổi lịch, hủy và hoàn tiền —
   bỏ đoạn mô tả; hai thẻ Vé cano / Bàn ăn cùng khung: tiêu đề, (đếm ngược gọn), hàng nút viên thuốc 44px. */
html #v4VongDoi>.bk-the{padding:14px;margin:10px 0 0;border-radius:18px}
html #v4VongDoi>.bk-the>h3{margin:0 0 10px;font-size:13px;letter-spacing:.06em}
html #v4VongDoi>.bk-the .bk-dem-nguoc-chinh-sach{margin:0 0 10px;padding:7px 11px;font-size:12px;line-height:1.4;gap:6px}
html #v4VongDoi>.bk-the .bk-dem-nguoc-chinh-sach>.ic{width:15px;height:15px}
html #v4VongDoi>.bk-the .bk-bn-nut{display:grid;gap:8px;margin:0}
html #v4VongDoi>.bk-the .bk-bn-nut button{min-height:44px;padding:8px 14px;font-size:14px;margin:0}
html #v4VongDoi>.bk-the .bk-doi-lich-chon:not([hidden]){margin:0 0 10px}
html #v4VongDoi>.bk-the .bk-dem-nguoc-chinh-sach{flex-wrap:nowrap;align-items:center}
html #v4VongDoi>.bk-the .bk-dem-nguoc-chinh-sach>span{flex:1 1 auto;min-width:0;font-size:12px;font-weight:700}
/* Nền hai thẻ Vé cano / Bàn ăn = nền xám bên trong Chi tiết booking (.bk-ct-tom-tat-khung #f8f8f9, bo 18px, không viền, không bóng). */
html #v4VongDoi>.bk-the,html:not([data-nbkh-ui="v3"]) #v4VongDoi>.bk-the{background:#f8f8f9;border:0;box-shadow:none;border-radius:18px}
/* v3.0.132 (chủ dự án 20/10/2026 "Giảm size 2 nút này, đồng thời giãn cách ra xíu"): nút ✓ / ✕ ở bước hành trình.
   Vùng chạm GIỮ 44px (cổng + theme ghim). Phần tròn nhìn thấy thu còn 34px bằng viền trong suốt 5px + background-clip;
   vòng mảnh vẽ bằng inset shadow. Khoảng cách nhìn thấy giữa hai nút: 6px + 2×5px = 16px; viên thuốc bỏ padding. */
html .bk-buoc-the.co-hanh-dong>.bk-hanh-dong-buoc{gap:6px;padding:0}
html .bk-buoc-the.co-hanh-dong>.bk-hanh-dong-buoc button{border:5px solid transparent;background-clip:padding-box;padding:0;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}
html .bk-buoc-the.co-hanh-dong>.bk-hanh-dong-buoc button .ic{width:14px;height:14px}

/* v3.0.132: nút "Xem biên nhận" xanh thương hiệu #30544e, icon vé (i-ve, đồng bộ TicketCheck website). */
html #ctBienNhan.bk-nut-bien-nhan,html:not([data-nbkh-ui="v3"]) #ctBienNhan.bk-nut-bien-nhan{background:#30544e;border-color:#30544e;color:#fff}
html #ctBienNhan.bk-nut-bien-nhan .ic{stroke:#fff;fill:none;stroke-width:2;width:18px;height:18px}
/* Ô đếm ngược ở thẻ Bàn ăn bo tròn như nút viên thuốc bên dưới; câu rút ngắn để vừa một dòng. */
html #v4VongDoi>.bk-the .bk-dem-nguoc-chinh-sach{border-radius:999px;min-height:44px;padding:6px 14px;box-sizing:border-box}
html #v4VongDoi>.bk-the .bk-dem-nguoc-chinh-sach>.ic{width:18px;height:18px;opacity:.85}
html #ctBienNhan.bk-nut-bien-nhan .ic,html:not([data-nbkh-ui="v3"]) #ctBienNhan.bk-nut-bien-nhan .ic{width:20px;height:20px;flex:0 0 20px;stroke:#fff;fill:none;stroke-width:2}

/* db/105 (v3.0.132): nhãn chế độ đặt chỗ website EN trên thẻ yêu cầu. */
.bk-dv-nhan .bk-che-do-web{font-weight:800}
.bk-dv-nhan .bk-che-do-confirm_later{background:#fef3c7;color:#92400e}
.bk-dv-nhan .bk-che-do-table_deposit{background:#d1fae5;color:#065f46}
.bk-goi-y-uu-dai-coc{margin:6px 0 0;font-size:12px;color:#065f46;font-weight:700}

/* db/110: lý do huỷ Booking V4 — cùng kiểu ô chọn dịch vụ, dạng radio */
.bk-ds-ly-do-huy{display:grid;gap:8px;margin:10px 0 12px}
.bk-chon-dv input[type="radio"]{
  position:absolute;width:1px;height:1px;min-width:0;padding:0;margin:0;opacity:0;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);pointer-events:none
}
.bk-dong-tra-lai b{color:var(--chinh)}

/* db/112 (v3.0.140): khu bàn ăn của quyết toán + điều chỉnh có ô Bàn ăn và ô tích "Bill không nhận hoa hồng"
   (cùng mảnh thẻ chọn dịch vụ .bk-chon-dv, cùng hàng nhãn trái ô phải .bk-o-giam). */
#qtKhuAnBoc>.bk-o-ban,#dcKhuAn>.bk-o-ban{margin-top:0;margin-bottom:10px}
.bk-o-ban input{flex:0 0 112px;width:112px;text-align:center}
.bk-chon-dv.bk-chon-bkhh{margin-top:10px}
.bk-dong-hh-an span,.bk-dong-hh-an b{color:var(--mo)}

/* v3.0.142 (db/114, C3): ai đang giữ yêu cầu website, giờ tự nhả (máy chủ nhả sau 30 phút không thao tác). */
.bk-ct-hanh-dong .bk-web-khoa{max-width:100%;box-sizing:border-box;margin:0 0 11px;padding:10px 12px;border:1px solid #93c5fd;border-radius:11px;background:#eff6ff;color:#1e3a8a;font-weight:800;overflow-wrap:anywhere}
.bk-ct-hanh-dong .bk-web-khoa.cua-toi{border-color:#86efac;background:#f0fdf4;color:#14532d}
.bk-ct-hanh-dong .bk-web-khoa.qua-han{border-color:#cbd5e1;background:#f8fafc;color:#475569}
.bk-web-khoa-the{margin-top:8px;padding:6px 10px;border-radius:999px;background:#eff6ff;color:#1e3a8a;font-size:12px;font-weight:800;overflow-wrap:anywhere}
.bk-web-khoa-the.qua-han{background:#f1f5f9;color:#475569}

/* v3.0.142 (db/114, A5 + B5): khu mở lại booking huỷ; danh sách khoản chi + nút lập / in phiếu chi. */
.bk-khu-mo-lai textarea{width:100%;box-sizing:border-box}
.bk-dong-phieu-chi{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;padding:10px 0;border-top:1px solid #e2e8f0}
.bk-dong-phieu-chi>div{min-width:0}
.bk-dong-phieu-chi>div b{display:block;font-size:13.5px}
.bk-dong-phieu-chi>div small{display:block;color:var(--mo);font-size:11.5px;overflow-wrap:anywhere}
.bk-dong-phieu-chi-tien{font-weight:900;white-space:nowrap}
.bk-dong-phieu-chi>button{grid-column:1/-1;justify-self:start}

/* Phiếu chi 02-TT: lớp xem trước + tờ in. Màu cố định (giấy trắng, mực đen) — không theo giao diện tối / V3. */
.bk-lop-phieu-chi{position:fixed;inset:0;z-index:260;background:rgba(15,23,42,.62);display:flex;align-items:flex-start;justify-content:center;
  overflow-y:auto;overscroll-behavior:contain;padding:calc(12px + env(safe-area-inset-top)) 10px calc(16px + env(safe-area-inset-bottom))}
.bk-hop-phieu-chi{width:100%;max-width:820px;min-width:0}
.bk-phieu-chi-nut{display:flex;gap:10px;justify-content:flex-end;margin:0 0 10px}
.bk-phieu-chi-nut>button{flex:0 0 auto;width:auto!important;min-height:44px;padding:0 18px;white-space:nowrap}
.bk-phieu-chi-nut .bk-nut-phu{background:#fff}
.pc-to{box-sizing:border-box;width:100%;background:#fff!important;color:#111!important;border-radius:6px;padding:18px 18px 22px;
  font-family:"Times New Roman",Times,serif;font-size:14px;line-height:1.5;box-shadow:0 8px 30px rgba(15,23,42,.25)}
.pc-to *{color:#111!important;background:transparent!important;box-shadow:none!important}
.pc-dau{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pc-don-vi{min-width:0;flex:1 1 260px}
.pc-mau{flex:0 1 230px;text-align:center}
.pc-mau b,.pc-mau small{display:block}
.pc-mau small{font-size:12px;font-style:italic}
.pc-giua{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-top:12px}
.pc-tieu-de{flex:1 1 240px;text-align:center}
.pc-tieu-de h2{margin:0;font-size:22px;letter-spacing:.06em}
.pc-tieu-de p{margin:2px 0 0;font-style:italic}
.pc-so{margin:0;flex:0 0 150px}
.pc-so div{display:flex;gap:6px}
.pc-so dt{min-width:64px}
.pc-so dd{margin:0;font-weight:700}
.pc-noi-dung{margin-top:12px}
.pc-noi-dung p{margin:5px 0;overflow-wrap:anywhere}
.pc-noi-dung p.pc-phu{font-size:12.5px}
.pc-cham{display:inline-block;min-width:40%;border-bottom:1px dotted #555;vertical-align:baseline}
.pc-ngay-ky{margin:14px 0 4px;text-align:right;font-style:italic}
.pc-ky-luoi{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;text-align:center}
.pc-ky b{display:block;font-size:13px}
.pc-ky small{display:block;font-size:11.5px;font-style:italic}
.pc-ky-cho{display:block;height:64px}
.pc-ky em{display:block;font-style:normal;font-weight:700;font-size:13px;min-height:1.4em}
.pc-cuoi{margin-top:10px;font-size:13px}
.pc-cuoi p{margin:4px 0}
.pc-cuoi .pc-chu-thich{font-size:11.5px;font-style:italic}
@media (max-width:600px){
  .pc-to{padding:14px 12px 18px;font-size:13px}
  .pc-ky-luoi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pc-so{flex-basis:100%}
}
@media print{
  html:has(body.bk-in-phieu-chi),body.bk-in-phieu-chi{background:#fff!important;padding:0!important;min-height:0!important;height:auto!important}
  body.bk-in-phieu-chi>*:not(#lopPhieuChi){display:none!important}
  body.bk-in-phieu-chi #lopPhieuChi{position:static;display:block;background:#fff;padding:0;overflow:visible}
  body.bk-in-phieu-chi .bk-phieu-chi-nut{display:none!important}
  body.bk-in-phieu-chi .bk-hop-phieu-chi{max-width:none}
  body.bk-in-phieu-chi .pc-to{box-shadow:none;border-radius:0;padding:0;font-size:13pt}
  body.bk-in-phieu-chi .pc-ky-luoi{grid-template-columns:repeat(5,minmax(0,1fr))}
}
/* v3.0.143 (db/115, mục 4): gợi ý hồ sơ khách có sẵn khi tạo Booking — mỗi đề xuất hiện đủ trường để không chọn nhầm. */
.bk-goi-y-ho-so{margin:8px 0 2px;padding:10px;border:1px solid var(--vien);border-radius:13px;background:#f8fafc;display:grid;gap:8px}
.bk-goi-y-ho-so-tieu-de{margin:0;color:#334155;font-size:12px;font-weight:700}
.bk-goi-y-ho-so-loi{margin:0;color:#9a3412;font-size:12px}
.bk-ho-so-goi-y{display:grid;gap:6px;width:100%;padding:10px 12px;border:1.5px solid var(--vien);border-radius:12px;background:#fff;color:var(--chu);text-align:left;cursor:pointer}
.bk-ho-so-goi-y:hover,.bk-ho-so-goi-y:focus-visible{border-color:var(--chinh);outline:none;box-shadow:0 0 0 3px var(--chinh-nhat)}
.bk-ho-so-dau{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px;font-size:14px}
.bk-ho-so-dau code{font-size:11.5px;color:#475569}
.bk-ho-so-luoi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;font-size:12px;color:#1e293b}
.bk-ho-so-luoi>span{min-width:0;overflow-wrap:anywhere}
.bk-ho-so-luoi small{display:block;color:var(--mo);font-size:10.5px}
.bk-ho-so-khop{background:#fef3c7;border-radius:4px;padding:0 3px}
.bk-ho-so-trong{color:#94a3b8}
.bk-ho-so-chon{justify-self:end;color:var(--chinh);font-size:12px;font-weight:800}
.bk-bo-chon-ho-so{margin-left:6px;padding:2px 8px;border:1px solid var(--vien);border-radius:999px;background:#fff;color:var(--chinh);font-size:11px;font-weight:700;cursor:pointer}
@media (min-width:760px){.bk-ho-so-luoi{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* 24/10/2026: form huỷ Booking V4 (thẻ Huỷ booking trong #v4VongDoi, bấm tiêu đề mới mở) là một cột: lưới hai cột của
   .truongFigma (nhãn trái, ô phải) ép bánh xe giờ vào nửa trái và vạch ngăn chỉ dài nửa thẻ — chụp BK-0060. Mọi ô
   trong form huỷ trải hết bề rộng, nhãn nằm trên. */
#v4KhuHuy .bk-than-huy{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:10px 0 0;padding:14px;
  border-radius:18px;background:#f8f8f9}
#v4KhuHuy .bk-than-huy[hidden]{display:none!important}
#v4KhuHuy .bk-than-huy>*{margin:0;min-width:0}
#v4KhuHuy .bk-than-huy>.bk-goi-y{font-size:12px;line-height:1.45}
html #v4KhuHuy .bk-than-huy .truongFigma{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:stretch;
  min-height:0;padding:12px 14px;border-radius:16px;background:#fff}
html #v4KhuHuy .bk-than-huy .truongFigma>label{display:block;margin:0;font-size:12px;font-weight:800;line-height:1.35}
html #v4KhuHuy .bk-than-huy .truongFigma>:is(select,input:not([type="hidden"])){width:100%;max-width:100%;box-sizing:border-box;
  text-align:left;background:#f3f4f6;font-size:15px}
html #v4KhuHuy .bk-than-huy .truongFigma>.bk-chon-gio-moi{margin:2px 0 0;padding-top:12px;border-top:1px solid var(--vien,#e5e7eb)}
html #v4KhuHuy .bk-than-huy .truongFigma>.bk-goi-y{grid-column:1/-1;font-size:11.5px;line-height:1.45}
#v4KhuHuy .bk-than-huy .bk-ds-ly-do-huy{margin:0}
#v4KhuHuy .bk-than-huy .bk-bn-nut{display:grid;margin:0}
#v4KhuHuy .bk-than-huy #v4BtnHuy{width:100%;min-height:44px;margin:0;border-radius:999px}
/* 24/10/2026 (chủ dự án): Đổi lịch / Hoàn tiền cùng một hàng, chữ ngắn kèm icon; tên đầy đủ ở aria-label. */
html #v4VongDoi>.bk-the .bk-bn-nut.bk-bn-nut-doi-hoan{grid-template-columns:repeat(2,minmax(0,1fr))}
html #v4VongDoi>.bk-the .bk-bn-nut-doi-hoan button{display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 10px;white-space:nowrap}
html #v4VongDoi>.bk-the .bk-bn-nut-doi-hoan button .ic{width:17px;height:17px;flex:0 0 auto}
/* 24/10/2026 (chủ dự án): form huỷ bỏ chữ "Chọn giờ" trên bánh xe (nhãn Giờ / Phút đã đủ). */
#v4KhuHuy .bk-than-huy .bk-nhan-banh-xe{display:none}
/* 24/10/2026 (chủ dự án, lượt 3): Huỷ booking là thẻ riêng cùng cấp thẻ Vé cano (cùng nền, bo, đệm); tiêu đề thẻ là nút
   mở / đóng. Ngày khách báo chọn trên lịch tháng (nút hiện ngày + icon lịch). Thay khối nút viên thuốc của 146–147. */
#v4KhuHuy.bk-the-huy{padding:14px;margin:10px 0 0;border:0;border-radius:18px;background:#f8f8f9;box-shadow:none}
#v4KhuHuyBoc>#v4KhuHuy.bk-the-huy{margin:0}
html #v4KhuHuy.bk-the-huy>h3{margin:0;padding:0;font-size:13px;letter-spacing:.06em}
#v4KhuHuy .bk-mo-the-huy{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:24px;
  margin:0;padding:0;border:0;background:transparent;color:#b91c1c;font:inherit;font-weight:850;letter-spacing:inherit;
  text-transform:uppercase;text-align:left;cursor:pointer}
#v4KhuHuy .bk-mo-the-huy .ic{width:16px;height:16px;flex:0 0 auto;transform:rotate(90deg);transition:transform .18s ease}
#v4KhuHuy .bk-mo-the-huy[aria-expanded="true"] .ic{transform:rotate(-90deg)}
#v4KhuHuy.bk-the-huy .bk-than-huy{margin:12px 0 0;padding:0;background:transparent;border-radius:0}
html #v4KhuHuy .bk-than-huy .bk-chon-ngay-bao{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;
  min-height:48px;margin:0;padding:8px 16px;box-sizing:border-box;border:0;border-radius:999px;background:#f3f4f6;
  color:var(--v2-figma-text,#181818);font:inherit;font-size:15px;cursor:pointer;text-align:left}
html #v4KhuHuy .bk-than-huy .bk-chon-ngay-bao b{font-weight:800}
html #v4KhuHuy .bk-than-huy .bk-chon-ngay-bao .ic{width:18px;height:18px;flex:0 0 auto;opacity:.75}
html #v4KhuHuy .bk-than-huy .bk-chon-ngay-bao[aria-expanded="true"]{box-shadow:inset 0 0 0 2px #181818}
html #v4KhuHuy .bk-than-huy .bk-lich-bao{margin:0}
html #v4KhuHuy .bk-than-huy .bk-lich-bao[hidden]{display:none!important}
