/* Báo giá dạng tờ giấy theo mẫu Excel "Báo giá XM Thành Công" (anh Hiệp chốt 2026-10-25,
   mockup https://claude.ai/artifact/Uqxa4zckXcxBXbFkXJBHsm, điện thoại https://claude.ai/artifact/E53FVDZWyZVvacAokgzgJt).
   Tờ báo giá là chính biểu mẫu #quotationForm (cùng ô, cùng tự lưu); chế độ Xem: ô như chữ in, "Sửa trực tiếp": ô gạch chân xanh.
   Cùng CSS cho bản sao ở Giám đốc duyệt (#approvalQuotationPaper) và Bản in (#quotationPdfPreview).
   :not(#\#) nâng độ ưu tiên để thắng các lớp CSS cũ của bước báo giá (styles.css, wave2, workflow-v8, phone-shell). */

/* ---------- Bố cục bước Tạo báo giá: tờ giấy bên trái, cột phải Tiến trình + Chỉ nội bộ ---------- */
.qs-paper:not(#\#):not(#\#) .quotation-sheet-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 20px; align-items: start; margin-top: 4px; }
.qs-paper:not(#\#):not(#\#) .quotation-sheet-stage { position: relative; grid-column: 1; grid-row: 1; min-width: 0; padding: 22px 176px 22px 22px; border: 1px solid #dce3ef; border-radius: 14px; background: #e9eef5; }
.qs-paper:not(#\#):not(#\#) .quotation-side { grid-column: 2; grid-row: 1; position: sticky; top: 76px; display: grid; gap: 14px; min-width: 0; }
/* In + Sửa trực tiếp nổi ở góc phải khung nền xanh, không đè tờ in, không đẩy tờ xuống (anh Hiệp 07:36, 07:38) */
.qs-paper:not(#\#):not(#\#) .quotation-sheet-tools { position: absolute; top: 22px; right: 14px; z-index: 3; display: flex; flex-direction: column; align-items: stretch; width: 148px; gap: 6px; margin: 0; padding: 0; pointer-events: none; }
.qs-paper:not(#\#):not(#\#) .quotation-sheet-tools > .quotation-tool-btn { height: 32px; min-height: 32px; padding: 0 12px; font-size: 13px; box-shadow: 0 1px 3px rgba(15,23,42,.12); pointer-events: auto; }
.quotation-print-btn:not(#\#) .quotation-print-icon { flex: none; }
.quotation-tool-btn:not(#\#) { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 40px; min-height: 40px; padding: 0 16px; border: 1px solid #dce3ef; border-radius: 10px; background: #fff; color: #0f172a; font: 600 14px/1 var(--bms-font, Roboto, system-ui, sans-serif); white-space: nowrap; cursor: pointer; }
.quotation-tool-btn:not(#\#):hover { border-color: #93b4f0; background: #f8fbff; }
.quotation-tool-btn[hidden]:not(#\#) { display: none; }
.quotation-edit-toggle[aria-pressed="true"]:not(#\#) { border-color: #2563eb; background: #2563eb; color: #fff; }

/* Cột phải: thẻ trắng viền mảnh */
.qs-paper:not(#\#):not(#\#) :where(#quotationRoadmap):is(#quotationRoadmap, #quotationInternal), .qs-paper:not(#\#):not(#\#) :where(#quotationInternal):is(#quotationRoadmap, #quotationInternal) { margin: 0; padding: 16px; border: 1px solid #dce3ef; border-radius: 14px; background: #fff; box-shadow: none; overflow: visible; }
.qs-paper:not(#\#):not(#\#) #quotationRoadmap:empty, .qs-paper:not(#\#):not(#\#) #quotationInternal[hidden] { display: none; }
.qs-paper:not(#\#):not(#\#) #quotationRoadmap .quotation-validity-alert { margin: 0 0 12px; }

/* Tiến trình gọn: Bước n/4 · tên bước, nút Xác nhận, thanh vạch */
.quotation-progress { display: grid; gap: 10px; font-family: var(--bms-font, Roboto, system-ui, sans-serif); }
.quotation-progress > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.quotation-progress > header > div { display: grid; gap: 2px; min-width: 0; }
.quotation-progress > header small { color: #64748b; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.quotation-progress > header strong { color: #0f172a; font-size: 14px; font-weight: 700; }
.quotation-progress > header em { color: #b45309; font-size: 12.5px; font-style: normal; font-weight: 600; }
.quotation-progress-action:not(#\#) { flex: none; height: 34px; min-height: 34px; padding: 0 14px; border: 1px solid #2563eb; border-radius: 10px; background: #fff; color: #2563eb; font: 600 13px/1 var(--bms-font, Roboto, system-ui, sans-serif); cursor: pointer; }
.quotation-progress-action:not(#\#):hover { background: #eff6ff; }
.quotation-progress-bar { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 4px; }
.quotation-progress-seg:not(#\#) { display: block; min-height: 0; height: 14px; padding: 5px 0; border: 0; border-radius: 0; background: transparent; cursor: pointer; }
.quotation-progress-seg[aria-disabled="true"]:not(#\#) { cursor: default; }
.quotation-progress-seg i { display: block; height: 4px; border-radius: 2px; background: #e2e8f0; }
.quotation-progress-seg span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.quotation-progress-seg.is-done i { background: #22c55e; }
.quotation-progress-seg.is-current i { background: #2563eb; }
.quotation-progress-seg.is-missing i { background: #f59e0b; }
.quotation-progress-seg.is-blocked i { background: #dc2626; }
.quotation-progress-missing:not(#\#) { justify-self: start; height: 30px; min-height: 30px; padding: 0 10px; border: 1px solid #f5d28a; border-radius: 8px; background: #fff8e6; color: #92600a; font: 600 12.5px/1 var(--bms-font, Roboto, system-ui, sans-serif); cursor: pointer; }
.quotation-progress-hint { margin: 0; padding: 6px 10px; overflow: hidden; border-radius: 8px; background: #fffbeb; color: #92400e; font-size: 12.5px; line-height: 1.4; white-space: nowrap; text-overflow: ellipsis; }
.quotation-progress > header { flex-wrap: wrap; }
.quotation-progress > header strong { white-space: nowrap; }
.quotation-progress-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.quotation-progress-upload:not(#\#) { display: inline-flex; align-items: center; gap: 5px; height: 34px; min-height: 34px; padding: 0 10px; border: 1px solid #dce3ef; border-radius: 10px; background: #fff; color: #334155; font: 600 13px/1 var(--bms-font, Roboto, system-ui, sans-serif); cursor: pointer; }
.quotation-progress-upload:not(#\#):hover { border-color: #93b4f0; background: #f8fbff; }
.quotation-progress-upload i { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: #dcfce7; color: #15803d; font: 700 11px/18px var(--bms-font, Roboto, system-ui, sans-serif); font-style: normal; text-align: center; }
.quotation-upload-menu { position: absolute; z-index: 1200; display: grid; gap: 4px; width: 220px; padding: 6px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; box-shadow: 0 10px 30px rgba(15,23,42,.15); font-family: var(--bms-font, Roboto, system-ui, sans-serif); }
.quotation-upload-menu button:not(#\#) { display: grid; gap: 1px; min-height: 0; height: auto; padding: 8px 10px; border: 0; border-radius: 8px; background: #fff; text-align: left; cursor: pointer; }
.quotation-upload-menu button:not(#\#):hover { background: #f1f5f9; }
.quotation-upload-menu b { color: #0f172a; font-size: 13.5px; }
.quotation-upload-menu small { color: #64748b; font-size: 12px; }
.quotation-roadmap-file-kind { display: flex; align-items: center; gap: 8px; margin: 10px 0 4px; font-size: 13px; }
.quotation-roadmap-file-kind em { color: #b45309; font-size: 12px; font-style: normal; font-weight: 600; }

/* Chỉ nội bộ · không in */
.quotation-internal-card { font-family: var(--bms-font, Roboto, system-ui, sans-serif); }
.quotation-internal-card > header { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.quotation-internal-card > header h3 { margin: 0; color: #64748b; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.quotation-internal-card > header span { padding: 2px 8px; border-radius: 999px; background: #fef3c7; color: #92400e; font-size: 11px; font-weight: 600; }
.quotation-internal-total small { color: #64748b; font-size: 12.5px; }
.quotation-internal-total > div { display: flex; align-items: baseline; gap: 8px; }
.quotation-internal-total strong { color: #15803d; font-size: 26px; font-weight: 700; font-variant-numeric: tabular-nums; }
.quotation-internal-total em { color: #15803d; font-size: 15px; font-style: normal; font-weight: 700; }
.quotation-internal-total :where(strong):is(strong, em).is-negative, .quotation-internal-total :where(em):is(strong, em).is-negative, .quotation-internal-total strong.is-negative + em { color: #b91c1c; }
.quotation-internal-total p { margin: 2px 0 8px; color: #475569; font-size: 12.5px; }
.quotation-internal-lines { border-top: 1px solid #eef2f7; }
.quotation-internal-line { padding: 8px 0; border-bottom: 1px solid #eef2f7; }
.quotation-internal-line > div { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; }
.quotation-internal-line b { min-width: 0; overflow: hidden; color: #0f172a; text-overflow: ellipsis; white-space: nowrap; }
.quotation-internal-line strong { flex: none; color: #15803d; font-variant-numeric: tabular-nums; }
.quotation-internal-line strong.is-negative { color: #b91c1c; }
.quotation-internal-line em { color: #64748b; font-size: 12px; font-style: normal; font-weight: 500; }
.quotation-internal-line small { display: block; margin-top: 2px; color: #64748b; font-size: 12px; }
.quotation-internal-note { margin: 8px 0 0; color: #94a3b8; font-size: 11.5px; }

/* ---------- Tờ giấy: theo 2 mẫu Word "Quote form Trong Nuoc - VI" và "Quote form for export" (anh Hiệp 2026-10-28) ---------- */
.qs-paper:not(#\#):not(#\#) .quotation-form { display: block; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.qs-paper:not(#\#):not(#\#) .quotation-document { display: block; width: 820px; max-width: 100%; margin: 0 auto; padding: 40px 46px 30px; border: 0; border-radius: 0; background: #fff; box-shadow: 0 1px 3px rgba(15,23,42,.12), 0 8px 24px rgba(15,23,42,.08); color: #111; font: 400 12.5px/1.35 Arial, "Helvetica Neue", sans-serif; }
.qs-paper:not(#\#):not(#\#) .quotation-document * { letter-spacing: 0; text-transform: none; }
.qs-paper:not(#\#):not(#\#) .quotation-document-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin: 0; padding: 0; border: 0; background: transparent; }
.qs-paper:not(#\#):not(#\#) .quotation-heading-block { display: block; margin: 0; padding: 0; border: 0; background: transparent; }
.qs-paper:not(#\#):not(#\#) .quotation-document-kicker { display: none; }
.qs-paper:not(#\#):not(#\#) .quotation-heading-block h3 { display: block; margin: 0; padding: 0; background: transparent; color: #111; font: 700 26px/1.1 Arial, sans-serif; }
.qs-paper:not(#\#):not(#\#) .quotation-company { display: block; padding: 0; }
.qs-paper:not(#\#):not(#\#) .quotation-company-logo { display: block; width: 92px; height: auto; }
/* Khách hàng · Địa chỉ · Liên hệ · Kinh doanh | Số báo giá · RFQ · Ngày ban hành · Thời hạn: nhãn trái, nội dung trên đường chấm */
.qs-paper:not(#\#):not(#\#) .quotation-info-grid { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 0 2px; margin: 34px 0 0; }
.qs-paper:not(#\#):not(#\#) :where(.quotation-document-meta):is(.quotation-document-meta, .quotation-party-grid), .qs-paper:not(#\#):not(#\#) :where(.quotation-party-grid):is(.quotation-document-meta, .quotation-party-grid) { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; padding: 0; border: 0; }
.qs-paper:not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) > label { display: grid; grid-column: auto; grid-template-columns: 96px minmax(0, 1fr); align-items: end; gap: 0 6px; min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; }
.qs-paper:not(#\#):not(#\#) .quotation-document-meta > label { grid-template-columns: 116px minmax(0, 1fr); }
.qs-paper:not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) > label > span:first-child { display: block; margin: 0; padding: 2px 0; color: #111; font: 400 12.5px/1.35 Arial, sans-serif; white-space: nowrap; }
.qs-paper:not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) > label > :not(:first-child) { min-width: 0; border-bottom: 1px dotted #6b6b6b; }
.qs-paper:not(#\#):not(#\#) .quotation-contact-pair { display: flex; align-items: baseline; gap: 4px; min-width: 0; }
.qs-paper:not(#\#):not(#\#) .quotation-contact-pair > input:first-child { flex: 0 1 auto; width: auto; field-sizing: content; min-width: 2em; max-width: 60%; }
.qs-paper:not(#\#):not(#\#) .quotation-contact-pair > :last-child { flex: 1 1 0; }
.qs-paper:not(#\#):not(#\#) .quotation-contact-pair > i { flex: none; font-style: normal; }
.qs-paper:not(#\#):not(#\#) .quotation-contact-pair:not(:has(> :first-child:is(input:placeholder-shown, .quotation-print-value:empty))):not(:has(> :last-child:is(input:placeholder-shown, .quotation-print-value:empty))) > i { visibility: visible; }
.qs-paper:not(#\#):not(#\#) .quotation-contact-pair:is(:has(> :first-child:is(input:placeholder-shown, .quotation-print-value:empty)), :has(> :last-child:is(input:placeholder-shown, .quotation-print-value:empty))) > i { visibility: hidden; }
.qs-paper:not(#\#):not(#\#) .quotation-product-line { display: flex; align-items: baseline; gap: 4px; margin: 22px 0 0; padding: 0; border: 0; background: transparent; }
.qs-paper:not(#\#):not(#\#) .quotation-product-line > span:first-child { flex: none; color: #111; font: 400 12.5px/1.35 Arial, sans-serif; }
.qs-paper:not(#\#):not(#\#) .quotation-product-line :where(textarea):is(textarea, .quotation-print-value), .qs-paper:not(#\#):not(#\#) .quotation-product-line :where(.quotation-print-value):is(textarea, .quotation-print-value) { flex: 1 1 auto; font-weight: 700; }
/* Ô nhập trên tờ giấy: như chữ in */
.qs-paper:not(#\#):not(#\#) .quotation-document :where(input):is(input, textarea, select), .qs-paper:not(#\#):not(#\#) .quotation-document :where(textarea):is(input, textarea, select), .qs-paper:not(#\#):not(#\#) .quotation-document :where(select):is(input, textarea, select) { width: 100%; min-width: 0; height: auto; min-height: 0; margin: 0; padding: 2px 0; border: 0; border-radius: 3px; outline: 0; background: transparent; box-shadow: none; color: #111; font: inherit; line-height: 1.35; -webkit-appearance: none; appearance: none; resize: none; }
.qs-paper:not(#\#):not(#\#) .quotation-document textarea { overflow: hidden; }
.qs-paper:not(#\#):not(#\#) .quotation-document :where(input):is(input, textarea)::placeholder, .qs-paper:not(#\#):not(#\#) .quotation-document :where(textarea):is(input, textarea)::placeholder { color: transparent; }
.qs-paper:not(#\#):not(#\#) .quotation-document input[type="date"]::-webkit-calendar-picker-indicator { display: none; }
.qs-paper:not(#\#):not(#\#) .quotation-document :where(input):is(input, textarea, select):disabled, .qs-paper:not(#\#):not(#\#) .quotation-document :where(textarea):is(input, textarea, select):disabled, .qs-paper:not(#\#):not(#\#) .quotation-document :where(select):is(input, textarea, select):disabled { opacity: 1; -webkit-text-fill-color: #111; color: #111; }
.qs-paper:not(#\#):not(#\#) .quotation-inline-unit { position: static; display: flex; align-items: baseline; gap: 4px; min-width: 0; }
.qs-paper:not(#\#):not(#\#) .quotation-inline-unit input { width: 2.4em; flex: none; padding-right: 0; }
.qs-paper:not(#\#):not(#\#) .quotation-inline-unit em { position: static; transform: none; color: #111; font-style: normal; font-weight: 400; }
.qs-paper:not(#\#):not(#\#) .quotation-print-value { display: block; min-height: 1.35em; padding: 2px 0; white-space: pre-wrap; }
.qs-paper:not(#\#):not(#\#) :is(.quotation-inline-unit, .quotation-contact-pair) .quotation-print-value { display: inline; }

/* Hàng hóa, dịch vụ: bảng kẻ ô đủ 4 cạnh */
.qs-paper:not(#\#):not(#\#) .quotation-items-section { display: block; margin: 18px 0 0; padding: 0; border: 0; background: transparent; }
.qs-paper:not(#\#):not(#\#) .quotation-section-title { display: none; }
.qs-paper:not(#\#):not(#\#).is-quotation-editing .quotation-items-section > .quotation-section-title:has(.quotation-package-menu:not([hidden])) { display: flex; justify-content: flex-end; margin: 0 0 6px; padding: 0; border: 0; background: transparent; }
.qs-paper:not(#\#):not(#\#).is-quotation-editing .quotation-items-section > .quotation-section-title > :not(.quotation-package-menu) { display: none; }
.qs-paper:not(#\#):not(#\#) .quotation-table-wrap { overflow: visible; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table { width: 100%; min-width: 0; border-collapse: collapse; table-layout: auto; background: transparent; box-shadow: none; font: inherit; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table th { position: static; height: auto; padding: 3px 4px; border: 1px solid #111; background: #fff; color: #111; font: 400 12.5px/1.25 Arial, sans-serif; text-align: center; text-transform: none; letter-spacing: 0; vertical-align: top; white-space: normal; box-shadow: none; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table th small { display: block; font-size: 9.5px; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table th:is(:nth-child(1), :nth-child(2)) { text-align: left; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table th:nth-child(5) small { display: inline; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table td { height: auto; padding: 2px 4px; border: 1px solid #111; background: #fff; color: #111; font: inherit; text-align: left; vertical-align: top; box-shadow: none; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table td:is(:nth-child(1), :nth-child(3), :nth-child(4)) { text-align: center; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table td:is(:nth-child(5), :nth-child(6)) { text-align: right; font-variant-numeric: tabular-nums; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table th:nth-child(1) { width: 36px; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table th:nth-child(3) { width: 64px; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table th:nth-child(4) { width: 46px; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table th:nth-child(5) { width: 92px; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table th:nth-child(6) { width: 92px; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table th:nth-child(7) { width: 92px; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table td :where(input):is(input, textarea), .qs-paper:not(#\#):not(#\#) .quotation-items-table td :where(textarea):is(input, textarea) { text-align: inherit; font-weight: 400; }
.qs-paper:not(#\#):not(#\#) .quotation-line-amount { font-weight: 400; }
.qs-paper:not(#\#):not(#\#) .quotation-items-table tr:hover td { background: #fff; }
.qs-paper:not(#\#):not(#\#) :where(.quotation-btgv-info):is(.quotation-btgv-info, .quotation-package-chip), .qs-paper:not(#\#):not(#\#) :where(.quotation-package-chip):is(.quotation-btgv-info, .quotation-package-chip) { display: none; }
.qs-paper:not(#\#):not(#\#).is-quotation-editing :where(.quotation-btgv-info):is(.quotation-btgv-info, .quotation-package-chip), .qs-paper:not(#\#):not(#\#).is-quotation-editing :where(.quotation-package-chip):is(.quotation-btgv-info, .quotation-package-chip) { display: block; margin-top: 3px; color: #475569; font: 400 11.5px/1.35 var(--bms-font, Roboto, system-ui, sans-serif); }
.qs-paper:not(#\#):not(#\#).is-quotation-editing .quotation-package-chip { display: inline-block; margin-left: 4px; }

/* CỘNG / VAT / TỔNG CỘNG: nửa phải, mỗi dòng gạch chân */
.qs-paper:not(#\#):not(#\#) .quotation-totals { display: grid; gap: 0; width: 60%; max-width: 100%; margin: 26px 0 0 auto; padding: 0; border: 0; background: transparent; box-shadow: none; }
.qs-paper:not(#\#):not(#\#) .quotation-totals > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 0; margin: 0; padding: 1px 0; border: 0; border-bottom: 1px solid #111; border-radius: 0; background: transparent; color: #111; font: 400 12.5px/1.35 Arial, sans-serif; }
.qs-paper:not(#\#):not(#\#) .quotation-totals > div:last-child { font-weight: 700; }
.qs-paper:not(#\#):not(#\#) .quotation-totals :where(span):is(span, strong, label), .qs-paper:not(#\#):not(#\#) .quotation-totals :where(strong):is(span, strong, label), .qs-paper:not(#\#):not(#\#) .quotation-totals :where(label):is(span, strong, label) { margin: 0; color: #111; font: inherit; text-align: left; }
.qs-paper:not(#\#):not(#\#) .quotation-totals strong { text-align: right; font-variant-numeric: tabular-nums; }
.qs-paper:not(#\#):not(#\#) .quotation-totals label { display: flex; align-items: baseline; gap: 10px; }
.qs-paper:not(#\#):not(#\#) .quotation-totals label i { font-style: normal; }
.qs-paper:not(#\#):not(#\#) .quotation-totals label input { width: 3em; text-align: left; font-weight: inherit; }
.qs-paper:not(#\#):not(#\#) .quotation-totals label .quotation-print-value { display: inline; }

/* Thông tin đóng gói · Export and Logistics Information: tiêu đề đậm có đường mảnh, 2 cột nhãn · nội dung */
.qs-paper:not(#\#):not(#\#) .quotation-export-section { margin: 30px 0 0; padding: 0; border: 0; background: transparent; }
.qs-paper:not(#\#):not(#\#) .quotation-export-section[hidden] { display: none; }
.qs-paper:not(#\#):not(#\#) .quotation-export-section > .quotation-section-title, .qs-paper:not(#\#):not(#\#) .quotation-terms-section > .quotation-section-title { display: block; margin: 0 0 12px; padding: 0 0 2px; border: 0; border-bottom: 1px solid #e5e7eb; background: transparent; }
.qs-paper:not(#\#):not(#\#) :is(.quotation-export-section, .quotation-terms-section) > .quotation-section-title > span { color: #111; font: 700 12.5px/1.3 Arial, sans-serif; }
.qs-paper:not(#\#):not(#\#) .quotation-export-section > .quotation-section-title > :not(span) { display: none; }
.qs-paper:not(#\#):not(#\#) .quotation-export-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; margin: 0; padding: 0; border: 0; background: transparent; }
.qs-paper:not(#\#):not(#\#) .quotation-export-grid > label { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: baseline; gap: 6px; margin: 0; padding: 0; border: 0; font-size: 11.5px; }
.qs-paper:not(#\#):not(#\#) .quotation-export-grid > label > span:first-child { color: #111; font: 400 11.5px/1.35 Arial, sans-serif; }
.qs-paper:not(#\#):not(#\#) .quotation-export-grid :where(input):is(input, textarea, .quotation-print-value), .qs-paper:not(#\#):not(#\#) .quotation-export-grid :where(textarea):is(input, textarea, .quotation-print-value), .qs-paper:not(#\#):not(#\#) .quotation-export-grid :where(.quotation-print-value):is(input, textarea, .quotation-print-value) { color: #111; font-size: 11.5px; font-weight: 400; -webkit-text-fill-color: #111; }

/* Ghi chú / Commercial Notes */
.qs-paper:not(#\#):not(#\#) .quotation-terms-section { display: block; margin: 26px 0 0; padding: 0; border: 0; background: transparent; }
.qs-paper:not(#\#):not(#\#) .quotation-terms-lead { display: block; margin: 0 0 4px; padding: 0; border: 0; }
.qs-paper:not(#\#):not(#\#) .quotation-terms-lead > span:first-child { display: none; }
.qs-paper:not(#\#):not(#\#):not(.is-quotation-editing) .quotation-terms-lead:has(> :is(textarea:placeholder-shown, .quotation-print-value:empty)) { display: none; }
.qs-paper:not(#\#):not(#\#) .quotation-terms-list { display: grid; gap: 0; margin: 0; padding: 0; }
.qs-paper:not(#\#):not(#\#) .quotation-terms-list > label { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 6px; align-items: baseline; margin: 0; padding: 0; border: 0; background: transparent; font-size: 11.5px; }
.qs-paper:not(#\#):not(#\#) .quotation-terms-list > label > :first-child { width: auto; padding: 0; color: #111; font: 400 11.5px/1.35 Arial, sans-serif; }
.qs-paper:not(#\#):not(#\#) .quotation-terms-list > label > select:first-child { field-sizing: content; }
.qs-paper:not(#\#):not(#\#) .quotation-terms-list :where(textarea):is(textarea, select, input, .quotation-print-value), .qs-paper:not(#\#):not(#\#) .quotation-terms-list :where(select):is(textarea, select, input, .quotation-print-value), .qs-paper:not(#\#):not(#\#) .quotation-terms-list :where(input):is(textarea, select, input, .quotation-print-value), .qs-paper:not(#\#):not(#\#) .quotation-terms-list :where(.quotation-print-value):is(textarea, select, input, .quotation-print-value) { font-size: 11.5px; }
.qs-paper:not(#\#):not(#\#) .quotation-bank-fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; min-width: 0; }
.qs-paper:not(#\#):not(#\#) .quotation-bank-fields > :last-child::before { content: "Chủ tài khoản: "; }
.qs-paper:not(#\#):not(#\#) .quotation-document.is-export .quotation-bank-fields > :last-child::before { content: "Account holder: "; }
.qs-paper:not(#\#):not(#\#) .quotation-bank-fields input { padding-left: 0; }
.qs-paper:not(#\#):not(#\#) .quotation-document.is-export .quotation-bank-fields > :last-child::before { content: "Swift code: "; }
/* Xuất khẩu: chọn nhanh Incoterms / Packaging type / Payment terms, chọn nhiều Required documents (anh Hiệp 2026-10-29).
   Chỉ hiện khi đang Sửa trực tiếp; tờ xem và bản in chỉ còn chữ. */
.qs-paper:not(#\#):not(#\#) :is(.quotation-export-grid, .quotation-terms-list) > label:has(> .quotation-preset-picker) > :not(:first-child) { grid-column: 2; }
.qs-paper:not(.is-quotation-editing):not(#\#):not(#\#) .quotation-preset-picker,
.qs-paper:not(#\#):not(#\#) .quotation-document:not(.is-export) .quotation-preset-picker { display: none; }
.qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document.is-export .is-preset-hidden { display: none; }
.qs-paper:not(#\#):not(#\#) select.quotation-preset-picker { width: 100%; min-width: 0; text-overflow: ellipsis; }
.qs-paper:not(#\#):not(#\#) .quotation-document-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 2px; }
.qs-paper:not(#\#):not(#\#) .quotation-document-chips button { height: 28px; padding: 0 10px; border: 1px solid #dce3ef; border-radius: 8px; background: #fff; color: #334155; font: 500 12px/1 var(--bms-font, Roboto, system-ui, sans-serif); cursor: pointer; }
.qs-paper:not(#\#):not(#\#) .quotation-document-chips button[aria-pressed="true"] { border-color: #2563eb; background: #eff6ff; color: #1d4ed8; }
.qs-paper:not(#\#):not(#\#) .quotation-document-chips button[aria-pressed="true"]::before { content: "✓ "; }

/* Chữ ký: Đại diện bán hàng (tên, email, điện thoại) | Khách hàng xác nhận; xuất khẩu chỉ "Yours sincerely," */
.qs-paper:not(#\#):not(#\#) .quotation-signatures { display: grid; grid-template-columns: 1fr 1fr; margin-top: 48px; text-align: left; font: 400 12.5px/1.35 Arial, sans-serif; }
.qs-paper:not(#\#):not(#\#) .quotation-signatures b { display: block; font-weight: 700; }
.qs-paper:not(#\#):not(#\#) .quotation-sign-customer { padding-left: 60px; }
.qs-paper:not(#\#):not(#\#) .quotation-sign-sales > strong { display: block; min-height: 1.35em; margin-top: 72px; font-weight: 700; }
.qs-paper:not(#\#):not(#\#) .quotation-sign-sales :where(textarea):is(textarea, .quotation-print-value), .qs-paper:not(#\#):not(#\#) .quotation-sign-sales :where(.quotation-print-value):is(textarea, .quotation-print-value) { padding: 0; color: #111; font-size: 11.5px; line-height: 1.3; }
.qs-paper:not(#\#):not(#\#) .quotation-signatures.is-export { grid-template-columns: 1fr; }
.qs-paper:not(#\#):not(#\#) .quotation-signatures.is-export b { font-weight: 400; }
.qs-paper:not(#\#):not(#\#) .quotation-signatures.is-export .quotation-sign-customer { display: none; }
/* Chân trang công ty */
.qs-paper:not(#\#):not(#\#) .quotation-company-footer { display: grid; grid-template-columns: 1.1fr 1.3fr 1fr; gap: 12px; margin: 64px 0 0; padding: 3px 0 0; border-top: 1px solid #111; color: #111; font: 400 10.5px/1.3 Arial, sans-serif; }
.qs-paper:not(#\#):not(#\#) .quotation-company-footer b { display: block; font-weight: 700; text-decoration: underline; }
.qs-paper:not(#\#):not(#\#) .quotation-company-footer small { display: block; font-size: 9px; }
.qs-paper:not(#\#):not(#\#) .quotation-company-footer-links { display: grid; justify-items: end; text-align: right; }
.qs-paper:not(#\#):not(#\#) .quotation-company-footer-links span { text-decoration: underline; }
.qs-paper:not(#\#):not(#\#) .quotation-document-actions { display: block; margin: 18px 0 0; padding: 0; border: 0; background: transparent; text-align: right; }
.qs-paper:not(#\#):not(#\#) .quotation-document-actions p { margin: 0; color: #94a3b8; font: 400 11px/1.3 var(--bms-font, Roboto, system-ui, sans-serif); }

/* Chế độ Xem: ô không bấm sửa được; Sửa trực tiếp: gạch chân xanh, tự lưu */
.qs-paper:not(.is-quotation-editing):not(#\#):not(#\#) .quotation-document :where(input):is(input, textarea), .qs-paper:not(.is-quotation-editing):not(#\#):not(#\#) .quotation-document :where(textarea):is(input, textarea) { cursor: default; caret-color: transparent; }
.qs-paper:not(.is-quotation-editing):not(#\#):not(#\#) .quotation-document select { pointer-events: none; }
.qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document :where(input):is(input, textarea, select):not([data-fixed-readonly="1"]):not(:disabled), .qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document :where(textarea):is(input, textarea, select):not([data-fixed-readonly="1"]):not(:disabled), .qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document :where(select):is(input, textarea, select):not([data-fixed-readonly="1"]):not(:disabled) { background: #f8fbff; box-shadow: inset 0 -1px 0 #93b4f0; cursor: text; }
.qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document select:not(:disabled) { padding-right: 14px; background: #f8fbff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0h8L4 5z' fill='%2364748B'/%3E%3C/svg%3E") no-repeat right 3px center; cursor: pointer; }
.qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document :where(input):is(input, textarea, select):not([data-fixed-readonly="1"]):not(:disabled):hover, .qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document :where(textarea):is(input, textarea, select):not([data-fixed-readonly="1"]):not(:disabled):hover, .qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document :where(select):is(input, textarea, select):not([data-fixed-readonly="1"]):not(:disabled):hover { background-color: #eff6ff; }
.qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document :where(input):is(input, textarea, select):not([data-fixed-readonly="1"]):not(:disabled):focus, .qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document :where(textarea):is(input, textarea, select):not([data-fixed-readonly="1"]):not(:disabled):focus, .qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document :where(select):is(input, textarea, select):not([data-fixed-readonly="1"]):not(:disabled):focus { background-color: #eff6ff; box-shadow: inset 0 0 0 1px #2563eb; }
.qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document :where(input):is(input, textarea)::placeholder, .qs-paper.is-quotation-editing:not(#\#):not(#\#) .quotation-document :where(textarea):is(input, textarea)::placeholder { color: #a3aec2; font-weight: 400; }

/* ---------- Nút Xuất PDF/Excel ▾ ---------- */
.quotation-export-menu { position: fixed; inset: 0; z-index: 1200; }
.quotation-export-menu:not(.is-sheet) .quotation-export-pop { position: fixed; display: grid; gap: 4px; min-width: 240px; padding: 6px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; box-shadow: 0 10px 30px rgba(15,23,42,.15); }
.quotation-export-menu.is-sheet { display: flex; align-items: flex-end; background: rgba(15,23,42,.45); }
.quotation-export-menu.is-sheet .quotation-export-pop { display: grid; gap: 8px; width: 100%; padding: 14px 12px calc(20px + env(safe-area-inset-bottom)); border-radius: 16px 16px 0 0; background: #fff; }
.quotation-export-pop > b { padding: 0 4px 4px; color: #0f172a; font-size: 15px; }
.quotation-export-pop > button:not(#\#) { display: flex; align-items: center; gap: 12px; min-height: 52px; height: auto; padding: 8px 10px; border: 0; border-radius: 10px; background: #fff; color: #0f172a; font: inherit; text-align: left; cursor: pointer; }
.quotation-export-menu.is-sheet .quotation-export-pop > button[data-quotation-export]:not(#\#) { border: 1px solid #e2e8f0; }
.quotation-export-pop > button:not(#\#):hover { background: #f1f5f9; }
.quotation-export-pop > button b { display: block; font-size: 14px; }
.quotation-export-pop > button small { display: block; color: #64748b; font-size: 12px; }
.quotation-export-icon { display: grid; flex: none; place-items: center; width: 36px; height: 36px; border-radius: 9px; color: #fff; font: 700 11px/1 Roboto, system-ui, sans-serif; }
.quotation-export-icon.is-pdf { background: #dc2626; }
.quotation-export-icon.is-excel { background: #15803d; }
.quotation-export-pop > .quotation-export-cancel:not(#\#) { justify-content: center; min-height: 44px; background: #f1f5f9; color: #475569; font-weight: 600; }

/* ---------- Bản in: tờ A4 dọc thu nhỏ vừa khung ---------- */
#quotationPdfPreview.qs-paper:not(#\#) { overflow-x: hidden; padding: 12px; background: #475569; }
.quotation-print-fit { position: relative; margin: 0 auto; background: #fff; box-shadow: 0 4px 18px rgba(0,0,0,.35); }
.quotation-print-frame-view { position: absolute; top: 0; left: 0; display: block; width: 794px; height: 1123px; border: 0; background: #fff; transform-origin: 0 0; }
/* Nội dung trong khung xem trước (tài liệu riêng, không có giao diện điện thoại). */
html body.quotation-print-frame { min-width: 0; margin: 0; padding: 0; overflow: hidden; background: #fff; zoom: 1; page: bms-quote; }
body.quotation-print-frame > .qs-paper { display: block; margin: 0; padding: 0; background: #fff; }
.quotation-print-page { width: 794px; min-height: 1123px; background: #fff; }
.qs-paper:not(#\#):not(#\#) .quotation-print-page .quotation-document { width: 794px; max-width: none; margin: 0; padding: 40px 42px; border: 0; border-radius: 0; box-shadow: none; }
.qs-paper:not(#\#):not(#\#):not(#\#) .quotation-print-page .quotation-terms-list > label > :first-child { margin-top: 0; }
.qs-paper:not(#\#):not(#\#):not(#\#) .quotation-print-page .quotation-line-amount { padding-top: 2px; }
@page bms-quote { size: A4 portrait; margin: 0; }
@media print {
  html body.quotation-print-frame { overflow: visible; }
  /* styles.css có quy tắc in chung "body * { visibility: hidden }" (kho); khung in báo giá phải hiện lại toàn bộ. */
  html body.quotation-print-frame, html body.quotation-print-frame * { visibility: visible !important; }
  /* Giữ nền xám của khung BÁO GIÁ và đầu bảng khi in; thu nhẹ để tờ vừa 1 trang A4 như file PDF. */
  html body.quotation-print-frame { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body.quotation-print-frame .quotation-print-page { min-height: 0; zoom: .94; }
  .qs-paper:not(#\#):not(#\#) .quotation-print-page .quotation-items-table tr,
  .qs-paper:not(#\#):not(#\#) .quotation-print-page .quotation-terms-list > label { break-inside: avoid; }
}

/* ---------- Giám đốc duyệt: tờ báo giá bên trái, khung quyết định bên phải ---------- */
.qs-approval:not(#\#):not(#\#) .approval-sheet-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }
.qs-approval.has-quote-paper:not(#\#):not(#\#) .approval-sheet-layout { grid-template-columns: minmax(0, 1fr) 380px; }
.qs-approval:not(#\#):not(#\#) .approval-paper-stage { display: none; min-width: 0; padding: 22px; border: 1px solid #dce3ef; border-radius: 14px; background: #e9eef5; }
.qs-approval.has-quote-paper:not(#\#):not(#\#) .approval-paper-stage { display: block; }
.qs-approval:not(#\#):not(#\#) .approval-paper-stage > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 820px; max-width: 100%; margin: 0 auto 12px; }
.qs-approval:not(#\#):not(#\#) .approval-paper-stage > header b { color: #0f172a; font-size: 15px; }
.qs-approval:not(#\#):not(#\#) .approval-board { position: sticky; top: 76px; display: grid; gap: 14px; min-width: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.qs-approval:not(#\#):not(#\#) :where(#approvalProjectBrief):is(#approvalProjectBrief, .approval-board-head, .approval-board-lines, #approvalNote), .qs-approval:not(#\#):not(#\#) :where(.approval-board-head):is(#approvalProjectBrief, .approval-board-head, .approval-board-lines, #approvalNote), .qs-approval:not(#\#):not(#\#) :where(.approval-board-lines):is(#approvalProjectBrief, .approval-board-head, .approval-board-lines, #approvalNote), .qs-approval:not(#\#):not(#\#) :where(#approvalNote):is(#approvalProjectBrief, .approval-board-head, .approval-board-lines, #approvalNote) { display: none; }
.qs-approval:not(#\#):not(#\#) .approval-board-body { display: block; margin: 0; padding: 0; border: 0; }
.qs-approval:not(#\#):not(#\#) .approval-board-facts { display: grid; gap: 6px; margin: 0; padding: 14px 16px; border: 1px solid #dce3ef; border-radius: 14px; background: #fff; }
.qs-approval:not(#\#):not(#\#) .approval-board-facts > section:has(#approvalProjectSummary) { display: none; }
.qs-approval:not(#\#):not(#\#) .approval-facts-toggle { display: none; }
.qs-approval:not(#\#):not(#\#) .approval-board-facts h3 { margin: 0 0 4px; color: #64748b; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

.approval-decision-card { min-width: 0; overflow: hidden; border: 1px solid #dce3ef; border-radius: 14px; background: #fff; font-family: var(--bms-font, Roboto, system-ui, sans-serif); }
.qs-approval:not(#\#):not(#\#) [data-workflow-page-title="approval"] { align-items: center; }
.qs-approval [data-workflow-page-title="approval"] > #approvalStatus:not(#\#):not(#\#):not(#\#) { width: auto; max-width: 260px; margin-left: auto; padding: 0 14px; }
.qs-approval [data-workflow-page-title="approval"] > .approval-auto-menu:not(#\#):not(#\#):not(#\#) { flex: none; width: 190px; margin-left: 8px; }
.approval-decision-chips { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 8px; padding: 10px; border-bottom: 1px solid #e2e8f0; background: #f8fafc; }
.approval-decision-chips:not(:has(> :not([hidden]))) { display: none; }
.approval-decision-chips > [hidden] { display: none !important; }
.approval-decision-chips > #approvalStatus:only-child, .approval-decision-chips > .approval-auto-menu:only-child { grid-column: 1 / -1; }
/* Hai ô "Chờ Giám đốc duyệt" và "Duyệt tự động" cùng một kiểu, cao bằng nhau (anh Hiệp 2026-10-25) */
.qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) :where(#approvalStatus):is(#approvalStatus, .approval-auto-trigger):not(#\#):not(#\#), .qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) :where(.approval-auto-trigger):is(#approvalStatus, .approval-auto-trigger):not(#\#):not(#\#) { display: flex; align-items: center; gap: 6px; box-sizing: border-box; width: 100%; height: 40px; min-height: 40px; max-height: 40px; margin: 0; padding: 0 10px; overflow: hidden; border: 1px solid #dce3ef; border-radius: 10px; background: #fff; box-shadow: none; color: #334155; font: 600 12.5px/1.2 var(--bms-font, Roboto, system-ui, sans-serif); text-align: left; white-space: nowrap; text-overflow: ellipsis; }
.qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) #approvalStatus:not(#\#):not(#\#) { display: block; min-width: 0; line-height: 38px; }
.qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) #approvalStatus:not(#\#):not(#\#)::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: currentColor; vertical-align: 1px; }
.qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) #approvalStatus.review:not(#\#):not(#\#) { border-color: #f5d28a; background: #fff8e6; color: #92600a; }
.qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) #approvalStatus.approved:not(#\#):not(#\#) { border-color: #bbf7d0; background: #f0fdf4; color: #15803d; }
.qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) #approvalStatus:is(.revise, .rejected):not(#\#):not(#\#) { border-color: #fecaca; background: #fef2f2; color: #b91c1c; }
.qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) #approvalStatus.draft:not(#\#):not(#\#) { border-color: #e2e8f0; background: #f8fafc; color: #64748b; }
.qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) .approval-auto-menu:not(#\#):not(#\#) { position: relative; min-width: 0; margin: 0; }
.qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) .approval-auto-trigger:not(#\#):not(#\#) { cursor: pointer; }
.qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) .approval-auto-trigger > span:last-child { margin-left: auto; color: #94a3b8; }
.qs-approval :is(.approval-decision-chips, [data-workflow-page-title]) .approval-auto-pop:not(#\#) { right: 0; left: auto; }
.approval-decision-body > section { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; min-width: 0; padding: 10px 12px; border-top: 1px solid #eef2f7; }
.approval-decision-body > section:first-child { border-top: 0; }
.approval-decision-body > section > small { margin-bottom: 2px; color: #94a3b8; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.approval-decision-name { color: #0f172a; font-size: 15px; }
.approval-decision-body > section > span { color: #64748b; font-size: 12.5px; }
.approval-decision-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 2px 0 6px; }
.approval-decision-kpis > div { padding: 8px 10px; border: 1px solid #eef2f7; border-radius: 10px; background: #f8fafc; }
.approval-decision-kpis small { display: block; color: #64748b; font-size: 12px; }
.approval-decision-kpis b { color: #0f172a; font-size: 20px; font-variant-numeric: tabular-nums; }
.approval-decision-kpis em, .approval-decision-row em { color: #64748b; font-size: 12px; font-style: normal; font-weight: 500; }
.approval-decision-row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 6px 0; border-top: 1px solid #eef2f7; color: #475569; font-size: 13.5px; }
.approval-decision-row:last-child { padding-bottom: 0; }
.approval-decision-row > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.approval-decision-row > b { flex: none; color: #0f172a; font-variant-numeric: tabular-nums; }
.approval-decision-card :where(b):is(b.is-profit, .is-profit em), .approval-decision-card :where(em):is(b.is-profit, .is-profit em) { color: #15803d; }
.approval-decision-card b.is-negative { color: #b91c1c; }
.approval-decision-card > #approvalActions:not(#\#):not(#\#) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 12px; border-top: 1px solid #eef2f7; }
.approval-decision-card > #approvalActions[hidden]:not(#\#):not(#\#) { display: none; }
.approval-decision-card > #approvalActions .btn:not(#\#):not(#\#) { width: 100%; min-width: 0; height: 40px; min-height: 40px; padding: 0 8px; border-radius: 10px; font-size: 14px; }

/* ---------- Điện thoại ---------- */
@media (max-width: 1180px) {
  html:not(.bms-phone-v2) .qs-paper:not(#\#):not(#\#) .quotation-sheet-layout,
  html:not(.bms-phone-v2) .qs-approval.has-quote-paper:not(#\#):not(#\#) .approval-sheet-layout { grid-template-columns: minmax(0, 1fr); }
  html:not(.bms-phone-v2) .qs-paper:not(#\#):not(#\#) :where(.quotation-sheet-stage):is(.quotation-sheet-stage, .quotation-side), html:not(.bms-phone-v2) .qs-paper:not(#\#):not(#\#) :where(.quotation-side):is(.quotation-sheet-stage, .quotation-side) { grid-column: 1; grid-row: auto; position: static; }
  html:not(.bms-phone-v2) .qs-approval:not(#\#):not(#\#) .approval-board { position: static; }
}

/* ---------- Điện thoại (mockup https://claude.ai/artifact/E53FVDZWyZVvacAokgzgJt): tràn sát mép,
   Tiến trình trên cùng, thanh Xem/Sửa + Bản in, tờ báo giá xếp lại cho vừa (hàng hóa 2 tầng), Chỉ nội bộ cuối.
   Lớp điện thoại cũ (bms-phone-shell.css) dùng !important nên ở đây cũng vậy, độ ưu tiên cao hơn. ---------- */
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-sheet-layout { display: flex !important; flex-direction: column; gap: 8px; margin: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-side { display: contents !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) #quotationRoadmap { order: 1; padding: 12px 16px !important; border: 0 !important; border-radius: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-sheet-stage { order: 2; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) #quotationInternal { order: 3; padding: 14px 16px !important; border: 0 !important; border-radius: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-progress > header strong { font-size: 15px; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-progress-hint { font-size: 13px; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-sheet-tools { position: static !important; max-width: none !important; pointer-events: auto !important; justify-content: space-between !important; width: auto !important; margin: 0 !important; padding: 8px 16px !important; background: #fff; border-bottom: 1px solid #e2e8f0; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-sheet-tools { justify-content: flex-end !important; gap: 8px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-tool-btn { height: 36px !important; min-height: 36px !important; padding: 0 14px !important; font-size: 14px !important; }
/* tờ giấy */
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document { width: auto !important; margin: 0 !important; padding: 14px 12px 18px !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: #fff !important; font: 13px/1.35 Arial, sans-serif !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) :where(.quotation-document-meta):is(.quotation-document-meta, .quotation-party-grid), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) :where(.quotation-party-grid):is(.quotation-document-meta, .quotation-party-grid) { display: grid !important; gap: 0 !important; margin: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document :where(input):is(input, textarea, select), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document :where(textarea):is(input, textarea, select), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document :where(select):is(input, textarea, select) { width: 100% !important; min-width: 0 !important; min-height: 0 !important; padding: 1px 0 !important; border: 0 !important; border-radius: 3px !important; background: transparent !important; box-shadow: none !important; color: #111 !important; -webkit-text-fill-color: #111; font: inherit !important; text-align: left !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) :where(input):is(input, textarea, select), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) :where(textarea):is(input, textarea, select), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) :where(select):is(input, textarea, select) { font-weight: 700 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-inline-unit { justify-content: flex-start !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-inline-unit .ph-qexp { display: none; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document-meta > label[data-ph-date]::after { right: auto; left: 104px; top: 4px; bottom: auto; transform: none; color: #111; font: 400 13px/1.35 Arial, sans-serif; }
/* hàng hóa: tiêu đề xám STT · MÔ TẢ | THÀNH TIỀN, mỗi dòng 2 tầng (danh sách ph-qitems của bms-phone-quotation.js) */
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) :where(.quotation-items-section):is(.quotation-items-section, .quotation-terms-section), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) :where(.quotation-terms-section):is(.quotation-items-section, .quotation-terms-section) { display: block !important; margin: 22px 0 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-items-section, .quotation-terms-section) > .quotation-section-title { display: none !important; }
html.bms-phone-v2 body .qs-paper.is-quotation-editing:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-section > .quotation-section-title:has(.quotation-package-menu:not([hidden])) { display: flex !important; justify-content: flex-end !important; min-height: 0; margin: 0 0 6px !important; padding: 0 !important; border: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-section.ph-closed .ph-qitems { display: grid; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qitems { display: grid; border-bottom: 1px solid #555; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qitems::before { content: "STT · Mô tả"; display: flex; justify-content: space-between; padding: 7px 8px; border-bottom: 1px solid #111; background: #fff; color: #111; font: 700 12px/1.3 Arial, sans-serif; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qitems::after { content: "Thành tiền (VND)"; position: absolute; top: 7px; right: 8px; color: #111; font: 700 12px/1.3 Arial, sans-serif; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qitems { position: relative; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qi { counter-increment: phqi; grid-template-columns: 22px minmax(0, 1fr) auto !important; gap: 2px 8px !important; padding: 8px !important; border-bottom: 1px solid #9a9a9a !important; color: #111 !important; font: 13px/1.35 Arial, sans-serif !important; cursor: default; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qi:last-child { border-bottom: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qi::before { content: counter(phqi); grid-row: 1 / 3; align-self: start; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qitems { counter-reset: phqi; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qi b { grid-column: 2 / -1; font: 400 13px/1.35 Arial, sans-serif !important; -webkit-line-clamp: unset; display: block; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qi small { grid-column: 2; color: #333 !important; font: 12.5px/1.35 Arial, sans-serif !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qi strong { grid-column: 3; grid-row: 2; font: 700 13px/1.35 Arial, sans-serif !important; }
html.bms-phone-v2 body .qs-paper.is-quotation-editing:not(#\#):not(#\#):not(#\#):not(#\#) .ph-qi { cursor: pointer; box-shadow: inset 0 -1px 0 #93b4f0; }
/* Cộng / VAT / Tổng cộng như tờ giấy */
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals { width: auto !important; margin: 18px 0 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals > div { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; min-height: 0 !important; margin: 0 !important; padding: 5px 4px !important; border: 0 !important; border-top: 1px solid #8a8a8a !important; background: transparent !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals > div:last-child { border-bottom: 1px solid #8a8a8a !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals :where(span):is(span, strong, label, label > span, input), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals :where(strong):is(span, strong, label, label > span, input), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals :where(label):is(span, strong, label, label > span, input), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals :where(input):is(span, strong, label, label > span, input) { color: #111 !important; font: 700 13px/1.35 Arial, sans-serif !important; text-transform: none !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals input { width: 3em !important; height: auto !important; min-height: 0 !important; background: transparent !important; }
/* điều khoản: nhãn trên, nội dung dưới */
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-terms-section > .quotation-terms-list { display: grid !important; gap: 8px; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-terms-list > label { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 1px !important; padding: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-terms-list > label > span:first-child:not(.quotation-bank-fields) { color: #555 !important; font: 700 12px/1.3 Arial, sans-serif !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document-actions { padding: 8px 16px 16px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-sheet-tools { flex-direction: row !important; width: auto !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-sheet-tools > .quotation-tool-btn { box-shadow: none !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-inline-unit input { flex: none !important; width: 2.2em !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document-meta > label[data-ph-date] input[type="date"] { color: transparent !important; -webkit-text-fill-color: transparent; }
html.bms-phone-v2 body .qs-paper:not(.is-quotation-editing):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document :where(input):is(input, textarea)::placeholder, html.bms-phone-v2 body .qs-paper:not(.is-quotation-editing):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document :where(textarea):is(input, textarea)::placeholder { color: transparent !important; opacity: 0; }

/* Giám đốc duyệt trên điện thoại: khung quyết định gọn, rồi tờ báo giá đầy đủ, rồi Giải pháp kỹ thuật (Xem thêm/Thu gọn) */
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-sheet-layout { display: flex !important; flex-direction: column; gap: 12px; padding-top: 12px !important; background: #f1f5f9 !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-board { display: contents !important; }
/* Khung quyết định là một thẻ có viền bo góc trên nền xám, như mockup điện thoại (anh Hiệp 2026-10-25) */
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) #approvalDecisionCard { order: 1; margin: 0 12px !important; border: 1px solid #dce3ef !important; border-radius: 14px !important; background: #fff !important; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-paper-stage { order: 2; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: #fff !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-paper-stage > header { width: auto !important; margin: 0 !important; padding: 8px 16px !important; border-bottom: 1px solid #e2e8f0; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-paper-stage .quotation-tool-btn { height: 36px !important; min-height: 36px !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-board-body { order: 3; display: block !important; margin: 0 !important; padding: 0 !important; border: 0 !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) :where(#approvalProjectBrief):is(#approvalProjectBrief, .approval-board-head, .approval-board-lines, #approvalNote), html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) :where(.approval-board-head):is(#approvalProjectBrief, .approval-board-head, .approval-board-lines, #approvalNote), html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) :where(.approval-board-lines):is(#approvalProjectBrief, .approval-board-head, .approval-board-lines, #approvalNote), html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) :where(#approvalNote):is(#approvalProjectBrief, .approval-board-head, .approval-board-lines, #approvalNote) { display: none !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-board-facts { display: grid !important; gap: 6px; padding: 12px 16px !important; border: 0 !important; border-radius: 0 !important; background: #fff !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-board-facts > section:has(#approvalProjectSummary) { display: none !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-board-facts > section:has(#approvalSolutionSummary) h3 { display: none !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-board-facts:not(.is-open) > section { display: none !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-facts-toggle { display: flex !important; align-items: center; justify-content: space-between !important; width: 100% !important; min-height: 40px; padding: 0 !important; border: 0 !important; background: transparent !important; color: #0f172a !important; font: 700 15px/1.2 var(--bms-font, Roboto, system-ui, sans-serif) !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-facts-toggle::after { content: "Xem thêm ▾"; position: static !important; display: inline-flex !important; align-items: center; width: auto !important; height: 30px !important; padding: 0 12px; border: 1px solid #dce3ef !important; border-radius: 999px; background: #fff !important; color: #2563eb; font-size: 13px; font-weight: 600; transform: none !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#) .approval-facts-toggle[aria-expanded="true"]::after { content: "Thu gọn ▴"; }
/* bảng hàng hóa của bản sao: mỗi dòng 2 tầng (mô tả; SL ĐVT × đơn giá … thành tiền), ghi chú dòng 3 */
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table :where(thead):is(thead, tbody), html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table :where(tbody):is(thead, tbody) { display: block; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table tr { display: grid; grid-template-columns: 22px auto auto auto minmax(0, 1fr) auto; gap: 2px 6px; padding: 7px 8px; border-bottom: 1px solid #9a9a9a; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table thead tr { padding: 7px 8px; border-bottom: 1px solid #555; background: #c0c0c0; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table :where(th):is(th, td), html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table :where(td):is(th, td) { width: auto !important; padding: 0 !important; border: 0 !important; background: transparent !important; text-align: left !important; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table th:is(:nth-child(3), :nth-child(4), :nth-child(5), :nth-child(7)) { display: none; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table th:nth-child(2) { grid-column: 2 / 6; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table :where(th):is(th, td):nth-child(6), html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table :where(td):is(th, td):nth-child(6) { grid-column: 6; text-align: right !important; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table td:nth-child(1) { grid-column: 1; grid-row: 1 / 3; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table td:nth-child(2) { grid-column: 2 / -1; grid-row: 1; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table td:nth-child(3) { grid-column: 2; grid-row: 2; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table td:nth-child(4) { grid-column: 3; grid-row: 2; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table td:nth-child(5) { grid-column: 4; grid-row: 2; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table td:nth-child(5)::before { content: "× "; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table td:nth-child(6) { grid-row: 2; font-weight: 700; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table td:nth-child(7) { grid-column: 2 / -1; grid-row: 3; color: #555 !important; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table td:nth-child(7):empty { display: none; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) label[data-ph-date]::after { content: none !important; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-print-value { color: #111 !important; opacity: 1 !important; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table :where(th):is(th, td)::before, html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table :where(td):is(th, td)::before { content: none !important; display: none !important; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table td:nth-child(5)::before { content: "× " !important; display: inline !important; position: static !important; color: #111 !important; font: inherit !important; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table :where(th):is(th, td), html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table :where(td):is(th, td) { color: #111 !important; font: 13px/1.35 Arial, sans-serif !important; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table th { font-weight: 700 !important; font-size: 12px !important; }
html.bms-phone-v2 body .quotation-paper-clone.qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-table td:nth-child(6) { font-weight: 700 !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .approval-facts-toggle { justify-self: stretch !important; box-sizing: border-box; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .approval-board-facts { grid-template-columns: minmax(0, 1fr) !important; justify-items: stretch !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .approval-facts-toggle { min-width: 0 !important; max-width: none !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .approval-sheet-layout > *, html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .approval-board > * { align-self: stretch !important; width: auto !important; max-width: none !important; }

/* Điện thoại: Sửa trực tiếp bên trái, In bên phải; Chỉ nội bộ gập lại (tiêu đề "Lãi … · %") như mockup */
.quotation-internal-peek, .quotation-internal-caret { display: none; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-sheet-tools { justify-content: space-between !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-sheet-tools > .quotation-edit-toggle { order: -1; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-internal-card > header { margin: 0 !important; min-height: 32px; cursor: pointer; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-internal-peek { display: block; margin-left: auto; color: #15803d; font-size: 14px; font-variant-numeric: tabular-nums; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-internal-peek.is-negative { color: #b91c1c; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-internal-caret { display: block; color: #94a3b8; font-style: normal; transition: transform .15s; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-internal-card.is-open .quotation-internal-caret { transform: rotate(180deg); }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-internal-card:not(.is-open) > :not(header) { display: none !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#) .quotation-internal-card.is-open > header { margin-bottom: 8px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :where(#quotationRoadmap):is(#quotationRoadmap, .quotation-sheet-stage, #quotationInternal), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :where(.quotation-sheet-stage):is(#quotationRoadmap, .quotation-sheet-stage, #quotationInternal), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :where(#quotationInternal):is(#quotationRoadmap, .quotation-sheet-stage, #quotationInternal) { align-self: stretch !important; width: auto !important; max-width: none !important; }
/* Điện thoại: ô "Duyệt tự động" cùng kiểu với ô trạng thái (viền 1px, chữ 13px), như mockup (anh Hiệp 2026-10-25) */
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .approval-decision-chips :where(#approvalStatus):is(#approvalStatus, .approval-auto-trigger), html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .approval-decision-chips :where(.approval-auto-trigger):is(#approvalStatus, .approval-auto-trigger) { height: 40px !important; min-height: 40px !important; padding: 0 10px !important; border-width: 1px !important; border-radius: 10px !important; font: 600 13px/1.2 var(--bms-font, Roboto, system-ui, sans-serif) !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .approval-decision-chips #approvalStatus { line-height: 38px !important; }
html.bms-phone-v2 body .qs-approval:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .approval-decision-chips .approval-auto-dot { flex: none; }

/* Điện thoại: tờ báo giá theo mẫu Word (2026-10-28) – đầu tờ BÁO GIÁ + logo, thông tin một cột nhãn|giá trị, mục mở sẵn */
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document-header { display: flex !important; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px !important; margin: 0 0 14px !important; padding: 0 !important; border: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-heading-block { display: block !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document-kicker { display: none !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-heading-block h3 { margin: 0 !important; padding: 0 !important; background: transparent !important; color: #111 !important; font: 700 22px/1.2 Arial, sans-serif !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-company { display: block !important; padding: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-company-logo { width: 64px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document-header > .quotation-approval-card { flex: 1 0 100%; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-info-grid { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 0 !important; margin: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :where(.quotation-document-meta):is(.quotation-document-meta, .quotation-party-grid), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :where(.quotation-party-grid):is(.quotation-document-meta, .quotation-party-grid) { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 0 !important; margin: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) > label { position: relative; display: grid !important; grid-template-columns: 96px minmax(0, 1fr) !important; grid-column: auto !important; align-items: baseline; gap: 0 8px !important; min-height: 0 !important; margin: 0 !important; padding: 4px 0 !important; border: 0 !important; border-bottom: 1px dotted #9a9a9a !important; background: transparent !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) > label > span:first-child:not(.quotation-inline-unit) { display: block !important; width: auto !important; margin: 0 !important; color: #333 !important; font: 400 12.5px/1.35 Arial, sans-serif !important; white-space: normal; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) :where(input):is(input, textarea, select, .quotation-print-value), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) :where(textarea):is(input, textarea, select, .quotation-print-value), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) :where(select):is(input, textarea, select, .quotation-print-value), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) :where(.quotation-print-value):is(input, textarea, select, .quotation-print-value) { font-weight: 400 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-document-meta, .quotation-party-grid) > label > :not(span:first-child) { border: 0 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-product-line { display: block !important; margin: 14px 0 0 !important; font: 400 13px/1.35 Arial, sans-serif !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-product-line > span:first-child { display: inline !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-product-line :where(textarea):is(textarea, .quotation-print-value), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-product-line :where(.quotation-print-value):is(textarea, .quotation-print-value) { display: block; font-weight: 700 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-items-section { margin-top: 16px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .ph-qitems { border: 1px solid #111 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .ph-qi { border-bottom-color: #111 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document.is-export .ph-qitems::before { content: "SQ · Description"; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document.is-export .ph-qitems::after { content: "Amount (USD)"; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals > div { border-top: 0 !important; border-bottom: 1px solid #111 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals > div:not(:last-child) :where(span):is(span, strong, label, label > span, input), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals > div:not(:last-child) :where(strong):is(span, strong, label, label > span, input), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals > div:not(:last-child) :where(label):is(span, strong, label, label > span, input), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-totals > div:not(:last-child) :where(input):is(span, strong, label, label > span, input) { font-weight: 400 !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-export-section { margin: 22px 0 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-export-section[hidden] { display: none !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-export-section, .quotation-terms-section) > .quotation-section-title { display: flex !important; margin: 0 0 8px !important; padding: 0 0 4px !important; border-bottom: 1px solid #e5e7eb !important; color: #111 !important; font: 700 14px/1.3 Arial, sans-serif !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) :is(.quotation-export-section, .quotation-terms-section) > .quotation-section-title > span { color: #111 !important; font: inherit !important; text-transform: none !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-export-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 2px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-export-grid > label { font-size: 13px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-export-grid :where(input):is(input, textarea, .quotation-print-value), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-export-grid :where(textarea):is(input, textarea, .quotation-print-value), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-export-grid :where(.quotation-print-value):is(input, textarea, .quotation-print-value), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-export-grid > label > span:first-child { font-size: 13px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-terms-list > label > :where(select):is(select, span):first-child, html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-terms-list > label > :where(span):is(select, span):first-child { width: auto !important; color: #555 !important; font: 700 12px/1.3 Arial, sans-serif !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-terms-lead { margin: 0 0 8px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-terms-lead > span:first-child { display: none !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-signatures { margin-top: 28px !important; font-size: 13px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-sign-sales > strong { margin-top: 48px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-sign-sales :where(textarea):is(textarea, .quotation-print-value), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-sign-sales :where(.quotation-print-value):is(textarea, .quotation-print-value) { font-size: 12.5px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-company-footer { grid-template-columns: minmax(0, 1fr) !important; gap: 4px !important; margin-top: 32px !important; font-size: 11.5px !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-company-footer-links { justify-items: start !important; text-align: left !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document :where(input):is(input, select), html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-document :where(select):is(input, select) { height: auto !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) #quotationDocumentTitle { display: block !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-party-grid > label > span:first-child::after { content: none !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .ph-qterms-sub { display: none !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-contact-pair > input:first-child { flex: 0 1 auto !important; width: auto !important; min-width: 6em !important; max-width: 60% !important; field-sizing: content !important; }
html.bms-phone-v2 body .qs-paper:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#) .quotation-inline-unit em { color: #111 !important; font: 400 13px/1.35 Arial, sans-serif !important; }

/* Máy tính (kiểm tra v8.0.0): tên khách hàng dài không chạm sang "Số báo giá" — cách cột 24px, chữ dài kết thúc bằng "…". */
@media (min-width: 901px) {
  html:not(.bms-phone-v2) .qs-paper:not(#\#):not(#\#) .quotation-info-grid { column-gap: 24px; }
  html:not(.bms-phone-v2) .qs-paper:not(#\#):not(#\#) .quotation-party-grid > label > input { text-overflow: ellipsis; }
}
