/*
[Summary]: Style cho mặt vé 1A (e-ticket / itinerary receipt) — port từ template Blazor
  transvietVnLib/Page/Main/Ticket.razor. Dùng CHUNG cho dashboard b2b (modal "Xem mặt vé")
  và trang My Booking của các site b2c.
[Notes]:
  - Toàn bộ rule tự scope dưới .a1-doc (wrapper mà ticket_face_1a.js sinh ra), KHÔNG phụ
    thuộc container bên ngoài — nhúng vào trang nào cũng chạy.
  - Bảng màu CỐ ĐỊNH (không đổi theo hãng) để bám đúng bản gốc.
  - Bề rộng do container bên ngoài quyết định; .a1-doc chỉ lo padding + màu.
*/

/* padding ngang = lề trắng 2 bên của cả mặt vé; mọi khối màu (băng xanh, dải hành khách,
   bảng, khối chặng) thụt vào theo nên không còn dính mép khung. */
.a1-doc { --a1-blue:#1c6ea4; --a1-pax:#a2cdfa; --a1-row:#dceefb; --a1-th:#cfe3f7;
                  font-size:17px; color:#222; padding:0 20px; }
.a1-doc .a1-head { display:flex; align-items:flex-start; gap:24px; padding:18px 20px; }
.a1-doc .a1-head img { max-height:95px; max-width:270px; object-fit:contain; }
/* Khối thông tin đại lý dồn phải, giới hạn ~38% bề rộng vé; giá trị dài (địa chỉ) tự xuống
   dòng thay vì kéo giãn cả khối. Chữ to hơn 1 chút (14px). */
.a1-doc .a1-agency { margin-left:auto; max-width:38%; font-size:14px; }
.a1-doc .a1-agency table { border-collapse:collapse; }
.a1-doc .a1-agency td { padding:2px 0; vertical-align:top; overflow-wrap:break-word; }
.a1-doc .a1-agency td:first-child { padding-right:18px; white-space:nowrap; }
.a1-doc .a1-band { display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
                   min-height:88px; padding:16px 20px; background:var(--a1-blue); color:#fff; }
.a1-doc .a1-band-title { font-size:27px; font-weight:bold; white-space:nowrap; }
/* Mã đặt chỗ (value) phóng to ngang cỡ tiêu đề "Chuyến đi của bạn" (27px); nhãn giữ nhỏ hơn. */
.a1-doc .a1-band table { border-collapse:collapse; font-size:16px; }
.a1-doc .a1-band td { padding:2px 0; vertical-align:middle; }
.a1-doc .a1-band td:first-child { padding-right:18px; }
.a1-doc .a1-band td b { font-size:27px; line-height:1; }
/* margin-top tách khỏi băng xanh "Chuyến đi của bạn" — đúng `mt-3` của bản gốc Razor. */
/* "Hành khách" canh SÁT viền trái (bỏ padding trái) như "Chi tiết vé". */
.a1-doc .a1-pax { display:flex; gap:16px; margin-top:16px; padding:6px 20px 6px 0; background:var(--a1-pax); color:#000; }
.a1-doc .a1-pax-label { width:180px; font-weight:bold; flex:0 0 180px; }
.a1-doc .a1-pax-names b { display:block; }
.a1-doc table.a1-sum { width:100%; border-collapse:collapse; }
/* Cột đầu ("Ngày") canh SÁT viền trái như "Chi tiết vé": bỏ padding trái ở cả header lẫn ô
   dữ liệu để cả cột thẳng mép trái. */
.a1-doc table.a1-sum th { text-align:left; font-weight:bold; padding:5px 20px; background:var(--a1-th); }
.a1-doc table.a1-sum td { padding:5px 20px; background:var(--a1-row); vertical-align:top; }
.a1-doc table.a1-sum th:first-child, .a1-doc table.a1-sum td:first-child { padding-left:0; }
/* "Hành trình", dòng ngày và ghi chú nằm ngoài khối màu → canh thẳng viền khối màu (lề 0),
   không thụt thêm 20px như chữ bên trong khối. */
.a1-doc .a1-title { font-size:21px; font-weight:bold; margin:16px 0 8px; }
/* "Chi tiết vé" tách khỏi bảng tóm tắt phía trên (margin-top tạo khoảng trắng) và canh SÁT
   viền trái như tiêu đề "Hành trình" (bỏ padding trái) thay vì thụt 20px như ô trong bảng. */
.a1-doc .a1-tkt { padding:6px 20px 10px 0; margin-top:14px; background:var(--a1-row); }
.a1-doc .a1-tkt-title { font-weight:bold; margin-bottom:4px; }
/* Mỗi chặng (ngày + bảng chi tiết) giữ nguyên khối khi in/PDF — KHÔNG bị cắt ngang giữa 2
   trang; thiếu chỗ ở cuối trang thì đẩy nguyên chặng sang trang mới. */
.a1-doc .a1-leg-block { break-inside: avoid; page-break-inside: avoid; }
.a1-doc .a1-leg-date { font-weight:bold; padding:10px 0 6px; }
.a1-doc table.a1-leg { width:100%; border-collapse:collapse; background:var(--a1-row); margin-bottom:4px; }
.a1-doc table.a1-leg th { text-align:left; padding:6px 20px; }
.a1-doc table.a1-leg td { padding:3px 20px; vertical-align:top; }
.a1-doc table.a1-leg td.a1-lbl { width:26%; padding-left:34px; }
.a1-doc table.a1-leg td.a1-mid { width:32%; }
/* Căn TRÁI (không justify): html2canvas/PDF & bản in xén mất ký tự cuối dòng khi text căn đều.
   Bỏ border-top/shadow. overflow-wrap để từ dài tự ngắt, không tràn ra mép. */
.a1-doc .a1-note { margin:16px 0; font-size:16px; line-height:1.6; color:#444; overflow-wrap:break-word; }
