/* kz-cart-auth.css – Kaizen Medicare theo bản vẽ
   Nhóm C: Giỏ hàng (W04 · Web-GioHang), Đăng nhập / Đăng ký (W05 · Web-DangKy), Cảm ơn / Kiểm tra đơn hàng.
   Giỏ hàng dùng lại markup + JS chung (fhh-framework/cart/cart-op-mobile/view.html, static/js/cart-mobile-optimized.js);
   mọi quy tắc được gói trong .kz-cart để không ảnh hưởng trang khác. */

/* =========================================================
   1. GIỎ HÀNG – khung trang
   ========================================================= */
.cart-mobile-layout .cart-mobile-header,
.cart-mobile-layout .cart-mobile-footer { display: none !important; }
body:has(.kz-cart-page) { background: #F4F8FD !important; font-family: 'Open Sans', system-ui, sans-serif !important; color: #0E1A33; }
.cart-mobile-layout:has(.kz-cart-page) .cart-mobile-content { overflow: visible; padding: 0; }
.kz-cart-page { font-family: 'Open Sans', system-ui, sans-serif; color: #0E1A33; }
.kz-cart { background: #F4F8FD; }
.kz-cart, .kz-cart input, .kz-cart select, .kz-cart textarea, .kz-cart button { font-family: 'Open Sans', system-ui, sans-serif; }
.kz-cart a { text-decoration: none; }

.kz-cart__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; padding-top: 32px; }
.kz-cart__title { margin: 0; font-size: 32px; font-weight: 800; line-height: 1.2; color: #14407F; }
.kz-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.kz-steps__item { display: flex; align-items: center; gap: 8px; color: #5A6B85; }
.kz-steps__item.is-active { color: #14407F; }
.kz-steps__num { width: 28px; height: 28px; border-radius: 14px; background: #D8E3F1; color: #14407F; display: flex; align-items: center; justify-content: center; font-size: 14px; }
.kz-steps__item.is-active .kz-steps__num { background: #14407F; color: #FFFFFF; }
.kz-steps__sep { color: #8FA7C9; }

.kz-cart .cart-container { background: transparent; padding: 24px 0 72px; }
.kz-cart .cart-wrapper { max-width: 1280px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.kz-cart .cart-content { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
.kz-cart .cart-items-section {
    flex: 999 1 600px; min-width: 0; order: 0;
    background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: visible;
    display: flex; flex-direction: column; gap: 16px;
}
.kz-cart .checkout-section {
    flex: 1 1 320px; max-width: 400px; min-width: 0; order: 0; position: static;
    background: #FFFFFF; border: 1px solid #D8E3F1; border-radius: 16px; padding: 24px; box-sizing: border-box;
    display: flex; flex-direction: column; gap: 14px; box-shadow: none;
}

/* framwork-fhh-version-1.css (CSS giỏ hàng chung) có quy tắc "span { display:inline !important }".
   Trả lại kiểu hiển thị cho các span của header/menu mobile/trang giỏ hàng Kaizen. */
body .kz-topbar__hotline,
body .kz-brand__name, body .kz-brand__tag,
body .kz-mbrand__name, body .kz-mbrand__tag,
body .kz-action > span:not(.kz-action__icon),
body .kz-cat__btn > span, body .kz-cat__name,
body .menu-mobile-drawer__close > span, body .menu-mobile-item__index,
body .menu-mobile-leaf__label, body .menu-mobile-accordion__label,
body .menu-mobile-sublink__index, body .menu-mobile-sublink__text { display: block !important; }
body .kz-brand__text { display: flex !important; flex-direction: column; }
body .kz-mbrand__text { display: flex !important; flex-direction: column; }
body .kz-action__icon, body .kz-cat__ico { display: inline-flex !important; }
body .kz-search span.kz-search__btn, body .header_mobile .col-12 > span.btn-search,
body .header_mobile .col-2 > span { display: flex !important; }
body .menu-mobile-subgroup__count { display: inline-block !important; }
body span.clear-text.hide, body span.qty.kz-hide { display: none !important; }
body .kz-action.cart-header { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; text-align: left !important; border-radius: 0 !important; }
.kz-steps__num, .kz-cart .kz-cart-thead span { display: flex !important; }
.kz-cart .kz-cart-thead span { display: block !important; }
.kz-cart .item-cart .btn-DivCount, .kz-cart .item-cart .btn-AddCount { display: flex !important; }

/* Thẻ trắng dùng chung */
.kz-cart .kz-cart-table,
.kz-cart .shipping-info,
.kz-cart .voucher-in-cart-left,
.kz-cart .ecard-balance-section {
    background: #FFFFFF !important; border: 1px solid #D8E3F1 !important; border-radius: 16px !important;
    box-shadow: none !important; margin: 0 !important; overflow: hidden;
}

/* =========================================================
   2. Bảng sản phẩm
   ========================================================= */
.kz-cart .kz-cart-table { padding: 0 !important; overflow-x: auto; }
.kz-cart .kz-cart-thead,
.kz-cart #list_product_item > div.item-cart {
    display: grid; grid-template-columns: minmax(0, 1fr) 130px 140px 140px 40px; column-gap: 16px; align-items: center;
}
.kz-cart .kz-cart-thead { padding: 16px 20px; border-bottom: 1px solid #D8E3F1; color: #5A6B85; font-size: 13px; font-weight: 600; }
.kz-cart .kz-cart-thead span:nth-child(2), .kz-cart .kz-cart-thead span:nth-child(4) { text-align: right; }
.kz-cart .kz-cart-thead span:nth-child(3) { text-align: center; }
.kz-cart .kz-cart-table:not(:has(.item-cart)) .kz-cart-thead { display: none; }
.kz-cart #list_product_item { padding: 0; margin: 0; }
.kz-cart #list_product_item > div.item-cart {
    padding: 16px 20px !important; margin: 0 !important; border: 0; border-bottom: 1px solid #D8E3F1;
    background: #FFFFFF; box-shadow: none; border-radius: 0; float: none; width: auto; min-height: 0; position: relative;
}
.kz-cart #list_product_item > div.item-cart:last-of-type { border-bottom: 0; }
.kz-cart .item-cart .cart-item-left { grid-column: 1; grid-row: 1; width: auto !important; max-width: none !important; float: none !important; padding: 0 !important; min-width: 0; }
.kz-cart .item-cart .cart-item-left p { margin: 0 !important; padding: 0 !important; text-align: left !important; }
.kz-cart .item-cart .cart-item-left a {
    display: flex; align-items: center; gap: 14px; font-size: 15px; font-weight: 700; line-height: 1.4; color: #14407F !important; text-decoration: none;
}
.kz-cart .item-cart .cart-item-left a:hover { color: #1673B8 !important; }
.kz-cart .item-cart img.img-cart {
    width: 64px !important; height: 64px !important; min-width: 64px; max-width: 64px !important; flex-shrink: 0; margin: 0 !important;
    border-radius: 10px; border: 1px solid #D8E3F1; background: #F4F8FD; object-fit: contain; padding: 4px; box-sizing: border-box; float: none !important;
}
.kz-cart .item-cart .cart-item-right { display: contents !important; }
.kz-cart .item-cart .cart-item-right > div,
.kz-cart .item-cart .cart-item-right > form { grid-row: 1; float: none !important; width: auto !important; max-width: none !important; padding: 0 !important; margin: 0 !important; position: static !important; }
.kz-cart .item-cart .cart-item-right > div:nth-of-type(1) { grid-column: 2; }
.kz-cart .item-cart .cart-item-right > form.item_card { grid-column: 3; justify-self: center; }
.kz-cart .item-cart .cart-item-right > div:nth-of-type(2) { grid-column: 4; }
.kz-cart .item-cart .cart-item-right > form.delete_item { grid-column: 5; justify-self: end; }
.kz-cart .item-cart .clearfix { display: none !important; }
.kz-cart .item-cart p.payment-table-header { display: none !important; }
.kz-cart .item-cart p.item-content-payment-table.columns-table-payment-2 {
    margin: 0 !important; padding: 0 !important; text-align: right !important; white-space: nowrap;
    font-size: 15px; font-weight: 600 !important; color: #14407F !important;
}
.kz-cart .item-cart .cart-item-right > div:nth-of-type(1) p::after,
.kz-cart .item-cart .cart-item-right > div:nth-of-type(2) p::after { content: ' đ'; }
.kz-cart .item-cart .cart-item-right > div:nth-of-type(2) p { font-weight: 700 !important; }

/* Bộ tăng giảm số lượng */
.kz-cart form.item_card {
    display: inline-flex !important; align-items: center; border: 1px solid #D8E3F1; border-radius: 10px; overflow: hidden; background: #FFFFFF; height: 44px;
}
.kz-cart form.item_card .btn-DivCount,
.kz-cart form.item_card .btn-AddCount {
    width: 40px; height: 44px; display: flex !important; align-items: center; justify-content: center; float: none !important;
    margin: 0 !important; padding: 0 !important; background: #FFFFFF; color: #14407F; font-size: 18px !important; line-height: 1 !important; border: 0; border-radius: 0; cursor: pointer;
}
.kz-cart form.item_card .btn-DivCount i, .kz-cart form.item_card .btn-AddCount i { display: none; }
.kz-cart form.item_card .btn-DivCount::before { content: '\2212'; font-weight: 600; }
.kz-cart form.item_card .btn-AddCount::before { content: '+'; font-weight: 600; }
.kz-cart form.item_card .btn-DivCount:hover, .kz-cart form.item_card .btn-AddCount:hover { background: #EAF2FB; color: #14407F; }
.kz-cart form.item_card .btn-DivCount:focus-visible, .kz-cart form.item_card .btn-AddCount:focus-visible { outline: 2px solid #1673B8; outline-offset: -2px; }
.kz-cart form.item_card input.input-count {
    width: 48px !important; min-width: 36px; height: 44px !important; float: none !important; margin: 0 !important; padding: 0 !important;
    border: 0 !important; background: #FFFFFF !important; box-shadow: none !important; color: #14407F !important;
    font-size: 15px !important; font-weight: 700; text-align: center; -moz-appearance: textfield;
}
/* Nút xoá */
.kz-cart form.delete_item a.delete_item_cart {
    width: 36px; height: 36px; display: flex !important; align-items: center; justify-content: center; position: static !important;
    border-radius: 10px; border: 1px solid #D8E3F1; background: #FFFFFF !important; color: #5A6B85 !important; box-shadow: none !important; cursor: pointer; font-size: 18px; margin: 0 !important;
}
.kz-cart form.delete_item a.delete_item_cart:hover { border-color: #14407F; color: #14407F !important; }
.kz-cart form.delete_item a.delete_item_cart i { color: inherit !important; font-size: 18px !important; }

/* Giỏ rỗng */
.kz-cart #empty-cart-message { display: none !important; }
.kz-cart .kz-cart-table:has(.item-cart) .kz-cart-empty { display: none !important; }
.kz-cart .kz-cart-empty { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; padding: 48px 24px; }
.kz-cart .kz-cart-empty__title { margin: 6px 0 0; font-size: 20px; font-weight: 800; color: #14407F; }
.kz-cart .kz-cart-empty__text { margin: 0 0 8px; font-size: 15px; color: #5A6B85; }
.kz-btn-navy {
    min-height: 48px; padding: 0 24px; border-radius: 10px; background: #14407F; color: #FFFFFF !important;
    display: inline-flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; text-decoration: none; border: 0;
}
.kz-btn-navy:hover { background: #1673B8; color: #FFFFFF !important; }
.kz-cart #error_message:empty { display: none; }

/* Liên kết dưới bảng */
.kz-cart .kz-cart-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.kz-cart .kz-cart-links__back { min-height: 44px; display: flex; align-items: center; font-size: 15px; font-weight: 700; color: #1673B8 !important; }
.kz-cart .kz-cart-links__back:hover { color: #14407F !important; }

/* =========================================================
   3. Thông tin giao hàng, mã giảm giá, eCard (cột trái)
   ========================================================= */
.kz-cart .shipping-info { padding: 24px !important; display: flex; flex-direction: column; gap: 16px; }
.kz-cart .shipping-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 0 !important; margin: 0 !important; background: none !important; border: 0 !important; }
.kz-cart .shipping-info h3,
.kz-cart .voucher-section-header h3,
.kz-cart .ecard-balance-section h3 { margin: 0 !important; font-size: 20px !important; font-weight: 800 !important; color: #14407F !important; display: flex; align-items: center; gap: 10px; }
.kz-cart .shipping-info h3 i, .kz-cart .voucher-section-header h3 i, .kz-cart .ecard-balance-section h3 > i:first-child { color: #1673B8 !important; font-size: 18px; margin: 0 !important; }
.kz-cart .edit-btn {
    min-height: 40px; padding: 0 14px; border-radius: 10px; border: 1.5px solid #1673B8 !important; background: #FFFFFF !important;
    color: #14407F !important; font-size: 14px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; box-shadow: none !important;
}
.kz-cart .edit-btn:hover { background: #EAF2FB !important; }
.kz-cart .shipping-display { padding: 16px; border-radius: 12px; background: #F4F8FD; display: grid; gap: 10px; }
.kz-cart .shipping-company, .kz-cart .shipping-contact { padding: 0 !important; margin: 0 !important; border: 0 !important; background: none !important; }
.kz-cart .shipping-company { display: flex; align-items: center; gap: 10px; }
.kz-cart .shipping-company i, .kz-cart .contact-item i { color: #1673B8 !important; width: 18px; text-align: center; }
.kz-cart .company-name { font-size: 16px; font-weight: 700; color: #14407F; }
.kz-cart .shipping-contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px 16px; }
.kz-cart .contact-item { display: flex; align-items: center; gap: 10px; margin: 0 !important; font-size: 15px; color: #3D4E6B; }
.kz-cart .shipping-form { padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.kz-cart .shipping-form .form-group { margin: 0 !important; display: flex; flex-direction: column; gap: 6px; }
.kz-cart .shipping-form .form-group:has(textarea), .kz-cart .shipping-form .form-actions { grid-column: 1 / -1; }
.kz-cart .form-label { font-size: 14px !important; font-weight: 600 !important; color: #14407F !important; margin: 0 !important; }
.kz-cart .form-input, .kz-cart .coupon-input, .kz-cart .address-selector input {
    min-height: 46px; border: 1px solid #C6D5EA !important; border-radius: 10px !important; padding: 0 14px !important;
    font-size: 15px !important; color: #0E1A33 !important; background: #FFFFFF !important; box-shadow: none !important; width: 100%; box-sizing: border-box;
}
.kz-cart textarea.form-input { padding: 12px 14px !important; min-height: 88px; }
.kz-cart .form-input:focus, .kz-cart .coupon-input:focus { border-color: #1673B8 !important; outline: 2px solid rgba(28,136,208,.25); outline-offset: 0; }
.kz-cart .form-actions { display: flex; gap: 10px; }
.kz-cart .save-btn, .kz-cart .btn-save, .kz-cart .btn-confirm, .kz-cart .add-address-btn {
    min-height: 44px; padding: 0 18px; border-radius: 10px !important; border: 0 !important; background: #14407F !important; color: #FFFFFF !important; font-weight: 700; box-shadow: none !important;
}
.kz-cart .cancel-btn, .kz-cart .btn-cancel {
    min-height: 44px; padding: 0 18px; border-radius: 10px !important; border: 1.5px solid #D8E3F1 !important; background: #FFFFFF !important; color: #14407F !important; font-weight: 700;
}
/* Khối VAT (thuộc khối giao hàng) */
.kz-cart .shipping-info > .form-group { padding: 0 !important; margin: 0 !important; }
.kz-cart .shipping-info .checkbox { min-height: 44px; }
.kz-cart #check_vat { width: 20px; height: 20px; accent-color: #14407F; margin: 0 10px 0 0 !important; flex-shrink: 0; }
.kz-cart label[for="check_vat"] { font-size: 15px !important; font-weight: 600 !important; color: #14407F !important; }
.kz-cart label[for="check_vat"] span { color: #5A6B85 !important; font-weight: 400; font-size: 13px !important; }
.kz-cart .check_vat { padding: 16px !important; border-radius: 12px; background: #F4F8FD; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.kz-cart .check_vat[style*="block"] { display: grid !important; }
.kz-cart .check_vat .form-group { margin: 0 !important; display: flex; flex-direction: column; gap: 6px; }

/* Mã giảm giá */
.kz-cart .voucher-in-cart-left { padding: 24px !important; display: flex; flex-direction: column; gap: 14px; }
.kz-cart .voucher-section-header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; padding: 0 !important; margin: 0 !important; background: none !important; border: 0 !important; }
.kz-cart .voucher-section-header h3 { font-size: 18px !important; }
.kz-cart .voucher-count { font-size: 13px; color: #5A6B85; background: #F4F8FD; border-radius: 999px; padding: 4px 10px; }
.kz-cart .voucher-section-header .voucher { color: #1673B8 !important; padding: 0 !important; font-size: 14px !important; font-weight: 600; }
.kz-cart .coupon-input-group { display: flex !important; gap: 10px; padding: 0 !important; margin: 0 !important; border: 0 !important; background: none !important; }
.kz-cart .coupon-input-group .coupon-input { flex: 1 1 auto; width: auto !important; min-width: 0; }
.kz-cart .coupon-input-group .coupon-btn { flex: 0 0 auto; width: auto !important; }
.kz-cart .coupon-btn {
    min-height: 46px; padding: 0 20px; border-radius: 10px !important; border: 0 !important; background: #1673B8 !important; color: #FFFFFF !important;
    font-size: 15px !important; font-weight: 700 !important; white-space: nowrap; box-shadow: none !important;
}
.kz-cart .coupon-btn:hover { background: #14407F !important; }
.kz-cart .vouchers-container { padding: 0 !important; margin: 0 !important; }
.kz-cart .vouchers-container:not(:has(.list-voucher *)) { display: none; }

/* eCard */
.kz-cart .ecard-balance-section { padding: 20px 24px !important; }
.kz-cart .ecard-balance-section h3.collapsible-header { font-size: 18px !important; justify-content: flex-start; text-align: left; border: 0 !important; padding: 0 !important; margin: 0 !important; }
.kz-cart .ecard-content { padding-top: 14px; }
.kz-cart .ecard-content .form-group { margin-bottom: 12px; }

/* =========================================================
   4. Cột phải – Tóm tắt đơn hàng
   ========================================================= */
.kz-cart .kz-cart-summary { display: flex; flex-direction: column; gap: 14px; }
.kz-cart .kz-cart-summary__title { margin: 0; font-size: 20px; font-weight: 800; color: #14407F; line-height: 1.3; }
.kz-cart .total-section-left {
    position: static !important; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important;
    background: none !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; z-index: auto !important;
}
.kz-cart .total-section-left .total-content { padding: 0 !important; margin: 0 !important; background: none !important; display: flex; flex-direction: column; gap: 10px; }
.kz-cart .total-section-left .total-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 0 !important; padding: 0 !important; font-size: 15px !important; color: #3D4E6B; border: 0; background: none; }
.kz-cart .total-section-left .total-row[style*="display: none"] { display: none !important; }
.kz-cart .total-section-left .total-row > span:last-child { color: #14407F; font-weight: 700; text-align: right; }
.kz-cart .total-section-left .total-row.final-total { margin-top: 4px !important; padding-top: 14px !important; border-top: 1px solid #D8E3F1 !important; }
.kz-cart .total-section-left .total-row.final-total > span:first-child { font-size: 16px; font-weight: 700; color: #14407F; }
.kz-cart .total-section-left .total-row.final-total > span:last-child { font-size: 24px; font-weight: 800; color: #14407F !important; }
.kz-cart .total-section-left .free-ship-note,
.kz-cart .total-section-left #freeShipNote {
    color: #14407F !important; background: #EAF2FB !important; border: 1px dashed #8FA7C9 !important; border-radius: 10px !important; padding: 10px 12px !important; font-weight: 600 !important; font-size: 13px !important;
}
.kz-cart .total-section-left #freeShipNote * { color: #14407F !important; }
.kz-cart .total-section-left #freeShipNote i { color: #1673B8 !important; }
.kz-cart .total-section-left del, .kz-cart .total-section-left s { color: #8FA7C9 !important; font-weight: 400; }
.kz-cart .total-section-left .shipping_cost *, .kz-cart .total-section-left [style*="color: green"], .kz-cart .total-section-left [style*="color:#28a745"], .kz-cart .total-section-left [style*="color: #28a745"] { color: #1673B8 !important; }
.kz-cart .total-section-left .shipping_cost del, .kz-cart .total-section-left .shipping_cost s { color: #8FA7C9 !important; }

/* Điểm tích luỹ, vận chuyển, thanh toán (dạng phẳng trong thẻ tóm tắt) */
.kz-cart .checkout-section > .points-section,
.kz-cart .checkout-section > .payment-methods {
    margin: 0 !important; padding: 14px 0 0 !important; border: 0 !important; border-top: 1px solid #D8E3F1 !important; border-radius: 0 !important;
    background: none !important; box-shadow: none !important; color: #0E1A33;
}
.kz-cart .points-section h3 { font-size: 16px; font-weight: 700; color: #14407F; }
.kz-cart .points-section .tichluy_cart_change { color: #1673B8 !important; }
.kz-cart .payment-methods h3.collapsible-header {
    background: none !important; padding: 0 !important; margin: 0 0 10px !important; border: 0 !important; border-radius: 0 !important;
    font-size: 16px !important; font-weight: 700 !important; color: #14407F !important; display: flex; justify-content: flex-start; gap: 10px; text-align: left;
}
.kz-cart .payment-methods h3.collapsible-header i:first-child { color: #1673B8 !important; margin: 0 !important; font-size: 16px; }
.kz-cart .payment-methods h3.collapsible-header .toggle-icon { margin-left: auto !important; color: #5A6B85 !important; }
.kz-cart .payment-method,
.kz-cart .shipping-method {
    display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px !important; margin: 0 0 8px !important;
    border: 1px solid #D8E3F1 !important; border-radius: 12px !important; background: #FFFFFF !important; transform: none !important; box-shadow: none !important;
}
.kz-cart .payment-method::before, .kz-cart .shipping-method::before { display: none !important; }
.kz-cart .payment-method.active, .kz-cart .shipping-method.active { border-color: #14407F !important; background: #F4F8FD !important; }
.kz-cart .payment-method input[type="radio"],
.kz-cart .shipping-method input[type="radio"] {
    -webkit-appearance: radio; appearance: auto; width: 18px !important; height: 18px !important; min-width: 18px; margin: 3px 0 0 !important;
    border: 0 !important; background: none !important; box-shadow: none !important; accent-color: #14407F; transform: none !important; flex-shrink: 0;
}
.kz-cart .payment-method input[type="radio"]::after, .kz-cart .shipping-method input[type="radio"]::after,
.kz-cart .payment-method input[type="radio"]::before, .kz-cart .shipping-method input[type="radio"]::before { display: none !important; content: none !important; }
.kz-cart .payment-method strong, .kz-cart .shipping-method strong { font-size: 15px; font-weight: 700; color: #14407F !important; margin: 0 0 2px; }
.kz-cart .payment-method p, .kz-cart .shipping-method p { font-size: 13px !important; line-height: 1.55; color: #5A6B85 !important; margin: 0; }
.kz-cart .shipping-method-content img, .kz-cart .payment-method-content img { display: none; }
.kz-cart .view-all-btn { background: none !important; border: 0 !important; color: #1673B8 !important; font-weight: 600; padding: 4px 0 !important; }

.kz-cart .kz-cart-summary__foot { border-top: 1px solid #D8E3F1; padding-top: 14px; }
.kz-cart .kz-cart-summary__note { margin: 0; font-size: 13px; line-height: 1.6; color: #5A6B85; }
.kz-cart #payging_btn.checkout-btn {
    width: 100%; min-height: 52px; margin: 0 !important; padding: 0 20px !important; border: 0 !important; border-radius: 10px !important;
    background: #14407F !important; color: #FFFFFF !important; box-shadow: none !important; transform: none !important;
    font-size: 16px !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important;
    display: flex; align-items: center; justify-content: center; gap: 10px; position: static !important;
}
.kz-cart #payging_btn.checkout-btn[style*="display: none"] { display: none !important; }
.kz-cart #payging_btn.checkout-btn:hover { background: #1673B8 !important; }
.kz-cart #payging_btn.checkout-btn::before, .kz-cart #payging_btn.checkout-btn::after { display: none !important; }
.kz-cart #payging_btn.checkout-btn i { font-size: 15px; }
.kz-cart .kz-cart-quote {
    min-height: 48px; border-radius: 10px; border: 2px solid #1673B8; box-sizing: border-box; color: #14407F !important;
    font-size: 15px; font-weight: 700; display: flex; align-items: center; justify-content: center; text-decoration: none; background: #FFFFFF;
}
.kz-cart .kz-cart-quote:hover { background: #EAF2FB; }

/* Popup chọn địa chỉ (giữ chức năng, đổi màu) */
.address-popup-header, .address-form-header, .address-management-header { background: #F4F8FD !important; }
.address-popup-header h3, .address-form-header h3, .address-management-header h3 { color: #14407F !important; font-weight: 700 !important; }

/* =========================================================
   5. Giỏ hàng – responsive
   ========================================================= */
@media (max-width: 1024px) {
    .kz-cart .checkout-section { max-width: none; flex-basis: 100%; }
}
@media (max-width: 767px) {
    .kz-cart__head { padding-top: 20px; }
    .kz-cart__title { font-size: 26px; }
    .kz-steps { font-size: 13px; gap: 6px; }
    .kz-steps__num { width: 24px; height: 24px; font-size: 12px; }
    .kz-cart .cart-container { padding: 16px 0 48px; }
    .kz-cart .cart-wrapper { padding: 0 16px; }
    .kz-cart .cart-content { gap: 16px; }
    .kz-cart .cart-items-section { flex-basis: 100%; }
    .kz-cart .kz-cart-thead { display: none; }
    .kz-cart #list_product_item > div.item-cart {
        grid-template-columns: minmax(0, 1fr) auto auto; row-gap: 12px; column-gap: 12px; padding: 16px !important;
    }
    .kz-cart .item-cart .cart-item-left { grid-column: 1 / 3; grid-row: 1; }
    .kz-cart .item-cart .cart-item-right > form.delete_item { grid-column: 3; grid-row: 1; align-self: start; }
    .kz-cart .item-cart .cart-item-right > form.item_card { grid-column: 1; grid-row: 2; justify-self: start; }
    .kz-cart .item-cart .cart-item-right > div:nth-of-type(1) { grid-column: 2; grid-row: 2; }
    .kz-cart .item-cart .cart-item-right > div:nth-of-type(2) { grid-column: 3; grid-row: 2; }
    .kz-cart .item-cart p.payment-table-header {
        display: block !important; margin: 0 0 2px !important; padding: 0 !important; text-align: right; font-size: 12px !important; font-weight: 500; color: #5A6B85 !important;
    }
    .kz-cart .item-cart p.item-content-payment-table.columns-table-payment-2 { font-size: 14px; }
    .kz-cart .item-cart .cart-item-left a { font-size: 14px; }
    .kz-cart .item-cart img.img-cart { width: 56px !important; height: 56px !important; min-width: 56px; max-width: 56px !important; }
    .kz-cart .shipping-info, .kz-cart .voucher-in-cart-left, .kz-cart .checkout-section { padding: 18px !important; }
    .kz-cart .ecard-balance-section { padding: 16px 18px !important; }
    .kz-cart .shipping-info h3 { font-size: 18px !important; }
    .kz-cart .coupon-input-group { flex-direction: column; }
}
.kz-cart form.delete_item { box-shadow: none !important; background: none !important; border: 0 !important; }
.kz-cart .ecard-current-balance, .kz-cart .ecard-content .form-label span { color: #14407F !important; }
.kz-cart .edit-btn { white-space: nowrap; flex-shrink: 0; }
.kz-cart .shipping-header h3 { min-width: 0; }

/* =========================================================
   6. Trang đặt hàng thành công (vi/cart/thank_you.html – template riêng của theme)
   ========================================================= */
.kz-ty { background: #F4F8FD; padding: 32px 0 64px; font-family: 'Open Sans', system-ui, sans-serif; color: #0E1A33; }
.kz-ty__sheet { display: flex; flex-direction: column; gap: 16px; background: #F4F8FD; }
.kz-ty__card, .kz-ty__hero {
    background: #FFFFFF; border: 1px solid #D8E3F1; border-radius: 16px; padding: 20px 24px;
}
.kz-ty__hero { display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; padding: 28px; }
.kz-ty__check { width: 64px; height: 64px; border-radius: 50%; background: #14407F; display: grid; place-items: center; box-shadow: 0 0 0 8px #EAF2FB; }
.kz-ty__eyebrow { margin: 0 0 2px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1673B8; }
.kz-ty__title { margin: 0 0 6px; font-size: 28px; font-weight: 800; line-height: 1.25; color: #14407F; }
.kz-ty__meta { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 15px; color: #5A6B85; }
.kz-ty__code { color: #0E1A33; font-weight: 800; }
.kz-ty__dot { color: #8FA7C9; }
.kz-ty__copy {
    display: inline-grid; place-items: center; width: 28px; height: 28px; padding: 0; margin: 0 0 0 4px; border: 1px solid #D8E3F1;
    border-radius: 8px; background: #FFFFFF; color: #1673B8; cursor: pointer; flex-shrink: 0;
}
.kz-ty__copy:hover, .kz-ty__copy:focus-visible { border-color: #1673B8; background: #EAF2FB; outline: none; }
.kz-ty__status { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.kz-ty__chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; }
.kz-ty__chip::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.kz-ty__chip.is-ok { background: #EAF2FB; color: #14407F; }
.kz-ty__chip.is-wait { background: #FEF3E6; color: #A35A0F; }
.kz-ty__chip.is-wait::before { animation: kzPulse 1.4s ease-in-out infinite; }
@keyframes kzPulse { 50% { opacity: .3; } }
.kz-ty__steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; font-weight: 600; color: #14407F; }
.kz-ty__steps li { display: flex; align-items: center; gap: 10px; }
.kz-ty__steps span { width: 24px; height: 24px; border-radius: 50%; background: #14407F; color: #9DDFF2; display: grid; place-items: center; font-size: 12px; font-weight: 800; }
.kz-ty__note { display: flex; gap: 12px; align-items: flex-start; padding: 14px 18px; border-radius: 12px; background: #EAF2FB; border: 1px solid #C6D8EF; }
.kz-ty__note svg { flex-shrink: 0; margin-top: 2px; }
.kz-ty__note p { margin: 0; font-size: 14px; line-height: 1.6; color: #0E1A33; }

.kz-ty__grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 16px; align-items: start; }
.kz-ty__side { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; gap: 16px; }
.kz-ty__items { grid-column: 1; grid-row: 1; padding: 20px 24px 8px; }
.kz-ty__h2 { margin: 0 0 14px; font-size: 18px; font-weight: 800; color: #14407F; line-height: 1.3; }
.kz-ty__h2 span { font-weight: 600; color: #5A6B85; }
.kz-ty__name { margin: 0 0 4px; font-size: 16px; font-weight: 700; color: #0E1A33; text-transform: uppercase; }
.kz-ty__line { margin: 0 0 2px; font-size: 14px; line-height: 1.6; color: #3D4E6B; }

.kz-ty__dl { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.kz-ty__dl > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 8px; align-items: center; font-size: 14px; }
.kz-ty__dl dt { margin: 0; font-weight: 500; color: #5A6B85; }
.kz-ty__dl dd { margin: 0; display: flex; align-items: center; gap: 4px; color: #0E1A33; word-break: break-word; }
.kz-ty__dl dd strong { font-weight: 700; }
.kz-ty__amount { color: #14407F; font-size: 17px; }

.kz-ty__bank { border-color: #1673B8; }
.kz-ty__bank-body { display: flex; flex-direction: column; gap: 16px; }
.kz-ty__qr { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px; background: #F4F8FD; border-radius: 12px; }
.kz-ty__qr img { width: 180px; height: 180px; object-fit: contain; background: #FFFFFF; border-radius: 8px; }
.kz-ty__qr span { font-size: 12px; color: #5A6B85; }
.kz-ty__warn { margin: 14px 0 0; padding-top: 12px; border-top: 1px dashed #D8E3F1; font-size: 13px; line-height: 1.55; color: #A35A0F; }
.kz-ty__bank.is-paid .kz-ty__bank-body, .kz-ty__bank.is-paid .kz-ty__warn { display: none; }
.kz-ty__bank.is-paid .kz-ty__h2::after { content: ' · Đã nhận thanh toán'; color: #1673B8; font-weight: 600; font-size: 15px; }

.kz-ty__methods { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.kz-ty__methods li { display: flex; gap: 12px; align-items: center; }
.kz-ty__mi { width: 40px; height: 40px; border-radius: 10px; background: #EAF2FB; color: #14407F; display: grid; place-items: center; flex-shrink: 0; }
.kz-ty__methods small { display: block; font-size: 12px; color: #5A6B85; }
.kz-ty__methods strong { display: block; font-size: 15px; font-weight: 700; color: #0E1A33; }
.kz-ty__methods em { display: block; font-style: normal; font-size: 13px; color: #5A6B85; }

.kz-ty__thead, .kz-ty__row { display: grid; grid-template-columns: minmax(0, 1fr) 120px 56px 130px; gap: 16px; align-items: center; }
.kz-ty__thead { padding: 10px 0; border-bottom: 1px solid #D8E3F1; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #5A6B85; }
.kz-ty__thead span:nth-child(n+2) { text-align: right; }
.kz-ty__thead span:nth-child(3) { text-align: center; }
.kz-ty__list { list-style: none; margin: 0; padding: 0; }
.kz-ty__row { padding: 14px 0; border-bottom: 1px solid #E6EDF7; font-size: 15px; }
.kz-ty__prod { display: flex; gap: 12px; align-items: center; min-width: 0; }
.kz-ty__prod img, .kz-ty__noimg { width: 56px; height: 56px; border-radius: 10px; border: 1px solid #D8E3F1; object-fit: contain; background: #FFFFFF; flex-shrink: 0; }
.kz-ty__noimg { display: block; background: #F4F8FD; }
.kz-ty__prod a { color: #0E1A33; font-weight: 600; line-height: 1.45; text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kz-ty__prod a:hover { color: #1673B8; }
.kz-ty__prod a.notication_esim { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; color: #A35A0F; }
.kz-ty__prod a.notication_esim.active { color: #1673B8; text-decoration: underline; }
.kz-ty__price, .kz-ty__sub { text-align: right; white-space: nowrap; }
.kz-ty__price { color: #3D4E6B; }
.kz-ty__qty { text-align: center; font-weight: 600; }
.kz-ty__sub { font-weight: 700; color: #14407F; }

.kz-ty__totals { margin: 0; padding: 14px 0 12px; display: flex; flex-direction: column; gap: 8px; max-width: 380px; margin-left: auto; }
.kz-ty__totals > div { display: flex; justify-content: space-between; gap: 16px; font-size: 15px; }
.kz-ty__totals dt { margin: 0; font-weight: 500; color: #5A6B85; }
.kz-ty__totals dd { margin: 0; font-weight: 600; color: #0E1A33; text-align: right; }
.kz-ty__muted { font-weight: 500; color: #8FA7C9; font-size: 14px; }
.kz-ty__grand { padding-top: 12px; margin-top: 4px; border-top: 1px solid #D8E3F1; align-items: baseline; }
.kz-ty__grand dt { font-size: 16px; font-weight: 700; color: #0E1A33; }
.kz-ty__grand dd { font-size: 24px; font-weight: 800; color: #14407F; }
.kz-ty__grand dd small { display: block; font-size: 12px; font-weight: 600; color: #1673B8; }

.kz-ty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 24px; }
.kz-ty__btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 22px; border-radius: 10px;
    border: 1px solid #14407F; background: #FFFFFF; color: #14407F; font: 700 15px/1 'Open Sans', system-ui, sans-serif; text-decoration: none; cursor: pointer;
}
.kz-ty__btn:hover { background: #EAF2FB; color: #14407F; }
.kz-ty__btn.is-primary { background: #14407F; color: #FFFFFF; }
.kz-ty__btn.is-primary:hover { background: #1673B8; color: #FFFFFF; }
.kz-ty__btn.is-ghost { border-color: #D8E3F1; color: #3D4E6B; }
.kz-ty a:focus-visible, .kz-ty button:focus-visible { outline: 2px solid #1673B8; outline-offset: 2px; }

@media (max-width: 1024px) {
    .kz-ty__grid { grid-template-columns: minmax(0, 1fr); }
    .kz-ty__side, .kz-ty__items { grid-column: 1; grid-row: auto; }
    .kz-ty__side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kz-ty__bank { grid-column: 1 / -1; }
    .kz-ty__bank-body { flex-direction: row; align-items: center; }
    .kz-ty__bank-body .kz-ty__dl { flex: 1; }
    .kz-ty__hero { grid-template-columns: auto 1fr; }
    .kz-ty__steps { display: none; }
}
@media (max-width: 640px) {
    .kz-ty { padding: 16px 0 40px; }
    .kz-ty__hero { grid-template-columns: 1fr; justify-items: start; padding: 20px 18px; gap: 14px; }
    .kz-ty__check { width: 52px; height: 52px; box-shadow: 0 0 0 6px #EAF2FB; }
    .kz-ty__title { font-size: 22px; }
    .kz-ty__card { padding: 16px 18px; }
    .kz-ty__side { display: flex; }
    .kz-ty__bank-body { flex-direction: column; align-items: stretch; }
    .kz-ty__dl > div { grid-template-columns: 100px minmax(0, 1fr); }
    .kz-ty__thead { display: none; }
    .kz-ty__row { grid-template-columns: 1fr auto; gap: 6px 12px; }
    .kz-ty__prod { grid-column: 1 / -1; }
    .kz-ty__price { grid-column: 1; text-align: left; font-size: 14px; }
    .kz-ty__price::after { content: ' × ' attr(data-qty); }
    .kz-ty__qty { display: none; }
    .kz-ty__sub { grid-column: 2; grid-row: 2; }
    .kz-ty__totals { max-width: none; }
    .kz-ty__actions { flex-direction: column; }
    .kz-ty__btn { width: 100%; }
}

/* =========================================================
   7. Kiểm tra đơn hàng (vi/cart/check.html → file chung, chỉ restyle)
   ========================================================= */
section.top-footer:has(form[action$="/kiem-tra-don-hang"]) { background: #F4F8FD; padding: 40px 0 72px; }
section.top-footer:has(form[action$="/kiem-tra-don-hang"]) > .container {
    max-width: 880px; background: #FFFFFF; border: 1px solid #D8E3F1; border-radius: 16px; padding: 32px; box-sizing: border-box;
    font-family: 'Open Sans', system-ui, sans-serif;
}
section.top-footer:has(form[action$="/kiem-tra-don-hang"]) h3 { font-size: 24px; font-weight: 800; color: #14407F !important; text-align: center; text-transform: none; margin: 0 0 16px; }
section.top-footer form[action$="/kiem-tra-don-hang"] { width: 100% !important; max-width: 560px; gap: 10px; }
section.top-footer form[action$="/kiem-tra-don-hang"] input[name="check"] {
    flex: 1 1 auto; width: auto !important; height: 48px !important; border: 1px solid #C6D5EA !important; border-radius: 10px; padding: 0 14px !important; font-size: 15px !important; min-width: 0;
}
section.top-footer form[action$="/kiem-tra-don-hang"] button {
    width: auto !important; height: 48px !important; padding: 0 20px; border-radius: 10px; background: #14407F !important; font-weight: 700; white-space: nowrap; flex-shrink: 0;
}
section.top-footer form[action$="/kiem-tra-don-hang"] button:hover { background: #1673B8 !important; }
section.top-footer:has(form[action$="/kiem-tra-don-hang"]) hr { border: 0; border-top: 1px solid #D8E3F1; opacity: 1; margin: 24px 0; }
section.top-footer:has(form[action$="/kiem-tra-don-hang"]) table { border-collapse: collapse; font-size: 15px; }
section.top-footer:has(form[action$="/kiem-tra-don-hang"]) th { padding: 0 12px 10px 0; font-size: 13px; font-weight: 600; color: #5A6B85; border-bottom: 1px solid #D8E3F1; }
section.top-footer:has(form[action$="/kiem-tra-don-hang"]) td { padding: 12px 12px 12px 0; color: #3D4E6B; }
section.top-footer:has(form[action$="/kiem-tra-don-hang"]) tbody tr { border-bottom: 1px solid #D8E3F1 !important; }
section.top-footer:has(form[action$="/kiem-tra-don-hang"]) td a { color: #14407F; font-weight: 700; text-decoration: none; }
section.top-footer:has(form[action$="/kiem-tra-don-hang"]) td b { color: #14407F; }
@media (max-width: 767px) {
    section.top-footer:has(form[action$="/kiem-tra-don-hang"]) { padding: 20px 16px 48px; }
    section.top-footer:has(form[action$="/kiem-tra-don-hang"]) > .container { padding: 20px 16px; }
    section.top-footer:has(form[action$="/kiem-tra-don-hang"]) .row { margin: 0; }
    section.top-footer:has(form[action$="/kiem-tra-don-hang"]) table { display: block; overflow-x: auto; }
}

/* =========================================================
   8. ĐĂNG NHẬP / ĐĂNG KÝ (W05 · vi/auth/*.html)
   ========================================================= */
body:has(.kz-auth) { background: #F4F8FD; }
.kz-auth { background: #F4F8FD; font-family: 'Open Sans', system-ui, sans-serif; color: #0E1A33; }
.kz-auth__wrap { max-width: 1180px; margin: 0 auto; padding: 48px 24px 72px; box-sizing: border-box; }
.kz-auth__card { display: flex; flex-wrap: wrap; border-radius: 24px; overflow: hidden; background: #FFFFFF; border: 1px solid #D8E3F1; }
.kz-auth__aside {
    flex: 1 1 380px; background: #14407F; color: #FFFFFF; padding: 48px 40px; box-sizing: border-box;
    display: flex; flex-direction: column; gap: 24px; position: relative; overflow: hidden;
}
.kz-auth__aside > * { position: relative; }
.kz-auth__aside > .kz-auth__mark { position: absolute; right: -70px; bottom: -50px; width: 360px; height: auto; opacity: .12; transform: rotate(-12deg); pointer-events: none; user-select: none; }
.kz-auth__eyebrow { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: .16em; color: #9DDFF2; }
.kz-auth__pitch { margin: 0; font-size: 32px; font-weight: 800; line-height: 1.25; color: #FFFFFF; }
.kz-auth__benefits { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; font-size: 15px; line-height: 1.55; color: #D8E3F1; }
.kz-auth__benefits li { display: flex; gap: 12px; }
.kz-auth__benefits svg { flex-shrink: 0; margin-top: 2px; }
.kz-auth__hotline { margin: auto 0 0; font-size: 14px; color: #C5D9EE; }
.kz-auth__hotline a { color: #FFFFFF; font-weight: 700; text-decoration: none; }
.kz-auth__hotline a:hover { color: #9DDFF2; }

.kz-auth__main { flex: 1.3 1 440px; padding: 40px; box-sizing: border-box; display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.kz-auth__tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: #F4F8FD; border-radius: 12px; padding: 4px; }
.kz-auth__tab {
    min-height: 46px; border-radius: 9px; font-size: 15px; font-weight: 700; color: #5A6B85; text-decoration: none;
    display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 8px;
}
.kz-auth__tab:hover { color: #14407F; }
.kz-auth__tab.is-active { background: #FFFFFF; color: #14407F; box-shadow: 0 2px 6px rgba(20, 64, 127,0.12); }
.kz-auth__tab:focus-visible { outline: 2px solid #1673B8; outline-offset: 2px; }

.kz-auth__form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.kz-auth__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.kz-field { display: flex; flex-direction: column; gap: 6px; margin: 0; font-size: 14px; font-weight: 600; color: #14407F; }
.kz-field--full { grid-column: 1 / -1; }
.kz-req { color: #1673B8; }
.kz-opt { font-weight: 400; color: #5A6B85; font-size: 13px; }
.kz-field input, .kz-field select {
    width: 100%; min-height: 48px; border: 1px solid #C6D5EA; border-radius: 10px; padding: 0 14px; box-sizing: border-box;
    font-family: inherit; font-size: 15px; font-weight: 400; color: #0E1A33; background: #FFFFFF; box-shadow: none;
}
.kz-field select { padding: 0 12px; }
.kz-field input::placeholder { color: #8FA7C9; }
.kz-field input:focus, .kz-field select:focus { outline: 2px solid rgba(28,136,208,.3); outline-offset: 0; border-color: #1673B8; }
.kz-field input.is-invalid, .kz-check input.is-invalid { border-color: #14407F; outline: 2px solid #14407F; outline-offset: 0; }
.kz-field__pw { position: relative; display: block; }
.kz-field__pw input { padding-right: 52px; }
.kz-auth__eye {
    position: absolute; right: 2px; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border: 0; background: none;
    color: #5A6B85; display: flex; align-items: center; justify-content: center; cursor: pointer; border-radius: 8px;
}
.kz-auth__eye:hover, .kz-auth__eye[aria-pressed="true"] { color: #14407F; }
.kz-auth__row { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 14px; }
.kz-check { display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; font-size: 14px; font-weight: 400; color: #3D4E6B; cursor: pointer; }
.kz-check input { width: 18px; height: 18px; margin: 0; accent-color: #14407F; flex-shrink: 0; }
.kz-check--top { align-items: flex-start; line-height: 1.5; min-height: 0; }
.kz-check--top input { margin-top: 2px; }
.kz-check a, .kz-auth__link, .kz-auth__switch a { color: #14407F; font-weight: 600; text-decoration: none; }
.kz-check a:hover, .kz-auth__link:hover, .kz-auth__switch a:hover { color: #1673B8; text-decoration: underline; }
.kz-auth__submit {
    min-height: 52px; border: 0; border-radius: 10px; background: #14407F; color: #FFFFFF; font-family: inherit;
    font-size: 16px; font-weight: 700; display: flex; align-items: center; justify-content: center; cursor: pointer; width: 100%;
}
.kz-auth__submit:hover { background: #1673B8; }
.kz-auth__submit:disabled { opacity: .7; cursor: progress; }
.kz-auth__msg { padding: 12px 14px; border-radius: 10px; font-size: 14px; line-height: 1.5; font-weight: 600; }
.kz-auth__msg.is-err { background: #EAF2FB; color: #14407F; border: 1px solid #14407F; border-left-width: 4px; }
.kz-auth__msg.is-ok { background: #EAF2FB; color: #14407F; border: 1px solid #1673B8; border-left-width: 4px; }
.kz-auth__or { display: flex; align-items: center; gap: 12px; color: #5A6B85; font-size: 13px; }
.kz-auth__or::before, .kz-auth__or::after { content: ''; flex: 1; height: 1px; background: #D8E3F1; }
.kz-auth__social {
    min-height: 48px; border-radius: 10px; border: 1.5px solid #D8E3F1; color: #14407F; font-size: 15px; font-weight: 600;
    display: flex; align-items: center; justify-content: center; gap: 10px; text-decoration: none; background: #FFFFFF;
}
.kz-auth__social:hover { border-color: #1673B8; color: #14407F; }
.kz-auth__switch { margin: 0; text-align: center; font-size: 14px; color: #5A6B85; }
.kz-auth__note { margin: 0; padding: 14px 16px; border: 1.5px dashed #8FA7C9; border-radius: 12px; background: #F4F8FD; font-size: 14px; line-height: 1.55; color: #3D4E6B; }
.kz-auth__types { border: 0; margin: 0; padding: 0; min-width: 0; }
.kz-auth__types legend { font-size: 14px; font-weight: 600; color: #14407F; padding: 0; margin: 0 0 10px; float: none; width: auto; }
.kz-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.kz-chip { position: relative; margin: 0; cursor: pointer; }
.kz-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kz-chip span {
    min-height: 44px; padding: 0 16px; border-radius: 22px; border: 1.5px solid #D8E3F1; background: #FFFFFF; color: #14407F;
    font-size: 14px; font-weight: 600; display: flex; align-items: center;
}
.kz-chip input:checked + span { background: #14407F; border-color: #14407F; color: #FFFFFF; }
.kz-chip input:focus-visible + span { outline: 2px solid #1673B8; outline-offset: 2px; }
.kz-auth__captcha { display: flex; justify-content: flex-start; overflow-x: auto; }

@media (max-width: 767px) {
    .kz-auth__wrap { padding: 20px 16px 48px; }
    .kz-auth__card { border-radius: 16px; }
    .kz-auth__aside { padding: 28px 22px; gap: 16px; flex-basis: 100%; }
    .kz-auth__aside > .kz-auth__mark { width: 220px; right: -50px; bottom: -36px; }
    .kz-auth__pitch { font-size: 24px; }
    .kz-auth__benefits { font-size: 14px; gap: 10px; }
    .kz-auth__main { padding: 22px 18px 28px; flex-basis: 100%; order: -1; } /* form trước, khối lợi ích sau */
    .kz-auth__tab { font-size: 14px; }
}
.kz-field__label { display: block; }

/* =========================================================
   9. Giỏ hàng – bỏ ví eCard, gộp vận chuyển & thanh toán (1 lựa chọn)
   ========================================================= */
.kz-cart .ecard-balance-section.kz-ecard-off,
.kz-cart .ecard_row { display: none !important; }
.kz-cart .kz-seller {
    margin: 0 !important; padding: 12px 14px !important; border: 1px solid #D8E3F1; border-radius: 12px; background: #F4F8FD;
}
.kz-cart .kz-seller .checkbox-wrapper { display: flex; align-items: center; gap: 10px; }
.kz-cart .kz-seller input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: #14407F; flex-shrink: 0; }
.kz-cart .kz-seller .checkbox-label { margin: 0 !important; font-size: 14px !important; font-weight: 700 !important; color: #14407F !important; cursor: pointer; }
.kz-cart .kz-seller .seller-mode-info { margin: 4px 0 0 28px; }
.kz-cart .kz-seller .seller-mode-info small { font-size: 12px; line-height: 1.5; color: #5A6B85; }

.kz-cart .kz-pm-title { margin: 0 !important; padding-top: 14px; border-top: 1px solid #D8E3F1; font-size: 16px; font-weight: 700; color: #14407F; }
.kz-cart .checkout-section > .payment-methods.kz-pm-single { padding: 0 !important; border-top: 0 !important; }
.kz-cart .checkout-section > .kz-pm-first { margin-top: 10px !important; }
.kz-cart .kz-pm-single h3.collapsible-header { display: none !important; }
.kz-cart .kz-pm-single .collapsible-content { display: block !important; height: auto !important; overflow: visible; }
.kz-cart .kz-pm-single .shipping-method,
.kz-cart .kz-pm-single .payment-method {
    align-items: center; gap: 12px; margin: 0 !important; padding: 12px 14px !important; cursor: default;
    background: #F4F8FD !important; border: 1px solid #D8E3F1 !important; border-radius: 0 !important;
}
.kz-cart .kz-pm-first .shipping-method, .kz-cart .kz-pm-first .payment-method { border-radius: 12px 12px 0 0 !important; }
.kz-cart .kz-pm-last .shipping-method, .kz-cart .kz-pm-last .payment-method { border-radius: 0 0 12px 12px !important; border-top: 0 !important; }
.kz-cart .kz-pm-single:not(.kz-pm-first):not(.kz-pm-last) .payment-method { border-radius: 12px !important; }
.kz-cart .kz-pm-single input[type="radio"] { position: absolute !important; opacity: 0 !important; pointer-events: none; width: 1px !important; height: 1px !important; }
.kz-cart .kz-pm-icon { width: 40px; height: 40px; border-radius: 10px; background: #FFFFFF; border: 1px solid #D8E3F1; color: #14407F; display: grid; place-items: center; flex-shrink: 0; }
.kz-cart .kz-pm-kind { display: block; font-size: 12px; font-weight: 500; color: #5A6B85; line-height: 1.4; }
.kz-cart .kz-pm-single strong { font-size: 15px !important; }
.kz-cart .kz-pm-single p { font-size: 12.5px !important; margin-top: 2px !important; }
.kz-cart .kz-pm-single .view-all-shipping { display: none; }
.kz-ty__prod img { font-size: 0; color: transparent; overflow: hidden; }
@media (max-width: 640px) { .kz-ty__dot { display: none; } .kz-ty__meta { row-gap: 2px; } }
.kz-cart .checkout-section > .kz-pm-title + .kz-pm-first { margin-top: -4px !important; }
.kz-cart .checkout-section > .kz-pm-last { margin-top: -14px !important; }
.kz-cart .kz-pm-single form, .kz-cart .kz-pm-single .collapsible-content { margin: 0 !important; padding: 0 !important; }
.kz-cart .kz-pm-single .shipping-method-content, .kz-cart .kz-pm-single .payment-method-content { min-width: 0; }
.kz-cart .kz-pm-single strong { display: block; margin: 0 !important; line-height: 1.35; }
.kz-cart .kz-pm-single span.kz-pm-icon {
    display: flex !important; align-items: center !important; justify-content: center !important;
    width: 40px !important; height: 40px !important; min-width: 40px; padding: 0 !important; margin: 0 !important; line-height: 0 !important;
    float: none !important; position: static !important; align-self: center;
}
.kz-cart .kz-pm-single span.kz-pm-icon svg { display: block !important; width: 20px !important; height: 20px !important; margin: 0 !important; vertical-align: initial !important; }

/* Đơn hàng tối thiểu (plugin.limited_order) */
.kz-cart #payging_btn.checkout-btn.is-min-blocked { display: none !important; }
.kz-cart .min-order-note { margin: 0 !important; padding: 10px 12px !important; border-radius: 10px !important; font-size: 13px !important; font-family: inherit; }
.kz-cart .min-order-note__bar span { background: #3AA6D5; }
.kz-cart .min-order-note.is-ok { background: #EAF2FB !important; border-color: #9DB8DD !important; color: #14407F !important; }
.kz-cart .min-order-block { margin: 0; border-radius: 12px; font-family: inherit; }
.kz-cart .min-order-block__link { color: #1673B8 !important; }
.kz-cart .total-section-left .total-row.min-order-note {
    display: block; padding: 10px 12px !important; border: 1px solid #F5C66B !important; background: #FFF8E6 !important; color: #8A5300 !important;
    font-size: 13px !important; font-weight: 600 !important; line-height: 1.5;
}
.kz-cart .total-section-left .total-row.min-order-note[style*="display: none"] { display: none !important; }
.kz-cart .total-section-left .total-row.min-order-note * { color: inherit !important; }
.kz-cart .total-section-left .total-row.min-order-note.is-ok { background: #EAF2FB !important; border-color: #9DB8DD !important; color: #14407F !important; }
.kz-cart .total-section-left .min-order-note__text { display: flex; gap: 6px; align-items: flex-start; }
.kz-cart .total-section-left .min-order-note__bar { display: block; height: 6px; margin-top: 8px; border-radius: 999px; background: rgba(138, 83, 0, .12); overflow: hidden; }
.kz-cart .total-section-left .min-order-note__bar span { display: block; height: 100%; background: #3AA6D5; border-radius: inherit; }
.kz-cart .total-section-left .min-order-note.is-ok .min-order-note__bar { display: none; }

/* Modal địa chỉ giao hàng (static/css/cart-address.css) – đổi biến màu sang bộ nhận diện Kaizen */
#addressManagementPopup, #addressFormPopup {
    --am-primary: #14407F; --am-accent: #1673B8; --am-soft: #EAF2FB; --am-soft-2: #F4F8FD;
    --am-text: #0E1A33; --am-muted: #5A6B85; --am-line: #D8E3F1;
}
